사용자 도구

사이트 도구

English

hmimcuapp:arduino_simplemodbus:index

Simple Modbus library란?

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 library 사용하기

개발자는 Simple Modbus 라이브러리를 사용하여 쉽고 빠르게 프로그램 할 수 있습니다. Simple Modbus 라이브러리를 사용 하시려면 다운로드 받은 압축파일을 해제한 후 폴더 사용자PC의 고정된 위치에 저장해 주셔야 합니다. Simple Modbus라이브러리는 아래의 링크에서 다운로드 받을 수 있습니다.

  • 1. Simple Modbus 다운로드 :
  • - Arduino uno : simple_modbus_uno.zip (통신체널 0 가능)
  • - Arduino Mega2560 / FA-DUINO : simple_modbus_mega2560.zip (통신체널 0, 1, 2 가능)
  • 2. C:\Users\사용자PC_이름\Documents\Arduino\libraries [또는] 내컴퓨터 → 라이브러리 → 문서 → Arduino → libraries
  • 3. libraries폴더에 Simple_Modbus폴더 저장.

  • 4. 라이브러리 폴더를 제대로 저장했다면 아듀이노 스케치(IDE)에서 아래의 화면처럼 라이브러리를 확인할 수 있습니다.

  • 5. 예제프로그램을 선택 하시면 "#include <SimpleModbusRtu.h>" 포함된 기본 프로그램을 사용하실 수 있습니다.

Simple Modbus Function

- #include <SimpleModbusRtu.h>

Simple Modbus를 사용하기 위해서는 헤더파일인 SimpleModbusRtu.h를 반드시 인클루드 해주셔야합니다. SimpleModbusRtu.h에는 두개의 사용자 함수인 SetModbus, StartModbus가 있습니다.

- void SetModbus(u8 Serial_ch, u32 Baud, u8 Addr ,uint16_t *Register, uint8_t *Coil )

SetModbus함수는 ComfileHMI와 모드버트 통신할 수 있도록 도와주는 설정함수 입니다. SetModbus함수 선언시 Simple Modbus 슬레이브로 동작하며 통신및 메모리 설정을 할 수 있습니다.

  • Serial_ch : 통신포트 체널
  • Baud : 보레이트 통신 속도
  • Addr : 모드버스의 슬레이브 어드레스
  • Register : 레지스터(Word) 메모리
  • Coil : 코일(Bit) 메모리

아래의 코드는 Serial1 채널, 통신속도 115200, 스레이브 어드레스 1, 레지스터 메모리 au16data, 코일 메모리 au8data로 설정한 예제입니다. 초기 설정 부분인 void setup() {}에 선언합니다.

 uint16_t au16data[16];
 uint8_t au8data[10];  
 void setup() {
    SetModbus(1, 115200, 1, au16data, au8data );
 }    

- void StartModbus()

StartModbus함수는 ComfileHMI와 모드버스 통신을 진행하는 함수입니다. StartModbus함수는 반드시 폴링으로 사용하셔야 합니다. 측, 반복적으로 호출되는 void loop(){}부분안에 StartModbus함수를 사용해야 합니다.

 void loop() {
     StartModbus();
 }    

이전 페이지로 가기

hmimcuapp/arduino_simplemodbus/index.txt · 마지막으로 수정됨: 2017/10/30 16:37 저자 Comfile Technology