슬레이브에 데이터 쓰기 또는 슬레이브에서 데이터 읽기
사용 가능한 펑션 코드(프로그래밍 예 포함)
SYS_MODBUS_03_READ_HOLDING_REGISTER
SYS_MODBUS_04_READ_INPUT_REGISTERS
SYS_MODBUS_16_PRESET_REGISTERS
이 명령을 사용하여 마스터에서 슬레이브로 데이터를 쓰거나 사용되는 포트의 시스템 레지스터에 정의된 대로 Modbus RTU 프로토콜을 사용하는 통신 포트를 통해 슬레이브에서 데이터를 읽습니다. 마스터와 슬레이브에 동일한 프로토콜을 설정해야 합니다.
입력
PLC 기종에 따라 통신 포트를 지정합니다.
COM 포트(예: SYS_COM0_PORT)
이더넷 포트(예: SYS_ETHERNET_USER_CONNECTION_1)
MCU/SCU(예: COM01의 16#xx01 (xx = 슬롯 번호))
슬레이브의 스테이션 번호 (0–255)
SYS_ETHERNET_USER_CONNECTION_xx가 Port 입력에 적용된 경우, 1로 설정
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
시작 어드레스(0–65535) 어드레스 유형은 FunctionCode*에서 지정한 명령에 따라 다릅니다.
전송 비트 수 또는 워드 수입니다.
펑션 코드 01, 02의 경우 1–2040
펑션 코드 15의 경우 2–2040
펑션 코드 03, 04의 경우 1–127
펑션 코드 16의 경우 2–127
슬레이브에 쓸 데이터에 대한 마스터의 소스 어드레스.
출력
0: 정상 완료
1: 통신 포트는 마스터 통신에 사용됨
2: 통신 포트는 슬레이브 통신에 사용됨
3: 동시에 사용할 수 있는 마스터 통신 명령의 수를 초과함
4: 전송 타임아웃
5: 응답 수신 타임아웃
6: 데이터 에러 발생
통신모드 |
SCU 또는 ET-LAN을 사용하는 경우 |
---|---|
MODBUS |
1-247 |
Modbus를 통한 연결의 경우 "1"을 지정합니다. 대상은 IP 주소를 통해 결정됩니다.
통신 모드 |
어드레스 범위 |
---|---|
MODBUS |
0~65535(16#FFFF) |
전송 방법 |
전송 데이터 수 |
사용할 명령 |
---|---|---|
워드 전송 |
1~127워드 |
|
비트 전송 |
1~2040비트 |
|
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 명령을 동시에 실행할 수 있습니다.
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 어드레스에 의해 결정됩니다.
전송 중: 마스터 통신 전송 플래그가 TRUE입니다.
전송 완료: 마스터 통신 전송 플래그가 FALSE입니다.
정상 완료: FALSE
비정상적인 완료: TRUE
I/O 번호 |
이름 |
설명 |
X90–X9F |
마스터 통신 삭제-전송 플래그 |
MEWTOCOL-COM, MEWTOCOL7 또는 MODBUS-RTU 가 통신 모드로 설정되어 있고 PLC가 RUN 모드에 있으면 TRUE로 바뀝니다. |
Y90–Y9F |
마스터 통신 전송 플래그 |
SEND 및 RECV 명령이 데이터를 전송하는 동안 TRUE로 바뀝니다. 전송이 완료되면 FALSE로 바뀝니다. |
Y70–Y7F |
마스터 통신 전송 완료 플래그 |
프로그램이 제어하는 통신 또는 마스터 통신이 정상적으로 완료된 경우 TRUE로 바뀌고 전송이 비정상적으로 완료된 경우에는 FALSE로 바뀝니다. |
접점은 연산 상태를 판독하는 데 사용됩니다. 사용자 프로그램으로 쓰지 마십시오.
이 정수를 입력 파라미터 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)에 해당합니다.
이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.
연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.
Modbus 명령 02 실행: StartRegister 변수에 의해 설정된 시작 레지스터 66에서 시작하는 Modbus 슬레이브에서 1비트를 읽습니다. 그런 다음 이 명령은 변수bBool2에 의해 설정된 어드레스부터 시작하여 마스터에 1비트를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.
연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 66은 입력 X42(4*16+2=66)에 해당합니다.
이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.
연결된 슬레이브가 시스템 레지스터를 통해 Modbus RTU 슬레이브로 구성된 Panasonic PLC인 특수한 경우에는 하나 이상의 비트가 다음에서 읽힙니다.
Modbus 명령 03 실행: StartRegister 변수에 의해 설정된 시작 레지스터 100에서 시작하는 Modbus 슬레이브에서 2워드를 읽습니다. 그런 다음 이 명령은 변수rCount2에 의해 설정된 어드레스부터 시작하여 Modbus 마스터 2에 2워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.
연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.
레지스터 최대 번호: 127.
이 정수를 입력 파라미터 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.
이 정수를 입력 파라미터 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
이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.
연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.
Modbus 명령 06 실행: MasterData 변수에 의해 설정된 어드레스 DT14에서 시작하는 Modbus 슬레이브에 1워드를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 21부터 시작하여 Modbus 슬레이브에 1워드를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.
연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 21은 데이터 레지스터 DT21에 해당합니다.
여러 비트 데이터를 쓸 때는 SYS_MODBUS_15_FORCE_COILS 펑션 코드를 사용합니다.
최대 레지스터 수: 1
이 정수를 입력 파라미터 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)에 해당합니다.
이 정수를 입력 파라미터 FunctionCode*에 적용하면 해당 Modbus 명령이 실행됩니다.
연결된 슬레이브가 Modbus RTU 모드의 Panasonic PLC의 경우 하나 이상의 비트가 다음에 기록됩니다.
Modbus 명령 16 실행: rCount1 변수에 의해 설정된 어드레스에서 시작하는 Modbus 슬레이브에 데이터를 씁니다. 그런 다음 이 명령은 변수StartRegister에 의해 설정된 시작 레지스터 100부터 시작하여 Modbus 슬레이브 2에 데이터를 저장합니다. 슬레이브 주소는 장치의 Modbus 사양에 따라 장치별 어드레스로 변환됩니다.
연결된 슬레이브가 Panasonic PLC인 경우 시작 레지스터 100은 데이터 레지스터 DDT100에 해당합니다.
레지스터 최대 번호: 127.