PC 링크 영역의 시스템 레지스터 설정 변경
시스템 레지스터 40~47(FP0R, FP-S 32k, FP-X 또는 50~57), PC 링크 영역의 값을 변경할 수 있습니다.
PLC가 RUN 모드이면 SYS2는 지정된 시스템 레지스터 설정을 변경합니다. s_Start에는 d_Start와 d_End 사이에서 정의된 해당 시스템 레지스터의 새 값이 포함됩니다.
이 명령을 실행하면 제어 유닛에서 시스템 ROM의 콘텐츠를 다시 쓸 수 없습니다. 그 결과, 전원 유닛을 끈 후 다시 켜면 도구 소프트웨어에서 지정한 시스템 레지스터의 콘텐츠를 다시 쓸 수 있습니다.
40~47 사이의 값은 d_Start 또는 d_End에 지정되어야 합니다. 또한 d_Start£d_End 방식으로 항상 값이 지정되어야 합니다.
시스템 레지스터 값이 변경되면 프로그램 확인 시 확인 에러가 발생할 수 있습니다.
입력
잔여 변수 두 개에서 정의한 시스템 레지스터의 새 값을 포함합니다.
새 값을 수신하는 첫 번째 시스템 레지스터(40~47 사이)입니다.
정수이어야 함새 값을 수신하는 마지막 시스템 레지스터(40~47 사이)입니다.
정수이어야 함d_Start > d_End인 경우
지정 값이 다양한 시스템 레지스터 설정 값에 지정된 범위를 벗어나는 경우
d_Start > d_End인 경우
지정 값이 다양한 시스템 레지스터 설정 값에 지정된 범위를 벗어나는 경우
구조체(DUT)를 사용하여 다른 데이터 형식으로 구성된 구조체를 정의할 수 있습니다. DUT는 먼저 DUT 풀에서 정의된 후 POU 헤더의 전역 변수 목록에서 표준 데이터 형식(BOOL, INT 등)으로 처리됩니다.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
LinkAreas: @'LINK_AREAS':=RelayArea := 64, RegisterArea := 128;
SetLinkAreas: BOOL:=FALSE;
END_VAR
SetLinkAreas가 켜지면 PC 링크 시스템 레지스터 40~45의 값을 LinkAreas의 정의대로 변경합니다.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,SYS2!,Instance,10,0,16,6,,?DEN?Ds_Start?Hd_Start?Hd_End?AENO);
B(B_VARIN,,SetLinkAreas,8,1,10,3,);
B(B_VARIN,,LinkAreas.RelayArea,8,2,10,4,);
B(B_VARIN,,40,8,3,10,5,);
B(B_VARIN,,45,8,4,10,6,);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY