6.7.2 ASCII Transmission
When devices are setup to communicate on a MODBUS serial line using 7-bit ASCII
(American Standard Code for Information Interchange) mode, each 8 bit character in
a message is sent as two ASCII characters. This mode is used when the physical
communication link or the capabilities of the device does not allow the conformance
with RTU mode requirements regarding timers management.
Remark: this mode is less efficient than RTU since each byte needs two characters.
Example: The byte 0x5B is encoded as two characters: 0x35 and 0x42 ( 0x35 ="5",
and 0x42 ="B" in ASCII ).
6.7.2.1
One character consists of 10 bits:
Note
Character format with parity checking:
Character format without parity checking:
6.7.2.2
A MODBUS message is placed by the transmitting device into a frame that has a
known beginning and ending point. This allows devices that receive a new frame to
begin at the start of the message, and to know when the message is completed.
Partial messages must be detected and errors must be set as a result.
The address field of a message frame contains two characters.
In ASCII mode, a message is delimited by specific characters as Start-of-Frame and
End-of-Frame. A message must start with a trigger "colon"- character (":" = ASCII
0x3A) and ends with a "carriage return/line feed" pair (ASCII 0x0D and 0x0A).
The allowable characters transmitted for all other fields are hexadecimal 0–9, A–F
(ASCII coded). The devices monitor the bus continuously for the colon character.
When this character is received, each device decodes the next character until it de-
tects the End-of-Frame (EoF)-character.
05/08
05/08
Character Format
−
1 start bit
7 data bits, least significant bit sent first (value = 0x00 .. 0x7F)
−
−
1 parity bit
1 stop bit
−
If no parity is used then an extra stop bit is added.
Start
B1
B2
Start
B1
B2
Modbus Message ASCII Framing
Modbus Instruction manual
Modbus Instruction manual
B3
B4
B5
B3
B4
B5
B6
B7
Parity
B6
B7
Stop
Stop
Stop
33
33
Need help?
Do you have a question about the ACTIVE and is the answer not in the manual?