MODBUS 프로토콜과의 직렬 커뮤니케이션

Nov 22, 2024 메시지를 남겨주세요

1. 기본 커뮤니케이션 방법

 

병렬 커뮤니케이션 및 직렬 커뮤니케이션의 두 가지 기본 커뮤니케이션 방법이 있습니다.

병렬 커뮤니케이션 : 이것은 각 비트의 데이터가 동시에 전송되는 통신 방법입니다.

직렬 커뮤니케이션 : 이것은 데이터를 순차적으로 하나씩 전송하는 통신 방법입니다.

 

2. 일련의 통신의 두 가지 유형

 

직렬 커뮤니케이션의 두 가지 기본 형태 : 동기 통신 및 비동기 통신.

비동기 통신은 시작 비트, 1 ~ 9 개의 데이터 비트 및 1 ~ 2 정지 비트로 구성된 데이터 프레임 형식을 전송하여 시작 및 정지 비트에 의존하여 동기화를 유지합니다.

동기식 통신 데이터 프레임 형식은 프레임의 여러 바이트로 구성되며 각 프레임에는 두 개의 (또는 1 개) 동기화 문자가 시작 비트로서 동기화 시계를 트리거하여 데이터를 보내거나 수신하기 시작합니다.

 

3. 전송 방향에 따른 분류

 

직렬 커뮤니케이션은 정보 전송 방향에 따라 Simplex, Half Duplex 및 전이중으로 더 분류 될 수 있습니다. 커뮤니케이션 프로세스의 순간에 정보를 한 당사자 A에서 다른 당사자 B로만 전송할 수있는 경우 Simplex라고합니다. 언제라도 정보를 A에서 B로 및 B에서 A로 전송할 수 있지만 한 방향으로 전송의 존재에 의해서만 반중 전송이라고합니다. 시간이 지남에 따라, 양방향 신호 전달이 A에서 B에서 B로 라인에 존재하는 경우,이를 전체 이중이라고합니다.

 

4. 직렬 통신 인터페이스

 

직렬 통신 물리 인터페이스 전기 표준 및 프로토콜에 따른 RS -232, RS -422, RS485 등을 포함하는 프로토콜에 따른 것입니다. 주로 가장 일반적으로 사용되는 RS485 인터페이스에 관한 것입니다.

 

5. RS485 인터페이스회로

info-1-1

시연 회로로서 SP485R 칩은 종종 사용되며 실제 RS -485 응용 프로그램 회로에 직접 내장 될 수 있습니다. 마이크로 프로세서의 표준 직렬 포트는 RXD를 통해 SP485R 칩의 RO 핀과 TXD를 통해 SP485R 칩의 DI 핀에 직접 연결됩니다.

 

마이크로 프로세서로부터의 R/D 신호 출력 SP485R 칩 송신기/수신기 활성화를 직접 제어 : "1"에 대한 R/D 신호, SP485R 칩 송신기가 유효하고, 수신기가 금지되며, 현재 마이크로 프로세서가 RS에있을 수 있습니다. 데이터 바이트를 보내기위한 -485 버스; R / D 신호의 R / D 신호는 "0"이며, SP485R 칩 송신기가 비활성화되고 수신기가 유효하며,이 시점에서 마이크로 프로세서는 RS -485 버스로부터 데이터 바이트를받을 수 있습니다. . 이 회로에서 SP485R 칩 "수신기"및 "송신기"의 모든 순간은 작동 상태 만 가질 수 있습니다.

 

핀 A에 연결된 풀업 저항 R7 및 핀 B에 연결된 풀다운 저항 R8이 연결되어 연결되지 않은 SP485R 칩이 유휴 상태인지 확인하여 네트워크 고장 보호 기능을 제공하여 RS -485 노드와 네트워크.

 

SP485R이 마이크로 프로세서 80C51 칩의 UART 직렬 포트에 연결된 경우 SP485R 칩의 RO 핀을 끌 필요가 없습니다. 그렇지 않으면 실제 상황에 따라 RO 핀에 약 10K의 풀업 저항을 추가할지 여부를 고려해야합니다.

6. 직렬 모드 버스 통신

 

산업 통신 회로에서의 데이터 교환의 규칙으로서 Modbus는 다양한 분야에서 널리 사용되어 PLC, 인버터, 유량계, 온도 및 습도, 호스트 컴퓨터 그룹 구성 소프트웨어와 같은 Modbus 통신 프로토콜이있는 장치와 통신하는 것이 편리합니다. 다양한 센서와 기기.

 

MODBUS 통신 프로토콜은 ASCII 및 RTU 통신 모드 인 두 개의 직렬 통신 모드로 나뉩니다. 사용 중에는 통신 모드 및 직렬 포트 RS232, RS485 통신 매개 변수 (BAUD 요금, 패리티, 슬레이브 주소, 데이터 비트, 스톱 비트, 바이트 순서)를 설정해야합니다. MODBUS 버스의 모든 장치에는 동일한 통신 모드가 있어야합니다. 직렬 통신 매개 변수.

 

modbus 메시지 프레임 구조

 

주소 기능 코드 데이터 주소 데이터 1 데이터... 데이터 n

CRC16

 

7. modbus 명령 메시지
데이터를 읽습니다
마스터 보내기

주소 기능 코드 데이터 시작 주소 높은 비트 데이터 시작 주소가 낮습니다 높은 데이터 수 낮은 데이터 수 CRC16 높음 CRC16 낮은 비트

 

반품:

주소 기능 코드 바이트 길이 데이터 1 높음 데이터 1 낮음 데이터 2 높음 데이터 2 낮음

CRC16 높음 CRC16 낮음

 

8. MODBUS 주요 개념

 

(1) 상위 컴퓨터는 간격이 일반적으로 100ms 이상일 때마다 데이터를 읽습니다.

(2) 장치 주소 : MODBUS 슬레이브 커뮤니케이션 주소, 네트워크에는 두 개의 동일한 주소가 없을 수 없습니다. (3) 함수 코드 : MODBUS 프로토콜에서 지정된 기능 코드.

(4) 등록 주소 및 레지스터 수

마스터 명령의 매개 변수는 레지스터 주소에서 레지스터를 읽습니다. (5) 노예 응답 데이터

슬레이브 응답 데이터는 다음과 같습니다. 바이트 수와 n 숫자 섹션 데이터.

 

9. Modbus Master Common Operations

 

(1) 최적화 읽기 :불연속 주소의 데이터 판독 값은 패키지를 읽거나 읽는지 여부에 관계없이 패키지 된 읽기 명령을 사용하여 한 번에 여러 주소의 판독 값을 완료합니다.

(2) 최적화 간격 읽기 :읽기 최적화시 주소 간의 간격 이이 간격보다 작 으면 여러 읽기 명령을 사용하여 함께 포장되어 한 번에 읽습니다.

(3) 최대 패킷 길이 :최대 데이터 길이는 하나의 통신을 허용했습니다.

(4) 바이트 순서 :32- 비트 이중 단어의 디코딩 순서를 조정하십시오.

바이트 순서의 의미를 설명하기 위해 32- 비트 정수를 예로 들어보십시오.

1234:이중 단어 구성 요소가 직접 디코딩되지 않음을 나타냅니다.

예를 들어 : 직렬 포트에서 읽은 데이터는 0000 00 01입니다.

2143:높고 낮은 단어의 이중 단어 구성 요소가 뒤집히지 않고 높고 낮은 바이트 내의 단어가 반전되었음을 나타냅니다.

예를 들어, 직렬 포트에서 읽은 데이터는 {{0}}이 0x00000100 (예 : 256)을 의미합니다.

3412:이중 단어 구성 요소의 높고 낮은 단어가 역전되었지만 단어의 높고 낮은 바이트는 반전되지 않습니다.

예를 들어, 직렬 포트에서 읽은 데이터는 {{0}}이므로 0x00010000 (예 : 65536)을 의미합니다.

4321: 이중 단어 요소의 4 바이트가 모두 반전되었음을 나타냅니다.

예를 들어 : 직렬 포트에서 읽은 데이터는 {{0}}을 의미합니다.

 

10. Modbus 커미셔닝 소프트웨어 Modbus Pull

슬레이브 주소를 1, baud rate 9600으로 가져 가서 모든 실시간 데이터를 예로 들어 읽습니다. 설정 메소드는 다음과 같습니다.
표 2에 따르면 : 시작 등록 주소 4113 레지스터 수는 22입니다.
1. 설정 획득 명령에는 장치 주소 (1), Modbus 함수 코드 (04), 레지스터 주소 (4113), 레지스터 길이 (2) 및 획득 간격 (1000)이 포함됩니다.
info-1-1

2. 직렬 포트 데이터를 설정하십시오
슬레이브 직렬 포트 형식 (1 비트 시작 비트, 8 비트 데이터 비트, 1 비트 정지 비트, 패리티 없음)에 따르면 다음 그림을 설정하십시오.
info-1-1

3. 데이터 표시 형식 설정
info-1-1

4. 커뮤니케이션 성공 화면
info-1-1

문의 보내기

whatsapp

전화

이메일

문의