2015. 11. 18. 09:34
- Modbus RTU Frame Format
Name
Length(bits)
Function
Start
28
at least 3 12 character times of silence (mark condition)
Address
8
Station Address
Function
8
Indicates the function code, eg read coils / inputs
Data
n * 8
Data + length will be filled depending on the message type
CRC
16 bits
Error checks
End
28
at least 3 12 character times of silence between frames
 1. Start : 프로토콜 시작을 나타낸다.
 2. Address : 데이터 주소 번지이다.(입/출력 번지)
 3. Function : 해당 펑션 정보이다. 펑션은 일반적으로 6가지가 있고, 사용자별 맞춤 펑션코드도 사용한다.
 4. Data : 실제 입/출력할 데이터 이다.
 5. CRC : 데이터가 올바른 데이터인지 확인하기 위한 코드이다.
 6. End : 프로토콜 종료를 나타낸다.
 
- Modbus ASCII Frame Format
Name
Length
(char.)
Function
Start
1
starts with colon ( : ) (ASCII hex value is 0x3A)
Address
2
Station Address
Function
2
Indicates the function codes like read coils / inputs
Data
n
Data + length will be filled depending on the message type
LRC
2
Error checks
End
2
carriage return – line feed(CR/LF) pair (ASCII values of 0x0D & 0x0A)
 1. Start : 프로토콜 시작을 나타낸다.
 2. Address : 데이터 주소 번지이다.(입/출력 번지)
 3. Function : 해당 펑션 정보이다. 펑션은 일반적으로 6가지가 있고, 사용자별 맞춤 펑션코드도 사용한다.
 4. Data : 실제 입/출력할 데이터 이다.
 5. LRC : 데이터가 올바른 데이터인지 확인하기 위한 코드이다.
 6. End : 프로토콜 종료를 나타낸다.

- Modbus TCP Frame Format

Name
Length
(bytes)
Function
Transaction ID
2
For synchronization between messages of server & client
Protocol ID
2
Zero for Modbus/TCP
Length
2
Number of remaining bytes in this frame
Slave ID
1
Slave Address (255 if not used)
Function code
1
Function codes as in other variants
Start Address
2
Start Address

Count

2

Data Count

 1. Transaction ID : 서버와 클라이언트 간에 서로 번호를 증가함으로서 데이터 순서를 맞춰준다. 해당 정보는 길이가 2byte로 다 차면 다시                                           0부터 시작된다.
 2. Protocol ID : 프로토콜 ID이라고 하는데, 사실 뭐에 쓰는지 잘 모르겠다. 그냥 고정 코드 값 사용함(대부분 0)
 3. Length : 하위 데이터의 크기를 나타낸다.
 4. Slave ID : Slave ID이다. 해당 ID가 맞아야 데이터를 정상적으로 가져올 수 있다.
 5. Function code : 사용할 펑션 코드 정보이다.
 6. Start Address : 데이터를 가져올 시작 주소를 나타낸다.
 7. Count : Address로부터 가져올 데이터의 크기를 나타낸다.

 * Tx/Rx 가 데이터가 약간 상이하다. 위의 내용과 다를수 있다. 위의 내용은 제가 개발하면서 그냥 알게된 내용들입니다. 정확한 정보는 아니므로 오류사항이 있으면 알려주세요. 또한 궁금하신 사항이 있으시면 질문해 주시기 바랍니다. 저도 잘 알지 못하지만 같이 공부하는 차원에서..ㅎㅎ 

[참고. http://ymkimit.blogspot.kr/]

Posted by 까망후니