본문 바로가기

네트워크 & 통신

Modbus 공부

기초 개념정리

PLC란?

'Programmable Logic Controller'의 약자로 복잡한 시퀀스* 제어 시스템을 프로그램으로 간단하게 바꿔서 손쉽게 설계하고 수정할 수 있도록 해주는 장치

= 어떤 장치를 자동으로 움직이도록 하기 위해서 손으로 직접 장치를 만지고 변경하고 하는 게 아니고 컴퓨터에 그 작업을 기록해 놓으면 상황에 따라서 스스로 변경하도록 해주는 녀석

시퀀스란?

설정해놓은 작업을 순서대로 반복하는 작업을 시퀀스라고 하는데 이런 시퀀스 회로를 만들려면 꽤 많은 부품들의 결합이 필요하다.시간 설정을 위한 타이머, 작업 진행 정도를 알 수 있는 카운터, 각종 센서 등... 그리고 그것들이 서로 데이터를 주고받을 수 있도록 복잡하게 연결을 해줘야한다.

 

RS485 통신이란?

참고: https://blog.naver.com/k_dynamic/220920194625

  • 시리얼 통신의 한 종류. 직렬로 데이터 송수신하는 벙식.
  • RS485 통신의 특징
    • 반이중 통신 방식: 송수신을 동시에 할 수 없다
    • 데이터 전송 거리가 길다. 최대 통달 거리 1.2km

분전반이란?

전등, 전열, 동력부하 등 각종 부하에 맞게 전력을 배분하여 주는 장치. 빌딩, 공장 등에 사용된다.

서보란?

서보는 정확하게 서보기구 또는 서보 메카니즘이라고 하며, 자동제어의 한 분야를 말한다. 말의 의미는 JIS에서 [물체의 위치, 방위, 자세를 제어량으로 하여, 목표치의 임의의 변화에 추종하도록 구성된 제어계]로 정의되어 있다

 


 

Modbus 소개

  • PLC들과의 통신에 사용할 목적으로 만들어짐.
  • 온습도 측정하는 센서장비가 모니터링할 서버로 값을 보고하도록 할 수 있음.
  • 센서 장비(Remote Terminal Unit, RTU)에게 질의를 보내면 장비들이 이에 응답하는 형태로 동작함.
  • master/slave 기반 프로토콜이다.
    • 시리얼 통신에서는 Master로 설정된 장비만 slave에게 정보를 요청할 수 있다.
    • 이너넷 통신에서는 네트워크 상의 어떤 노드도 정보를 요청할 수 있다.
    • 요청정보는 읽기와 쓰기 모두 가능하다.
    • 대부분의 경우 master는 하나만 존재한다.
    • 네트워크 상에 연결된 모든 노드들이 요청을 받을 수는 있지만, 요청벙보에 들어있는 목적주소 장비만 이에 응답한다. 목적지 주소가 브로드 캐스트 주소일때에는 예외이다. 목적지 주소를 0으로 설정하면, 수신한 모든 노드에서 요청을 처리하지만, 응답은 보내지 않는다.
    • serial-to-IP 제품들은 master측에서 WiFi나 이동통신등 무선통신을 사용할 수 있도록 지원한다.
  • 모드버스 요청 정보에는 통신 오류를 검출하기 위한 코드를 포함한다.

Modbus 프레임 포맷

프레임 포맷이란? 대충 이렇게 생긴거

헤더 길이 얼마고 데이터 길이 얼마고...

TCP 프레임 포맷

  • 종류
    • Modbus RTU: 시리얼 통신망 사용. 이진정보 사용
    • Modbus Ascii : 시리얼 통신망 사용. Ascii 문자 사용.
    • Modbus TCP: IP 통신망 사용.
  • 프레임 포맷의 Function code와 data부분을 Protocal Data Unit(PDU)라고 부른다.
  • PDU
    • Request PDU
    • Response PDU
    • Exception Response PDU: 요청을 받은 slave에서 해당 메시지를 해석할 수 없거나, 명시된 주소를 찾을 수 없는 등의 오류 발생 시에는 요청의 function code에 0X80을 더한 값을 오류코드로 설정하여 Exception Response로 응답한다.

 

Modbus 시리얼 통신에 사용되는 대표적인 규격

  • RS232: 가까운 거리에 놓인 두 장비를 1:1로 연결하기 위해 사용
  • RS422: RS232에 양방향 통신 기능을 추가한 것
  • RS485: 여러 장비들을 하나의 망으로 묶을 수 있으며, 하나의 master에서 여러 slave들과 통신할 수 있다.

시리얼 전송 모드

  • 아스키 모드
    • 데이터 전송효율이 떨어진다
    • 디버깅 할 때 사람이 데이터를 읽기에는 더 편리하다
  • RTU 모드
    • 이진데이터를 그대로 전송에 이용한다.
  • TCP 기반
    • TCP/UDP 모두 가능
    • IETF에서 502 포트를 할당받았다 ← 뭔 소린지 모르겠다..502번포트만 쓸 수 있는 건가?

 

 

'네트워크 & 통신' 카테고리의 다른 글

라즈베리파이 <-> 안드로이드 블루투스 통신 예제  (1) 2023.09.03
c 소켓 프로그래밍 예제  (0) 2023.07.23
스위치 vs 브릿지  (0) 2023.03.25
Modbus 실습  (0) 2023.02.14