====== 아두이노와 HMI 연결 ====== Simple MODBUS 라이브러리를 이용해서 아두이노 우노와 ComfileHMI 를 연결해보았습니다. {{ :cublocapp:an61011:dsc044941.jpg?nolink |}} {{ :cublocapp:an61011:arduinohmi.png?nolink |}} 소스는 보시는 것처럼 간단합니다. 이 파일에 필요한 심플모드버스 라이브러리가 들어있습니다. /** * SimpleModbusRtu_example * http://www.comfile.co.kr */ #include 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로 그 값이 전달됩니다. 쌍방간의 통신을 위한 링크채널이라고 보시면 됩니다. [[http://www.comfile.co.kr/download/hmi/HMIuno.zip|아두이노 소스 파일]] [[http://www.comfile.co.kr/download/hmi/ComfileHMI-ARDUINO.zip|ComfileHMI 프로젝트 파일]]
[[cublocapp:index|이전 단계로]]