说说西门子200smart modbus自由口通讯的那些事6

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9108
  • 精华

    157
  • 被关注

    1473

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

说说西门子200smart modbus自由口通讯的那些事6

6742

14

2016-12-03 09:19:33

star star star

                            说说西门子200smart modbus自由口通讯的那些事6

   上文说到采用起始符、结束符编写的简单自由口通讯的测试程序,并用串口调试软件监控程序运行情况。又一次联想起了乒乓球理论,就是打球时必须按比赛规则进行,不然将会受到处罚的。通讯的理论也一样需要主、从双方来遵守通讯协议,违背了协议规则,plc是不会按要求正确执行的。

   假设,我简单地编一个通讯程序,仍然用起始符和结束符作为接收指令的判断条件。这次我用一个SM0.5秒脉冲同时触发发送指令XMT和接收指令RCV,结果又会如何呢?

程序:

主程序:


在数据块随便写入一串数据,图示:由VB1开始的一串数据5个。


编译、保存,并下载到plc,打开串口调试软件,在发送区编写:3A/11/12/13/14/15/0A数据,图示:


监控程序发现发送指令及接收指令有“红色”框显示,说明程序存在问题,图示:


出现发送、接收指令红色边框的原因:

1)  在调用发送指令未发送完成时,再次调用发送指令

2)  在调用接收指令未接收完成时,再次调用接收指令

3)  在调用发送指令未发送完成时,再次调用接收指令

4)  在调用接收指令未接收完成时,再次调用发送指令

根据报警可能的原因,调用发送或者接收指令只能是用沿触发;中断子程序中调用,且不允许同时多个指令触发调用。

检查这个报警信息的方法:

1)  点击工具栏中的PLC按钮

2)  在弹出的PLC信息窗口中点击cpu(CR60)标签

3)  查看错误信息:“在端口0中,同时执行XMT/RCV指令,在OB1的网络2中”,属于非致命性错误!


监控串口调试软件,能够发送和接收定义的数据,但数据存在可能的错误,图示:


由于指令调用时的错误,数据发生了回传错误。改为分别执行由上升沿和下降沿分别触发,结果会如何?重新编辑程序后,编译、保存下载到cpu并监控程序,图示:


数据被正确的回传了。


由于实际应用自由口通讯,难以避免接收到通讯线路的干扰、通讯连接的接触性问题及指令调用的合理性等问题,使发送或者接收的数据出错、程序进入死循环。这样,在实际应用自由口通讯时,需要具备一种检测手段,校验程序是检验数据出错其中的一种方法,一般常用的校验方式有CRC、LRC校验法。当接收到的数据出现错误时,通过校验来确认这串数据的正确性,如果出现错误,则拒绝接收错误信息,同时要求重新发送数据。另一种出错的原因是,当主站发送数据请求后,从站由于自身故障或通讯被迫中断,使主站在接收指令中出现程序回传的死循环,这就需要利用消息定时器强制接收指令的中断。连续、、、、、、


说说西门子200smart modbus自由口通讯的那些事6 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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