- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Modbus主从通信模式通用化设计
基于Modbus主从通信模式通用化设计
摘 要 本文根据分层设计思想,基于RS485总线和Modbus协议,实现主从通信模式下的通用化设计,同时满足不同设备和硬件平台下的可移植性和扩展性的需要。另外,设计中利用侦测帧技术,解决子节点信息及时上告的问题。
关键词 RS485;Modbus;RTU;OSI模型;主从模式;对等模式
中图分类号:TP23 文献标识码:A 文章编号:1671-7597(2014)23-0058-02
在工业现场,设备间通信、分布式系统的模块之间的通信,都离不开主从通信模式或对等通信模式。对等通信模式的通信主体没有主从之分,每个设备、每个模块都是主节点,可以随时发起通信,随时接收信息;主从通信模式,相对而言比较复杂,主节点是唯一的控制主体,它向每个从节点发起通信,而相关子节点则响应,每个子节点之间不能直接通信。主节点可以点对点地和子节点通信,也可以向所有子节点发起广播。由于RS485总线采用半双工拓扑结构,使得某一段时间段内,只有某个特定的子节点和主节点之间才能而且必须建立一个完整的会话,即主节点发起请求,子节点收到后响应并回复请求。而其它子节点必须等待。在实际应用中,经常会有以下情况
发生:
1)由于不同子节点的响应,不同的命令的响应,需要延时的时间不同,则对于应用而言就显得比较复杂。
2)由于主节点发送的命令可能某些原因未被子节点响应,从应用角度而言,可能需要进行重发,如果针对每一个命令做相应工作其扩展性存在很大的问题。
3)子节点由于产生事件或告警,希望尽快告知主节点,子节点因无法直接发起请求,使得这种应用的及时性存在问题。
4)由于项目的需要,MCU芯片可能有所不同,有可能是单片机、DSP、ARM等其中的任何一种或几种,也可能是同种类型的不同配置,但是通信都同样遇到以上问题。如果针对每一款MCU都重写通信部分的功能,开发周期、测试周期都会涉及这部分内容,浪费有限的人力资源。
这些共性的问题如果能在通用的模块内解决,一方面企业的共性模块可以增强可复用性,另外一方面,开发工程师就可以把精力花在相关的应用领域,降低开发复杂度。
工业现场使用Modus现场总线协议非常普遍,利用Modbus协议作为载体作为通用模块的一部分具有典型性。对于RS485总线的应用场合,不管是设备(或装置)之间的通信还是设备(或装置)内的主节点和子节点之间的通信,通用模块都适合。
1 协议简介
1)RS485总线。
RS485总线由于其成本低廉、布线简单,抗干扰性强,通信距离长,稳定可靠等特点,从而广泛的应用于工业控制、电力通信、智能仪表等领域中。RS-485采用半双工工作方式,任何时候只能有唯一节点处于发送状态,因此,发送电路须由使能信号加以控制。应用RS-485可以联网构成分布式系统,在不加中继器的情况下,允许最多32个子节点。主节点同时只能和一个子节点进行通信,子节点之间不能直接通信。另外,主节点可以通过广播方式和所有子节点进行通信。其拓扑结构如图1所示。
2)Modbus 串行链路协议。
Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),位于在OSI模型[1][2]中的第7层。是一个应用层报文传输协议。其数据包结构如图2所示。
而Modbus串行链路协议位于OSI 模型的第二层,是一个主/从协议。如图3所示。在一个串行总线上,只有一个主节点,有一个或多个子节点(最大编号为247)。Modbus通信总是由主节点发起。子节点从来不会主动发送数据。子节点之间也不会直接通信。正因为这种特点,主从节点采用的是乒乓机制,即同一时刻有且只有一个子节点和主节点进行交互,完成之后,主节点才能访问下一个子节点。
Modbus串行链路协议是Modbus在串行总线上的实现协议,特别适合于RS485总线结构。另外,如果把RS232结构可以看成是一个只有一个子节点的主/从结构。则Modbus串行链路协议也同样适合。
Modbus串行链路协议支持单播模式和广播模式。如图2所示,地址域的地址值用于区分单播模式和广播模式,其中1~247是单播模式地址,0是广播模式地址。在单播模式下,主节点指定某个子节点的地址进行访问,被指定的子节点接到并处理完请求后,向主节点返回一个 ‘应答’,而其它子节点,虽然也收到数据,但是由于地址域信息和自身不符,就会抛弃该报文。在广播模式下,主节点向所有的子节点发送请求,即报文中地址域的值为0。各子节点接收到报文后判断是广播模式,因此,仅仅处理请求,但不会应答。所以广播请求一般用于写命令。
2 主从模式下的及时响应
由于RS485的总线方式决定了通信方式必然是主从通信机制,主从方式的
原创力文档


文档评论(0)