SMART ModbusTcp和Modbus Tool ModbusSlave的实验

已锁定

水煮花生

  • 帖子

    285
  • 精华

    4
  • 被关注

    8

论坛等级:侠圣

注册时间:2011-04-14

钻石 钻石 如何晋级?

SMART ModbusTcp和Modbus Tool ModbusSlave的实验

2335

8

2023-09-19 14:06:27

事情起因是PLC和需要一台设备对接,可以配PN或者modbusTcp,众所周知的原因,首选是MbTcp,设备还没定,先做了一个简单的测试。

一台SR60 V2.04 ,一台电脑, Modbus Tool   ModbusSlave 7.4.4.1654 x64。

测试一:读一个寄存器

用库指令MBUS_CLIENT编程,利用指令输出完成信号触发下一次发送,

两次发送间隔时间约32ms左右.


MBUS_CLIENT不支持功能码23(读/写多个寄存器),一次读写交换要经过两次指令,所以下面测试用库TCP OUC指令。


测试二,读一个寄存器,用库TCP OUC指令,TCPconnect / TCPsend  /TCPrecv。利用TCPrecv指令输出完成信号触发下一次 TCPsend。

两次发送间隔时间32ms左右。


测试三,读5个寄存器/写5个寄存器,用库TCP OUC指令,TCPconnect / TCPsend  /TCPrecv。利用TCPrecv指令输出完成信号触发下一次 TCPsend。即收完后再发。

两次发送间隔时间32ms左右。


测试四,因为全双工通信,SEND触发改成利用TCPsend指令输出完成信号触发下一次 TCPsend。即发完经后再发。

两次发送间隔时间2ms左右。但是TCPrecv接收,会出现把两次信息当成一次接收。接收缓冲区从起始地址开始出现两条消息,同时经过短时运行,发送阻塞,接收还在持续一段时间。程序中每次发送MBAP中的传输标志自加1,明显可见发送区的传输标志比接收区的传输标志大很多。


测试五,还是利用TCPsend指令输出完成信号触发下一次 TCPsend。但发完后,经过若干个PLC扫描周期后再发。周期数从100逐渐减少,当减少到45时,发送间隔约为34~37ms。发收正常。

当周期数减少到35时,偶尔出现两条信息,减少到35,发送间隔时间约27ms左右,出现堵塞,发送区和接受区的传输标志出现偏差,即时调整周期数到32767,相当于短时停止发送,接收区继续进行。在下一次发送前,接收区传输标志和发送区相比,有时一致,有时候差1或2,可能是出现丢包吧。


请教,

一,上述这样的现象, 是因为电脑上 的Modbus Tool   ModbusSlave接收阻塞,还是因为PLC接收阻塞引起电脑的阻塞?

二,200smart PLC 的modbusTCP的一次收发周期一般在多少毫秒?

smart程序如附件

ModbusTcp_OUC 0.0.zip


SMART ModbusTcp和Modbus Tool ModbusSlave的实验 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8974条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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