- {{item.name}}
如何判断S7通信中断并获取错误代码
- 0
- 756
如何判断S7通信中断
方法一:通过与通信伙伴方创建的心跳信号判断
本测试为:一台200 SMART(CPU1)和2台200 SMART(CPU2和CPU3)做Get/Put通信。 在Get/Put向导中填写好类型、传送大小和远程CPU的IP地址,测试程序中本地和远程CPU对应的地址为:
图1.本地和远程对应地址
向导配置完成后,在CPU1程序中用sm0.5的一个秒脉冲赋值给v100.0,做一个心跳信号。
图2.心跳信号
在伙伴方CPU2和CPU3中监控V0.0,当通信建立后V0.0应为0\1不停切换,当某一个CPU中的V0.0一直为1或者一直为0时,表明该CPU与本地CPU1的通信中断。
方式二:通过Get/Put向导中的状态字判断
Get/Put向导创建的每一个操作都会有状态字。点击左侧项目树程序块---向导中NET_EXE,可以看到每个操作对应的状态字,本测试程序中CPU2的PUT对应的状态字为VB340,CPU3的PUT对应的状态字为VB380。
图3.状态字
在状态图表中监控VB340和VB380,格式选择二进制,状态字VB340和VB380的第6位(通信已经激活标志位)正常情况下是0 1不断变换,当某一个远程通信伙伴方线路断开后,该位会一直保持为1。
如何获取S7通信的错误代码
接着上文中“方式二”的测试,状态字的低4位为错误代码,通过判断错误代码来判断通信是否已经中断,这里需要特别注意,当通信伙伴线路断开时,本地CPU并没立马收到错误代码,需在RUN---STOP—RUN切换后才能收到错误代码。错误代码(错误代码5)只会存在一个扫描周期,所以需要用上升沿来捕捉错误代码,如下图所示。
图4.错误代码的读取
剩余80%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}