728x90
반응형

1. IP 설정

MIB Browser를 통해 관리할 장치의 IP 주소를 설정합니다. 이 작업은 SNMP 에이전트와 통신하기 위해 필수적이에요.

  • 장치 추가: 장치의 IP 주소를 입력해 MIB Browser에 추가합니다.
  • SNMP 버전 선택: 사용할 SNMP 버전(v1, v2c, v3)을 선택합니다.
  • 커뮤니티 스트링 설정: SNMP v1/v2c의 경우, 읽기/쓰기 커뮤니티 스트링을 설정합니다.

2. Advanced 설정

Advanced 설정에서는 세부적인 SNMP 설정을 조정할 수 있어요.

  • 타임아웃 및 재시도: 요청의 타임아웃 시간과 재시도 횟수를 설정합니다.
  • 포트 번호: 기본 SNMP 포트 번호(161)을 사용할지, 다른 포트를 사용할지를 설정합니다.

3. OID와 Operations 사용

OID(Object Identifier)는 관리할 특정 항목을 식별하는 고유한 숫자 시퀀스입니다.

  • OID 탐색: MIB Browser를 사용해 관리할 장치의 MIB 트리에서 특정 OID를 찾아냅니다.
  • GET 요청: 특정 OID 값을 조회하려면 GET 요청을 보냅니다. 예: GET sysDescr.0
  • SET 요청: 특정 OID 값을 변경하려면 SET 요청을 보냅니다. 예: SET sysLocation.0 = "Server Room"
  • GETNEXT 요청: 다음 OID 값을 조회하려면 GETNEXT 요청을 보냅니다. 예: GETNEXT sysDescr

서버와 클라이언트 간의 SNMP 통신

  • 서버(SNMP Manager):
    • 요청 전송: SNMP Manager가 장치(SNMP 에이전트)에 GET/SET/GETNEXT/GETBULK 등의 요청을 전송합니다.
    • 트랩 수신: SNMP 에이전트가 이벤트를 트랩으로 전송하면 이를 수신합니다.
  • 클라이언트(SNMP Agent):
    • 요청 처리: SNMP 에이전트가 Manager의 요청을 수신하고, 해당 OID의 값을 반환하거나 변경합니다.
    • 트랩 전송: 특정 이벤트가 발생하면 트랩을 SNMP Manager에 전송합니다.

 

MIB 브라우저(MIB Browser): SNMP(Simple Network Management Protocol)을 사용하여 네트워크 장치의 상태를 모니터링하고 관리하는 데 도움을 주는 도구

728x90
반응형
728x90
반응형

SNMP Trap

Trap은 SNMP 에이전트가 관리 스테이션에 알림을 보내는 방식입니다. 이는 비동기식 이벤트로, 특정 이벤트나 임계값이 발생했을 때 에이전트가 자발적으로 전송합니다.

  • 예시: 서버의 CPU 사용률이 90%를 초과했을 때 트랩을 보내 경고.
  • 장점: 실시간 알림이 가능해 신속한 대응이 가능.
  • 단점: 트랩을 설정하는 데 추가적인 설정이 필요하고, 네트워크 트래픽이 증가할 수 있음.

SNMP Polling

Polling은 SNMP 관리자가 에이전트에 주기적으로 상태 정보를 요청하는 방식입니다. 관리자가 특정 OID(Object Identifier)에 대한 정보를 주기적으로 조회합니다.

  • 예시: 5분 간격으로 서버의 CPU 사용률을 조회.
  • 장점: 주기적으로 상태를 확인할 수 있어 지속적인 모니터링 가능.
  • 단점: 주기적인 요청으로 인해 네트워크 트래픽이 증가할 수 있음.

비교

  • Trap: 에이전트에서 주도, 특정 이벤트 발생 시 전송, 실시간 모니터링에 유리.
  • Polling: 관리 스테이션에서 주도, 주기적 상태 확인, 지속적인 모니터링에 유리.
728x90
반응형
728x90
반응형

SNMP(Simple Network Management Protocol)에 대해 쉽게 설명해드리겠습니다.

1. SNMP의 개념
- 쉽게 말해서 네트워크 장비들의 "건강 상태"를 확인하고 관리하는 통신 방식입니다.
- 마치 병원에서 의사가 환자의 체온, 혈압, 심박수 등을 체크하듯이, SNMP는 네트워크 장비들의 상태를 모니터링합니다.

2. 비슷한 프로토콜들과 비교
- MODBUS: 주로 산업용 장비들의 제어와 모니터링에 사용
- MQTT: IoT 기기들의 데이터 전송에 특화
- HTTP: 웹 통신에 사용
→ SNMP는 이들 중에서도 특별히 네트워크 관리에 특화되어 있습니다.

3. 사용 시기와 용도
예시 상황:
```
회사에 100대의 컴퓨터, 10대의 프린터, 5대의 네트워크 스위치가 있다고 가정해봅시다.
- 어떤 컴퓨터의 CPU 사용량이 비정상적으로 높은지
- 프린터의 잉크가 부족한지
- 네트워크 스위치의 트래픽이 얼마나 되는지
이런 정보들을 한 곳에서 모두 모니터링하고 싶을 때 SNMP를 사용합니다.
```

4. 통신 방식
- SNMP는 이더넷(TCP/IP) 기반의 통신입니다.
- 시리얼 통신이 아닌, 네트워크를 통해 데이터를 주고받습니다.
- UDP 포트 161, 162번을 주로 사용합니다.

5. SNMP를 주로 사용하는 장비들
- 네트워크 스위치, 라우터
- 서버, UPS(무정전전원장치)
- 네트워크 프린터
- 네트워크 카메라
- 온습도 센서(네트워크 타입)

6. SNMP의 작동 방식
```
[관리자(매니저)] <----> [관리대상(에이전트)]
예시:
관리자: "너의 CPU 온도가 어떻게 되니?" (GET 요청)
에이전트: "현재 65도입니다." (Response)
에이전트: "CPU 온도가 90도를 넘었어요!" (TRAP 메시지)
```

7. 실제 사용 예시
```
회사 전산실 상황:
- 서버실 온도가 갑자기 28도로 올라감
- SNMP를 통해 모니터링 중이던 시스템이 경고 알림을 보냄
- 관리자가 즉시 확인하여 에어컨 고장을 발견
- 신속한 대응으로 서버 장애 예방
```

8. SNMP의 장점
- 거의 모든 네트워크 장비가 지원
- 설정이 비교적 간단함
- 통합 관리가 가능
- 문제 발생 시 빠른 대응 가능

9. SNMP vs MODBUS
```
SNMP
- 주로 네트워크 장비 관리
- 이더넷 통신
- 모니터링에 특화

MODBUS
- 주로 산업용 장비 제어
- 시리얼/이더넷 통신 모두 가능
- 제어와 모니터링 모두 가능
```

이해하기 쉽게 비유하자면:
- SNMP는 마치 병원의 환자 모니터링 시스템과 같습니다.
- 여러 환자(장비)의 상태를 한 눈에 파악할 수 있고
- 문제가 생기면 즉시 알람이 울리며
- 의사(관리자)가 빠르게 대응할 수 있습니다.

728x90
반응형

'일기 > 개발일기' 카테고리의 다른 글

MIB Browser를 통한 SNMP 통신  (1) 2024.10.25
SNMP Trap과 Polling  (1) 2024.10.25
[241022] Modbus RTU vs Modbus TCP/IP  (1) 2024.10.22
[241021] FMS와 스위치  (1) 2024.10.21
[241016] Modbus RTU 통신 프로토콜 - 해석방법  (1) 2024.10.16
728x90
반응형

 

Modbus RTU 대 Modbus TCP/IP

Modbus RTU와 Modbus TCP/IP의 본질은 Modbus 프로토콜이며, 모두 Modbus 레지스터 주소로 데이터를 교환합니다. 하지만 그 둘의 차이점은 무엇일까요? 오늘은 다음과 같은 측면에서 논의해 보겠습니다.

 

1. 개념

 

Modbus 는 표준 산업용 제어 데이터 교환 프로토콜로, RTU, ASCII 및 TCP/IP에서 프로토콜 데이터의 상호 전송에 사용할 수 있습니다. RTU (Remote Terminal Unit)는 RS-485와 같은 직렬 통신을 통해 바이너리 형태로 데이터를 직접 전송하여 높은 효율성과 낮은 오버헤드를 제공합니다. ASCII 모드는 각 데이터 바이트를 두 개의 ASCII 문자로 변환하여 사람이 읽기 쉽도록 하지만 효율성이 떨어집니다. 반면 Modbus TCP는 TCP/IP 네트워크를 통해 전송하기 위해 Modbus 프로토콜 데이터를 TCP 패킷에 포함합니다.

 

2. 통신 모드

 

이더넷과 해당 통신 모드는 Modbus TCP입니다. 유선 RS-232, RS-422, RS-485, 광섬유, 무선 등 다양한 매체를 활용할 수 있는 비동기 직렬 전송은 Modbus RTU 또는 Modbus ASCII에 해당합니다. Modicon의 독점 시스템에서 사용되는 고속 토큰 전달 네트워크는 Modbus PLUS에 해당합니다.

 

3. 프로토콜 캡슐화

 

Modbus RTU 프로토콜과 비교했을 때, Modbus TCP 프로토콜은 RTU 프로토콜에 MBAP (Modbus Application Protocol) 헤더를 추가합니다. TCP는 신뢰할 수 있는 연결 서비스를 기반으로 하기 때문에 RTU에서 오류 감지를 위해 사용되는 CRC 검사 코드는 Modbus TCP에서 더 이상 필요하지 않습니다. 따라서 Modbus TCP에는 CRC 검사 코드가 포함되지 않습니다.

 

이 차이점을 설명하는 일반적인 방법은 Modbus TCP가 기본적으로 Modbus RTU 프로토콜이며, 앞에 MBAP 헤더가 추가되어 있고 끝부분에서 두 개의 CRC 검사 코드 바이트가 제거되었다는 것입니다 .

 

4. 커뮤니케이션에서의 역할

 

Modbus RTU 프로토콜은 RS-232 및 RS-485와 같은 직렬 통신 채널을 통해 컨트롤러 간 및 컨트롤러와 다른 장치 간의 통신을 용이하게 합니다. 단거리에서 중거리에 걸쳐 안정적이고 효율적인 통신이 필요한 산업 환경에서 널리 사용됩니다.

 

반면, Modbus TCP 프로토콜은 이더넷 네트워크를 통한 통신에 사용됩니다. Modbus 프로토콜 데이터를 TCP/IP 패킷 내에 캡슐화하여 장치가 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)를 통해 통신할 수 있도록 합니다. Modbus TCP는 애플리케이션 계층에서 작동하여 TCP/IP 스택의 안정적인 전송 기능을 활용 합니다 .

 

5. 전송

 

Modbus RTU 프로토콜 의 적용은 전송 거리가 짧고 속도가 느리기 때문에 제한적입니다. 일반적으로 Modbus RTU는 통신 거리가 수백 미터를 넘지 않고 속도 요구 사항이 적당하며 일반적인 보드 속도가 9600~115200bps인 환경에서 사용됩니다. 이러한 제한에도 불구하고 Modbus RTU는 산업용 제어 시스템에서 단순성, 신뢰성 및 비용 효율성으로 인해 여전히 인기가 있습니다.

 

반면, Modbus TCP 프로토콜은 긴 전송 거리와 높은 전송 속도에 대한 기능 때문에 널리 사용됩니다. 이더넷 및 TCP/IP 프로토콜을 활용하는 Modbus TCP는 라우터와 스위치를 사용할 때 효과적으로 무제한으로 훨씬 더 먼 거리에서 데이터를 전송할 수 있으며, 종종 초당 수백 메가비트(Mbps)에 도달하는 훨씬 더 빠른 속도로 데이터를 전송할 수 있습니다. 이러한 장점으로 인해 Modbus TCP는 고대역폭과 광범위한 통신 네트워크가 필요한 애플리케이션에 적합합니다.

 

6. 응용 프로그램

 

Modbus RTU 프로토콜은 주로 전기 자동화 및 프로세스 제어에 사용되며 일반적으로 RS-232 또는 RS-485 통신 인터페이스를 채택합니다. 이러한 인터페이스는 산업 환경에서 널리 사용되어 신뢰할 수 있는 단거리 통신을 제공합니다.

 

Modbus TCP 프로토콜은 주로 인터넷이나 인트라넷에서 사용됩니다. 이더넷과 TCP/IP 네트워크를 활용하여 로컬 에어리어 네트워크(LAN) 또는 광역 네트워크(WAN)를 통한 장치 간 통신을 용이하게 하므로 고대역폭과 장거리 통신이 필요한 애플리케이션에 적합합니다.

 

참고하기 좋은 문서

https://www.wevolver.com/article/modbus-rtu-vs-tcp

 

Modbus RTU vs TCP: A Comprehensive Comparison of Industrial Protocols

Modbus protocols are essential components in the realm of industrial automation and control systems. Designed in 1979 by Modicon (now Schneider Electric), Modbus was developed as a way to enable communication between Programmable Logic Controllers (PLCs) a

www.wevolver.com

 

728x90
반응형

'일기 > 개발일기' 카테고리의 다른 글

SNMP Trap과 Polling  (1) 2024.10.25
SNMP 개념과 사용시기 통신 방식  (0) 2024.10.24
[241021] FMS와 스위치  (1) 2024.10.21
[241016] Modbus RTU 통신 프로토콜 - 해석방법  (1) 2024.10.16
[241015] 모드버스 RTU와 TCP  (0) 2024.10.15
728x90
반응형

FMS (Client) ↔ 스위치(Server)

  1. FMS는 지금까지 메뉴얼을 보고 설치했으니, 리눅스만 실행하면 자동으로 FMS가 실행됨
  2. UR-2000 스위치을 메뉴얼 보고 공부함. 모드버스 RTU와 모드버스 TCP 프로토콜 공부.
    1. 다른 노트북으로 LAN을 연결해서 IP세팅함
    2. 메인 노트북으로 WAN 연결하여 사용
  3. 온습도계 Device ID와 기타설정을 한 후, 데이터 케이블로 UR-2000과 연결
    1. RS486 MODBUS RTU 통신
    2. DTools를 통해 RTU와 TCP 패킷의 구조를 공부함
  4. FMS서버에서 설비추가를 통해 IP와 Port, Device ID를 설정하면 데이터 통신 시작
    1. 온습도계 2개 추가 연결
    2. DI 및 TCP통신하는 도어센서와 연기센서 추가 연결

 

Modbus RTU와 TCP 공부하는데 많은 도움이 된 게시물

https://caniro.tistory.com/5

 

Modbus Protocol

Modbus Protocol Modicon이라는 회사에서 만든 직렬 통신 프로토콜이다. 공장 자동화에 사용되는 PLC(Programmable Logic Controller)의 통신을 위해 만들어졌다. 용어 프로토콜 사람이 소통하려면 소통하고자

caniro.tistory.com

 

728x90
반응형
728x90
반응형
Req:RTU Equip[(EHT-RC)] Send 8 bytes[01 03 00 01 00 02 95 CB]
Res:RTU Equip[(EHT-RC)] Recv(1.3) 9 bytes[01 03 04 00 FD 01 D5 AB CC]

 

Req에서 01은 디바이스 ID (또는 Slave ID) , 03은 명령(읽기), 00 01은 시작 레지스터 주소(1:온도, 2:습도) , 00 02 개수

Res에서 01은 디바이스 ID, 03은 명령, 04는 뒤에 가져온 바이트 수(4바이트), 00FD 온도, 01 D5 습도 (나머진 CRC)

 

00 FD 01 D5는 총 4바이트로 봅니다. 응답 메시지에서 04는 뒤에 오는 데이터의 바이트 수를 의미합니다.

 

한 개의 16진수 값(예: 00)은 4비트입니다.

따라서 두 자리의 16진수 값(예: 00 또는 FF)은 8비트이며, 이는 1바이트(0~255)에 해당합니다.

따라서 00과 같은 값은 1바이트에 해당하며, 00 FD 01 D5는 총 4바이트가 됩니다.

1바이트는 8비트이고, 32비트는 4바이트입니다.

728x90
반응형

'일기 > 개발일기' 카테고리의 다른 글

[241022] Modbus RTU vs Modbus TCP/IP  (1) 2024.10.22
[241021] FMS와 스위치  (1) 2024.10.21
[241015] 모드버스 RTU와 TCP  (0) 2024.10.15
[241014] RS-485 Modbus RTU 통신  (1) 2024.10.14
[241008] Next.js와 nextAuth 자동화 기능  (1) 2024.10.08
728x90
반응형

RS486 Modbus RTU

  • RS485: RS485는 Recommended Standard 485의 약자로, 산업용 통신 표준입니다. 이 표준은 다중 드롭 네트워크에서 최대 32개의 장치가 하나의 버스에서 통신할 수 있도록 합니다. (N:N 통신)
  • Modbus: Modbus는 산업용 전자 장치 간의 통신을 위한 프로토콜입니다. Modbus는 마스터-슬레이브 구조를 사용하며, 데이터 전송을 위해 다양한 물리적 매체(RS485, RS232, TCP/IP 등)를 지원합니다
  • RTU (Remote Terminal Unit): RTU는 Modbus 프로토콜의 전송 모드 중 하나로, Remote Terminal Unit의 약자입니다. RTU 모드는 이진수 형식으로 데이터를 전송하며, 주로 RS485와 같은 직렬 통신에서 사용.
  • TCP/IP (Transmission Control Protocol/Internet Protocol): TCP/IP는 인터넷과 같은 네트워크에서 데이터를 전송하기 위한 프로토콜 스택입니다. Modbus TCP/IP는 이 프로토콜 스택을 사용하여 이더넷 네트워크를 통해 데이터를 전송합니다.

RTU와 TCP/IP의 차이점

  • 물리적 계층
    • RTU는 RS485 또는 RS232와 같은 직렬 통신
    • TCP/IP는 이더넷 네트워크
  • 데이터 전송 형식
    • RTU는 데이터를 이진 형식으로 전송
    • TCP/IP는 데이터를 ASCII 형식으로 인코딩하여 전송
  • 속도와 유연성
    • RTU는 구현이 더 간단하고 비용이 적음
    • TCP/IP는 기존의 이더넷 네트워크를 사용하기 때문에 더 빠르고 유연
  • 주소 지정
    • RTU는 각 장치에 노드 번호를 할당
    • TCP/IP는 각 장치에 IP 주소를 할당

TCP/IP


패킷 전송 방식: 데이터는 패킷이라는 작은 조각으로 나뉘어 전송되며, 네트워크 경로를 효율적으로 이용합니다. 이 때문에 데이터 충돌이 최소화되고, 각 패킷이 최적의 경로를 선택해 전달될 수 있습니다.

에러 제어: TCP/IP는 데이터 전송 중 발생할 수 있는 오류를 감지하고 수정하는 기능을 내장하고 있어, 데이터 손실이 거의 없습니다.

라우팅 기능: 네트워크 내 여러 경로를 통해 데이터를 전송할 수 있어, 특정 경로에 문제가 생겨도 대체 경로로 데이터를 전송할 수 있습니다. 이는 네트워크 안정성을 높이는 데 크게 기여합니다.

멀티태스킹: 여러 장치가 동시에 통신할 수 있는 능력이 뛰어나며, 대규모 데이터 전송 환경에 최적화되어 있습니다. 예를 들어, 수백 대의 센서가 데이터를 동시에 전송하더라도 네트워크가 효율적으로 처리할 수 있습니다.

확장성: 새로운 장치를 네트워크에 쉽게 추가할 수 있어, 네트워크의 크기를 유연하게 확장할 수 있습니다.

 

RTU

직렬 통신 방식: RTU는 직렬 통신 방식으로 데이터를 전송하는데, 이는 한 번에 하나의 데이터 스트림만 전송할 수 있어, 대규모 데이터 전송에 비효율적입니다.

낮은 처리 능력: 직렬 통신은 TCP/IP에 비해 데이터 전송 속도가 느립니다. 이는 많은 양의 데이터를 빠르게 전송해야 하는 환경에서는 큰 단점이 됩니다.

오류 처리의 한계: RTU는 기본적으로 오류 감지 및 수정 기능이 부족하며, 수동으로 오류를 처리해야 하는 경우가 많아 데이터 신뢰성이 떨어질 수 있습니다.

확장성 부족: 네트워크에 새로운 장치를 추가하는 과정이 복잡하고, 물리적인 배선 변경이 필요할 수 있습니다. 이는 대규모 네트워크에서는 큰 문제가 될 수 있습니다.

이러한 이유들 때문에 TCP/IP가 대규모 데이터 관리와 네트워크 확장성에서 더 유리하며,

RTU는 소규모 단순 통신 환경에 더 적합합니다.

728x90
반응형
728x90
반응형

RS-485 Modbus RTU 통신

  1. RS-485: 차동 신호를 사용하는 직렬 통신 표준으로, 노이즈에 강하고 장거리 통신이 가능합니다.
  2. Modbus: 산업용 통신 프로토콜로, 마스터-슬레이브 구조를 가집니다.
  3. RTU: Remote Terminal Unit의 약자로, 바이너리 데이터 전송 방식을 사용합니다.
  4. 프레임 구조: [슬레이브 주소] [기능 코드] [데이터] [CRC 체크섬]

주어진 데이터 설명: [TX]는 전송(Transmit), [RX]는 수신(Receive)을 나타냅니다.

예를 들어, 첫 번째 전송 프레임을 분석해보면: [TX] 01 03 00 01 00 70 15 EE

  • 01: 슬레이브 주소 (1번 장치)
  • 03: 기능 코드 (레지스터 읽기)
  • 00 01: 시작 레지스터 주소 (온도)
  • 00 70: 읽을 레지스터 개수 (112개)
  • 15 EE: CRC 체크섬

수신 프레임: [RX] 01 03 02 00 01 79 84

  • 01: 슬레이브 주소
  • 03: 기능 코드
  • 02: 바이트 수
  • 00 01: 데이터 (값: 1)
  • 79 84: CRC 체크섬

이 통신에서는 마스터가 슬레이브(온습도계)에게 데이터를 요청하고, 슬레이브가 응답하는 과정을 보여줍니다.

RS-485 Modbus RTU 통신에서 추가로 알아야 할 내용들:

  1. 통신 속도: 일반적으로 9600, 19200, 38400, 57600, 115200 bps 등이 사용됩니다. 마스터와 슬레이브 간 속도가 일치해야 합니다.
  2. 데이터 형식: 8비트 데이터, 노 패리티, 1 스톱 비트가 주로 사용됩니다.
  3. 기능 코드: 다양한 기능 코드가 있습니다. 예를 들어:
    • 01: 코일 상태 읽기
    • 02: 입력 상태 읽기
    • 03: 보유 레지스터 읽기
    • 04: 입력 레지스터 읽기
    • 05: 단일 코일 쓰기
    • 06: 단일 레지스터 쓰기
    • 15: 다중 코일 쓰기
    • 16: 다중 레지스터 쓰기
  4. 에러 처리: 슬레이브가 요청을 처리할 수 없는 경우, 에러 응답을 보냅니다. 이때 기능 코드에 0x80을 더한 값을 사용합니다.
  5. 타이밍: 프레임 간 간격, 문자 간 간격 등의 타이밍 규칙이 있습니다. 이를 준수하지 않으면 통신 오류가 발생할 수 있습니다.
  6. 종단 저항: RS-485 라인의 양 끝에 120Ω 저항을 연결하여 신호 반사를 방지합니다.
  7. 주소 범위: Modbus에서는 1부터 247까지의 주소를 사용할 수 있습니다. 0은 브로드캐스트 주소로 사용됩니다.
  8. 데이터 모델: Modbus는 4가지 기본 데이터 타입을 사용합니다 - 코일, 이산 입력, 입력 레지스터, 보유 레지스터.

 

 

[TX] 02 03 00 02 00 01 25 F9 [RX] 02 03 02 01 F7 BC 52

02 : 기계에 설정한 번호

03 : 3번의 기능(Read) 수행

00 02 : 주소2번 (습도)

00 01 : 읽을 레지스터(메모리 위치) 수

25 F9 : CRC

02 : 기계 번호

03 : 3번 기능

02 : 바이트수

01 F3 : 데이터 (01F7 → 503 → 50.3% 습도)

BC 52 : CRC


[TX] 02 06 00 0D 00 01
[RX] 02 06 00 0D 00 01

02(장치번호2) 06(쓰기기능) 00 0D(13주소, Slave address) 00 01 (값1)

  • 현재 주소가 2인 장치에
  • 06 단일 레지스터 쓰기 명령을 사용하여
  • 레지스터 주소 13(000D) - 주소(1~247)에
  • 값 1을 써라.
728x90
반응형

+ Recent posts