부분 I/O 업데이트
프로그램이 실행 중이더라도 트리거 EN이 ON 상태이면 즉시 d1_Start(시작 워드 어드레스)의 값과 d2_End(끝 워드 어드레스)의 값으로 지정된 입력 또는 출력을 업데이트합니다.
입력
시작 워드 어드레스
끝 워드 어드레스
이 명령을 사용하여 스캔 시 발생하는 시간 지연 없이 입력 또는 출력을 업데이트할 수 있습니다.
같은 유형의 오퍼랜드를 d1_Start와 d2_End에 지정해야 합니다.
FP2, FP2SH, FP3 /5 /10 /10SH(백플레인이 있는 PLC)
워드 어드레스를 0 £d1_Start£d2_End£ 127로 지정합니다. I/O 어드레스 구성에 따라 WX10(또는 WY10)만 업데이트되며 d1_Start와 d2_End는 다음과 같이 설정됩니다. d1_Start = 10 및 d2_End = 10.
d1_Start와 d2_End의 같은 워드 어드레스를 1워드만 업데이트되도록 설정합니다.
부분 I/O 업데이트 명령은 마스터 백플레인 또는 확장 백플레인에 있는 I/O 유닛에 대해서만 실행됩니다. 원격 I/O 시스템의 슬레이브 스테이션에 잇는 I/O 유닛에 대해서는 실행되지 않습니다.
FP-S, FP0(백플레인이 없는 PLC)
프로그램이 실행 중이더라도 트리거가 ON으로 전환되자마자 F143_IORF 명령은 d1_Start(시작 워드 어드레스)와 d2_End(끝 워드 어드레스)에서 지정한 입력과 출력을 업데이트합니다.
FP0 및 FP-S를 사용하여 IORF 명령으로 초기화된 리프레쉬는 제어 유닛에 대해서만 수행됩니다.
d1_Start와 d2_End가 정수가 아닌 변수이면 컴파일러는 자동으로 인덱스 레지스터를 통해 변수 값에 액세스합니다.
같은 유형의 오퍼랜드를 d1_Start와 d2_End에 지정해야 합니다.
입력 리프레쉬를 사용하여 WX0를 d1_Start와 d2_End에 지정해야 합니다.
출력 리프레쉬를 사용하여 WY0를 d1_Start와 d2_End에 지정해야 합니다.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
start: BOOL:=FALSE;
(*activates the funtion*)
FirstRefreshAddr: INT:=10;
LastRefreshAddr: INT:=10;
END_VAR
변수 start가 FALSE에서 TRUE로 변경되면 펑션이 실행됩니다.
마스터 I/O 맵 구성을 토대로 WX10와 WY10을 업데이트하려면 d1 = 10과 d2 = 10으로 설정합니다.BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,start,5,1,7,3,);
B(B_F,F143_IORF!,Instance,9,0,16,5,,?DEN?Dd1_Start?Dd2_End?AENO);
B(B_VARIN,,FirstRefreshAddr,7,2,9,4,);
B(B_VARIN,,LastRefreshAddr,7,3,9,5,);
L(1,2,5,2);
L(1,0,1,5);
L(7,2,9,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(* PLCs with backplanes FP-C/FP2/FP2SH/FP3/FP10SH *)
IF start then
(* Updates the input/output of word no. 0 to 1 *)
F143_IORF( 0, 1);
END_IF;
(* PLCs without backplanes FP0, FP-Sigma *)
IF start then
(* Updates the input/output of word no. 0 to 1 *)
F143_IORF(WX0, WX1);
F143_IORF(WY0, WY1);
END_IF;