WinCCV7中如何⽣成操作员的操作记录
b. 对于操作可选图形WinCC 对象,其属性中没有“操作员输⼊消息”选项,例如:对于按钮的操作等。c. 在报警控件中对于消息的操作,例如确认锁定/释放消息等。1.1如何⽤户对画⾯对象的操作
如上图中,通过按钮PIC1切换画⾯。如果需要限定某些操作员不能切换画⾯,就可以在按钮属性“其他”的“授权”中指定操作此对象所需要的权限。然后,在“⽤户管理器”中创建新⽤户,并分配相应权限即可。这样,如果没有⽤户登陆,或登陆⽤户没有按钮预先定义的授权,则⽆法操作按钮。
需要注意的是,在“⽤户管理器”中列出的1--17号权限的名称,仅是权限编号的别名⽽已,没有任何实际的功能。例如,画⾯中按钮1需要1号权限,按钮2需要2号权限…….按钮17需要17号权限;这样,只要⽤户管理器中的⽤户分配了相应的权限编号,如1、3、13号权限,那么这个⽤户只能操作1、3、13号按钮,其他按钮则⽆法操作。在按钮的“事件”中插⼊以下脚本可以弹出⽤户登陆的对话框。#pragma code(\"useadmin.dll\")#include \"pwrt_api.h\"#pragma code()
PWRTLogin('1'); //登陆C脚本
在按钮的“事件”中插⼊以下脚本可以注销当前登陆的⽤户。
#pragma code(\"useadmin.dll\")#include \"pwrt_api.h\"#pragma code()
PWRTLogout(); //注销C脚本
也可以在项⽬属性中,为⽤户登陆的对话框分配热键。
1.2 记录操作员登陆/注销的消息
在报警记录中,“⼯具”⾥“WinCC系统消息”,创建系统消息。
在画⾯中添加WinCC Alarm Control控件,“消息块”中增加勾选…计算机名?和…⽤户名?。并添加到“消息列表”中的“选定的消息块”。
如下图过滤消息编号1008003到1008005之间的系统消息。
这样,通过“长期归档列表”,在运⾏系统中就可以查询⽤户登陆/注销的系统消息。
2.操作员输⼊消息的组态⽅法
2.1 “图形编辑器”中相应对象的属性中有“操作员输⼊消息”选项的对象
可选择激活“图形编辑器”中相应对象的“操作员输⼊消息”属性,以控制某些对象,例如,在I/O 域中输⼊数值,⽂本列表中选择⽂本等。这可通过设置“操作员输⼊消息”属性来完成,如图2-1。
注意:该消息的结构不能进⾏编辑。操作员输⼊消息的消息号为“12508141”。操作员输⼊消息包含过程值块 2 中的操作前的值(旧值)和过程值块 3 中修改后的值(新值)。
图2-1
“操作员激活报表”属性指操作员是否记录操作理由。操作员活动报表在消息系统中归档。操作员输⼊的理由在长期归档列表中作为操作员输⼊消息的注释显⽰。
“操作员输⼊消息”属性指在操作之后是否⽣成编号为12508141的系统消息。如果“操作员输⼊消息”属性已设置为“是”,则在操作时⽣成⼀个消息,并将其发送⾄消息系统进⾏归档。例如,使⽤消息系统,可在消息⾏中输出消息。
为了使操作员在操作完成之后可输⼊操作理由,必须启⽤“操作员激活报表”属性。操作员输⼊的理由在长期归档列表中作为操作员输⼊消息的注释显⽰。
图2-2
为了更直观在报警控件⾥查看此类消息,可在OS项⽬编辑器中作以下设置并“确定”。
在报警控件中添加“消息列表”,并设置过滤条件。
这样,在报警控件中可以直观的查看操作员修改数值的消息。
如果⽤户登陆后修改了数值,消息内容“新值/旧值”的前⾯会增加操作的⽤户名称。
2.2 “图形编辑器”中相应对象的属性中没有“操作员输⼊消息”选项的对象
对于操作可选图形WinCC 对象,可以将您⾃⼰的操作员消息组态为 C 动作或VBS 动作。执⾏各⾃的 C 动作或者VBS动作作为对操作事件的反应。例如,在这种情况下,操作事件可以是⿏标单击WinCC 对象,例如对按钮操作。使⽤“报警”功能组中“GCreateMyOperationMsg”功能组态您⾃⼰的操作员输⼊消息,下⾯举例对此函数进⾏简单说明。
int GCreateMyOperationMsg(DWORD dwFlags, DWORD dwMsgNum, char* lpszPictureName, char* lpszObjectName,DWORD dwMyTextID, double doValueOld, double doValueNew, char* pszComment)参数的简单介绍
dwFlags FLAG_COMMENT_PARAMETER 0x00000001 为操作员输⼊消息添加固定的注释,在pszComment中添加相应的⽂本FLAG_COMMENT_DIALOG
0x00000003在对对象进⾏操作时弹出对话框,在对话框中为其添加注释
dwMsgNum⽣成的操作员输⼊消息的消息号,需要预先创建pszPictureName需要⽣成操作员输⼊消息对象所在的画⾯lpszObjectName在操作员消息⽣成时,需要在消息中记录的变量。
doValueOld lpszObjectName组态的变量在消息⽣成之前的数值,注意:函数⽆法⾃动计算此数值,需要利⽤GetTagvalue等函数⾃⼰提取。
doValueNew lpszObjectName组态的变量在消息⽣成之后的数值,函数⽆法⾃动计算此数值,需要利⽤GetTagvalue等函数⾃⼰提取。
pszComment在FLAG_COMMENT_DIALOG 0x00000001 时,在此参数中添加相应⽂本。注意:
要预先创建编号为“11”的报警消息;消息类别为:系统⽆需确认;类型为:操作员输⼊消息;
在“消息⽂本”中输⼊需要显⽰的报警提⽰信息;其他参数保持默认值即可。
实例:按钮的功能为在对变量做加法计算后,保留结果,同时记录操作员输⼊的消息,并在报警控件的系统块的注释列中(其对应报警控件⼯具栏⾥输⼊或查询的图标
为)添加脚本中的⽂本“changed”。下图为在按钮的事件上添加的脚本。
更进⼀步的详细设置,可以在WInCC V7帮助中Search:GCreateMyOperationMsg对于V6版本请参考以下链接:243253812.3 对于消息操作,⽣成⼀条操作员输⼊消息
例如确认锁定/释放消息,操作员输⼊消息将在WinCC 报警记录中进⾏组态。为此必须在报警记录编辑器中创建WinCC 系统消息。
在“操作员输⼊消息”选项卡上的WinCC 报警控件中,激活操作消息的触发事件,如下图所⽰。也可在此处组态操作员输⼊消息本⾝。在WinCC V7 之前,在“消息列表”选项卡上的WinCC 报警控件中,使⽤“操作员输⼊消息”按钮激活操作员输⼊消息的触发事件。为了显⽰或输⼊对应的操作员输⼊消息的注释,可使⽤“注释”按钮在长期归档列表中打开对话框。在报警控件中将“注释”系统块插⼊消息⾏时,此消息块指⽰此消息有注释。