MODBUS / RTU Master
...
프로그램 설정
항 목 | 내 용 |
베이스 | MODBUS Master특수프로그램을 사용할 모듈이 장착된 베이스를 선택합니다. |
슬롯 | MODBUS Master특수프로그램을 사용할 모듈이 장착된 슬롯을 선택합니다. |
채널 | MODBUS Master특수프로그램을 사용할 모듈의 채널 번호를 선택합니다. |
통신결과 | 통신블록에 등록된 통신프레임의 송/수신 결과를 통신결과 영역에 나타냅니다. 일반적으로 MODBUS 프로그램 설정 창에 표시되어있는 통신결과는 저동전송 허용 모드에서만 사용이 가능 합니다. SEND명령어를 사용할 때 사용하는 통신결과와 비교하면 더 쉽게 이해 할 수 있습니다. |
TimeOut | 명령에 대한 응답 프레임을 받을 때 까지 기다리는 시간을 나타냅니다. (CICON V5.03이상) |
예) 통신결과 저장 디바이스어드레스를 M0000으로 설정할 경우
통신결과 | 프레임 번호 | 통신결과 플래그 | 통신결과 플래그 동작 | ||
성공 | 실패 | 성공 | 실패 | ||
M0000 | 0 | M0000 | M0080 | 1 Scan On | 상시 On. 통신성공 시 플래그 Off |
11 | M000B | M008B | |||
127 | M007F | M015F |
항 목 | 내 용 |
상대국번 | 통신하고자 하는 MODBUS RTU/Slave 기기의 국번을 선택합니다. RS422/485통신으로 여러 대의 Slave기기를 연결한 경우에는 반드시 Slave 기기간의 국번이 달라야 합니다. |
Function | Slave 기기의 데이터를 읽고 쓰는 경우 기능에 맞는 Function을 선택하여야 합니다. 명령어에 대한 자세한 내용은 명령어 항목을 참고 바랍니다. |
Point Number | Slave 기기의 어드레스 테이블을 참조하여 Slave 기기에 읽고/쓰기 할 영역을 설정합니다. Slave기기의 매뉴얼에 있는 어드레스 테이블을 참고 바랍니다. |
Start Address | MODBUS RTU프로토콜에 준하여 실제로 송/수신 되는 프레임에 나타나는 어드레스는 Point Number-1에 해당됩니다. Point Number-1의 어드레스가 자동으로 설정됨으로 별도로 설정할 필요가 없습니다. |
데이터 종류 | Slave 기기로 송/수신 하는 데이터의 종류를 선택합니다. 단, 아날로그 데이터((Function 3,4,6,16) 취급 시에만 유효합니다. |
Scale factor | 기능 지원 안됨 |
Data 개수 | Slave 기기의 데이터를 읽거나 쓰고자 하는 데이터의 개수를 설정합니다. |
Device | 데이터 송수신시 읽어오거나 저장할 디바이스 어드레스를 선택합니다. |
자동 전송 금지 | MODBUS Master특수프로그램에 등록된 통신블록은 순차적으로 계속 통신합니다. 이러한 기능을 사용하지 않을 경우 자동전송금지에 체크를 합니다. 단, 자동 전송 금지를 선택한 경우에는 PLC 스캔프로그램 상에서 SEND명령을 사용해야만 통신블록이 송신됩니다. SEND명령에 대한 자세한 내용은 Serial 프로토콜을 참고 바랍니다. |
"MODBUS/RTU MASTER 프로그램"을 작성하여 운용합니다.
반드시 "로컬” 베이스 – "슬롯 0" 설정을 합니다. PLC-S에서 ‘슬롯 0’는 CPU 모듈을 의미합니다. (증설 통신모듈에서 운용될 특수프로그램은 ‘슬롯 1’부터 지정합니다.)
명령코드
function | 기 능 | 내 용 |
01 Read Coil Status | 읽기/쓰기 가능 영역 bit 단위로 값 읽어오기 | 읽기/쓰기 가능 bit영역을 설정한 주소에서부터 설정한 크기만큼 디바이스영역에 가져옵니다. |
02 Read input Status | 읽기 가능 영역 bit 단위로 값 읽어오기 | 읽기 가능 bit영역을 설정한 주소에서부터 설정한 크기만큼 디바이스영역에 가져옵니다. |
03 Read Holding Register | 읽기/쓰기 가능 영역 word 단위로 값 읽어오기 | 읽기/쓰기 가능 word영역을 설정한 주소에서부터 설정한 크기만큼 디바이스영역에 가져옵니다. |
04 Read input Register | 읽기 가능 영역 word 단위로 값 읽어오기 | 읽기 가능 word영역을 설정한 주소에서부터 설정한 크기만큼 디바이스영역에 가져옵니다. |
05 Force Single Coil | 읽기/쓰기 가능 영역 bit 단위로 값 쓰기 | 읽기/쓰기 가능 bit영역을 설정한 주소에서부터 설정한 크기만큼 디바이스 영역 값을 씁니다. |
06 Preset Single Register | 읽기/쓰기 가능 영역 word 단위로 값 쓰기 | 읽기/쓰기 가능 word영역을 설정한 주소에서부터 설정한 크기만큼 디바이스 영역 값을 씁니다. |
16 Preset Multiple Register | 읽기/쓰기 가능 영역 여러 개의 워드데이터를 한 번의 프레임으로 쓰기 | 읽기/쓰기 가능 word영역을 설정한 주소에서부터 설정한 크기만큼 디바이스 영역 값을 씁니다. 1워드 이상의 Float 데이터 또는 Double Word 데이터를 쓰고자 할 때 사용 |
데이터 종류
데이터 종류 | 지정된 데이터(Byte) | 연산 결과 데이터(Byte) |
INT16(High-Order byte first) | 12 34 | 12 34 |
INT16(Low-Order byte first) | 12 34 | 34 12 |
INT32(High-Order byte first) | 12 34 56 78 | 56 78 12 34 |
INT32(Low-Order byte first) | 12 34 56 78 | 34 12 78 56 |
Float(High-Order byte first) | 12 34 56 78 | 56 78 12 34 |
Float(Low-Order byte first) | 12 34 56 78 | 34 12 78 56 |
데이터의 종류가 INT32 또는 Float인 경우, 아래의 데이터 개수는 Word수 이므로 반드시 x2로 설정해야 합니다.
데이터 종류가 Float인 경우, INT형으로 데이터가 수신됩니다.
데이터 개수
명령어(Function) | Data 개수 |
1 - Read Coil Status 2 - Read Input Status | Bit 수 |
3 – Read Holding Registers 4 – Read Input Registers | Word 수 |
5 – Force Single Coil | 의미 없음.(1Bit 쓰기) |
6 – Preset Single Registers | 의미 없음.(2Byte 쓰기) |
16 - Preset Multiple Registers | Word 수 |
디바이스
기능 | 디바이스 | 내 용 |
Read | D00000 | Slave 기기로부터 수신된 데이터가 저장되는 어드레스 |
Write | D00010 | Slave 기기로 송신 할 데이터가 저장되어 있는 어드레스 |