슬레이브에 데이터 쓰기 또는 슬레이브에서 데이터 읽기
사용 가능한 펑션 코드(프로그래밍 예 포함)
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
슬레이브에 쓸 데이터에 대한 마스터의 소스 어드레스.
F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.FP_MODBUS_MASTER
다른 F145 또는 F146 명령과 달리 파라미터 FunctionCode*에서 필요한 Modbus 명령을 직접 설정할 수 있습니다.
어느 명령도 활성되지 않으면 F145 또는 F146 명령만 실행될 수 있습니다. 프로그램에서 "F145/F146 not active" 플래그를 평가하여 명령 상태를 확인합니다.
F145 명령은 슬레이브에 보낸 해당 데이터만 요청합니다. 실제 처리는 스캔 종료 시 실행됩니다.
"F145/F146 error" 플래그를 평가하여 전송이 정상적으로 완료되었는지 또는 오류가 발생했는지 확인합니다.
브로드캐스팅 시(SlaveAddress가 0으로 설정) 최대 스캔 타임이 경과된 후에만 전송이 실행되는지 확인합니다.
대상 어드레스가 특수 내부 플래그(R9000에서), 특수 데이터 등록(DT9000/DT90000에서) 또는 파일 레지스터 FL이면 F145 또는 F146 명령을 실행할 수 없습니다.
마스터에서 지원되는 커맨드:
펑션 코드 |
시스템 정수 |
시작 레지스터 |
레지스터 수 |
참조 번호(Modbus 슬레이브에 따름) |
---|---|---|---|---|
01 |
SYS_MODBUS_01_READ_COIL |
0–65535 |
1–2040 |
000001–065536 |
02 |
SYS_MODBUS_02_READ_INPUT |
0–65535 |
1–2040 |
100001–165536 |
03 |
SYS_MODBUS_03_READ_HOLDING_ REGISTER |
0–65535 |
1–127 |
400001–465536 |
04 |
SYS_MODBUS_04_READ_INPUT_ REGISTERS |
0–65535 |
1–127 |
300001–365536 |
5 |
SYS_MODBUS_05_FORCE_COIL |
0–65535 |
1 |
000001–065536 |
6 |
SYS_MODBUS_06_PRESET_ REGISTER |
0–65535 |
1 |
400001–465536 |
15 |
SYS_MODBUS_15_FORCE_COILS |
0–65535 |
2–2040 |
000001–065536 |
16 |
SYS_MODBUS_16_PRESET_ REGISTERS |
0–65535 |
2–127 |
400001–465536 |
Panasonic PLC의 Modbus 사양:
참조 번호 |
Panasonic PLC의 어드레스 영역 |
---|---|
000001부터 |
Y0부터 |
002049부터 |
R0부터 |
100001부터 |
X0부터 |
400001부터 |
DT0부터 |
300001부터 |
WL0부터 |
302001부터 |
LD0부터 |
Panasonic PLC에서 지원하는 참조 번호와 어드레스 영역 범위는 PLC의 유저 설명서를 참조해 주십시오. 참조 번호가 지원 범위를 벗어나면 에러가 반환됩니다.
FP-X0, 멀티 커뮤니케이션 유닛(MCU): 인터넷의 다운로드 센터에서 찾을 수 있는 해당 설명서를 참조해 주십시오.
이 정수를 입력 파라미터 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.