用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
北京世纪长秋科技有限公司
企业空间 > 案例应用 > 正文
  • 世纪星标准Modbus协议驱动揭秘(三)
  • 发布时间:2010/11/5 13:42:14   修改时间:2010/11/5 13:42:14 浏览次数:1887
  •    在前两期的《世纪星月刊》中已经详细介绍了Modbus的基本概念和类型,作为工业控制系统中的一种通用协议,为很多仪表厂家所使用。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。虽然Modbus有其标准的传输格式,但在一些细节方面,各个厂家所支持的Modbus协议还是有些差别。
      过去,在我们为客户做技术支持时常会发生这样的情况,由于仪表支持的Modbus协议与我们软件所支持的有一些细微区别,就会导致世纪星读出的数据与实际数据不符合。要解决这个问题,就必须重新定制一个驱动提供给客户进行更新,这样一来,对于客户或者对于我们技术支持人员都会耽误一定的时间,而且,某些客户的现场没有条件上网进行驱动更新,这样就给客户造成了更大的不便。
      为解决这一问题,我们在总结常遇问题的基础上,对世纪星中的Modbus驱动进行了改善,可以通过Modbus设备初始化字设置直接解决以下三个问题:
      1)16位整数的字节顺序的调整;
      2)32位整数(或实数)字顺序的调整;
      3)写单个寄存器时所使用功能码的选择。

     

    图1 Modbus设备设置初始化字的格式


      如图1所示,初始化字格式为(XXX),每个X的值为1或者为0,括号为半角符号,当初始化字设置为空时,系统默认为(000)。
      第一,16位整数的字节顺序的调整:
      第一个X:值为0时,表示16位整数传送时高字节在前,低字节在后;值为1时,表示16位整数传送时低字节在前,高字节在后。
      例:设备传送的16位整数(即两个字节):12H 34H。当X值为0时,赋值给变量的数据为1234H(十进制数为4660);当X值为1时,赋值给变量的数据为3412H(十进制数为13330)。
      第二,32位整数(或实数)字顺序的调整:
      第二个X:值为0时,表示32位数据低字在前,高字在后;值为1时,表示32位数据高字在前,低字在后。当读取的数据为32位的长整型或浮点数时,要搭配第一个X和第二个X配置读取数据的字节顺序。
      以长整型为例:
      设备传送的32位整数(即四个字节):12H 34H 56H 78H。
      当XX值为00时,赋值给变量的数据为56781234H(十进制数为1450709556);
      当XX值为01时,赋值给变量的数据为12345678H(十进制数为305419896);
      当XX值为10时,赋值给变量的数据为78563412H(十进制数为2018915346);
      当XX值为11时,赋值给变量的数据为34127856H(十进制数为873625686)。
      第三,写单个寄存器时所使用功能码的选择:
      第三个X:X值为0时,使用06(06H)号功能码向设备写入单字整数数据;X值为1时,使用16(10H)号功能码像设备写入单字整数数据。
      例如:上位机要将设备地址为2,寄存器地址为5的16位寄存器设置为18(12H):
      当X值为0时,上位机发送的命令为:02 06 00 05 00 12 19 F5;
      第一个字节:02,表示设备地址;
      第二个字节:06,为功能码字节,06号功能码的作用为预置单个16位寄存器;
      第三第四个字节:0005,表示的是上位机发送命令所预置的寄存器的地址;
      第五第六个字节:0012H,表示上位机要将地址为5的16位寄存器设置为18(12H);
      第七第八个字节:19 F5,为CRC校验字节。
      当X值为1时,上位机发送的命令为:02 10 00 05 00 01 02 00 12 70 D3。
      第一个字节:02,表示设备地址;
      第二个字节:10H(十进制为16),为功能码字节;
      第三第四个字节:0005,表示的是上位机发送命令所预置的多个寄存器的起始地址为0005H;
      第五第六个字节:0001,表示上位机要进行设置的寄存器个数;
      第七个字节:02,表示后面跟着的2个字节数据是要预置到指定寄存器中去的;
      紧跟在第七个字节后的两个字节便是要预置到指定寄存器中的数据了;
      最后两个字节:9C08,为CRC校验字节。
      当初始化字为空或者三个X值都为0时,世纪星采用原版的Modbus驱动解析数据的方式进行存取数据。因此用户在使用Modbus驱动进行通信时,可以暂时不设置初始化字,当取出的数据与实际的数据相差较大时,再参考这篇文章进行调试,或者可直接联系我们世纪星的技术支持人员帮助您调试。
      到此,关于Modbus的内容先暂告一段落,谢谢您的关注。

  • 企业介绍
北京世纪长秋科技有限公司是从事工业自动化软件研发的高新技术企业,提供软件开发、销售、服务及工业自动化系统集成等整套服务,以创新为本的理念,为用户提供量身定做的解决方案。 我们的团队由充满创新活力、综合素质高的业内精英组成,拥有经…  更多>>
  • 产品分类
  • 联系方式

北京世纪长秋科技有限公司

联系人:徐向农

地址:北京市顺义区空港工业区B区裕东路7号

邮编:100029

电话:010-84645656

传真:010-84646515

公司网址:http://www.chncla.com

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件:
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 王工 在2023/10/17 10:43:00留言
  • 留言类型:得到贵公司产品的价格信息,
  • 详细留言:买软件,系统一些的东西,联系您这边一直联系不上
  • 郑文瑞 在2022/8/8 13:14:00留言
  • 留言类型:得到贵公司产品的价格信息,贵公司产品销售人员联系我,
  • 详细留言:需要组态软件
  • 崔文涛 在2022/4/14 14:14:00留言
  • 留言类型:我想得到贵公司产品的价格信息,
  • 详细留言:得到贵公司产品详细资料,得到贵公司产品的价格信息,
  • 马成亮 在2021/5/23 10:32:00留言
  • 留言类型:得到贵公司产品详细资料,得到贵公司产品的价格信息,
  • 详细留言:组态软件
  • 方雪峰 在2021/4/13 16:22:00留言
  • 留言类型:得到贵公司产品详细资料,
  • 详细留言:我是一名大四学生,无机非金属材料专业,毕业设计为混凝土搅拌站的设计 希望贵公司能提供一些生产资料进行学习借鉴,祝贵公司生意兴隆
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈