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

下载本文档

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

文档简介

TN-xxx-yyy-WINCCTN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)_cn.docWINC武使用C脚本获得操作记录的方法(原创)

文档号版本日期页数技术总结版本日期作者校对批准说明0文档号版本日期页数目录TOC\o"1-5"\h\z应用范围 4.1 详述 4讪I勺系统 5\o"CurrentDocument"硬、软件配置 5\o"CurrentDocument"解决方法 5附件附件文档号 说明文档号 版本 日期 页数文档号 版本 日期 页数TN-xxx-yyy-WINCCTN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)cn.doc应用范围1.1详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。 WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。这时,可以使用 C脚本来获得操作记录。目前,在WINCC中以下对象可以很方便地获得操作记录:选中。任何对象,将Event\DirectConnection\OperatorInputMessage选中。7堂配Redsnmle日&日IESIRtcUngkMuum;re>'ti»rdFonehbtelferc.-小叩司斗]7堂配Redsnmle日&日IESIRtcUngkMuum;re>'ti»rdFonehbtelferc.-小叩司斗]*GworeFFQto「$<5Mes1+FhshnhMisxlt用FlfpjLetdlciitfieulMujicAiCuiPfW5省RdciscWtPrtssrightp,的斗彳fntiIDirKfConnBelian7float广CirarT/rd卧ObprfiriRduie■*坳A5.FAftO5_11(J?_2+lS_eO6N厚口Rd indrtctJm萨DbipLl Plug&图1通过图1通过DirectConnection获得操作记录的组态CheckBox对象和OptionGroup对象,将property\OperatorInputMessage属性选择为yes。ObjectProperties小舞|盟 0ObjectProperties小舞|盟 0PrioriGroup|OptionGfoupPropaties|Evertts]optionGroupAttributeStaticDynamicGeometryOperator-ControlEnableYesColorsAuttiorizatiori<Moaccess-pQStylesDisplayYesFontTooltipTextFlashingConHguredLangufigtsMtscellareoui|OperatorInputMessage|YesFlingAdaptBorderMoOutput/Input图2CheckBox对象和OptionGroup对象狄得操作记录的组态文档号 版本 日期 页数文档号 版本 日期 页数图5图5消息块类型TN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)cn.docTN-xxx-yyy-WINCCTN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)_cn.docSbder0Sbder0biectSliderObicct文档号版本日期页数IOField对象和Slider对象:将property\OperatorInputMessage属性选择为yes;或将property\OperatorActivitiesReport属T生选择为yes。OperatorInputMessage和OperatorActivitiesReport的区别是后者可以输入操作理由,确认之后操作记录的 Comment中可以查看到操作理由。ObjectPropertiesPropertiesEvent?-SliderObiectGeometr/ColorsStylesFlashingAttributeStaticDynamic-SliderObiectGeometr/ColorsStylesFlashingAttributeStaticDynamicCu,.Operatar-CcntrolEnableAuthariEatioriDisplayYes O<Noacce55-p0Yes OTd&tipFillingloperatorActivitiesReport[OperatorInputMessagefes|MiscelldneousTOC\o"1-5"\h\zExtendedOperation No OMaximumValue 3MinimurnValue 1operation5t叩5 1 骁ProcessDriverConnection2 #AS_FA2s图3IOField对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。在单步操作的情况下,通过DirectConnection 能够很方便地实现这一功能。但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于DirectConnection 并没有提供操作确认功能,显然通过DirectConnection并不能满足要求。在这一的情况下,可以考虑采用 C脚本来实现这一功能,通过MessageBox()函数来完成操作确认的功能,然后通过特别的函数来使系统产生操作记录。1.2适用的系统该方法适用于安装有WINCC的系统中2硬、软件配置安装有WINCC软件,无版本限制3 解决方法通过C脚本产生操作记录主要完成两部分组态工作,首先要在 AlarmLogging 中组态消息类型和定制消息内容;然后编写 C脚本来产生操作记录。第一步:在AlarmLogging 中组态消息类型和定制消息内容。. 新建消息并定义消息类型。系统产生的消息(包括了操作记录)和定制的消息都存储在 AlarmLogging中,编号从1000000开始的消息为系统使用的消息,不能组态。如果需要定制消息,可以使用1~1000000之间的消息号。在WINCCexplorer中打开AlarmLogging,新建一条消息,

消息号为1,打开该消息的属性对话框,如图消息号为1,打开该消息的属性对话框,如图4所示。在Parameters一栏中,将Class和Type都选为OperatoEnputMessage ,保留其余默认设置。图4消息的参数组态定制操作记录的内容。每条操作记录都在单独的消息行中显示,消息行的内容取决于选定的消息块,每个选定的消息块组成消息行中的一列。如图5所示,系统提供了三种不同类型的消息块:①系统块显示预定义的消息,如日期、时间、持续时间、注释…;②用户文本块允许最多为一条消息指定十个可定义文本,包含操作来源、操作内容、时间等信息。③ 过程值块:系统提供了十个过程值,通过过程值块可以在消息行中显示已定义的标签值。并非消息块中每一项都需要在消息中显示,可以在系统图形文件 @AlarmOperation.pdl 中进行定制。iAlarmLogging“OSJOJFteEd*View端/湖铝-咏Helpe1之岛凰与,性it司飞囱股-r/essagsbbckSysierr田皿U泞textn毗■'ij.l^../.j-r/essagsbbckSysierr田皿U泞textn毗■'ij.l^../.jut-blu.k•眄&gpnes归乎s-呼Wh25fiarjts4_cu££电S斤斤国匐文档号版本日期页数通常,在进行事故分析时,需要了解操作日期、时间、操作来源以及操作内容。前面提到,系统块提供了操作日期和时间信息,只需要选中这两个选项,无需特别的组态。因此,定制操作记录只需要再对操作来源和操作内容进行组态就可以了。先来了解下通过DirectionConnection 产生的操作记录的内容,如图6所示:操作来源中显示的是变量名称,变量包含了工厂层级信息。操作内容中包含了用户名、新值和旧值的信息。变量名、用户名、新值和旧值可以从过程值块的变量中获得。先对过程值模块中 10个过程值的用处作如表 1中的定义:渊operationlist1 1|HHSH应随1空专用户根新” 旧步p...:Tim*Priori]$ource\ Operation\1W12J07 签g帕.232000AS_FAR05_1107_2/HS_flO6BNww=1Old-02W12J07 52.O4l23.SO7AS_FAR05_1107_2/HS_BO6B■lanitnfNnv=1Old=031W12J07 21.22:18.561AS_FARO5_11O7_2HS_0OSBvi«ihBnfnvw=0cld=1图6操作记录列表过程值12345678910用处消息号变量的新值变量的旧值备用备用当前登录的用户名变量名备用备用备用表1 过程值块变量用处的定义在进行上述的定义之后,进入消息组态对话框,选择Text一栏,进行用户文本块的定义,如图7所示:图7用户文本块的组态用户文本块中的内容可以手动输入,也可以通过点击右边的 …I进入文本组态对话框进行消息格式的组态,如图8所示:TN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)_cn.docTN-xxx-yyy-WINCCTN-xxx-yyy-WINCC中使用C脚本获得操作记录的方法(R0)_cn.doc文档号版本日期页数图8用户文本块中输出格式的组态到这里,我们就完成了在 AlarmLogging 中操作记录的组态工作,接下来就要进行 C脚本的编写了。第二步:编写C脚本。C脚本中要做的工作主要有分两步,先是进行变量的赋值,然后再创建消息。. 变量的赋值。在触发消息的事件(如按钮的鼠标左键释放事件)的 C脚本中定义变量并给变量赋值,根据表1中的定义,需要定义两个数组,一个是数值类型为 Double,另一个数值类型为字符指针,前者用于存放消息号、变量的新值和旧值,后者用于存放当前登录的用户名和变量名。以下是按钮鼠标释放事件的 C脚本程序。***************************************************************************#include"apdefap.h"voidOnLButtonUp(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty){//WINCC:TAGNAME_SECTION_START//syntax:#defineTagNameInAction"DMTagName"//nextTagID:1#defineApc_CurrentUserName"@local::@CurrentUserName"#defineVar- "AS_FAR05_1107_2/HS_806B”//WINCC:TAGNAME_SECTION_END//定义消息号,并赋值intnMsgNr=1;intiNewValue=1;intiOldValue;intRetMsg;doubledValue[5]={0,0,0,0,0}; 〃定义double型数组,对应过程值块的前 5个变量文档号版本日期页数char*lpszVal[5]={"","","","",""}; //定义字符指针数组,对应过程值块的后 5个变量〃确认操作RetMsg=MessageBox(NULL,” 确定要启动吗? ","启动确认",MB_OKCANCEL);if(RetMsg==IDOK){//获取旧值、赋予新值iOldValue=GetTagBit(Var);SetTagBitWait(Var,(WORD)iNewValue);//将用户名、变量名、消息号、新值和旧值放到定义的数组中lpszVal[0]=GetTagCharWait(Apc_CurrentUserName);lpszVal[1]=Var;dValue[0]=nMsgNr;dValue[1]=iNewValue;dValue[2]=iOldValue;//调用产生消息的函数OperationLog_V6(lpszPictureName,nMsgNr,dValue,lpszVal);} 一}************************************************************************************************.创建消息。消息创建函数需定义为全局脚本函数,主要将值传递给消息块的结构变量并创建消息。以下是产生消息函数的C脚本。***************************************************************************#ifndefRUN_ON_WEBNAVIGATOR#include"apdefap.h"#pragmacode("ssmrt.dll")#include"ssmrt.h"#pragmacode()#endifvoidOperationLog_V6(char*lpszPictureName,intnMsgNr,doubledValue[5],char*lpszVal[5])一{BOOLbOkay;CMN_ERRORError;MSG_RTDATA_INSTANCECOMMENT_STRUCTMsgCreate;〃定义为消息到达MsgCreate.dwMsgState=MSG_STATE_COME;〃赋消息号给将要福建的消息MsgCreate.dwMsgNr=nMsgNr;//定义用到了过程值块中的哪些过程值MsgCreate.wPValueUsed=0X001F;//定义用到了用户文本块中的哪些选项MsgCreate.wTextValueUsed=0X03E0;//拷贝数值到消息块的过程值中MsgCreate.dPValue[0]=dValue[0

温馨提示

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

评论

0/150

提交评论