FP_MODBUS_MASTER

슬레이브에 데이터 쓰기 또는 슬레이브에서 데이터 읽기

사용 가능한 펑션 코드(프로그래밍 예 포함)

SYS_MODBUS_01_READ_COIL

SYS_MODBUS_02_READ_INPUT

SYS_MODBUS_03_READ_HOLDING_REGISTER

SYS_MODBUS_04_READ_INPUT_REGISTERS

SYS_MODBUS_05_FORCE_COIL

SYS_MODBUS_06_PRESET_REGISTER

SYS_MODBUS_15_FORCE_COILS

SYS_MODBUS_16_PRESET_REGISTERS

이 명령을 사용하여 마스터에서 슬레이브로 데이터를 쓰거나 사용되는 포트의 시스템 레지스터에 정의된 대로 Modbus RTU 프로토콜을 사용하는 통신 포트를 통해 슬레이브에서 데이터를 읽습니다. 마스터와 슬레이브에 동일한 프로토콜을 설정해야 합니다.

파라미터

입력

Port (WORD, INT, UINT)

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

  • COM 포트(예: SYS_COM0_PORT)

  • 이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)

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

SlaveAddress (WORD, INT, UINT)

슬레이브의 스테이션 번호 (0–255)

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

FunctionCode* (WORD, INT, UINT)

SYS_MODBUS_01_READ_COIL

SYS_MODBUS_02_READ_INPUT

SYS_MODBUS_03_READ_HOLDING_REGISTER

SYS_MODBUS_04_READ_INPUT_REGISTERS

SYS_MODBUS_05_FORCE_COIL

SYS_MODBUS_06_PRESET_REGISTER

SYS_MODBUS_15_FORCE_COILS

SYS_MODBUS_16_PRESET_REGISTERS

StartRegister (WORD, INT, UINT)

시작 어드레스(0–65535) 어드레스 유형은 FunctionCode*에서 지정한 명령에 따라 다릅니다.

NumberOfRegisters* (WORD, INT, UINT)

전송 비트 수 또는 워드 수입니다.

  • 펑션 코드 01, 02의 경우 1–2040

  • 펑션 코드 15의 경우 2–2040

  • 펑션 코드 03, 04의 경우 1–127

  • 펑션 코드 16의 경우 2–127

MasterData (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

슬레이브에 쓸 데이터에 대한 마스터의 소스 어드레스.

출력

Result (WORD, INT, UINT)
  • FP7에만 해당:
    • 0: 정상 완료

    • 1: 통신 포트는 마스터 통신에 사용됨

    • 2: 통신 포트는 슬레이브 통신에 사용됨

    • 3: 동시에 사용할 수 있는 마스터 통신 명령의 수를 초과함

    • 4: 전송 타임아웃

    • 5: 응답 수신 타임아웃

    • 6: 데이터 에러 발생

  • 그 외 PLC의 경우: 0으로 설정

파트서 스테이션 사양

통신모드

SCU 또는 ET-LAN을 사용하는 경우

MODBUS

1-247

주석

Modbus를 통한 연결의 경우 "1"을 지정합니다. 대상은 IP 주소를 통해 결정됩니다.

소스 데이터 영역의 시작 어드레스 지정

통신 모드

어드레스 범위

MODBUS

0~65535(16#FFFF)

수신된 데이터 양 지정

전송 방법

전송 데이터 수

사용할 명령

워드 전송

1~127워드

  • WY 및 WR을 읽으려면 SYS_MODBUS_01_READ_COIL을 사용합니다.

  • WX를 읽으려면 SYS_MODBUS_02_READ_INPUT을 사용합니다.

  • DT를 읽으려면 SYS_MODBUS_03_READ_HOLDING_REGISTER를 사용합니다.

  • WL 및 LD를 읽으려면 SYS_MODBUS_04_READ_INPUT_REGISTERS를 사용합니다.

비트 전송

1~2040비트

  • Y 및 R을 읽으려면 SYS_MODBUS_01_READ_COIL을 사용합니다.

  • X를 읽으려면 SYS_MODBUS_02_READ_INPUT을 사용합니다.

SCU를 사용한 샘플 프로그램

  • CPU 유닛의 COM1 포트에서 명령을 전송하고 외부 장치(스테이션 번호 1)의 DT400–DT401 데이터 영역에서 데이터를 읽고, PLC의 데이터 레지스터 DT100–DT101에 데이터를 기록합니다.

  • 마스터 통신 삭제-전송 플래그가 TRUE (XC)인지 확인하고, 동일한 포트(YC)에서 전송이 진행 중이지 않은 것을 확인하고 전송 명령을 실행합니다.

  • RECV 명령을 실행하려면 파트너 스테이션 번호(U1), 시작 어드레스(DT400), 데이터 양(U2), 및 PLC의 시작 어드레스를 지정하여 데이터(DT100)를 저장합니다.

프로그래밍 시 사전 주의사항

  • 마스터 통신은 MEWTOCOL 또는 MODBUS가 선택된 경우에만 활성화됩니다. 마스터 통신 삭제-전송 플래그(XC–XE)가 해당 채널에 대해 TRUE인지 확인하고 SEND/RECV 명령을 실행합니다.

  • 마스터 통신이 진행 중인 통신 포트에 대해 다른 SEND/RECV 명령을 실행할 수 없습니다. 마스터 통신 전송 플래그(YC–YE)가 FALSE인지 확인하고 명령을 실행합니다.

  • 슬레이브 통신이 진행 중인 포트에 대해서는 SEND/RECV 명령을 실행할 수 없습니다.

  • 응답이 없으면 CPU 구성에 설정된 타임아웃 시간 동안 마스터 통신 전송 플래그(YC–YE)가 TRUE로 유지됩니다.

  • 서로 다른 COM 포트에 대해 최대 16개의 SEND/RECV 명령을 동시에 실행할 수 있습니다.

I/O 할당

COM 포트 번호

이름

설명

1

2

0

XC

XD

XE

마스터 통신 삭제-전송 플래그

MEWTOCOL-COM, MEWTOCOL7 또는 MODBUS-RTU 가 통신 모드로 설정되어 있고 PLC가 RUN 모드에 있으면 TRUE로 바뀝니다.

YC

YD

YE

마스터 통신 전송 플래그

SEND 및 RECV 명령이 데이터를 전송하는 동안 TRUE로 바뀝니다. 전송이 완료되면 FALSE로 바뀝니다.

Y0

Y1

Y2

마스터 통신 전송 완료 플래그

프로그램이 제어하는 통신 또는 마스터 통신이 정상적으로 완료된 경우 TRUE로 바뀌고 전송이 비정상적으로 완료된 경우에는 FALSE로 바뀝니다.

주석

접점은 연산 상태를 판독하는 데 사용됩니다. 사용자 프로그램으로 쓰지 마십시오.

이더넷을 사용한 샘플 프로그램

  • CPU 유닛의 LAN 포트에서 명령을 전송하고 외부 장치의 데이터 영역 DT400–DT401 에서 데이터를 읽고, PLC의 데이터 레지스터DT100–DT101에 데이터를 기록합니다.

  • 연결 1의 마스터 통신 삭제-전송 플래그가 TRUE(X90)인지 확인하고 동일한 포트(Y90)에서 전송이 진행 중이지 않은 경우 전송 명령을 실행합니다.

  • RECV 명령을 실행하려면 파트너 스테이션 번호(U1), 시작 어드레스(DT400), 데이터 양(U2), 및 PLC의 시작 어드레스를 지정하여 데이터(DT100)를 저장합니다.

프로그래밍 시 사전 주의사항

  • 마스터 통신은 MEWTOCOL 또는 MODBUS가 선택된 경우에만 활성화됩니다. 해당 연결에 대해 마스터 통신 삭제-전송 플래그(X90–X9F)가 TRUE인지 확인하고 SEND/RECV 명령을 실행합니다.

  • 마스터 통신이 진행 중인 연결에는 다른 SEND/RECV 명령을 실행할 수 없습니다. 마스터 통신 전송 플래그(Y90–Y9F)가 FALSE인지 확인한 후 명령을 실행합니다.

  • 슬레이브 통신이 진행 중인 연결에는 SEND/RECV 명령을 실행할 수 없습니다.

  • 다른 포트에 대해 최대 16개의 SEND/RECV 명령을 동시에 실행할 수 있습니다.

  • FP7의 LAN 포트간 통신인 경우 파트너 스테이션 번호로 "U1"을 지정합니다. 대상은 IP 어드레스에 의해 결정됩니다.

시간 차트

  1.  (1) 마스터 통신 삭제-전송 플래그, 예: sys_bIsEthernetUserConnection1MasterCommunication
  2.  (2) 마스터 통신 삭제-전송 플래그가 TRUE인지 확인하고 마스터 통신 전송 플래그가 FALSE인지 확인합니다.
  3.  (3) 마스터 통신 전송 플래그, 예: sys_bIsEthernetUserConnection1MasterCommunicationActive

    전송 중: 마스터 통신 전송 플래그TRUE입니다.

    전송 완료: 마스터 통신 전송 플래그FALSE입니다.

  4.  (4) 이 명령을 실행합니다.
  5.  (5) 마스터 통신 전송 완료 플래그, 예: sys_bIsEthernetUserConnection1CommunicationError

    정상 완료: FALSE

    비정상적인 완료: TRUE

  6.  (6) 데이터를 전송합니다.
  7.  (7) 응답 수신 처리가 실행됩니다.

I/O 할당

I/O 번호

이름

설명

X90–X9F

마스터 통신 삭제-전송 플래그

MEWTOCOL-COM, MEWTOCOL7 또는 MODBUS-RTU 가 통신 모드로 설정되어 있고 PLC가 RUN 모드에 있으면 TRUE로 바뀝니다.

Y90–Y9F

마스터 통신 전송 플래그

SEND 및 RECV 명령이 데이터를 전송하는 동안 TRUE로 바뀝니다. 전송이 완료되면 FALSE로 바뀝니다.

Y70–Y7F

마스터 통신 전송 완료 플래그

프로그램이 제어하는 통신 또는 마스터 통신이 정상적으로 완료된 경우 TRUE로 바뀌고 전송이 비정상적으로 완료된 경우에는 FALSE로 바뀝니다.

주석

접점은 연산 상태를 판독하는 데 사용됩니다. 사용자 프로그램으로 쓰지 마십시오.

에러 플래그

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

SYS_MODBUS_01_READ_COIL

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 01 실행: StartRegister 변수에 의해 설정된 시작 레지스터 56에서 시작하는 Modbus 슬레이브에서 1비트를 읽습니다. 그런 다음 이 명령은 변수bBool2에 의해 설정된 어드레스부터 시작하여 마스터에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 56은 출력 Y38(3*16+8=56)에 해당합니다.

SYS_MODBUS_02_READ_INPUT

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • X(입력)

Modbus 명령 02 실행: StartRegister 변수에 의해 설정된 시작 레지스터 66에서 시작하는 Modbus 슬레이브에서 1비트를 읽습니다. 그런 다음 이 명령은 변수bBool2에 의해 설정된 어드레스부터 시작하여 마스터에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 66은 입력 X42(4*16+2=66)에 해당합니다.

SYS_MODBUS_03_READ_HOLDING_REGISTER

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • DT(데이터 레지스터)

Modbus 명령 03 실행: StartRegister 변수에 의해 설정된 시작 레지스터 100에서 시작하는 Modbus 슬레이브에서 2워드를 읽습니다. 그런 다음 이 명령은 변수rCount2에 의해 설정된 어드레스부터 시작하여 Modbus 마스터 22워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.

레지스터 최대 번호: 127.

SYS_MODBUS_04_READ_INPUT_REGISTERS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.

  • WL0–WL127(링크 플래그)

  • LD0–LD256(링크 레지스터)

Modbus 명령 04 실행: StartRegister 변수에 의해 설정된 시작 레지스터 2018에서 시작하는 Modbus 슬레이브에서 7워드를 읽습니다. 그런 다음 이 명령은 MasterData 변수에 의해 설정된 LD25부터 시작하여 마스터에 7워드를 저장합니다 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 2018은 링크 레지스터 LD18에 해당합니다.

레지스터 최대 번호: 127.

SYS_MODBUS_05_FORCE_COIL

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 05 실행: MasterData 변수에 의해 설정된 어드레스 WY1에서 시작하는 Modbus 슬레이브에 1비트를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 35부터 시작하여 Modbus 슬레이브에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 어드레스 35은 출력 Y23(2*16+3=35)에 해당합니다.

여러 비트 데이터를 쓸 때는 SYS_MODBUS_15_FORCE_COILS 펑션 코드를 사용합니다.

최대 레지스터 수: 1

SYS_MODBUS_06_PRESET_REGISTER

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • DT(데이터 레지스터)

Modbus 명령 06 실행: MasterData 변수에 의해 설정된 어드레스 DT14에서 시작하는 Modbus 슬레이브에 1워드를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 21부터 시작하여 Modbus 슬레이브에 1워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 21은 데이터 레지스터 DT21에 해당합니다.

여러 비트 데이터를 쓸 때는 SYS_MODBUS_15_FORCE_COILS 펑션 코드를 사용합니다.

최대 레지스터 수: 1

SYS_MODBUS_15_FORCE_COILS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • Y(출력)

  • R(내부 플래그)

Modbus 명령 15 실행: MasterData 변수에 의해 설정된 어드레스 WY1에서 시작하는 Modbus 슬레이브에 64비트를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 48부터 시작하여 Modbus 슬레이브에 64비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 어드레스 48은 출력 Y30(3*16=48)에 해당합니다.

SYS_MODBUS_16_PRESET_REGISTERS

이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.

연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.

  • DT(데이터 레지스터)

Modbus 명령 16 실행: rCount1 변수에 의해 설정된 어드레스에서 시작하는 Modbus 슬레이브에 데이터를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 100부터 시작하여 Modbus 슬레이브 2에 데이터를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.

연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.

레지스터 최대 번호: 127.

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