工控编程吧
标题:
wincc报警记录使用过程值块问题!
[打印本页]
作者:
baikhgmv
时间:
2016-9-1 23:39
标题:
wincc报警记录使用过程值块问题!
wincc报警记录使用过程值块问题!
我碰到了一种情况,例子如下(不是RSE):
在OB86中对扩展机架进行故障判断
1号机架发生故障,哪么对一个BOOL量给1,同时把OB86临时区的IM逻辑基址给一个整数变量,由WINCC中报警控件显示出来。
现有一个问题,当这个故障状态BOOL量上升沿发生时,触发报警控件中条目产生(逻辑基址是通过过程值块以@5%d@加文本的形式表达),但是逻辑基址会显示上升沿发生前的值。
1,先有逻辑基址2008故障,如果再出现2012故障,报警会记录成,“IM逻辑基址2008,编号为3的扩展机架故障”。
2,如果再次出现2004故障,报警会记录成,“IM逻辑基址2012,编号为1的扩展机架故障”。
它总是会记录之前的值,而不是当前值???
-------------把BOOL信号做个延时试试
感觉数据有延迟导致的,我用报警记录做记录变频器故障代码功能,基本上故障来的时候都不显示故障代码,然后当你故障复位的时候,就能显示出来了,不过我没试,等有机会试试再来回复
记得报警记录里面也有延时功能...
----------------报警记录里,里能对模拟量延时!
----------------我的意思在PLC里面做个延时
当信号来的时候,使用定时器里面的脉冲功能进行延时,不是在WINCC里面
-----------------1,在PLC里做延时,肯定行!
2,我昨天做了下试验,我把整个DB块打包,采用原始数据的方法传到WINCC。再用脚本解析,读取数据。读取数据后,肯定把过程值写入内部变量放在前面,把写BOOL量放在后面。因为写内部变量是即时的,再触发报警时,过程值块依然会显示过程值之前的值。两次内部变量写入间隔时间很短,达不到延时的效果,使用sleep又不靠谱。采用增加1s周期,再累加整数,比较后延时,肯定行。
3,我猜,报警控件和外界交换数据时,使能信号与过程块信号来自不同的缓冲区,它们之间刷新速度不一至,导致这种情况的发生。
4,使用wincc odk中的MSRTCreateMsgInstance能完美解决问题。
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4