ARDUINO 장치 연결하기 (Modbus Serial 활용)

Protocol

ARDUINO 장치 연결하기 (Modbus Serial 활용)

Arduino 장치를 다양한 통신 방식으로 연결할 수 있지만, 이번에는 Modbus Serial 방식으로 통신하는 샘플을 소개합니다.





1. 아두이노 코딩하기

1) 아두이노 IDE를 활용하여 코딩한다. 

2f0887434fe68b10accb8b856f4faced_1682061575_0549.png

* 아두이노 활용 샘플 예시

#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) 등을 이용하여 화면을 구성한다.

2f0887434fe68b10accb8b856f4faced_1682061613_5014.png
 



3. X-SCADA 장치 및 태그 설정하기

1) 장치 탐색기(Device Explorer)에서 마우스 오른쪽 클릭 후 장치 추가(New Device)를 클릭한다.

2f0887434fe68b10accb8b856f4faced_1682061639_7725.png
 


2) 생성된 장치의 속성(Properties)에서 이름(Name)을 설정한 뒤 마우스 오른쪽 클릭 후 시리얼 연결 추가(New Serial)를 클릭한다.

2f0887434fe68b10accb8b856f4faced_1682061650_3417.png
 


3) 속성(Preperties) > 일반(General) > 프로토콜(Protocol)에서 "Modbus RTU"를 선택한다.

2f0887434fe68b10accb8b856f4faced_1682061662_8111.png
 


4) 현재 PC와 아두이노 장치의 설정에 맞게 국번(Station), 포트이름(PortName), 전송 속도(BaudRate) 등을 설정한다.

2f0887434fe68b10accb8b856f4faced_1682061670_5314.png
 


5) 태그 탐색기(Tag Explorer)에서 아날로그 태그(Analog Tag)와 디지털 태그(Digital Tag)를 생성한 뒤 아래와 같이 설정한다.

- LED (Digital Tag) : 장치(Device) = Modbus , 장치내 주소(DeviceAddress) = 40001

- LUX (Analog Tag) : 장치(Device) = Modbus , 장치내 주소(DeviceAddress) = 40002

- 연결한 장치와 장치내 주소는 아두이노 설정에 따라 달라질 수 있음

2f0887434fe68b10accb8b856f4faced_1682061684_192.png
 



4. X-SCADA 동작 및 효과 설정하기

1) Lux의 램프 이미지 더블클릭 후 불투명도 효과(Opacity)를 추가한 뒤 아래와 같이 설정한다.

- 불 켜진 램프와 불 꺼진 램프를 겹치게 배치한 뒤, 불투명도 설정을 통해 빛의 밝기에 따라 시각적인 변화가 보이도록 설계함

2f0887434fe68b10accb8b856f4faced_1682061702_8527.png
 


2) LED의 램프 이미지 더블클릭 후 출몰 효과(Visible)를 추가한 뒤 아래와 같이 설정한다.

2f0887434fe68b10accb8b856f4faced_1682061712_2219.png
 


3) Lux의 레이블(Label) 선택 후 속성(Properties)에서 바인딩 태그(Binding Tag)를 설정한다.

2f0887434fe68b10accb8b856f4faced_1682061730_0878.png
 


4) LED의 레이블(Label) 선택 후 속성(Properties)에서 바인딩 태그(Binding Tag)를 설정한 뒤, 더블클릭 후 아래와 같이 클릭 – 태그값 설정(Click – Tag Value)을 설정한다.

2f0887434fe68b10accb8b856f4faced_1682061740_9014.png
 



5. 프로젝트 실행하기

1) 프로젝트 저장 후 X-SCADA Viewer로 실행한다.

2f0887434fe68b10accb8b856f4faced_1682061751_22.png
 


2) LED의 레이블(Label)을 클릭하여 LED를 껐다 켜본다.

2f0887434fe68b10accb8b856f4faced_1682061762_8705.png
 


3) 아두이노 실습 키트의 통신 결과 예시 (LED ON/OFF 테스트)

2f0887434fe68b10accb8b856f4faced_1682061786_1603.jpg
 


0 Reply Comment
Title