工业计算机与其他设备的modbus通讯方式实现过程

作者:工业平板电脑|手持终端解决方案提供商    来源:www.wxtkj.cn    发布时间:2016-03-21 20:11    浏览量:

       Modbus通讯协议是工业计算机与其他设备的主要通讯方式,南京研维信息以本文为例,向大家介绍下modbus通讯方式实现过程:

      先以串行通讯的Modbus为例(注意Modbus TCP的报文表头和校验码是不一样的),主站发送了:09 03 00 04 00 03 XX

      主站告诉从站09,我要读取的地址偏移为4、5、6的Holding Register的数值。其中"03"是读Holding Register的功能码,"00 04 00 01"是数据区,"00 04"是寄存器的地址,"00 03"说明要连续读三个寄存器的值。"XX"代表后的校验位,校验方法是LRC或CRC。

       从站收到信息后,就从对应的寄存器找到数值,回复:09 03 06 02 2B 00 01 00 64 XX

       从站回答,该地址偏移为4的寄存器值为02 2B,地址偏移为5的寄存器值为00 01,地址偏移为6的寄存器值为00 64。其中"09 03"是复制了主站发来的地址和功能码,"06"代表接下来的数据共有6个字节。

       如果从站收到了一个错误的请求,例如发现要读的寄存器地址是错误的,则回复:09 83 02 XX

       其中"83"是把功能码"03"的高位置1,告诉主站发生了异常,"02"是异常码,说明发生了无效地址的异常。

       对于Modbus TCP而言,主站通常称为Client,从站称为Server;而对于Modbus RTU和Modbus ASCII来说,主站是Master,从站是Slave。

      如图2所示,串行传输的物理层是RS-485或RS-232,数据链路层是Modbus的串行传输协议;Modbus TCP的1、2、3、4层实现和日常所见的以太网、因特网一样。Modbus默认采用的TCP端口号是502。

       图3说明了Modbus TCP的改动:

  1. 取消了校验位。数据链路层上就进行了CRC-32的校验,TCP/IP是面向连接的可靠性的协议,因此没必要再加上校验位。
  2. Slave地址换成了Unit Identifier。当网络里的设备全是使用TCP/IP,这个地址是没有意义的,因为IP就能进行路由寻址。如果网络里还有串行通讯的设备,则需要网关来实现Modbus TCP到Modbus RTU或ASCII之间的协议转换,这时用Unit Identifier来标识网关后面的每个串行通讯设备。
  3. Length是指后面的字节总数。实际上数据区的长度是能确定的,有的功能码就可以确定数据区的长度,有的功能码虽不能确定数据区长度,但是数据区有字节计数,参见上文举的从站应答的例子。表头增加的Length是为了应对有些情况下TCP/IP协议会将应用层的数据拆包传输。
  4. Transaction Identifier和Protocol Identifier由Client生成,Server的响应将复制这些参数。
      然后,介绍一下Modbus的类型:


      Coil:大小只有1位,ON或OFF,可读可写,既可以是一个输出量输出点,也可以是数字量输入点,有效的地址范围是1-9999。

       Input Status:大小只有1位,ON或OFF,只读,即数字量输出点,有效地址范围是10001-19999。

       Input Register:16位的寄存器,只读,可以用作模拟量或16位打包输入点,有效地址范围是30001-39999。

       Holding Register:16位的寄存器,可读可写,既可以是一个模拟量或16位打包输入点,也可以是模拟量或16位打包输出点,有效地址范围是40001-49999。

      在PLC或DCS上用点名标记不同的变量,在Modbus则以数据地址来标记每个点。以上所说的地址都是参考地址,而不是实际的物理地址。上述的地址是在设备中的地址,按照PLC的习惯从1开始递增,而Modbus报文中是从0开始递增。例如地址偏移为4、5、6的Holding Register,其实是指参考地址是40005、40006、40007的寄存器。

       对于不同类型的网络,Modbus的第7层实现是一样的,区别在于下层的实现方式,常见的有TCP/IP和串行通讯两种。

       Modbus TCP基于以太网和TCP/IP协议,Modbus RTU和Modbus ASCII则是使用异步串行传输(通常是RS-232/422/485)。


下一篇:没有了

企业分站 在线客服 :     服务热线: 025-86136252 / 15062244194     电子邮箱: [email protected]

公司地址:江苏省南京市江宁区未来科技城

研维信息是一家集研发、生产、销售为一体的工控机、嵌入式安装工业平板电脑、加固手持平板电脑、加固类三防计算机的专业设备提供商,提供各种尺寸和规格的安装式工业平板电脑,手持三防平板电脑,加固三防计算机。核心研发及市场团队均有10余年的相关行业背景,尤其是公司的ODM团队,可以为客户提供快速、质优、灵活的客户定制化产品OEM及ODM服务,公司对员工及客户,都一直秉承合作共赢、以德为先的经营宗旨,为客户提供优质产品及服务,提升客户价值。

关注研维微信公众号,掌握工控行业最新动态资讯
备案号:苏ICP备14059761号-8
主营区域:北京江苏浙江上海安徽山东四川广东福建天津河北河南湖南湖北陕西、山西、辽宁吉林江西黑龙江重庆内蒙古广西海南贵州云南新疆甘肃宁夏青海西安成都深圳杭州苏州广州武汉青岛东莞珠海宁波郑州
声明:(1)本站遵循《中华人民共和国广告法》,在标题、页面等文案描述中尽量规避违禁词、极限词,如还有违禁词、极限词,在此申明上述词汇表述全部失效,如客户咨询均表示默认此条款,不支持任何形式以违禁词、极限词等理由投诉或要求收取费用私下解决,特此申明!(2)除非研维公司另行申明,本网站内的所有产品、技术、软件、程序、数据及其他信息(包括文字、图标、图片、照片、音频、视频、图标、色彩组合、版面设计等)的所有权利(包括版权、商标权、专利权、商业秘密及其他相关权利)均归研维公司所有。未经研维公司的许可,任何人不得以包括通过机器人、人力等程序或设备监视、复制、传播、展示、镜像、上载、下载等方式擅自使用本网站的任何内容。一旦发现侵权行为,我司将立即进行证据保全并诉诸法律。
在线客服