回复:S7-200主机之间MODBUS通讯的几点疑问,求教

不欲勿施

  • 帖子

    835
  • 精华

    16
  • 被关注

    387

论坛等级:奇侠

注册时间:2009-03-27

钻石 钻石 如何晋级?

发布于 2016-10-25 21:42:20

44楼

展开查看
以下是引用yanxiao在2016-10-24 21:34:12的发言 >39楼

虽然两个端口都叫SMB2,但是能智能识别。在PORT0的中断里读SMB2,是PORT0的;在PORT1的中断里读,SMB2是PORT1的。


而且,库程序使用的自由口收发指令,不太可能是用SMB2,这个效率太低了。使用XMT、RCV是优选的。

以下是引用wlmissyou在2016-10-24 21:15:44的发言 >37楼:找到问题的原因了。...

引用37楼详细内容:

找到问题的原因了。,端口上的报文接收都要用到SMB2这个系统寄存器。双口MODBUS在原生西门子S7-200PLC的CPU上是不可能实现的。

以下是引用kkme在2016-10-24 18:56:40的发言 >:Port0 用profibus...

引用详细内容:

Port0 用profibus电缆加总线连接器和一个PLC连接(这个PLC模拟上位机),不能通讯。我用了MODSCAN也显示通讯超时。。。

查看了一下S7-200的,系统手册467页,也就是附录D特殊存储器(SM)标志位,清楚写到:SMB2为自由端口接收字符缓冲区;

SMB2和SMB3由0口和1口共用。当0口接收到字符并使得与该事件(中断事件8)相连的中断程序

执行时,SMB2包含0口接收到的字符,而SMB3包含该字符的校验状态。当1口接收到字符并使得

与该事件(中断事件25)相连的中断程序执行时,SMB2包含1口接收到的字符,而SMB3包含该字

符的校验状态。

那么modbus库程序是不是使用自由口模式实现的?很负责的说是的。

Micro 'n Powerv1.8中modbus通信页中,写到:通过 S7-200 CPU 通信口的自由口模式实现 Modbus 通信协议

我也查看过库的程序,就是用自由口的发送和接收指令。

再来看楼主的设计思想,他想把PLC的两个口都用modbus协议,试想当一个口正在使用smb2用来接收数据,另外一口同时也要接收数据,那么PLC必然要将第二个口接收的数据丢掉,这样就造成了楼主modscan的超时。

这里楼主不如改用PPI通信吧

13478405725
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33262条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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