回复:产品技术介绍—基于S7-400H系统CP443-1模块的Modbus/TCP通信

掠影匆匆

  • 帖子

    152
  • 精华

    39
  • 被关注

    4

论坛等级:侠士

注册时间:2008-08-12

普通 普通 如何晋级?

发布于 2011-05-16 10:44:52

38楼

quote:以下是引用依然在2011-05-14 21:16:47的发言:
一直没有时间,关键是也没有用过Modbus/TCP的通讯;只用过CP341的Modbus通讯,没能力回答楼主的问题,但还想借用宝地提问几个问题,抱个歉先。
我的问题的:
1,Modbus通讯的通讯速率一般该设置为多少比较合适?我设备设置的为57600bits/s,应该算是比较高的速率了。
replay monitoring的时间设置多长?通讯的时间该如何计算?也就是这个replay monitoring的时间和通讯超时的时间该以多少计才为合理?
2,通讯伙伴的通讯状态判断?如果有故障,该怎么判断为出了故障?故障后改如何处理?

我的设备刚开始的从站通讯段较多,但每次最长的通讯字为24WORD。但是考虑到通讯故障后的时间较长,影响通讯及时性。后来更改了通讯:即把通讯段落整合在一起,最长的一次通讯达到125word(register读规定一次最多127WORD)。这样一来,正常通讯的情况下也有数据半天反应不上来,有时会有好几秒甚至几十秒的延时!即使我把原来的通讯发送接收延时定时器加长,把replay monitoring的时间也设置到原来的两三倍,但是没有明显的改善。

希望大侠高手不吝赐教,谢谢。

1 对于Modbus通讯速率的问题,是针对于RTU(串口)来说的,一般来说肯定是速率越高越好,但是也要因设备而异,有些设备的通讯接口只能支持到一定的速率,而对于Modbus/TCP是基于以太网,因此其底层均是自适应的RJ45口,一般情况下为10/100/1000M/S,且不可设置
replay monitoring时间是针对Slave来说的,即通讯请求的响应监控时间,而通讯超时时间是针对Master来说的,即主站等待从站的响应超时监控时间,从原理上讲两者之间并没有必然的联系,但一般情况下replay monitoring时间设置要小于通讯超时响应时间,这两个参数无论对于Modbus RTU还是Modbus TCP都是存在的
2对于Modbus的通讯诊断,针对Siemens设备来说(如CP341/CP441)对于Modbus RTU来说可以根据其功能块的状态字(如FB7/8/80/81/107/108/180)等,通过故障代码来得到其故障原因,如速率不匹配,起始地址,长度等,而对于Modbus/TCP来说,由于其底层是基于TCP,因此在软件包的功能块中除了Modbus应用层的诊断外,还包含了TCP层通讯诊断,如TCP连接参数是否正确等,这里需要说明的是,这里的诊断都是"确定"的,而对于干扰等因素造成的通讯中断问题则需要用视波器等设备查看波形状态来确定
关于通讯快慢问题,首先需要了解通讯机制,对于RTU来说,由于主站和从站之间采用轮寻的通讯方式,与Profibus类似,因此一个从站的数据更新肯定是有一定的滞后,因此我们可以通过提高通讯波特率来改善,但需要说明的是,这还要取决于从站的响应速度,即一定程度上从站的"CPU"处理器能力
而对于Modbus/TCP来说,其通讯采用Client-Server的响应机制,而且基于以太网,虽然在应用层的数据封装上会占用一定的时间,但是由于给予以太网,因此这部分时间是可以忽略不计的,另外通讯延迟也在很大程度上取决于Server的并行处理能力(多线程处理),对于单线程服务器来说,其通讯延迟也是不可避免的,当然现在很多设备都是多线程处理,因此通讯速度都是很快的,需要说明的是Modbus/TCP本身的协议规范也是相对简单的,因此通讯速度是非常块的
从上面分析来看,简单的修改replay monitoring时间和超时响应时间对于改善通讯性能没有任何作用,这两个参数只能用于通讯诊断
来自西门子技术支持
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4374条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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