搬家第三天-64.Wincc V7.3操作员记录生成方法3- C脚本记录按钮控件的操作员记录

前面博客介绍的是输入输出域等控件通过设置“操作员消息”属性为“是”从而在报警空间中做操作记录,但并非所有Wincc控件有这个属性,比如按钮。按钮是Wincc中使用率非常高的控件,这个控件经常用作重要操作,我们也非常希望可以知道什么时间点击过这个按钮,本文通过c脚本介绍如何实现按钮的操作记录。

     在画面上放置一个按钮,名字修改成btn1,假设这个按钮的作用是“启动水泵”,那么我们在按钮的鼠标点击事件中加入c脚本(本例重点介绍如何记录操作员消息,启动水泵功能不在本例讨论范围)。

int ret;
ret=GCreateMyOperationMsg(1,1100,lpszPictureName,lpszObjectName,83,0,1,"操作员按下了btn1按钮"); 

 

这里面使用了一个wincc自带的函数GCreateMyOperationMsg,这个函数放置在“标准函数”-“Alarm”函数组里面。它的定义是这样子的:

int GCreateMyOperationMsg( DWORD dwFlags, DWORD dwMsgNum, char* lpszPictureName, char* lpszObjectName, DWORD dwMyTextID, double doValueOld, double doValueNew, char* pszComment)

它的参数如下:

dwFlags 这个参数有3种数值:数值为1表示“操作员输入”(也即是点击按钮这个动作)添加固定的注释,而不会在运行时点击按钮弹出一个对话框让操作员输入注释,这个可以省去麻烦,本例使用的就是这个方法;数值为3表示运行的时候点击按钮会弹出对话框让操作员输入注释,不推荐这样;数值为100表示使用dwMyTextID指定的文本快中的文本。

dwMsgNum 操作员输入信息的消息号,需要预先创建。在变量记录-消息表格中,添加一个未使用的消息号,这个例子输入的是1100,消息等级为“系统,无确认”,消息类型为“操作员输入信息”,消息文本为“操作员启动水泵”,其他默认设置。

lpszPictureName 为要引用操作员消息的画面,因为本例就是在当前画面,所以不需要设置,使用默认即可。

lpszObjectName 为引用操作员消息的控件,因为本例就是在当前控件的事件中写脚本,使用默认名称即可。

dwMyTextID 文本库的ID,为消息文本的多语言显示,如果不是那种需要多语言切换的项目,不需要实际设置文本库的其他语言文本。打开文本库,记下该按钮的号码抄过来就是了。

doValueOld和doValueNew 为按钮事件的新值和旧数值,本例设置的是1和0,这个数字可以随便设置。实际使用时,如果勾选了显示“过程值2”和“过程值3”,将显示旧值和新值。

pszComment 为预设值的注释。

 

保存之后运行,当点击按钮之后,再通过报警控件的短期归档或者长期归档,就可以查询到按钮操作记录了。

 

posted @ 2021-01-31 12:06  来自金沙江的小鱼  阅读(4837)  评论(0编辑  收藏  举报