您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > WinCC VBS脚本
ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.WinCCVisualBasicScriptChenZhiNorthTCSISSalesTAS2012.02/TECHTalk/Forinternaluseonly.2调试诊断脚本系统整个WinCC系统通过完整和丰富的编程系统实现了双向的开放性脚本系统使得WinCC更加灵活、功能更加丰富和强大借助C脚本,WinCC几乎可以通过Win32API无限制地访问Windows操作系统及该平台上各种应用的功能VBS脚本从易用性和开发的快速性上具有优势VBA的主要目的是让使用者能够轻松扩展WinCC软件的功能WinCC的脚本系统VBS脚本变量读写例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.3易于学习程序具有良好的容错性WinCC集成了微软基于VB的运行期脚本语言使用微软标准的工具编辑和调试能够访问ActiveX控件和其它Windows应用的属性和方法WinCC使用VBScript的例子WinCC中实现动态化(图形编辑器中)WinCC对象动态化集成ActiveX控件读写变量、启动报表连接Office应用(Excel,Word,Access)连接数据库通过MicrosoftOutlook发送电子邮件集成MicrosoftInternetExplorer集成AdobeReaderVisualBasicScript脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.4VBS可实现类似ANSIC的功能:基于对象(VBS)/基于功能(C)例如,读变量:VBS代码:Tag.ReadC代码:WORDvalue=GetTagWord(“Tag”)VBS可用于:读写过程值修改对象属性创建报警访问外部应用程序访问数据库、邮件、Windows等图形编辑器中的VBS脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.5VBS可用于对象属性和事件图形编辑器中的VBS属性任务循环或变量触发脚本通过返回值设置属性子程序使用“Item”传递参数属性任务和事件任务可同时执行(独立脚本线程)脚本系统VBS脚本变量读写调试诊断例程分析事件任务事件触发脚本子程序使用“Item”传递参数ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.6VBS对象模型(WinCCV7)对象和列表对象对象提供的属性WinCCV7新增了Alarm对象,可以通过该对象创建和访问报警条目HMIRuntime对象例子:HMIRuntime.Stop‘取消激活Layers(1).visible=vbFalse‘关闭0层脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.7触发器动作命令1命令2过程C命令N过程是一段代码,类似于C语言中的函数。模块是一个文件,存放着一个或多个过程。模块过程A过程B过程D过程E过程C命令A命令B过程(Procedure),模块(module)和动作(atcion)VBS的过程、模块和动作脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.8运行系统的优化运行状态下,通过动作调用某个过程时,包含此过程的模块也会被加载。模块越大,包含的过程越多,模块加载的时间就越长。需要加载的模块越多,运行系统的性能越差。因此,需要合理地组织模块,将相互关联的过程放在同一模块中。例如:可以把用于特定系统或画面的过程放在一个模块中。也可以按照功能来构建模块。比如,把具有计算功能的过程放在一个模块中。VBS的过程、模块和动作脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.9WinCC变量读写——异步/同步异步读VBS:read(C:GetTagXXX)第一次读取变量时,需要向AS系统请求数值,并且将该过程变量添加到映像区。此后,映像区中的变量周期性地(触发周期/2)从AS系统请求数值。再次读取变量时,直接将映像区中的数值返回。关闭画面时,映像区中的变量注销。如果变量是在全局脚本中请求的,在WinCC运行期间,变量始终保留在映像区中注册的状态。脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.10WinCC变量读写——异步/同步同步读VBS:read(1)(C:GetTagXXXWait)此方式直接从AS系统读取当前值。同步读比异步读要花费更长的时间,所需时间取决于具体的AS系统和通道。为了避免性能问题,尽量避免周期性地使用同步读的方式。脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.11WinCC变量读写——异步/同步异步读与同步读的比较异步读第一次读取变量时,需要向AS系统请求数值,并且将该过程变量添加到映像区,因此比同步读的第一次读取需要更长的时间。异步读要求映像区中的变量周期性地从AS系统请求数据,这增加了系统的基本负载,使用同步读(非周期性)不存在该问题。再次读取变量时,异步读直接将映像区中的数据返回,变量读取的时间不受AS系统和总线负载的影响。同步读直接从AS系统读取当前值,比异步读方式要花费更长的时间。脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.12WinCC变量读写——异步/同步异步写VBS:write(C:SetTagXXX)此方式将数值分配给变量管理的写任务,并立即返回调用语句继续执行,系统不等待数值真正写入。调用者不知道数值何时真正写入。同步写VBS:write,1(C:SetTagXXXWait)此方式将数值分配给变量管理的写任务,并等待数值真正写入后才返回调用语句。与异步写相比,同步写要花费更多时间,所需时间取决于具体的AS系统和通道。为了避免性能问题,尽量避免周期性地使用同步写的方式。脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.13VBS的调试与诊断使用微软的脚本调试器(MicrosoftScriptDebugger),可以实现:使用[RunningDocuments]察看需要调试的脚本源代码;脚本的断点设置、单步运行调试等;使用[CommandWindow]显示或修改变量和对象的属性;监控脚本的执行过程。使用HMIRuntime.Trace输出变量值和提示信息到GSC诊断窗口。错误诊断使用LastError、ErrorDescription和QualityCode等属性进行错误诊断。脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.14WinCC例程分析例程:变量读写属性——返回值/Item线程描绘曲线脚本系统VBS脚本变量读写调试诊断例程分析ISSalesTAS2012.02/TECHTalk/Forinternaluseonly.Thankyou!
本文标题:WinCC VBS脚本
链接地址:https://www.777doc.com/doc-3605529 .html