WinCCV7中如何能生成操作员地操作记录簿
WINCC组态过程值归档
WINCC组态过程值归档
如何组态过程值归档
引言
建立过程值归档的步骤如下:
1.创建过程值归档:创建新的过程值归档并选择要进行归档的变量。
2.组态过程值归档:通过选择存储位置等来组态过程值归档。
步骤
创建过程值归档
1.在变量记录的导航窗口中,右键单击“归档”。
从弹出式菜单中选择“归
档向导...”命令。
随后将打开“创建归档”对话框。
2.在“归档名称”下输入合适的名称。
已经选择“过程值归档”。
单击
“继续”。
3.单击“选择”以选择想要对其值进行归档的变量。
也可在创建过程值归
档之后添加其它变量。
4.单击“应用”。
新的过程值归档包含在变量记录数据窗口内。
所选择的
变量显示在表格窗口中。
组态过程值归档
1.在变量记录数据窗口中,双击要组态的过程值归档。
“过程值归档属性”
对话框打开。
2.在“常规信息”标签上输入过程值归档的名称。
如果在多用户系统上工
作,还要选择服务器。
3.在“内存位置”标签上,选择内存位置,并输入数据记录的大
小。
4.单击“确定”关闭对话框。
说明
可在变量记录导航窗口中为过程值归档定义默认设置。
于是每个新创建的过程值归档将用已经设置的参数进行预组态。
在“归档”按钮上单击鼠标右键,然后在弹出式菜单中选择“默认设置”>“过程值归档”。
Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel
Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel我们在用户归档中得到数据之后,如果想导出到excel,思路是和把MSHFGrid数据导出类似的。
网上有些文章是直接从后台数据表读取数据,本文介绍从数据归档控件导出数据。
1. 假设wincc项目已经创建了用户归档,画面上有一个用户归档控件,名字叫做UA,设置一个按钮,按钮点击事件添加以下vbs脚本Sub OnClick(ByVal Item)Dim UA,col,row,rowsDim xlapp,objsheetDim i,j,k,m,n,filenameSet UA=ScreenItems("UA")Set rows=UA.GetRowCollectionm=rows.Countn=UA.ColumnCountIf m>1 Then '如果用户归档控件有记录Set xlapp=CreateObject("Excel.Application")xlapp.visible=Falsexlapp.workbooks.addSet objsheet=xlapp.worksheets(1)For k=1 To nua.ColumnIndex=kobjsheet.cells(3,k)=ua.ColumnCaption '字段名称Nextobjsheet.cells(1,1)="XX用户归档"For i=1 To mFor j= 1 To nobjsheet.cells(i+3,j)=ua.GetRow(i).celltext(j)NextNext'以下代码处理日期时间数据格式以及表格边框线、标题合并单元格等排版objsheet.range("a1:d1").mergecells=True'objsheet.range("a1").ColumnWidth =20 '列宽度objsheet.cells(2,1)="生成时间:"objsheet.cells(2,2)=Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日"objsheet.cells(1,1).HorizontalAlignment = 3objsheet.range("a3:d" & CStr(3+m)).borders(1).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(1).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(2).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(2).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(3).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(3).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(4).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(4).weight=2'保存文件filename= "c:\" & Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日-" & Hour(Now) & "点" & Minute(Now) & "分" & Second(Now) & "秒生成用户归档.xlsx"xlapp.Activeworkbook.saveas (filename) xlapp.workbooks.closexlapp.quitMsgbox "成功导出到C:\"ElseMsgbox "用户归档没有记录"End IfEnd Sub。
WinCCV7中如何组态面板(Faceplate)
WinCC V7 中如何组态面板(Faceplate )1 概述及目的1.1 概述面板是用户在项目中作为类型而集中创建的标准化画面对象。
WinCC 将面板类型保存为fpt 文件。
然后,对于同一类设备用户可将面板类型作为面板实例插入过程画面中。
可以在图形编辑器中编辑面板实例,其操作与编辑对象选项板中的单个对象相似。
面板类型的使用减少了所需的组态工作,因为一个面板类型可在一个画面中使用多次或者在多个画面中使用,并且可通过面板类型集中更改实例。
1.2 目的本文将以一个电动阀画面对象为例进行组态以说明面板的组态过程。
要求该阀由一个多边形、两个圆形及一条直线构成;该阀主体背景颜色与电动阀开度值关联。
当开度值小于5% 时背景色为红色(表示电动阀关到位),开度值大于等于5% 且小于等于95% 时背景色为蓝色闪烁(表示电动阀正在执行开/关动作),开度值大于95% 时背景色为绿色(表示电动阀开到位)。
2 组态面板类型2.1 创建面板类型首先在WinCC 中打开画面编辑器,然后通过“文件”菜单> “新建面板类型”(图1 )或通过工具栏上的“新建面板类型”按钮(图2 )创建面板类型。
然后添加画面对象并正确填写对象名称以完成电动阀的基本对象组态,画面对象如表1 :图1图2序号对象对象名称1 多边形Val_display32 圆Val_display23 圆Val_display14 线line5 静态文本M6 静态文本title7 输入/输出域Val_position_val表1将对象进行画面排布如图3 ,然后将面板类型保存为“FAQ_val.FPT ”。
图32.2 组态对象属性面板具有两种类型的属性及事件:•类型特定属性及事件这些属性及事件只能在面板类型中更改。
类型特定的属性和事件是针对单个对象的属性和事件,其不能在面板实例中进行组态。
•实例特定属性及事件在面板实例中组态这些属性和事件。
下图显示了类型特定属性和实例特定属性在面板实例中的使用图4在面板实例中,类型特定属性的更改不会自动更新。
winccv7中如何组态面板(faceplate)
WinCC V7 中如何组态面板(Faceplate )1 概述及目的1.1 概述面板是用户在项目中作为类型而集中创建的标准化画面对象。
WinCC 将面板类型保存为 fpt 文件。
然后,对于同一类设备用户可将面板类型作为面板实例插入过程画面中。
可以在图形编辑器中编辑面板实例,其操作与编辑对象选项板中的单个对象相似。
面板类型的使用减少了所需的组态工作,因为一个面板类型可在一个画面中使用多次或者在多个画面中使用,并且可通过面板类型集中更改实例。
1.2 目的本文将以一个电动阀画面对象为例进行组态以说明面板的组态过程。
要求该阀由一个多边形、两个圆形及一条直线构成;该阀主体背景颜色与电动阀开度值关联。
当开度值小于 5% 时背景色为红色(表示电动阀关到位),开度值大于等于 5% 且小于等于 95% 时背景色为蓝色闪烁(表示电动阀正在执行开/关动作),开度值大于 95% 时背景色为绿色(表示电动阀开到位)。
2 组态面板类型创建面板类型首先在 WinCC 中打开画面编辑器,然后通过“文件”菜单> “新建面板类型”(图 1 )或通过工具栏上的“新建面板类型”按钮(图 2 )创建面板类型。
然后添加画面对象并正确填写对象名称以完成电动阀的基本对象组态,画面对象如表 1 :图 1图 2序号对象对象名称1多边形Val_display32圆Val_display23圆Val_display14线line5静态文本M6静态文本title7输入/输出域Val_position_val 表1将对象进行画面排布如图 3 ,然后将面板类型保存为“ ”。
图 3组态对象属性面板具有两种类型的属性及事件:•类型特定属性及事件这些属性及事件只能在面板类型中更改。
类型特定的属性和事件是针对单个对象的属性和事件,其不能在面板实例中进行组态。
•实例特定属性及事件在面板实例中组态这些属性和事件。
下图显示了类型特定属性和实例特定属性在面板实例中的使用图 4在面板实例中,类型特定属性的更改不会自动更新。
Wincc V7.3 操作员记录生成方法1-输入输出域的操作员记录
Wincc V7.3 操作员记录生成方法1-输入输出域的操作员记录
有时候我们希望能够记录和查询操作员在电脑上都做了哪些操作,这对于追查生产操控有重要意义。
我们最先从输入输出域开始了解。
输入输出域的属性-其他类当中,有一个“操作员消息”默认为“否”,我们将其修改成“是”,就开启了输入输出域的操作员记录。
我们打开页面上的报警控件属性(无论这个报警控件时候和输入输出域在一个页面上),在“消息块”取消“应用消息设置”,勾选“记录”、“注释”、“信息文本”,还可以选择性勾选计算机名、用户名等信息。
保存修改后运行项目,当我们修改输入输出域数值之后,点击报警控件的“短期归档列表”或者“长期归档列表”,就可以查询到输入输出域的修改信息了,如下图所示。
输入输出域的属性-其他中还有一个属性“操作员激活报表”,这个属性默认也为“否”,修改为“是”之后,保存运行在修改输入输出域的时候,会弹出一个对话框要求操作员输入注释,操作员输入的注释最终会显示在报警控件长期归档的注释内容里面。
在设计报警控件时,要将“注释”列选上,运行时修改输入输出域后,输入注释信息,在报警控件的注释那里单击鼠标,会淡出对话框显示信息,其中就有刚才输入的注释,如下图所示。
用户输入报表会增加操作人员的工作量,个人觉得意义不大。
由于设定了操作员消息之后,报警信息和操作员记录是显示在一个控件里面,如果两种信息量大的话,会干扰我们的查询。
那么我们可以在运行时通过设定-消息列表-选择-编辑设定条件,比如我们限制只显示编号=1000的消息,其他消息就会被滤掉如下图所示。
WINCC中使用C脚本获得操作记录的方法(原创)
WINCC中使用C脚本获得操作记录的方法(原创)目录1应用范围 (4)1.1详述 (4)1.2适用的系统 (5)2硬、软件配置 (5)3解决方法 (5)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。
WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。
这时,可以使用C脚本来获得操作记录。
目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。
图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。
图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。
Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。
图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。
比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。
在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。
但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。
WINCC用户归档制作配方
3 . 在画面中添加WinCC UserArchiveControl控件 在控件属性中,用户归档,选择以建立的归档
4. 在画面中添加IO域
5.计算机属性,启动项勾选用户归档
6.运行
在“ID”I/O 字段中输入“3”,在“作业”I/O 字段中输入“7”。将具有 “ID 3”的数据块的值写入变量
在“值”(Value) I/O 字段中输入“silver”。“作业”I/O 字段中输入“7”。 将具有值“银色”的数据块写入变量,并将该数据块输出到相应的 I/O 字 段
在“ID”I/O 字段中输入“5”,在“作业”I/O 字段中输入“6”。将更 改值从归档字段和所链接变量的 I/O 字段写入具有“ID”“5”的数据块
WINCC用户归档制作配方
1.建立变量
ID 有符号32位 作 业 有符号32位 域 文本变量8位 数值 文本变量8
2.建立归档,并写入域值
属性中的控制变量: ID 用户归档的数据记录编号 作业 =6 从用户归档中的变量读取数据记录 =7 将数据记录从用户归档写入变量 =8 删除用户归档中的数据记录 字段 用户归档的特定字段 值 特定用户归档字段的值
7. 使用WinCC UserArchiveContro表格元素控件
添加ActiveX控件源自选择归档源点击表格表单显示钮,可以配置表单显示
在域内右击鼠标,
文本域:相当文本标签,可输入的归档变量的 名称 编辑域:归档的变量
按钮:选择归档动作
用鼠标点击已插入的域或按钮,同时按住control键,可以拖动或删除这个域或按钮
WINCC中使用C脚本获得操作记录的方法(原创)
技术总结C脚本获得操作记录的方法版本日期作者校对批准说明0目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。
WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。
这时,可以使用C脚本来获得操作记录。
目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。
图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。
图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。
Operator Input Message和Operator ActivitiesReport的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。
图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。
比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。
在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。
但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。
wincc如何归档备份?Wincc用户归档备份方法
wincc如何归档备份?Wincc用户归档备份方法西门子的WINCC软件供应了便利的变量归档,报警归档备份功能。
但没想到的是Wincc用户归档没有自动备份功能。
配方数据及用户归档存储的报表记录数据确是生产的关键数据,需要定时定期备份。
当然,西门子也供应了标准的接口函数供应导出功能。
是的,一个表一个表的导出功能。
项目变了,配方多了一种重新编辑脚本重新导出。
基于项目实际状况,抛弃了西门子官方供应的方法,选择了其他的方法处理备份数据。
在此,供应三种昌晖仪表使用过的Wincc用户归档备份方法,欢迎大家一起争论!方法一:完整性备份为bak文件借用强大的SQL语法,通过VBS执行SQLCMD指令,执行已经测试完成的T-SQL备份指令。
由于需要使用cmdshell指令,SQL默认为关闭状态需要在T-SQL指令中开启,结束完成后记得关闭,否则SQL处于危急状态。
结合Wincc可以敏捷的定义重复执行的时间。
可以敏捷掌握备份的周期,备份文件的保留方式。
详细看现场实际要求,部分脚本如下:实际测试,备份速度基本是ms级别,截图如下。
方法二:导出表数据使用BCP指令BCP有用工具可以在Microsoft SQL Server实例和用户指定格式的数据文件间大容量复制数据。
使用BCP有用工具可以将大量新行导入SQL Server表,或将表数据导入数据文件。
除非与queryout选项一起使用,否则使用该有用工具不需要了解Transact-SQL学问。
BCP既可以在CMD提示符下运行,也可以在SSMS下执行。
如图所示:导出对应的表的数据,假如表名有固定的标签,可以敏捷的掌握表的数据导出,即使外部新建表单或者新加数据都无需调整脚本。
通过VBS执行SQLCMD,可以敏捷掌握表的名称。
方法三:使用WINCC供应的C指令WinCC ODK uaArchiveExport与uaArchiveImport函数具体的指令有爱好的可以查询西门子的官方关心手册。
WINCC中使用C脚本获得操作记录方法
目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。
WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。
这时,可以使用C脚本来获得操作记录。
目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。
图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。
图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。
Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。
图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。
比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。
在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。
但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。
Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法
Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法今天看QQ群里面有网友问怎么记下WINCC和PLC连接上和断开的时刻,这个问题有点意思,以前没有留意过,这两个事件也的确重要,于是尝试着做了一下试验成功了。
1. PLC一侧的编程新建两个BOOL变量,比如说是M14.0和M14.1,梯形图如下:这样一来,M14.1应该一直为1.2. WINCC一侧的编程在wincc一侧,新建四个变量:status 外部变量,二进制类型地址M14.1 替换值0 断开连接时替换。
注意这个变量不能从AS-OS传输过来,那种传输过来的不能设置替换功能,设置替换值是为了让PLC与上位机断开连接能够改变WINCC变量值。
ConnStatus:内部变量,二进制类型,初始值为0ConnTime:内部变量日期时间类型,记录连接上的时刻DisConnTime:内部变量日期时间类型,记录断开的时刻新建一个VBS全局脚本,触发器设置为周期性1s,这个周期也可以长一点,减少系统负荷。
Option ExplicitFunction actionDim ConnStatus,Status,ConnTime,DisconnTimeSet ConnStatus=HMIRuntime.Tags("ConnStatus") '内部变量Set Status=HMIRuntime.Tags("Status")Set ConnTime=HMIRuntime.Tags("ConnTime")Set DisConnTime=HMIRuntime.Tags("DisConnTime")If ConnStatus.Read =0 And Status.read=1 Then '连接上了ConnTime.Write NowConnStatus.Write 1End IfIfConnStatus.Read =1 And Status.read=0 Then '连接断开了DisConnTime.Write NowConnStatus.Write 0End IfEnd FunctionWincc画面上添加两个输入输出框,连接ConnTime和DisConnTime变量,输入输出框显示类型为日期时间类型。
WinCC V7 中如何组态一条操作员输入消息
WinCC V7 中如何组态一条操作员输入消息 How to configure an operation message摘要对于某些重要的对象和数据进行操作,根据需要可以在操作过程中触发操作员输入消息,本文主要介绍操作员输入消息的组态方法,GCreateMyOperationMsg 函数的简单应用。
关键词操作员输入消息GCreateMyOperationMsgKey Words Operation message GCreateMyOperationMsgIA&DT Service & Support Page 2-8目录1.操作员输入消息的分类 (4)2.操作员输入消息的组态方法 (4)2.1 “图形编辑器”中相应对象的属性中有“操作员输入消息”选项的对象 (4)2.2 “图形编辑器”中相应对象的属性中没有“操作员输入消息”选项的对象 (5)2.3 对于消息操作,生成一条操作员输入消息 (6)IA&DT Service & Support Page 3-81.操作员输入消息的分类对于某些重要的对象和数据进行操作,根据需要可以在操作过程中触发操作员输入消息,操作员输入消息根据操作的对象和操作类型的不同,分为以下三类:a. “图形编辑器”中相应对象的属性中有“操作员输入消息”选项,例如:在 I/O 域中输入数值,文本列表中选择文本等。
b. 对于操作可选图形 WinCC 对象,其属性中没有“操作员输入消息”选项,例如:对于按钮的操作等。
c. 在控件中对于消息操作,例如确认锁定/释放消息等。
2.操作员输入消息的组态方法2.1 “图形编辑器”中相应对象的属性中有“操作员输入消息”选项的对象可选择激活“图形编辑器”中相应对象的“操作员输入消息”属性,以控制某些对象,例如,在 I/O 域中输入数值,文本列表中选择文本等。
这可通过设置“操作员输入消息”属性来完成,如图2-1。
WINCC中使用C脚本获得操作记录方法
目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。
WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。
这时,可以使用C脚本来获得操作记录。
目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。
图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。
图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。
Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。
图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。
比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。
在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。
但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。
如何在博途WINCC中通过变量触发进行历史数据记录
如何在博途WINCC中通过变量触发进行历史数据记录————————————————————————————————作者:————————————————————————————————日期:如何在博途WINCC中通过变量触发进行历史数据记录对单个变量的触发性数据记录1.首先新建两个内部变量类型Inthmi变量---新建变量test01、test022.历史数据—新建“数据记录”Data_log_1设置记录方法为“循环日志”----在“Data_log_1”下的变量记录中添加第一步新建的内部变量test01test02,设置采集模式为“必要时”(采集模式为必要时的意思为当有bool型变量触发时则记录一次,而不是自动循环记录)3.设置记录变量的触发位在画面上新建一个按钮-----事件----按下----选择函数“日志变量”并选择要记录的变量4.在画面中添加一个趋势图控件5.选中趋势图---右键属性—选则“数据记录”6.选中之前创建的“数据记录”Data_log_1----过程值设置为test01变量对多个变量进行触发型数据记录以上方法为设置“记录变量”的触发记录,主要针对单个变量的数据保存,也可以根据客户要求对多个变量进行统一触发性记录。
1.在数据记录下将“Data_log_1”的记录方法设置为“触发器事件”;“记录变量”的采集模式改为“循环”2.设置一个按钮,在按钮事件下设置---按下----开始记录----数据日志Data_log_1当按下该按钮时会将“数据日志Data_log_1”下所有的变量进行保存通过plc变量做触发位HMI变量---建立一个变量管理PLC变量----在变量事件下选择---日志变量并选择变量名称。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinCC V7中如何生成操作员的操作记录
1.操作员输入消息的分类
对于某些重要的对象和数据进行操作,根据需要可以在操作过程中触发操作员输入消息,操作员输入消息根据操作的对象和操作类型的不同,分为以下三类:
a. “图形编辑器”中相应对象的属性中有“操作员输入消息”选项,例如:在 I/O 域中输入数值,文本列表中选择文本等。
对象属性功能支持的对象类型
操作员输入消息定义操作后是否输
出消息
I/O 域、文本列表、组合框、列表框、复选框、
单选框、滚动条
操作员激活报表定义是否记录操作
的原因
I/O 域、文本列表、组合框、列表框、滚动条
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版本请参考以下链接:24325381
2.3 对于消息操作,生成一条操作员输入消息
例如确认锁定/释放消息,操作员输入消息将在 WinCC 报警记录中进行组态。
为此必须在报警记录编辑器中创建 WinCC 系统消息。
在“操作员输入消息”选项卡上的 WinCC 报警控件中,激活操作消息的触发事件,如下图所示。
也可在此处组态操作员输入消息本身。
在 WinCC V7 之前,在“消息列表”选项卡上的 WinCC 报警控件中,使用“操作员输入消息”按钮激活操作员输入消息的触发事件。
为了显示或输入对应的操作员输入消息的注释,可使用“注释”按钮在长期归档列表中打开对话框。
在报警控件中将“注释”系统块插入消息行时,此消息块指示此消息有注释。