ARDUINO 장치 연결하기 (Modbus Serial 활용)
Arduino 장치를 다양한 통신 방식으로 연결할 수 있지만, 이번에는 Modbus Serial 방식으로 통신하는 샘플을 소개합니다.
1. 아두이노 코딩하기
1) 아두이노 IDE를 활용하여 코딩한다.
* 아두이노 활용 샘플 예시
#include <ModbusRtu.h> uint16_t modbus_table[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; Modbus slave(1,Serial,0); unsigned long previous_time = 0; #define interval 1000 int CDS = A0; int LED = D2; void setup() { pinMode(CDS, INPUT); pinMode(LED, OUTPUT);
Serial.begin(115200); slave.start(); } void loop() { int data = modbus_table[0];
if(data == 0) digitalWrite(LED, LOW); else if(data == 1) digitalWrite(LED, HIGH);
modbus_table[1] = analogRead(A0);
slave.poll(modbus_table,16); } |
2. X-SCADA 화면 구성하기
1) 다양한 이미지(Images)와 텍스트(Text), 레이블(Label) 등을 이용하여 화면을 구성한다.
3. X-SCADA 장치 및 태그 설정하기
1) 장치 탐색기(Device Explorer)에서 마우스 오른쪽 클릭 후 장치 추가(New Device)를 클릭한다.
2) 생성된 장치의 속성(Properties)에서 이름(Name)을 설정한 뒤 마우스 오른쪽 클릭 후 시리얼 연결 추가(New Serial)를 클릭한다.
3) 속성(Preperties) > 일반(General) > 프로토콜(Protocol)에서 "Modbus RTU"를 선택한다.
4) 현재 PC와 아두이노 장치의 설정에 맞게 국번(Station), 포트이름(PortName), 전송 속도(BaudRate) 등을 설정한다.
5) 태그 탐색기(Tag Explorer)에서 아날로그 태그(Analog Tag)와 디지털 태그(Digital Tag)를 생성한 뒤 아래와 같이 설정한다.
- LED (Digital Tag) : 장치(Device) = Modbus , 장치내 주소(DeviceAddress) = 40001
- LUX (Analog Tag) : 장치(Device) = Modbus , 장치내 주소(DeviceAddress) = 40002
- 연결한 장치와 장치내 주소는 아두이노 설정에 따라 달라질 수 있음
4. X-SCADA 동작 및 효과 설정하기
1) Lux의 램프 이미지 더블클릭 후 불투명도 효과(Opacity)를 추가한 뒤 아래와 같이 설정한다.
- 불 켜진 램프와 불 꺼진 램프를 겹치게 배치한 뒤, 불투명도 설정을 통해 빛의 밝기에 따라 시각적인 변화가 보이도록 설계함
2) LED의 램프 이미지 더블클릭 후 출몰 효과(Visible)를 추가한 뒤 아래와 같이 설정한다.
3) Lux의 레이블(Label) 선택 후 속성(Properties)에서 바인딩 태그(Binding Tag)를 설정한다.
4) LED의 레이블(Label) 선택 후 속성(Properties)에서 바인딩 태그(Binding Tag)를 설정한 뒤, 더블클릭 후 아래와 같이 클릭 – 태그값 설정(Click – Tag Value)을 설정한다.
5. 프로젝트 실행하기
1) 프로젝트 저장 후 X-SCADA Viewer로 실행한다.
2) LED의 레이블(Label)을 클릭하여 LED를 껐다 켜본다.
3) 아두이노 실습 키트의 통신 결과 예시 (LED ON/OFF 테스트)