(一)概述
Modbus协议最初是由Modicon公司开发出来的,在1979年年末,该公司成为施耐德自动化部门的一部分,现在Modbus已经是全球工业领域最流行的协议之一。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC、DCS、智能仪表等都在使用Modbus协议作为它们之间的通信标准。利用该协议,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
Modbus是全球第一个真正用于工业现场的总线协议。为了更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在中国,Modbus已经成为国家标准GB/T 19582—2008。
Modbus协议是Modicon公司最先倡导的一种通信规约,经过大多数公司的实际应用而逐渐被认可。目前,Modbus协议已成为一种标准的通信规约,只要按照这种规约进行数据通信或传输,不同的系统就可以进行通信。
(二)Modbus的特点
(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要缴纳许可费用,也不会侵犯知识产权。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485和以太网等,还可以在各种介质上传送,如双绞线、光纤和无线介质等。
(3)Modbus的帧格式简单、紧凑,通俗易懂,用户使用容易,厂商开发简单。
(三)Modbus的通信模型
Modbus是OSI参考模型第七层上的应用层报文传输协议,它在连接不同类型总线或网络的设备之间提供客户机/服务器通信,Modbus的通信模型如图1-1-12所示。
目前,Modbus包括标准Modbus、Modbus Plus(Modbus+)和Modbus TCP三种形式。标准Modbus是指在异步串行通信中传输Modbus信息。Modbus Plus是指在一种高速令牌传递网络中传输Modbus信息,它采用全频通信,具有更快的通信传输速率。Modbus TCP是指采用TCP/IP和以太网协议来传输Modbus信息,其属于工业控制网络范畴。本节主要介绍基于异步串行通信标准的Modbus。TCP/IP以太网通信在后续项目中介绍。
图1-1-12 Modbus的通信模型
(四)Modbus通信原理
Modbus是一种简单的客户机/服务器型应用协议,其通信过程如图1-1-13所示。
图1-1-13 Modbus协议的通信过程
首先,客户机准备请求并向服务器发送请求,即发送功能码和数据请求,此过程称为启动请求;然后,服务器分析并处理客户机的请求,此过程称为执行操作;最后,向客户机发送处理结果,即返回功能码和数据响应,此过程称为启动响应。如果在执行操作过程中出现任何差错,服务器将启动差错响应,即返回一个差错码异常码。
Modbus串行链路协议是一个主—从协议,串行总线的主站作为客户机,从站作为服务器。在同一时刻只有一个主站连接总线,一个或多个(最多为247个)从站连接同一个串行总线。Modbus通信总是由主站发起,从站根据主站功能码进行响应。从站在没有收到来自主站的请求时,不会发送数据,所以从站之间不能互相通信。主站在同一时刻只会发起一个Modbus事务处理。主站通过如下两种模式对从站发出Modbus请求。
1.单播模式
在单播模式下,主站寻址单个从站,从站接收并处理完请求后,向主站返回一个响应。在这种模式下,一个Modbus事务处理包含两个报文,一个是来自主站的请求;另一个是来自从站的应答。每个从站必须有唯一的地址(1~247),这样才能区别于其他节点而被独立寻址。
2.广播模式
在广播模式下,主站向所有从站发送请求,对于主站广播的请求没有应答返回。广播请求必须是写命令。所有设备必须接受广播模式的写功能,地址0被保留,用来识别广播通信。
(五)Modbus物理层
在物理层,串行链路上的Modbus系统可以使用不同的物理接口,常用的是RS-485两线制接口。作为附加选项,该物理接口也可以使用RS-485四线制接口。当只需要短距离的点对点通信时,也可以使用RS-232串行接口作为Modbus系统的物理接口。(我们平时说的RS-232/RS-485串行通信实际上说的是一种通信的电气物理接口而不是通信协议,因为这种RS-232/RS-485串行电气物理接口也支持Profibus现场总线通信协议。)
1.RS-232接口标准
在讨论RS-232接口标准的内容之前,先说明两点:
首先,RS-232标准最初是根据远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)制定的。因此这个标准的制定,并没有考虑计算机系统的应用要求。但目前它又广泛地被用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定与计算机系统是不一致的,甚至是矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容之处就不难理解了。
其次,RS-232标准中所提到的“发送”和“接收”,都是基于DTE立场而不是DCE立场定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。
RS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS-232总线标准设有25条信号线,包括一个主通道和一个辅助通道,其主要端子分配如表1-1-1所示。
表1-1-1 RS-232引脚功能表
续表
RS-232的功能特性定义了25芯标准连接器中的20根信号线,其中2条地线、4条数据线、11条控制线、3条定时信号线,剩下的5根线作备用或未定义。常用的只有如下所述的9根。
1)RS-232信号含义
(1)联络控制信号线(www.xing528.com)
①数据通信设备准备好(DSR):有效时(ON)状态,表明MODEM处于可以使用的状态。
②数据终端设备准备好(DTR):有效时(ON)状态,表明数据终端可以使用。
这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始通信,能否开始通信要由下面的控制信号决定。
③请求发送(RTS):用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。
④允许发送(CTS):用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。
这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。至于全双工系统中作发送方式和接收方式之间的切换,由于在全双工系统中配置了双向通道,故不需要RTS/CTS联络信号。
⑤接收线信号检出(RLSD):用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RXD送到终端。此线也叫做数据载波检出(DCD)线。
⑥振铃指示(RI):当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。
(2)数据发送与接收线
①发送数据(TXD)——通过TXD终端将串行数据发送到MODEM。
②接收数据(RXD)——通过RXD线终端接收从MODEM发来的串行数据。
(3)地线
有两根线SG、PG,即信号地和保护地信号线,无方向。
上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TXD线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。
2)RS-232电气特性
RS-232对电气特性、逻辑电平和各种信号线功能都做了规定。在RS-232C中任何一条数据信号线的电压均为负逻辑关系,即逻辑“1”:-5 V~-15 V;逻辑“0”:+5 V~+15 V。噪声容限为2 V,要求接收器能识别低至-3 V的信号作为逻辑“0”,高到+3 V的信号作为逻辑“1”。
对于数据信号:在TXD和RXD上,逻辑1(MARK)=-3 V~-15 V;逻辑0(SPACE)=+3 V~+15 V。
对于控制信号:在RTS、CTS、DSR、DTR和DCD等控制线上,信号有效(接通,ON状态,正电压)=+3 V~+15 V;信号无效(断开,OFF状态,负电压)=-3 V~-15 V。
以上规定说明了RS-232C标准对逻辑电平的定义。对于数据(信息码),逻辑1(传号)的电平低于-3 V,逻辑0(空号)的电平高于+3 V;对于控制信号,接通状态(ON,即信号有效)的电平高于+3 V,断开状态(OFF,即信号无效)的电平低于-3 V,即当传输电平的绝对值大于3 V时,电路可以有效地检查出来,介于-3 V~+3 V的电压无意义,低于-15 V或高于+15 V的电压也被认为无意义。因此,在实际工作时,应保证电平在-3 V~-15 V或+3 V~+15 V。
3)RS-232电平转换器
为了实现采用+5 V供电的TTL和CMOS通信接口电路与RS-232标准接口的连接,必须进行串行接口的输入/输出信号的电平转换。
2.RS-485接口标准
智能仪表是随着20世纪80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断,其原因就是企业信息化的需要,企业在仪表选型时要求的一个必要条件就是要具有联网通信接口。最初数据是模拟信号输出简单过程量,后来仪表接口是RS-232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。随后出现的RS-485接口解决了这个问题。
1)RS-485接口的特点
逻辑1以两线间的电压差+(0.2~6)V表示;逻辑0以两线间的电压差-(0.2~6)V表示。RS-485接口信号电平比RS-232接口信号电平降低了,其不易损坏接口电路的芯片。另外,该电平与TTL电平兼容,可方便地与TTL电路连接。
RS-485接口是采用平衡驱动器与差分接收器的组合,其抗共模干扰能力强,即抗噪声干扰性好。
RS-485接口最大的通信距离约为1 219 m,最大传输速率为10 Mbit/s,传输速率与传输距离成反比,在100 Mbit/s的传输速率下,才可以达到最大的通信距离,如果需要传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以支持128个或256个节点,最多可支持400个节点。
RS-485价格比较便宜,能够很方便地添加到任何一个系统中,还支持比RS-232更长的距离、更快的速度以及更多的节点。RS-232和RS-485之间的主要性能指标的比较如表1-1-2所示。
由表1-1-2可以看出,RS-485接口更适用于多台计算机或带微控制器的设备之间的远距离数据通信。
表1-1-2 RS-232和RS-485之间的主要性能指标的比较
需要指出的是,RS-485标准没有规定连接器、信号功能和引脚分配。为了保持两根信号线相邻,两根差动导线应该位于同一根双绞线内,引脚A与引脚B不要调换。
2)RS-485接口的优点
(1)成本低。RS-485接口的驱动器和接收器价格便宜,并且只需要单一的+5 V(或者更低)电源来产生差动输出需要的最小1.5 V压差。与之相对应,RS-232接口的最小+5 V与-5 V输出需要双电源或者一个价格昂贵的接口芯片。
(2)网络驱动能力强。RS-485接口是一个多引出线接口,这个接口可以有多个驱动器和接收器,而不是限制为两台设备。利用高阻抗接收器,一个RS-485接口可以最多有256个节点。
(3)连接距离远。一个RS-485接口的连接距离最长可以达到1 200 m,而RS-232接口的连接距离限制为15 m。
(4)传输速率快。RS-485接口的传输速率可以达到10 Mbit/s。电缆长度和传输速率是有关的,较低的传输速率允许较长的电缆。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。