ComfileHMI와 FA-DUINO 연결은 RS232C 또는 RS485로 연결합니다. 프로토콜은 Simple MODBUS RTU를 이용하여 통신 할 수 있습니다. Simple MODBUS는 MODBUS RTU의 기능들 중 핵심기능들 만을 축약해 놓은 프로토콜입니다. Simple MODBUS 라이브러를 사용하면 보다 쉽게 빠르게 프로토콜을 구현 할 수 있습니다.
Simple modbus 라이브러리 파일을 arduino라이브러리 폴더 \Documents\Arduino\libraries로 옮겨주셔야합니다~!
#include <SimpleModbusRtu_mega2560.h> // 헤더파일을 include uint16_t au16data[16]; // 레지스터 메모리 영역(word) uint8_t au8data[10]; // 코일 메모리 영역(bit) char n; // void setup() { // FA-DUINO port 모드설정 char i; for(i=38; i<52; i++){ pinMode(i, OUTPUT); } // 38 ~ 51번의 포트를 출력 for(i=22; i<38; i++){ pinMode(i, INPUT); } // 22 ~ 37번의 포트를 입력 usart1init(57600); // 모드버스 프로토콜 활성화 및 ch1 보래이트 설정 startSimpleModbus(1,au16data, au8data); // 읽고 쓸 메모리 배열 설정 } void loop() { // port 상태값을 메모리에 읽고 씀. for(n=0; n<14; n++){ digitalWrite(38+n, bitRead(au8data[0], n) ) ;} for(n=0; n<16; n++){ bitWrite( au8data[1],n, digitalRead(n+22) ) ;} au16data[0] = analogRead(A0); au16data[1] = analogRead(A1); }
아래와 같이 FA-DUINO RS232 CH1에 결선합니다. Simple modbus 라이브러리는 RS232 CH1을 지원합니다.
프로젝트 파일입니다.