自由口和modbus通信

已锁定

七色阳光

  • 帖子

    981
  • 精华

    5
  • 被关注

    8

论坛等级:侠圣

注册时间:2007-12-13

普通 普通 如何晋级?

自由口和modbus通信

3442

12

2010-03-11 11:09:56

modbus通信中最大的缺点是通信的时间太长,主要是在对数据的校验上,crc校验码的计数时间是最浪费plc时间的。所以在数据量较大时从站的响应时间就会很慢。这是modbus协议自身的问题很难通过程序解决。在对数据质量要求不高的情况下也可通过自己编写程序减少crc校验时间或不做crc校验。

实现从站:
由于从站是对主站的响应,发送的数据往往是不一致的,因此crc校验的值也是不相同的,因此实现从站功能最好还是使用西门子库中的从站功能程序,可在以下网址下载西门子库的软件包:http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=S0010
要减少crc校验时间可以将主站的请求数据不做crc校验而直接采用,当然对标准的主站响应还是要计数crc校验码的,因此有时时间也不会剪短多少,尤其是主站只读数据时,而在主站写数据时,数据量又很多时时间就会剪短很多。这种做法牺牲了通信的质量。

实现主站:
主站的功能是访问从站,有读写两种功能,有时我们只需向从站读数据,要实现这种功能就无需使用库的程序,可以最小的减少plc的资源和时间。方法是首先配置端口的物理参数:波特率、数据位、停止位、奇偶校验等,这在下面的附件中自由口初始化子程序中实现。
然后是发送请求数据,在数据块中已经将发送的数据定义好并计算出crc校验码,只要使用xtm指令将定义好的数据发送出去就好了。数据发送完执行中断使能接受功能。将接受的数据转移到想要的地址。再次执行发送指令就可不断读取固定参数的数据而且不会占用太多资源。这也是牺牲了通信的质量换来的。
要实现读写两种功能,就要crc校验程序,因为每次的值不同,校验码也就不相同对于标准的从站来说这是不可缺少的。然后将每次计数的crc校验附在数据后就可以实现了,这里区别就是发送的请求是固定的还是变化的。
附件是一个简单modbus通信的例子,同样有自由口配置的部分,希望对大家在使用自由口和modbus时有用

modbus主站.rar TARGET=_blank>点击此处查看附件
自由口和modbus通信 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33779条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。