wincc与plc如何判断连接wincc与plc通过Modbus TCP\IP 连接的,plc停电后通讯中断,wincc运行界面的数据虽然显示中断,但是数据其实还是中断之前的数据,并不为零。有没有什么方法,在plc掉电之后判断通讯中断?
---------有没有人遇到过这种问题?现在没有思路,不知道怎么试
---------plc是西门子的吗?如果是,组态中设置memory clock字节,然后把这个字节读到wincc中,wincc中判断这个字节的值是否变化,如果两个周期中读到的值没有变化,说明通讯中断
如果不是西门子的plc,那么做一个周期自加的变量(为了防止溢出可以设置大于2000后清零重新自加),然后传到wincc中,判断方法和上面的一样。
----------嗯,明天到现场试试你的方法,我提问不太全面,还是你回答的周到。感谢。。
---------找一个长“1‘点进行判断即可
----------在PLC里做一个,上电后即为1的变量,在组态界面,组态这个变量的颜色,通过颜色判断是否连接
----------强烈建议2楼的(心跳检测法吧)拜读了。突然记起一次 SIEMENS江苏这边需要一个技术支持,电话沟通中 也问了 我一个 判断2个PLC之间通讯 ,是否正常的判断方法,结果 我一紧张 给了一个复杂的解决方案(崩溃,前不久还做了个 触摸屏和S7 400 5H的CPU通信的问题,就是利用SIEMENS的CPU的心跳信号,来判断CPU是否停机,然后 执行ChangeConnection函数了)。
其实PLC中也可以利用同样方法 判断某个上位机与PLC连接是否中断,比如在WINCC中 建立全局脚本,比如每3秒执行一次,调用个随机函数,将值写入PLC,在PLC中编程判断。
L PCWrite.LifeSign//WINCC中写入
L CopyofLIfeSign
<> I
S ConnectionOk
R ConnectionBreak
L PCWrite.LifeSign
T CopyofLIfeSign
AN ConnectionOk
L S5T#5S
SD T1
A T1
S ConnectionBreak
A ConnectionOk
R ConnectionOk
----------有就是简单的方法,就是使用PLC的脉冲来改变WINCC的一个画面的颜色,比如一个方块的颜色变化即可。这样只要周期变化,即可证明通讯正常
--------最终解决方案:在绑定变量时,左下角默认的是不评估状态值,点选其它两个中的任意一个就行了。
每隔几秒往PLC里发送数据不行。。
原来我写的脚本,一秒读一次PLC的数据,但是一断电,wincc中的数据就不改变,也不清零。保存掉电之前的数据,导致画面显示错误。
-------有一个非常直接的方法, wincc的画面编辑器里, 快速向导里面, 有一个冗余通讯的选项卡, 根据提示建立一个冗余通讯,冗余通讯的参数选择和原参数一样的参数。 然后你就会在全局脚本里发现多了一个前缀为@的脚本,里面用有个宏定义TAG_2, 这个变量就可以判断通讯状态,如果该变量的值为0, 就是通讯有故障。如果为1, 就是通讯正常。 不用再PLC侧做任何工作。
wincc与plc如何判断连接
wincc与plc如何判断连接
wincc与plc如何判断连接
--------貌似不错,但是对于新手来说,还是不太清楚具体如何操作!!
|