"수신 완료" 플래그 평가
이 펑션은 "reception done" 플래그 값을 반환합니다. Port에 할당된 통신 포트에서 종료 코드가 수신되면 TRUE입니다.
입력
PLC 기종에 따라 통신 포트를 지정합니다.
COM 포트(예: SYS_COM0_PORT)
이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)
MCU/SCU(예: COM01의 16#xx01(xx = 슬롯 번호))
출력
종료 코드를 수신한 경우 TRUE로 설정합니다. 종료 코드가 COM 포트 설정에서 해당 시스템 레지스터에 지정됩니다.
"reception done" 플래그 평가
지정된 시간 동안 더 이상 바이트가 수신되지 않거나 명령 ClearReceiveBuffer를 수행하면 IsDone 출력이 TRUE로 바뀝니다. 추가 데이터 수신이 금지됩니다. F159_MTRN 도는 ClearReceiveBuffer는 "IsDone" 플래그를 FALSE로 전환합니다. 이 기능은 타임아웃 모드에서도 FP7 또는 MCU에 사용할 수 있습니다. 다음 명령이나 시스템 변수 중 하나를 사용하여 "reception done" 플래그를 평가할 수 있습니다.
IsReceptionDone
IsReceptionDoneByTimeOut
sys_bIsComPort1ReceptionDone, sys_bIsComPort2ReceptionDone, sys_bIsToolPortReceptionDone(포트에 따름)
또한 수신 버퍼 콘텐츠를 확인하여 수신 종료를 결정할 수 있습니다. 스캔이 실행되는 동안 수신된 바이트 수가 변경될 수 있습니다. 예를 들어, 수신된 바이트 수를 읽으면 스캔 1회에 다른 상태가 두 개 이상 있을 수 있습니다.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
iPort: INT:=0;
bIsDone: BOOL:=FALSE;
END_VAR
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_F,IsReceptionDone!,,5,0,14,3,,?DPort?CIsDone);
B(B_VARIN,,iPort,3,1,5,3,);
B(B_VAROUT,,bIsDone,14,1,16,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsDone:=IsReceptionDone(Port := iPort);