F161_MRCV

MCU 포트에서 데이터 읽기

이 명령을 사용하여 다중 통신 유닛이 외부 장치에서 수신한 데이터를 CPU의 수신 버퍼로 복사하십시오. MCU의 통신 포트는 s_Port에서 지정됩니다. 수신 버퍼는 d1_Startd2_End에서 지정됩니다.

파라미터

입력

s_Port (WORD, INT, UINT)

데이터가 전송되는 MCU의 슬롯 번호(상위 바이트) 및 포트 번호(하위 바이트)를 지정합니다.

16#xx01: 16#xx 슬롯에서 MCU상의 COM1

16#xx02: 슬롯 16#xx에 있는 MCU의 COM2

d1_Start (WORD, INT, UINT)

수신 버퍼의 시작 어드레스

d2_End (WORD, INT, UINT)

수신 버퍼의 종료 어드레스

주석

  • "수신 완료" 플래그를 평가하여 수신 종료를 확인하지 않는 한, F161_MRCV를 실행하지 마십시오. F161_MRCV를 사용한 데이터 폴링은 올바르게 동작하지 않습니다! "수신 완료" 플래그는 IsReceptionDoneIsReceptionDoneByTimeOut 펑션을 사용하거나 입력(X) 플래그 X0X2 평가를 통해 평가될 수 있습니다.

  • 수신한 바이트 수는 수신 버퍼의 d1_Start에서 지정한 초기 어드레스에 저장됩니다. 수신한 데이터가 b2_End에 의해 지정된 종료 어드레스를 초과하는 경우 연산 에러가 감지됩니다. 최대 d2_End까지 수신된 데이터가 저장됩니다. F161_MRCV는 또한 수신 버퍼를 지우고, "수신 완료 플래그"를 초기화하고, 추가 데이터 수신을 허용합니다.

  • F161_MRCV는 모든 PLC에 의해 지원됩니다. 플래그 대신 적절한 펑션을 사용하는 경우, CPU 통신 포트와 MCU 포트의 통신을 처리하는 PLC 독립 프로그램을 작성할 수 있습니다. MCU 포트를 사용하지 않는 PLC는 F161_MRCV 명령을 번역하지 않습니다. 읽기 쉬운 프로그램에 대해 ReadData 또는 ReadCharacters 펑션을 사용하는 것이 좋습니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • MCU 유닛이 지정된 슬롯에 없거나 0바이트를 전송해야 하는 경우.

  • 지정한 통신 포트가 없는 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • MCU 유닛이 지정된 슬롯에 없거나 0바이트를 전송해야 하는 경우.

  • 지정한 통신 포트가 없는 경우

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		ReadReceivedData: BOOL:=FALSE;
		ReceiveBuffer: ARRAY [0..10] OF INT:=[11(0)];
	END_VAR

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_F,F161_MRCV!,,17,2,24,8,,?DEN?Ds_Port?Dd1_Start?Dd2_End?AENO);
B(B_VARIN,,ReadReceivedData,15,3,17,5,);
B(B_VARIN,,16#0201,15,4,17,6,);
B(B_VARIN,,ReceiveBuffer[0],15,5,17,7,);
B(B_VARIN,,ReceiveBuffer[10],15,6,17,8,);
B(B_COMMENT,,The received data of port 1 of the MCU in slot 2 are read:,2,1,32,2,);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,F161_MRCV!,,17,0,24,6,,?DEN?Ds_Port?Dd1_Start?Dd2_End?AENO);
B(B_VARIN,,ReadReceivedData,15,1,17,3,);
B(B_VARIN,,16#0301,15,2,17,4,);
B(B_VARIN,,ReceiveBuffer,6,4,8,6,);
B(B_F,Adr_Of_Var_I!,,10,3,17,5,,?D?C);
B(B_F,AdrLast_Of_Var_I!,,8,4,17,6,,?D?C);
L(1,0,1,6);
L(8,4,8,5);
L(8,4,10,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

최종 수정일: 2022-04-04이 페이지에 대한 피드백Panasonic 직통 전화