사용자 도구

사이트 도구

English

cublocapp:an61011:index

아두이노와 HMI 연결

Simple MODBUS 라이브러리를 이용해서 아두이노 우노와 ComfileHMI 를 연결해보았습니다.

소스는 보시는 것처럼 간단합니다. <SimpleModbusRtu_uno.h> 이 파일에 필요한 심플모드버스 라이브러리가 들어있습니다.

/**
 *  SimpleModbusRtu_example
 *  http://www.comfile.co.kr
 */
 
#include <SimpleModbusRtu_uno.h>
uint16_t au16data[16];
uint8_t au8data[10];
char n;
int incomingByte = 0; 
 
void setup() {
  pinMode(2, INPUT);
  pinMode(3, INPUT);
 
  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT); 
 
  usart0init(57600); // 9600, 19200, 38400, 57600 , Serial channel0
  startSimpleModbus(1,au16data, au8data); // slave address, register, coil
 
}
 
void loop() {
  digitalWrite(8, bitRead(au8data[0],0) );
  digitalWrite(9, bitRead(au8data[0],1) );
 
  bitWrite( au8data[1],0, digitalRead(2) );
  bitWrite( au8data[1],1, digitalRead(3) );
  au16data[0] = analogRead(A0);
  au16data[1] = analogRead(A1);
}

아래 2개 명령으로 USART를 Open하고 Simple Modbus를 시작합니다.

아두이노에서는 115200 보레이트를 사용하실 수 없습니다.

usart0init(57600); // 9600, 19200, 38400, 57600 , Serial channel0
startSimpleModbus(1,au16data, au8data); // slave address, register, coil

이후, HMI는 알아서 아두이노와 서로 통신합니다. 결과는

uint16_t au16data[16]; 
uint8_t au8data[10];

이 두개의 배열에 저장됩니다. 또한 여러분이 이 배열에 어떤 값을 써넣으면 HMI로 그 값이 전달됩니다. 쌍방간의 통신을 위한 링크채널이라고 보시면 됩니다.

아두이노 소스 파일

ComfileHMI 프로젝트 파일

이전 단계로

cublocapp/an61011/index.txt · 마지막으로 수정됨: 2017/11/02 16:46 저자 Comfile Technology