技术论坛

 一款不错的wincc免费报警控件 进行也一下升级修正了几个BUG

返回主题列表
作者 主题
逐渐变晕
侠客

经验值:787
发帖数:136
精华帖:2
楼主    2015-09-06 14:41:52
主题:一款不错的wincc免费报警控件 进行也一下升级修正了几个BUG 精华帖 

修正记录:

①   、升级支持WINCC V7.2  7.3

②   、2015年9月6日 修复了系统时间格式为:2015/09/06,报警无法显示的bug


控件下载地址:下载 http://pan.baidu.com/s/1c02loHy

很早以前就想开发一个wincc报警框控件(WinccAlarmView),因为自带的wincc放到主画面上面以表格形式,不是很直观,这个Wincc报警框控件(WinccAlarmView)是基于Wincc里面的报警记录,样式是一个警告对话框,只要配置好wincc的报警记录,就能显示相应的报警。使用方法请参考《wincc报警框控件使用说明》http://wenku.baidu.com/view/e5b2a588a58da0116c1749ea.html 
开发后的效果如下




以前做报警比较重要的报警希望能显示在主界面上都是如下图所示:
 图1
这样要做很多报警框,而且还很占空间,比较浪费时间。所以想开发一个基于wincc报警记录控件,WinCCAlarmView控件(后面提到的此控件均指WinCCAlarmView)是基于. netframework3.5开发的.net控件,所以它适用的WinCC版本,为WinCC7.0及以上。
此控件基于Wincc的报警记录,所以只要配置好WinCC的报警记录,此控件自动会显示相应的报警,报警消失或者报警确认此控件就会隐藏,不会显示报警框。


期间也碰到了一些技术问题:
1、Wincc7.0 使用西门子提供的查询报警语句(具体查询语句参考《WINCC数据开放性》),查询出来的中文报警消息文本均为:“?????”,(wincc6.2不存在这个情况,7.2开始是所谓真正意义上的中文版,所以不存在该情况)

解决办法:参考WINCC 7.0 报警记录查询出现问号“????”解决方案http://www.hackhome.net/post/Wincc%E6%8A%A5%E8%AD%A6%E8%AE%B0%E5%BD%95%E4%B9%B1%E7%A0%81%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html
2、Wincc无论变量、变量记录还是报警记录在数据库中都是以ISO-8859-1编码储存的,所以里面中文都是以乱码形式的存在比如:1y3ì?μ 像这样的。
解决方法:参考Wincc查询中乱码的解决方案http://www.hackhome.net/post/12.html
3、取得WinCC的激活时间
假设Wincc报警记录有一个编号为1的报警记录,做过Wincc报警查询的工程师,都可能知道当这一个报警到来,Wincc会在数据库中插入字段MsgNr=1(相当于编号1)、字段State=1记录,如果你查询到这么一条记录就说明发生了某个报警,如果这条报警记录后面还有MsgNr=1、State=2的记录说明这个报警变量已经停止报警(如果一个布尔变量值为1为报警,这时候说明变量值为0,不在报警),或者这条报警记录后面还有MsgNr=1、State=3这说明这条报警记录已经经过操作人员的确认了,同样不必要报警。
但是现在却存在这么一种情况:比如在Wincc运行期间来了一个报警,在报警没有消失,也没有确认期间,Wincc不知道什么原因取消了激活,在这个取消激活期间,这个报警消失了(比如变量值变0了),然后你激活Wincc,查询报警记录,发现报警记录里面只要State=1的报警记录,后面并没有State=2或者State=3的变量消失记录,变量确认记录,这是程序会认为这个报警还存在,就会继续报警,但是实际上这个变量值已经为0,不需要报警,后来发现,Wincc报警记录查询的时间必须是Wincc最后一次激活时间开始,才会避免这个不必要的错误,那怎么去的Wincc的激活时间呢?因为西门子也没提供激活时间的接口(或许是我不知道),我在WinCC数据库中查找了很久也没发现记录激活时间的字段,没办法只能选个折中的方法,反正都是我这个控件也是查询报警记录的,Wincc在激活时会加载%_%_ALG_%_ 格式的数据库文件(%为任意字符),我就把这个数据库加载时间作为wincc的激活时间,当然如果启动报警记录运行系统是不会加载这些数据库的(因为这个是报警控件,前提就是要启动报警记录运行系统),所以这个问题也不是问题了。

遇到的典型问题就以上几个了,希望能这些杂乱的文字能对你有帮助。

控件下载地址:下载  http://pan.baidu.com/s/1c02loHy

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