WinCC如何实现操作员记录 下载本文

WinCC如何实现操作员记录——用脚本记录操作信息[工控老鬼]

对于WinCC 图形编辑器中相应对象的属性中有“操作员输入消息”选项的对象,可选择激活“图形编辑器”中相应对象的“操作员输入消息”属性,以记录对该对象关联变量值的变化,支持该功能的包括以下对象(以 WinCC V7.0为例):

(1) I/O Field (2) Test List (3) Combobox (4) List Box

(5) Option Group (6) Check Box

那么,如果要对其他对象(如按钮)的操作进行操作记录,该如何处理呢? 对于操作可选图形 WinCC 对象,可以将您自己的操作员消息组态为 C 动作或 VBS 动作。 (1)执行各自的 C 动作作为对操作事件的反应。 例如,在这种情况下,操作事件可以是鼠标单击 WinCC 对象。 使用“报警”功能组中的“GCreateMyOperationMsg”功能组态您自己的操作员输入消息。

(2)执行各自的 VBS 动作作为对操作事件的反应。 例如,在这种情况下,操作事件可以是鼠标单击 WinCC 对象。 使用“HMIRuntime.Alarms”对象组态您自己的操作消息。 这里以C 函数为例介绍一下详细信息:

int GCreateMyOperationMsg(DWORD dwFlags, DWORD dwMsgNum, char* lpszPictureName, char* lpszObjectName, DWORD dwMyTextID, double doValueOld, double doValueNew, char* pszComment) 参数的简单介绍

dwFlags FLAG_COMMENT_PARAMETER 0x00000001 为操作员输入消息添加固定的注释,而不会弹出注释输入对话框,此时指向Comment的指针必须为空;在pszComment中添加相应的文本FLAG_COMMENT_DIALOG 0x00000003在对对象进行操作时弹出对话框,在对话框中为其添加注释;

FLAG_TEXTID_PARAMETER 0x00000100 The text ID of a text from the TextLibrary is provided as the accompanying process value of the message.

dwMsgNum 生成的操作员输入消息的消息号,需要预先创建 pszPictureName 需要生成操作员输入消息对象所在的画面

lpszObjectName 在操作员消息生成时,需要在消息中记录的变量。 dwMyTextID 来自文本库的文本ID。用于消息文本的多语言显示。

当\被设置,文本ID通过过程块8被显示出来,来自消息文本文本的基于语言的文本被显示在消息中,为此,必须在消息文本块中输入格式\。 doValueOld lpszObjectName组态的变量在消息生成之前的数值,注意:函数无法自动计算此数值,需要利用GetTagvalue等函数自己提取。

doValueNew lpszObjectName组态的变量在消息生成之后的数值,函数无法自动计算此数值,需要利用GetTagvalue等函数自己提取。

pszComment 当FLAG_COMMENT_DIALOG被设置为0x00000001 时,本参数文

本被作为注释直接记录。FLAG_COMMENT_DIALOG被设置为其他参数时,pszComment 可设置为空。

组态步骤:

(1) 要预先创建编号为“11”的报警消息; 消息类别为:系统无需确认; 类型为:操作员输入消息;

在“消息文本”中输入需要显示的报警提示信息;其他参数保持默认值即可。

(2)组态按钮的C编程,实现点击按钮完成两个变量值相加,并记录被加变量的旧值与新值:

(3) 可以通过报警空间中的短期归档或长期归档列表查看归档信息: