现场总线技术 Modbus
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2 Modbus协议
每次通信请求由主站向从站发起。 每个从站都有自己的地址编号,数量最多
可达 247个。 主站和从站之间通过多达24 种总线命令
实现息交换。 简单、高效、可靠、和容易实现等优点。 从功能上看,它可以被看作一种现场总线。
3.2 Modbus协议
主设备可单独和从设备通信,也能以广播方 式和所有从设备通信。如果单独通信,从设 备返回一消息作为回应,如果是以广播方式 查询的,则不作任何回应。
数据载波检测 接收数据 发送数据 数据终端就绪 信号地 数据装置就绪 请求发送 清除发送 振铃指示
缩写 DCD RXD TXD DTR GND DSR RTS CTS DELL
针号 8 3 2 20 7 6 4 5 22
25针串口(DB25) 功能说明
数据载波检测 接收数据 发送数据 数据终端就绪 信号地 数据装置就绪 请求发送 清除发送 振铃指示
串行通信接口标准经过使用和发展,目前已经有 几种,但都是在RS-232标准的基础上经过改进而 形成的。
RS-232C标准是美国EIA(电子工业联合会)与 BELL等公司一起开发的1969年公布的通信协议, 它适合于数据传输速率在0~20000bps范围内的 通信。
这个标准对串行通信接口的有关问题,如信号线 的功能、电气特性等都作了明确规定。
3.2 Modbus协议
字符或字节的连续传输
当消息在标准的Modbus系列网络传输时, 每个字符或字节以如下方式发送(从左到 右):
最低有效位...最高有效位
3.2 Modbus协议
启始位 1
2
3
4
5
6
7
奇偶位
停止 位
启始位 1 2 3 4 5 6 7 停止位 停止位
3.2 Modbus协议
第3章 串行通信接口与Modbus协议
3.1 串行通信接口
串行数据格式 数据的串行传输可以是2种类型之一:
同步数据传输或异步数据传输。 串行数据传输中的二进制代码在一条总线上以数据位
为单位按时间顺序逐位传送,接收端按顺序逐位接收, 它必须能正确地按位区分才能正确恢复发送端送出的 数据。 串行通信中的发送者和接收者都需要使用时钟信号, 通过时钟决定什么时候发送和读取每一位数据。同步 传输和异步传输是串行通信中使用时钟信号的不同方 式。
Modbus协议建立了主设备查询的格式: 设备(或广播)地址、功能代码、所有要发
送的数据、错误检测域
3.2 Modbus协议
查询和回应过程
3.2 Modbus协议
两种传输方式 控制器可以设置为两种传输模式(ASCII或
RTU)中的任何一种(RTU---85%)。 在标准的Modbus网络通信中,用户选择需
3.2 Modbus协议
RTU模式
代码系统
8位二进制,十六进制数0...9,A...F
消息中的每个8位字节都是由两个十六进制字符组成
帧格式(每个字节的形式)
每个字节包括:
1个起始位
8个数据位,最小的有效位(LSB)先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
启始位
1 2 3 4 5 6 7 8 奇偶位 停止
启始位
1 2 3 4 5 6 7 8 停止位 停止
3.2 Modbus协议
错误(差错)检测方法 标准的Modbus串行网络采用两种错误检测
方法。奇偶校验对每个字符都可用,帧检 测(LRC或CRC)应用于整个消息。 它们都是在消息发送前由主设备产生的, 从设备在接收过程中检测每个字符和整个 消息帧。
CRC高字节 CRC低字节
3.2 Modbus协议
ASCII模式
代码系统
十六进制,ASCII字符0...9,A...F
消息中的每个ASCII字符都是一个十六进制字符组成
帧格式(每个字节的形式)
每个字节包括:
1个起始位
7个数据位,最小的有效位(LSB)先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
空格
011 3
0
100来自百度文库4
@
101 5
P
110 6
、
111 7
p
0001 1
SOL DC1 !
1
A
Q
a
q
0010 2
STX DC2
”
2
B
R
b
r
0011 3
ETX DC3 #
3
C
S
c
s
0100 4
EOT DC4
$
4
D
T
d
t
0101 5 ENQ NAK %
5
E
U
e
u
0110 6 ACK SYN &
6
F
V
3.1 串行通信接口
大多数串行接口电路的接收波特率和发送波特率可以分别 设置,但接收方的接收波特率必须与发送方的发送波特率 相同。
通信线上所传输的字符数据(代码)是逐位传送的,1个字 符由若干位组成,因此每秒钟所传输的字符数(字符速率) 和波特率是两种概念。
在串行通信中,所说的传输速率是指波特率,而不是指字 符速率,它们两者的关系是:假如在异步串行通信中,传 送一个字符,包括12位(其中有一个起始位,8个数据位, 2个停止位),其传输速率是1200b/s,每秒所能传送的字 符数是1200/(1+8+1+2)=100个。
3.1 串行通信接口
在串行通信中,用“波特率”来描述数据的传输 速率。所谓波特率,即每秒钟传送的二进制位数, 其单位为bps(bits per second)。它是衡量串行 数据速度快慢的重要指标。
国际上规定了一个标准波特率系列:110、300、 600 、 1200 、 1800 、 2400 、 4800 、 9600 、 14.4Kbps 、 19.2Kbps 、 28.8Kbps 、 33.6Kbps 、 56Kbps。 例如:9600bps,指每秒传送9600位, 包含字符的数位和其它必须的数位,如起始位、 停止位和奇偶校验位等。
3.1 串行通信接口
RS-232C的接口标准 RS-232C标准(协议)的全称是EIA-RS-232C标准,
其中EIA(Electronic Industry Association)代表美 国电子工业协会,RS(Recommended Standard) 代表推荐标准,232是标识号,C代表RS-232的第 3次修改(1969),在这之前,有RS-232B、RS232A。它规定连接电缆和机械、电气特性、信号 功能及传送过程。
大家熟悉的个人电脑上的COM1、COM2接口,就 是RS-232C接口。
3.1 串行通信接口
电气特性 EIA-RS-232C对电气特性、逻辑电平和各种信号线的
功能都作了规定。值得注意的是RS-232C的数据线采 用的是负逻辑。
在数据线(TxD和RxD)上: 逻辑1(MARK)= -3V~-15V 逻辑0(SPACE)= +3~+15V 在控制线(RTS、CTS、DSR、DTR和DCD等)上: 信号有效(接通,ON状态,正电压)= +3V~+15V 信号无效(断开,OFF状态,负电压) = -3V~-15V
3.1 串行通信接口
在异步数据传输中,数据是一帧一帧传送
的,每一帧中包含一个字符代码或一个字 节的数据。
每一帧数据通常包含4个部分:起始位、数 据位、奇偶校验位和停止位。首先是一个 起始位“0”,然后是5-8位数据(规定低 位bit0在前,高位bit7在后),接下来是 奇偶校验位(可省略),最后是1个或多个 停止位“1”。
缩写 DCD RXD TXD DTR GND DSR RTS CTS DELL
3.2 Modbus协议
Modbus
Modbus协议最初由Modicon公司在1978年开发出 来,1979年末该公司成为施耐德自动化部门的一 部分,1980年该协议公开后,成为了事实上的工 业标准。
现在Modbus已经是工业领域全球最流行的协议。 此协议支持传统的RS-232、RS-422、RS-485和 以太网接口。
许多工业设备,包括PLC、DCS、智能仪表等都在 使用Modbus协议作为他们之间的通讯标准。
3.2 Modbus协议
Master-Slaver方式 控制器通信使用主—从技术,即仅有一
个设备(主设备)能初始化传输(查 询)。其它设备(从设备)根据主设备 查询提供的数据做出相应反应。 典型的主设备:主机和可编程仪表。 典型的从设备:可编程控制器。
3.1 串行通信接口
连接器的功能特性 由于RS-232C并未定义连接器的物理特性,因此,
出现了DB-25、DB-15和DB-9各种类型的连接器, 其引脚的定义也各不相同。 目前常用的是DB-9和DB-25。
3.1 串行通信接口
针号 1 2 3 4 5 6 7 8 9
9针串口(DB9) 功能说明
3.1 串行通信接口
字符编码 串行数据由若干个二进制的“0”和“1”的组合来表
示,为了使其具有确定的含义,需要对这些“0”和 “1”的组合进行约定,这就是所谓的字符编码。 目前常用的字符编码有2种:ASCII码和EBCDIC码, 其中ASCII码的使用较为普遍。
3.1 串行通信接口
ASCII码 ASCII是英文American Standard Code for
3.2 Modbus协议
ASCII消息帧 消息以冒号(:)字符(ASCII码 3AH)开始,以
回车、换行符结束(ASCII码 0DH,0AH)。 其它域可以使用的传输字符是十六进制的0...9,
A...F。 网络上的设备不断侦测“:”字符,当有一个冒号接
收到时,每个设备都解码下一个域(地址域)来判 断是否发给自己的。
Information Interchange的简写,即美国 标准信息交换码。
原始的ASCII码由7位二进制数组成,用来 表示可打印的字符、格式字符和数据链接 或控制字符。目前,大多数计算机都采用 这种编码形式。
D6d5 d4
D3d2d1d0 0000 0
000 0 001 1
NUL DLE
010 2
要的模式,包括串口通信参数(波特率、校 验方式等),在配置每个控制器的时候,在 Modbus网络上的所有设备都必须选择相同 的传输模式和串口参数。
3.2 Modbus协议
:
地 功能代 址码
数据数 量
数据1
... 数据n LRC高字节 LRC低字节 回车 换行
地址
功能代码 数据数量 数据1
...
数据n
3.1 串行通信接口
DTE-DCE接口 在计算机设备内部处理的数据为并行格式,如果
要实现计算机类设备之间的串行通信,需要在数 据的发送端将并行数据转换为串行数据,在接收 端再将串行数据转换为并行数据,完成这种并行 →串行及串行→并行数据转换的器件称为UART (Universal Asynchronous Receiver Transmitter),即通用异步收发接口。
f
v
0111 7
BEL ETB
’
7
G
W
g
w
1000 8
BS CAN (
8
H
X
h
x
1001 9
HT EM
)
9
I
Y
i
y
1010 a
LF SUB *
:
J
Z
j
z
1011 b
VT ESC +
;
K
[
k
{
1100 c
FF FS
,
<
L
\
l
|
1101 d
CR GS
_
=
M
]
m
}
1110 e
SO RS
.
>
N
↑
n
-
3.1 串行通信接口
消息中字符间发送的时间间隔最长不能超过1秒, 否则接收的设备将认为传输错误。
3.2 Modbus协议
ASCII消息帧
起始位 设备地址 功能代码 数 据 LRC校验 结束符 1个字符 2个字符 2个字符 n个字符 2个字符 2个字符
3.2 Modbus协议
RTU消息帧 消息开始:发送至少要以3.5个字符时间的停
顿间隔开始。
使用8bit十六进制数:0...9,A...F。 网络设备不断侦测网络总线,当第一个域
(地址域)接收到,每个设备都进行解码以 判断是否发往自己的消息。在最后一个传输 字符之后,一个至少3.5个字符时间的停顿标 定了消息的结束。
3.2 Modbus协议
RTU消息帧
起始位
设备地址 功能代码
数据
CRC校验
结束符
T1-T2-T3-T4
8Bit
8Bit
n个8Bit
16Bit
T1-T2-T3-T4
3.2 Modbus协议
消息的地址域 消息帧的地址域包含两个字符(ASCII)或 8Bit
(RTU)。可能的从设备地址是0...247 (十进制)。 单个设备的地址范围是1...247。 主设备通过将要联络的从设备的地址放入消息中的 地址域来选通从设备。当从设备发送回应消息时, 它把自己的地址放入回应的地址域中,以便主设备 知道是哪一个设备作出回应。 地址0是用作广播地址,以使所有的从设备都能认识。