是这样的,两台wincc单用户模式。因为需要每小时读取一次PLC的一些数据的一小时累计值并且给下位发送一个清零指令。
两台的时间,一个快一个慢的话,慢的发送清零指令,才能保证两台机子都读取到累计值。
可是问题是:
1、有时候机子慢的会时间快于快的,一发送清零指令,另一台不发送清零指令的机子就读取到的是错误的值而不是累计值。
2、由于时间特意错开几分钟,导致报表中数据无法完全对应。
两台单用户的机子可以建立冗余吗?还是怎么解决这个问题?(在不采购其他付费软件的前提下,项目原因,这个目前没法采购了再)
不知道说的清楚不,谢谢了。
问题补充:
西门子问答怎么回复别人的回答啊。。。
感谢两位朋友的解答,可是,一旦一台机子停止运行,就一直不会清零了吧这样?
谢谢了。
最佳答案
楼上的方法是一个
方法2:两个上位机分别发送清零指令(两个bool量分别置位,分别对应plc中的不同地址),plc收到两个才清零,并把清零指令复位
方法三:上位机通过opc通讯,需要配置dcom,电脑A读取累计值,电脑B不取plc中的数据,取电脑A中的数据。
以上方法都不需要增加额外的费用。
补充回答:上面的方法是这样的,如果你的一个电脑停止运行也要清零的话,可以加一个通讯判断:两个pc分别做一个周期变化的数,plc中判断这两个数是否在变化,如果在变化,说明通讯正常,取两个电脑的清零指令来清零,如果哪个的不变化了,则直接用另一个变化的pc的清零指令来清零。
周期变化:你可以在全局脚本中做累加,小于1000则自动加1,大于1000清零重新累加(防止数据溢出用的)。然后plc中用一个变量保存 pc传来的这个变化的数,2s比较一次,如果当前周期的值和上一个周期的值不同,说明通讯正常,否则不正常,比较结束后把当前值保存下来,用于下一个周期的比较。
提问者对于答案的评价:
完美解答,谢谢!
也谢谢楼上的。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202801.html