F146_READ_DATA_TYPE_OFFS

유형 및 오프셋을 사용하여 슬레이브로부터 데이터 읽기

이 명령을 사용하여 사용한 포트의 시스템 레지스터에서 정의한 대로 MEWTOCOL-COM 또는 Modbus RTU 프로토콜을 사용하여 통신 포트를 통해 슬레이브에서 데이터를 요청합니다. Modbus 프로토콜을 사용한 데이터 전송을 위해서 컴파일러는 Modbus 참조 번호를 기준으로 Modbus 커맨드를 생성합니다.

파라미터

입력

Port (WORD, INT, UINT)

PLC 기종에 따라 통신 포트를 지정합니다.

  • COM 포트(예: SYS_COM0_PORT)

  • 이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)

  • MCU/SCU(예: COM0116#xx01 (xx = 슬롯 번호))

SlaveAddress (WORD, INT, UINT)

슬레이브의 스테이션 번호 (MEWTOCOL: 1-99, MODBUS 1–255), 브로드캐스팅: 0)

SYS_ETHERNET_USER_CONNECTION_xxPort 입력에 적용된 경우, 1로 설정

SlaveWordAddressType (WORD, INT, UINT)

슬레이브의 대상 어드레스 형식. 0의 오프셋을 지정합니다(예: DT0 또는 WL0).

SlaveWordAddressOffs (WORD, INT, UINT)

데이터를 읽는 슬레이브의 시작 어드레스에 대한 오프셋입니다. 어드레스 형식이 SlaveWordAddressType에 의해 정의됩니다.

NumberOfWords_BitsInWords (WORD, INT, UINT)

전송할 워드(비트) 수.

또는:

  • 워드 수

    Modbus RTU의 경우: 16#001–16#07F

    MEWTOCOL-COM의 경우: 16#001–16#1FD 또는 16#001–16#1B(FP0, FP-e)

또는:

  • 비트 전송용 제어 워드: 마스터에서 "to bit"인 T가 있고 슬레이브에서 "from bit"인 F가 있는 16#8T0F입니다(FP7에 적용 불가).

출력

MasterWordData (ANY)

요청한 데이터가 기록되는 마스터 유닛의 워드 영역 또는 레지스터

주석

  • F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.FP_READ_FROM_SLAVE_AREA_OFFS.

  • 어느 명령도 활성되지 않으면 F145 또는 F146 명령만 실행될 수 있습니다. 프로그램에서 "F145/F146 not active" 플래그를 평가하여 명령 상태를 확인합니다.

  • "F145/F146 error" 플래그를 평가하여 전송이 정상적으로 완료되었는지 또는 오류가 발생했는지 확인합니다.

  • 대상 어드레스가 특수 내부 플래그(R9000에서), 특수 데이터 등록(DT9000/DT90000에서) 또는 파일 레지스터 FL이면 F145 또는 F146 명령을 실행할 수 없습니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)

  • 슬레이브 또는 마스터 데이터가 사용 가능한 어드레스 범위를 초과합니다.
  • SlaveWordAddressType인 경우: 오프셋 ¹ 0

  • 통신 모드가 MEWTOCOL-COM 마스터/슬레이브 또는 Modbus RTU 마스터/슬레이브로 설정되지 않았습니다.
  • 선택한 COM 포트에 설치되지 않은 통신 카세트가 필요합니다.
sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)

  • 슬레이브 또는 마스터 데이터가 사용 가능한 어드레스 범위를 초과합니다.
  • SlaveWordAddressType인 경우: 오프셋 ¹ 0

  • 통신 모드가 MEWTOCOL-COM 마스터/슬레이브 또는 Modbus RTU 마스터/슬레이브로 설정되지 않았습니다.
  • 선택한 COM 포트에 설치되지 않은 통신 카세트가 필요합니다.

POU 헤더

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

	VAR
		bBool2: BOOL:=FALSE;
		bRead1: BOOL:=FALSE;
		bWrite2: BOOL:=FALSE;
		Bool16_OverlappingDut_1: BOOL16_OVERLAPPING_DUT;
	END_VAR

POU 본문

bRead1sys_bIsComPort1F145F146NotActiveTRUE로 설정되면 슬레이브 2의 출력 Y38이 읽혀지고 Bool16_OverlappingDut_1.w0의 비트 1에 작성됩니다. 이 비트는 Bool16_OverlappingDut_1.b1에서 액세스되고 bBool2에 복사될 수 있습니다.

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_CONTACT,,bRead1,3,1,5,3,);
B(B_CONTACT,,sys_bIsComPort1F145F146NotActive,12,1,14,3,);
B(B_COIL,,bWrite2,45,1,47,3,S);
B(B_VARIN,,2,22,3,24,5,);
B(B_VARIN,,WY0,22,4,24,6,);
B(B_VARIN,,3,22,5,24,7,);
B(B_VARIN,,SYS_COM1_PORT,22,2,24,4,);
B(B_COIL,,bRead1,41,1,43,3,E);
B(B_F,F146_READ_DATA_TYPE_OFFS!,Instance,24,0,39,8,,?DEN?DPort?DSlaveAddress?DSlaveWordAddressType?DSlaveWordAddressOffs?DNumberOfWords_BitsInWords?AENO?CMasterWordData);
B(B_VARIN,,16#8108,22,6,24,8,);
B(B_VAROUT,,Bool16_OverlappingDut_1.w0,39,2,41,4,);
L(1,2,3,2);
L(5,2,12,2);
L(43,2,45,2);
L(14,2,24,2);
L(39,2,41,2);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_CONTACT,,Bool16_OverlappingDut_1.b1,8,1,10,3,);
B(B_COIL,,bBool2,20,1,22,3,);
L(10,2,20,2);
L(1,2,8,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

if (bRead1 and sys_bIsComPort1F145F146NotActive) then
    F146_READ_DATA_TYPE_OFFS(Port := SYS_COM1_PORT, 
                                SlaveAddress := 2, 
                                SlaveWordAddressType := WY0, 
                                SlaveWordAddressOffs := 3, 
                                NumberOfWords_BitsInWords := 16#8108, 
                                MasterWordData => Bool16_OverlappingDut_1.w0);
end_if;
bBool2 := Bool16_OverlappingDut_1.b1;

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