Simple Modbus란 범용적으로 많이 사용하고 있는 ModbusRTU 프로토콜을 간단하게 만든 프로토콜 입니다. Simple Modbus는 표준 ModbusRTU의 평션코드중 1, 2, 3, 4, 5, 6, 15, 16을 사용할 수 있고, 메모리 저장공간은 16비트(Register), 1비트(Coil)를 사용 합니다.
표준 ModbusRTU은 16비트(Holding Register, Input Register), 1비트(Coil Status 와 Input Status)로 각각 나누어져 있지만 Simple Modbus는 16비트(Register), 1비트(Coil)로 되어 있습니다.
개발자는 Simple Modbus 라이브러리를 사용하여 쉽고 빠르게 프로그램 할 수 있습니다. Simple Modbus 라이브러리를 사용 하시려면 다운로드 받은 압축파일을 해제한 후 폴더 사용자PC의 고정된 위치에 저장해 주셔야 합니다. Simple Modbus라이브러리는 아래의 링크에서 다운로드 받을 수 있습니다.
Simple Modbus를 사용하기 위해서는 헤더파일인 SimpleModbusRtu.h를 반드시 인클루드 해주셔야합니다. SimpleModbusRtu.h에는 두개의 사용자 함수인 SetModbus, StartModbus가 있습니다.
SetModbus함수는 ComfileHMI와 모드버트 통신할 수 있도록 도와주는 설정함수 입니다. SetModbus함수 선언시 Simple Modbus 슬레이브로 동작하며 통신및 메모리 설정을 할 수 있습니다.
아래의 코드는 Serial1 채널, 통신속도 115200, 스레이브 어드레스 1, 레지스터 메모리 au16data, 코일 메모리 au8data로 설정한 예제입니다. 초기 설정 부분인 void setup() {}에 선언합니다.
uint16_t au16data[16]; uint8_t au8data[10]; void setup() { SetModbus(1, 115200, 1, au16data, au8data ); }
StartModbus함수는 ComfileHMI와 모드버스 통신을 진행하는 함수입니다. StartModbus함수는 반드시 폴링으로 사용하셔야 합니다. 측, 반복적으로 호출되는 void loop(){}부분안에 StartModbus함수를 사용해야 합니다.
void loop() { StartModbus(); }