WINCC中使用C脚本获得操作记录方法_第1页
WINCC中使用C脚本获得操作记录方法_第2页
WINCC中使用C脚本获得操作记录方法_第3页
WINCC中使用C脚本获得操作记录方法_第4页
WINCC中使用C脚本获得操作记录方法_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、技术总结C脚本获得操作记录的方法版本日期作者校对批准说明0应用范围1.11.2详述 . 适用的系统 .硬、软件配置解决方法附件文档号说明目录附件作理由。详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。 获得操作记录。目前,在 WINCC中以下对象可以很方便地获得操作记录:任何对象,将 Eve nt'Direct Conn ectio nOp erator Inp ut MessageWINCC本身提供了一些对象可以产生 这时,可以使用C脚本来选中。HfI IMiwl Connedlon卡惨左|He

2、daiJl0 hcerter E«rl3 |i n戡tdn真 Mtfjst tlvtUardFmn F>qpnt/T t GWE + ClhrE + SUe£ fl Flashn + niLeJt + Hi-gE>KJoftiht ;3«ol 陽K *瑰5 Hwii #1Pr»H lightRcmjc rijitS-U.-E.* Loiairt"Fnp<p '心Qih. -: ; -JLiiji川lOU : jKId jd广 SrTMMwDhpziiriArtuietr r«i 加”沁帥盯血_却殳血日 席 D

3、nrt e kiilr*rt ly lopwlrf rpn HssflgpOKCscd图1 通过DirectConnection获得操作记录的组态 Object Properties属性选择_yes。I QptionGeup捽I辔I oPriori GroupPropertiss j Events |-Option GrowStaUc Dynamic Cu.GeometryOperator-Control EnableYes051听Auttiorisatiori<N(j access-p 心StylKDisplayYesFontTooltip TextFlashing匚 onFlgura

4、d LanguagesMiscellaneous1Operator Input Message沁1FilingAdapt BorderMoAttributeOutput/Input J图2 Check Box 对象和 Option Group 对象获得操作记录的组态 IO Field 对象和 Slider对象:将prop ertyO perator Inp ut Messageprop ertyO perator Activities Report Activities Report属性选择为yes ;或将属性选择为yes。Operator Input Message和 Operator的区别

5、是后者可以输入操作理由,确认之后操作记录的Comme nt中可以查看到操Dynamic Ou.AS FA2sStaticYes<No acce?伽AttributeQperatorcntTQl Enable AuthorisationDispI 聲Tooltip TextSliderObject Object PropertiesPioperties I Everts |图3 IO Field 对象和Slider对象获得操作记录的组态SSdeiObiect讯 rinh口口口口口口日 Slider ObjectGwofu 就 ryCclotsStyleFlashingMiscellaneo

6、usFillinooperator AcdvitiK RertMolOperatar Input MessageVesExtended OperationNoMaKimLim Value3Minimum Value1Operation 5Ups以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不 能满足要求。比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。在单步操作的情况下,通 过 Direct Connection 认之后操作才能生效,由于能够很方便地实现这一功能。但是在两步操作的情况下,需要操作员先确认,在得到确Direct Co nn

7、 ection并没有提供操作确认功能,显然通过Direct Conn ectionC脚本来实现这一功能,通过MessageBoxO函数来完成操作确然后通过特别的函数来使系统产生操作记录。能满足要求。在这一的情况下,可以考虑采用 认的功能,1.2并不适用的系统Process Driver Connection Z该方法适用于安装有 WINCC的系统中。硬、软件配置安装有 WINCC软件,无版本限制。解决方法Alarm Loggi ng中组态消息类型和定制消息通过C脚本产生操作记录主要完成两部分组态工作,首先要在内容;然后编写 C脚本来产生操作记录。第一步:在 Alarm Loggi ng中组态消

8、息类型和定制消息内容。1 .新建消息并定义消息类型。系统产生的消息(包括了操作记录)和定制的消息都存储在AlarmLogging中,编号从1000000开始的消息为系统使用的消息,不能组态。如果需要定制消息,可以使用11000000之间的消息号。在WINCC explorer 中打开 Alarm Logging ,新建一条消息,消息号为1,打开该消息的属性对话框,如图4所示。在Parameters 一栏中,将 Class和Type都选为 Operator Input Message,保留其余默认设置。先来了解下通过 Direction Connection产生的操作记录的内容,如图6所示:操作

9、来源中显示的是变量名称,变量包含了工厂层级信息。操作内容中包含了用户名、新值和旧值的信息。变量名、用户名、新值和旧值可以从过程值块的变量中获得。先对过程值模块中10个过程值的用处作如表1中的定义:single messageSENumber;匚 onneuticiriECldss:Operator Input MessageTi)pe:jCperator Input Message.Message Tag:.1107.This: messager Is single dcknovvledgrriert only厂 contrcls the Central Signaling Device冋 v

10、jil be jf chivedGroup;Priority):厂 is created on a negative edgeI triggers an actionMessage Bit/ckric»jledge Tag: |Acknowledge Bit: |0Stalus r ag:Status Bit:Formal DLLllDL±-Pa lame ters.Select the rfiessage parameter and connect the me舄ageOKCancelHelp图4消息的参数组态1 AUrm LoggjnB OSJO匚问冈 1B 胡二 S

11、h :M s-i-lE 普空 S'h-l- h-i- 1-1-£ 斷 I*K<ag5 bbcte jj Sygterr bl«k5SiBSm31 Process i/alue bloch茫 >S 1 z 3 VJ 幻s s 皿e就衣忙阻厲 Lb"! t 3 D F F4 5F fe 6k R图5消息块类型通常,在进行事故分析时,需要了解操作日期、时间、操作来源以及操作内容。前面提到,系统块提供 了操作日期和时间信息,只需要选中这两个选项,无需特别的组态。因此,定制操作记录只需要再对操作来源 和操作内容进行组态就可以了。op«r3tio

12、n listQ “ 11 w 匸 w 用 inr用户灵i Priori Souwb在进行上述的定义之后,进入消息组态对话框,选择Text 栏,进行用户文本块的定义,如图Single mcssaeeText I Tag>Action|Info Text:变量名SourceArea旧值口卿拙onFree 17|回6益Ne*w =2初回ld=|3Xd|Batch nemefFree 2Free 3Free 4Free 5JJJ JEnter the message textOKCdTlCsl图7用户文本块的组态用户文本块中的内容可以手动输入,也可以通过点击右边的 态,如图8所示:二1进入文本组

13、态对话框进行消息格式的组VflJ-VTi-i*EJB*iJ卩 £11汕丄:匸图6操作记录列表过程值12345678910用处消息号变量的新值变量的旧值备 用备 用当前登录 的用户名变量名备 用备 用备 用表1过程值块变量用处的定义fnsert Precess ValueUser text block:JSource1 L&ngtb: 32Process value block:FormatI卿:I Tentr align lenPosition:I pad with 0IN umber ofDigits:PrecisionDi/putFormat Specihcatiori:

14、I 7髯廻E sample:|resL orCancel图8用户文本块中输岀格式的组态C脚本的编写了。到这里,我们就完成了在Alarm Loggi ng中操作记录的组态工作,接下来就要进行 第二步:编写 C脚本。C脚本中要做的工作主要有分两步,先是进行变量的赋值,然后再创建消息。1 .变量的赋值。在触发消息的事件(如按钮的鼠标左键释放事件)的C脚本中定义变量并给变量赋值,根据表1中的定义,需要定义两个数组,一个是数值类型为Double,另一个数值类型为字符指针,前者用于存放消息号、变量的新值和旧值,后者用于存放当前登录的用户名和变量名。以 下是按钮鼠标释放事件的C脚本程序。* #in elud

15、e "apdefap .h"void On LButt onUp( char* IpszPi ctureName, char* Ip szObjectName, char* IpszProp ertyName, UINT nF lags, int x, int y)/ WINCC:TAGNAME_SECTION_START/ syn tax: #defi ne TagNameInAction "DMTagName"/ next TagID : 1#defi ne Ap c_Curre ntUserName "local:Curre ntUser

16、Name"#defi ne Var "AS_FAR05_1107_2/HS_806B"/ WINCC:TAGNAME SECTION END /定义消息号,并赋值int nMsgNr = 1;int iNewValue=1;int iOldValue;int RetMsg;/定义double型数组,对应过程值块的前5个变量/定义字符指针数组,对应过程值块的后5个变量double dValue5 = 0,0,0,0,0; char* lp szVal5 = "","","","",&qu

17、ot;"/ 确认操作RetMsg = MessageBox (NULL, "确定要启动吗? ", " 启动确认 ", MB_OKCANCEL);if (RetMsg=IDOK)/ 获取旧值、赋予新值 iOldValue=GetTagBit(Var);SetTagBitWait(Var,(WORD)iNewValue);/ 将用户名、变量名、消息号、新值和旧值放到定义的数组中lpszVal0 = GetTagCharWait(Apc_CurrentUserName);lpszVal1 =Var;dValue0 = nMsgNr;dValue1 =

18、 iNewValue;dValue2 = iOldValue;/ 调用产生消息的函数 OperationLog_V6(lpszPictureName,nMsgNr,dValue,lpszVal);*2创建消息。消息创建函数需定义为全局脚本函数,主要将值传递给消息块的结构变量并创建消息。以下是产 生消息函数的 C 脚本。*#ifndef RUN_ON_WEBNAVIGATOR#include "apdefap.h"#pragma code ("ssmrt.dll")#include "ssmrt.h"#pragma code ()#en

19、difvoid OperationLog_V6(char* lpszPictureName, int nMsgNr,double dValue5,char* lpszVal5)BOOL bOkay;CMN_ERROR Error;MSG_RTDATA_INSTANCECOMMENT_STRUCT MsgCreate;/ 定义为消息到达MsgCreate.dwMsgState = MSG_STATE_COME;/ 赋消息号给将要创建的消息MsgCreate.dwMsgNr = nMsgNr;/ 定义用到了过程值块中的哪些过程值 MsgCreate.wPValueUsed = 0x001F;/ 定义用到了用户文本块中的哪些选项 MsgCreate.wTextValueUsed = 0x03E0;/ 拷贝数值到消息块的过程值中MsgCreate.dPValue0 = dValue0;MsgCreate.dPValue1 = dValue1;MsgCreate.dPValue2 = dValue2;MsgCreate.dPValue3 = dValue3;MsgCreate.dPValue4 = dValue4;/ 1%x ; x can be replaced by d,f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论