WinCC_Vbs中文手册
- 格式:docx
- 大小:33.65 KB
- 文档页数:14
wincc函数手册
WinCC函数手册是适用于西门子WinCC软件的指南,它包含了WinCC软件中可用的各种函数和功能的详细说明和用法。
该手册旨在帮助用户了解和学习如何使用WinCC来开发和管理监控和控制系统。
WinCC函数手册包含了大量的技术术语和专业知识,因此对于初学者来说可能有一定的难度。
然而,随着不断的学习和实践,用户将能够更好地理解和应用这些函数和功能。
在WinCC函数手册中,用户可以学习如何使用各种函数来进行数据处理和分析,如数学函数、逻辑函数和字符串函数等。
此外,还可以了解如何使用各种WinCC的组态功能,如图表、动画和报表等。
手册还包含了WinCC软件的高级功能,如数据库连接、远程访问和安全设置等。
这些高级功能可以帮助用户更好地管理和控制监控系统,提高系统的效率和可靠性。
除了详细的函数说明和用法,手册还提供了许多实例和案例,以帮助用户更好地理解和应用这些函数和功能。
这些实例和案例是基于实际应用场景的,可以直接应用到用户的项目中。
WinCC函数手册是一个非常有用的工具,对于使用WinCC软件开发和管理监控系统的用户来说是必不可少的。
通过学习和掌握该手册中的内容,用户可以更好地利用WinCC软件的各种功能,提高工作效率和系统性能。
总结起来,WinCC函数手册是一本详细说明和用法的指南,它包含了WinCC软件中可用的各种函数和功能。
通过学习和掌握该手册中的内容,用户可以更好地利用WinCC软件开发和管理监控系统,提高工作效率和系统性能。
使用Wincc中的VBS进行变量读写Wincc6包含了VBS脚本编程,对于我等熟悉VB编程的可谓带来的福音,但是,由于西门子的C脚本编程功能实在太强大,加上要保持以前版本的一致性和用户编程习惯的延伸性,所以对于VBS脚本并没有太多的介绍。
这里我先来介绍一下Wincc中对于控件引用的一般性论述。
Wincc对于控件引用一般都采取定义变量-》使用Set变量=对象.(方法或属性)->引用变量来做的。
在变量读取或写入的过程中,我们要接触到一些属性和方法,例如,Read和Write方法,变量的Value 属性,熟练掌握这些属性和方法相当重要。
下面解释一下Write和Read方法的语法:Read data其中data是读取变量的方法,如果data=1,直接从AS系统读取,相当于C脚本中的Get*****wait()函数,如果省略,则从Wincc变量管理器中建立的变量中读取。
Write data,1其中data是需要写入变量的数值,1代表直接写入AS系统,相当于C脚本中的Set*****wait()函数,1省略,则写入到由Wincc变量管理器建立的变量中去。
实例:读取变量的方法:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Read2HMIRunTime.Tags("变量名").Read如果以上例程改成直接读取AS系统变量的话,程序为:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Read,12HMIRunTime.Tags("变量名").Read,1写变量的方法:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Write1'向变量写入数值1'也可以写为objTag.Write10向变量写入数值102HMIRunTime.Tags("变量名").Write1'也可以写为objTag.Write10除了以上方法外,你也可以将一个中间变量的值写入:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=objTag.Value'中间变量val存放了变量的值objtag.Write val'写入变量中去当然,其余的方法还有很多,这些都需要自己在编程过程中总结和灵活运用WINCC中VBS的read和write??Read data其中data是读取变量的方法,如果data=1,直接从AS系统读取,如果省略,则从Wincc变量管理器中建立的变量中读取。
1.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消: int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL); if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("rn SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。
WINCC VBS脚本过程调用
如图1所示:我建立了带参数的过程procedure2
如图2所示:我在一个按钮的点击左键的动作中定义VBS动作,调用过程procedure2,如果我直接给procedure2赋值常数的话,能够将最终的结果输出到变量NewTag;
如图3所示:如果我在调用时,赋值的是两个变量,为什么就不行了,哪里出错了?
问题补充:
为什么WINCC的VBS脚本与WINCCFLEXIBLE2008的VBS脚本用起来那么不一样啊?在WINCCFLEXIBLE2008中调用SUB类型与函数类型都很方便啊。
为什么在WINCC中调用这么麻烦。
而且在WINCC 中调用SUB类型的过程,不能给其变量赋值吧?只能事先就把目标变量写到过程里面去。
能不能给我点关于WINCC中对于带参数与不带参数的VBS过程的调用方法与案例。
图片说明:1,图1 2,图2 3,图3
最佳答案
数据类型不匹配,你的变量是对象而不是数值,参数改为AA.Read、BB.Read即可。
SIMATIC HMI WinCC V7.4 WinCC:组态系统手册在线帮助的打印02/2016法律资讯警告提示系统为了您的人身安全以及避免财产损失,必须注意本手册中的提示。
人身安全的提示用一个警告三角表示,仅与财产损失有关的提示不带警告三角。
警告提示根据危险等级由高到低如下表示。
危险表示如果不采取相应的小心措施,将会导致死亡或者严重的人身伤害。
警告表示如果不采取相应的小心措施,可能导致死亡或者严重的人身伤害。
小心表示如果不采取相应的小心措施,可能导致轻微的人身伤害。
注意表示如果不采取相应的小心措施,可能导致财产损失。
当出现多个危险等级的情况下,每次总是使用最高等级的警告提示。
如果在某个警告提示中带有警告可能导致人身伤害的警告三角,则可能在该警告提示中另外还附带有可能导致财产损失的警告。
合格的专业人员本文件所属的产品/系统只允许由符合各项工作要求的合格人员进行操作。
其操作必须遵照各自附带的文件说明,特别是其中的安全及警告提示。
由于具备相关培训及经验,合格人员可以察觉本产品/系统的风险,并避免可能的危险。
按规定使用Siemens 产品请注意下列说明:警告Siemens 产品只允许用于目录和相关技术文件中规定的使用情况。
如果要使用其他公司的产品和组件,必须得到Siemens 推荐和允许。
正确的运输、储存、组装、装配、安装、调试、操作和维护是产品安全、正常运行的前提。
必须保证允许的环境条件。
必须注意相关文件中的提示。
商标所有带有标记符号 ® 的都是西门子股份有限公司的注册商标。
本印刷品中的其他符号可能是一些其他商标。
若第三方出于自身目的使用这些商标,将侵害其所有者的权利。
责任免除我们已对印刷品中所述内容与硬件和软件的一致性作过检查。
然而不排除存在偏差的可能性,因此我们不保证印刷品中所述内容与硬件和软件完全一致。
印刷品中的数据都按规定经过检测,必要的修正值包含在下一版本中。
Siemens AGDivision Digital FactoryPostfach 48 4890026 NÜRNBERGA5E37536940-AA Ⓟ 03/2016 本公司保留更改的权利Copyright © Siemens AG 2016.保留所有权利目录1多用户系统 (7)1.1WinCC 中的多用户系统 (7)1.2WinCC 中的客户机/服务器系统 (8)1.3组态和数量结构 (10)1.4客户机/服务器方案 (13)1.5服务器组态 (16)1.5.1服务器组态 (16)1.5.2在服务器上创建新项目 (18)1.5.3如何在计算机列表中注册客户机 (20)1.5.4如何组态操作员授权 (21)1.5.5如何组态数据包导出 (23)1.5.6在服务器项目中组态客户机 (27)1.6客户机组态 (30)1.6.1客户机组态 (30)1.6.2在客户机上创建新项目 (32)1.6.3组态导入数据包 (34)1.6.4如何组态标准服务器 (38)1.6.5如何组态首选服务器 (40)1.6.6组态客户机的起始画面 (43)1.6.7显示来自不同服务器的画面 (46)1.6.8组态客户机上的画面变化 (48)1.6.9使用来自不同服务器的数据 (50)1.6.10显示来自不同服务器的消息 (52)1.6.11组态多个服务器消息的消息顺序报表 (53)1.7运行系统中的系统特性 (55)1.7.1运行系统中的系统特性 (55)1.7.2启动服务器 (57)1.7.3启动客户机 (59)1.7.4使用具有多个网卡的服务器时的特殊通讯特性 (60)1.7.5关闭服务器 (62)1.7.6关闭客户机 (62)1.8远程组态 (64)1.8.1远程组态 (64)1.8.2如何访问子网外的计算机 (66)1.8.3从多个客户机访问项目 (69)1.8.4如何打开一个要进行编辑的项目 (71)WinCC:组态目录1.8.5如何编辑服务器项目画面 (73)1.8.6如何激活项目 (74)1.8.7如何取消激活项目 (76)1.9使用客户机/服务器系统中的 OPC 接口 (78)2文件服务器 (81)2.1安装文件服务器 (81)3WinCC 服务模式 (83)3.1WinCC 服务模式 (83)3.2标准项目和服务项目 (84)3.3服务项目的组态 (85)3.4使用服务项目及限制 (86)3.5系统托盘中的 WinCC 状态和控件 (88)3.6功能和先决条件 (90)3.6.1服务项目的操作模式 (90)3.6.2运行服务项目的要求 (91)3.7组态 WinCC 服务模式 (93)3.7.1如何将一个项目定义为服务项目 (93)3.8运行系统中的服务项目 (96)3.8.1运行系统中的服务项目 (96)3.8.2如何激活服务项目 (96)3.8.3如何登录与注销已激活的服务项目 (97)3.8.4如何激活出于维护目的的交互式操作 (98)4冗余系统 (99)4.1冗余 (99)4.2WinCC 冗余 (100)4.3冗余系统的要求 (103)4.4冗余如何工作 (105)4.5组态冗余系统 (109)4.5.1冗余系统安装指南 (109)4.5.2组态相同功能 (111)4.5.3如何组态冗余服务器 (112)4.5.4如何组态用户归档的同步 (114)4.5.5如何为冗余服务器复制项目 (116)4.5.6如何在运行期间复制冗余项目 (119)4.6使用 WinCC Redundancy 的各种情况 (120)4.6.1过程连接出错时切换客户端 (120)4.6.2故障情况 (124)WinCC:组态目录4.6.2.1故障情况 (124)4.6.2.2情况 1:服务器计算机上的项目未处于运行系统中 (125)4.6.2.3情况 2:与伙伴服务器的连接出现故障 (127)4.6.2.4情况 3:与客户机的网络连接出现故障 (129)4.6.2.5情况 4:过程连接出现故障 (129)4.6.2.6情况 5:软件出错 (130)4.6.3WinCC 冗余系统变量 (131)4.6.4WinCC 冗余系统消息 (132)索引 (137)WinCC:组态目录WinCC:组态多用户系统1 1.1WinCC 中的多用户系统内容WinCC 通过组态客户机/服务器系统,可以将系统操作和监控的功能分配到多个客户机和服务器上。
wincc函数手册摘要:1.引言2.WinCC 函数手册简介3.WinCC 函数手册的使用方法4.WinCC 函数手册的功能模块5.WinCC 函数手册的应用案例6.总结正文:WinCC 是西门子公司开发的一款用于工业自动化领域的监控和控制软件。
WinCC 函数手册是该软件的一个配套参考资料,为用户提供了丰富的函数库,方便用户进行各种复杂的工程应用。
一、WinCC 函数手册简介WinCC 函数手册详细介绍了WinCC 软件中提供的各种函数,包括数据类型、变量、运算符、流程控制、过程调用等。
手册以PDF 格式提供,用户可以方便地在计算机上查看和搜索。
二、WinCC 函数手册的使用方法1.打开WinCC 软件,进入对应的项目。
2.在项目树中找到“函数库”,双击打开。
3.在函数库中,用户可以找到所需的函数,并双击查看函数说明。
4.根据函数说明,编写相应的程序代码。
三、WinCC 函数手册的功能模块1.数据类型:包括整型、浮点型、字符型、日期时间类型等。
2.变量:包括全局变量、局部变量、静态变量等。
3.运算符:包括算术运算符、关系运算符、逻辑运算符等。
4.流程控制:包括条件语句(if-else)、循环语句(for、while)等。
5.过程调用:包括子程序调用、函数调用等。
四、WinCC 函数手册的应用案例以实现一个简单的温度控制程序为例:1.定义一个全局变量,用于存储目标温度。
2.使用WinCC 提供的温度传感器函数,读取现场温度传感器数据。
3.编写控制算法,根据目标温度和现场温度计算出控制输出。
4.使用WinCC 的过程控制函数,实现对控制输出的实时调整。
五、总结WinCC 函数手册是WinCC 软件的重要组成部分,为用户提供了丰富的函数库和详细的函数说明。
1.实例:访问图形编辑器中的对象可以使用 VBS WinCC 对所有图形编辑器对象进行访问,以使图形运行环境动态化。
根据变量或周期性(例如闪烁)情况,可在执行操作(例如在按钮上单击鼠标)时使图形对象动态化。
以下示例说明如何在鼠标单击后更改图形对象。
步骤在以下示例中,每次单击鼠标时运行系统中圆的半径都会设置为 20:Dim objCircleSet objCircle= ScreenItems("Circle1")objCircle.Radius = 202.实例:定义对象的颜图形对象的颜色通过 RGB 值(红/绿/蓝)定义。
可以设置或读出图形对象的颜色值。
步骤以下示例将“ScreenWindow1”的填充颜色定义为蓝色:Dim objScreenSet objScreen = HMIRuntime.Screens("ScreenWindow1")objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3.例:如何组态语言切换可使用 VBS 切换 WinCC 的运行系统语言。
最常用的是包含相应语言代码的按钮,这些按钮位于项目的起始页上。
在 VBS 中通过使用国家代码(例如,1031 表示德语 - 默认,1033 表示英语 - 美国等)指定运行系统语言。
有关所有国家代码的汇总,请参见标题为“区域方案 ID (LCID) 图”的主题下的 VBScript 基本知识。
步骤:使用按钮上的“Mouse click”事件创建 VBS 动作,输入以下动作代码将运行系统语言切换为德语:nguage = 10314.实例:禁用运行系统简介可以使用 VBS 终止 WinCC 运行系统,例如,通过鼠标单击,依靠变量值或其它事件(例如,启动运行系统时密码的多次错误输入)。
要执行的操作以下示例会终止 WinCC 运行系统:HMIRuntime.Stop5.实例:全局组态画面更改简介VBS 可用于启动全局画面更改,因而会在分布式系统的客户机上显示服务器中的画面。
为此,服务器的服务器前缀必须位于目标画面之前。
要执行的操作为按钮组态以下画面更改代码,例如:HMIRuntime.BaseScreenName = "Serverprefix::New screen"6.实例:通过属性组态画面更改简介如果在组态中使用分区画面(例如,在用户界面的基本画面标题和操作栏中和用于实际画面显示的嵌入画面窗口中),应使用画面窗口的属性组态画面更改。
为了显示其它画面,必须更改“ScreenName”画面窗口的属性。
必须在同一画面中对动作和画面窗口进行组态。
要执行的操作在以下示例中,执行动作时“ScreenWindow”画面窗口中会显示“test.pdl”画面:Dim objScrWindowSet objScrWindow = ScreenItems("ScreenWindow")objScrWindow.ScreenName = "test"7.实例:通过 Trace 组态诊断输出简介如果已将 GSC 诊断窗口插入画面中,则可以使用 Trace 命令在运行系统的诊断窗口中显示诊断输出。
GSC 诊断按调用的先后顺序发出包含在动作中的 Trace 方法。
这也适用于在动作中调用的过程中的 Trace 指令。
Trace 指令的有目的执行(例如针对变量值的输出)可实现对动作进度以及在动作中调用的过程的跟踪。
Trace 指令以“HMIRuntime.Trace(<Ausgabe>)”形式输入。
GSC 诊断显示来自 C 和 VBS 的跟踪输出。
要执行的操作以下示例将文本写入诊断窗口中:HMIRuntime.Trace "Customized error message"8.实例:写入变量值可以用 VBS 将变量值写入 PLC 中,例如通过在按钮上单击鼠标来指定设定值,或设置内部变量值,以触发其它动作。
下面涉及和介绍了多种写入变型。
1)简单写入在以下示例中,将值写入“Tag1”变量内:HMIRuntime.Tags("Tag1").Write 6这是最简单的写入形式,因为不会生成任何对象引用。
2)通过对象引用写入在以下示例中,将创建变量对象的本地副本并将值写入“Tag1”内:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.Write 73)通过利用引用,可以在写入之前使用变量对象。
可以读取变量值,进行计算,并再次写入:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadobjTag.Value = objTag.Value + 1objTag.Write4)同时写入通常,待写入的值会传送到变量管理,然后重新开始对动作进行处理。
但某些情况下,必须确保实际写入了值之后才能重新开始对动作进行处理。
此类写入通过将附加的可选参数指定为值 1 来实现:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.Value = 8objTag.Write ,1说明请注意,这种调用比标准调用使用的时间要长。
除此之外,持续时间还取决于通道和 AS。
这类写入遵从 C 脚本中的 SetTagXXXWait() 调用5)通过状态处理写入为了确保成功写入值,必须在写入过程之后执行错误检查或确定变量状态。
为此,执行写入操作后需检查“LastError”属性。
测试成功(即成功放置任务)后,即检查变量状态。
对于写入任务,过程的当前状态尚不确定。
要确定该状态,必须读取变量。
读取过程之后“质量代码”属性中指定的值会提供变量状态指示,如有必要,还会涉及发生故障的 AS 连接。
在以下示例中,将写入“Tag1”变量。
如果写入期间出现错误,全局脚本诊断窗口中会显示错误值和错误描述。
最后,检查质量代码。
如果质量代码不是 OK (0x80),便在诊断窗口中显示该代码Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.Write 9If 0 <> stError ThenHMIRuntime.Trace "Error: " & stError & vbCrLf & "ErrorDescription: " & objTag.ErrorDescription & vbCrLfElseobjTag.ReadIf &H80 <> objTag.QualityCode ThenHMIRuntime.Trace "QualityCode: 0x" & Hex(objTag.QualityCode) & vbCrLfEnd IfEnd If说明写入变量后,由于不知道哪一质量代码在过程中用于管理变量,因此局部变量对象的QualityCode 属性会设置为“BAD 已不能用”。
9.实例:如何读取变量值简介可以用 VBS 读取变量值并对其执行进一步的处理。
这样便可以执行诸如通过在按钮上单击鼠标来获取系统状态信息或执行计算的操作。
下面涉及和介绍了多种读取变型。
1)简单读取在以下示例中,将读取“Tag1”的值并在全局脚本诊断窗口中显示该值:HMIRuntime.Trace "Value: " & HMIRuntime.Tags("Tag1").Read & vbCrLf这是最简单的读取形式,因为不会生成任何对象引用。
2)通过对象引用读取在以下示例中,将生成变量对象的本地副本,读取该变量值并在全局脚本诊断窗口中显示该值:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")HMIRuntime.Trace "Value: " & objTag.Read & vbCrLf通过利用引用可以使用变量对象。
可以读取变量值,进行计算,并再次写入:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadobjTag.Value = objTag.Value + 1objTag.Write使用 Read 方法将已读取的过程变量添加到图像,从该刻起这些变量会通过 AS 周期性请求。
如果该变量已存在于图像中,则会返回其中包含的值。
对于关闭画面,变量动作会再次结束。
说明如果全局脚本动作中请求变量,则在进入 WinCC 运行系统的整个过程中,该变量保持已注册状态3)直接读取通常,变量值从变量图像读取。
但在某些情况下,例如为了同步快速过程,可能需要直接从 AS 读取变量值。
如果将读取过程的可选参数设置为 1,则不会周期性地登录变量,而是通过 AS 单次请求该值。
Dim objTagSet objTag = HMIRuntime.Tags("Tag1")HMIRuntime.Trace "Value: " & objTag.Read(1) & vbCrLf说明请注意,这种调用比标准调用使用的时间要长。
除此之外,持续时间还取决于通道和 AS。
在执行周期性 C 动作的情况下,必须避免该类调用,因为这是引起性能问题的主要原因。
该类读取过程相当于 C 脚本中的 GetTagXXXWait() 调用。
4)通过状态处理读取为了确保值有效,应在读取之后进行检查。
这通过控制质量代码来执行。
在以下示例中,将读取“myWord”变量,然后检查 QualityCode。
如果质量代码未对应OK (0x80),则在全局脚本诊断窗口中显示 LastError、ErrorDescription 和QualityCode 属性。
Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadIf &H80 <> objTag.QualityCode ThenHMIRuntime.Trace "Error: " & stError & vbCrLf & "ErrorDescription: "& objTag.ErrorDescription & vbCrLf & "QualityCode: 0x" & Hex(objTag.QualityCode) & vbCrLfElseHMIRuntime.Trace "Value: " & objTag.Value & vbCrLfEnd If说明如果读取期间出现错误,则 QualityCode 会设置为 BAD NON-SPECIFIC。