《InTouch711技术培训Day4(共79张).pptx》由会员分享,可在线阅读,更多相关《InTouch711技术培训Day4(共79张).pptx(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、InTouch 7.11InTouch 7.11技术培训课程技术培训课程配置配置I/O ServersI/O Servers一旦InTouch安装成功后,模拟DDE服务器实用程序也会被安装。模拟DDE服务器是一个简单的,作为培训课程使用的实用程序。InTouch服务之间的相关性服务之间的相关性当安装服务时,程序会向 Windows NT 操作系统提供一份相关性列表。如果某项服务要在其它服务启动之后才能启动,Windows NT 会检查以确保其它服务已经运行,然后再启动该项服务。取决于运行 WindowViewer 的要求,您应该了解以下相关性。如果您计划使用分布式报警或分布式历史,或者需要访
2、问 Network DDE 数据,则必须运行 Wonderware NetDDE Helper 服务。Wonderware NetDDE Helper 服务取决于当前安装的 Network DDE 和 Network DDE DSDM 服务是配置为手动还是自动启动。在安装过程中,Wonderware NetDDE Helper 服务配置为手动启动,这意味 着 WindowViewer 会在启动时自动启动此服务。如果您需要 WindowViewer 充当 SuiteLink 服务器或客户端,则必须运行Wonderware SuiteLink 服务。Wonderware SuiteLink 服务还
3、要求已安装Microsoft TCP/IP 。如果您要在运行 WindowViewer 时存储任何消息或错误,您必须确保已安装Wonderware Logger 服务。在 FactorySuite 公用组件安装期间,必须安装Wonderware SuiteLink 和 Wonderware Logger 服务并将其配置为自动启动运行。监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态WindowViewer支持一个内置的名为IOStatus(InTouch 7.0 以前版本中称为DDEStatus)的主题名,它可用于监视特 定 I/O 对话的状态。使用IOSt
4、atus主题名我们假定WindowViewer(视图)正在与一个连接 到 PLC 的Wonderware 仿真I/O 服务器通讯,该 PLC 在 I/O 服务器的主题名定义 为 PLC1(“仿真”是一个通用 的 Wonderware I/O 服务器,通常用作培训工具。“仿真”包括在 FactorySuite 中)。监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态要监视I/O 通讯的状态:1 . 在“特别”菜单上,单击“标记名字典”,或者在应用程序浏览器中,双击“标记名字典”。“标记名字典”对话框出现。2. 创建一个I/O 离散型标记名(在本例中,为简便起见,
5、我们将该标记名设定为与要监视的主题名相同)。在使 用 IOStatus 来监视I/O 对话时,必须至少为所监视的访问名定义一个 I/O 型标记名。监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态3. 单击“访问名”,为定义其主题名的IOStatus的访问名定义指定一个标记名。“访问名”对话框出现:监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态注意当前已经存在一个名为PLC1(我们要监视的主题)的访问名定义。要确保访问名正确(其主题名为 PLC1),单击“修改”以查看其定义:在本例中,因为我们将标记名定义为与主题名同名,因
6、此可以轻易地找到包含正确主题名的访问名。监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态4. 单击“取消”关闭对话框,并返回到最初的“访问名定义”对话框。5. 单击“添加”,“添加访问名”对话框出现:6. 在“访问名”框中,输 入IOStatus因为我们在WindowViewer 中监视其状态,所以在“应用程序名”框中,输入“View ”。7. 在“主题名”框中,输入InTouch 内部主 题 IOStatus监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态8. 选择“只提示激活项”。9. 单击“确定”关闭对话框。初始“访
7、问名定义”对话框重新出现,在列表中显示新的访问名IOStatus:10. 单击“关闭”以关闭对话框,并将此新的访问名与 I/O 离散型标记名相关联:监测监测I/OServerI/OServer和和I/OI/O设备通讯状态设备通讯状态11 . 在“项目”框中,输入您要监视的实际主题名的访问名。在本例中为PLC1因为本例中的标记名与“主题名”同名,您可以选择“使用标记名作为项目名”,使之自动输入到项目框中。注意:当使用内置的主题注意:当使用内置的主题IOStatusIOStatus(InTouch 7.0 InTouch 7.0 以前版本中称为以前版本中称为DDEStatusDDEStatus)来
8、监视)来监视I/OI/O对话时,对话时,“项目项目”框总是使用您在框总是使用您在“访问名访问名”框中输入的名称。框中输入的名称。在Excel中使用IOStatus主题名通过在工作表单元格的公式中输入相同的信息,您也可以在Excel中执行相同类型的监视活动。例如,要监视上述的相同主题,可以输入下面的公式: =view|IOStatus!PLC1监测监测InTouchInTouch和和I/OServerI/OServer通讯状态通讯状态每个主题名都有一个内置的离散项 目 Status 可用于监视与I/O 服务器程序通讯的状态。当与设备的通讯失败时(如电缆断开,PLC 断电等),Status设为“0
9、 ”;当通讯成功时,Status 设为“1 ”。注意:当使用“Status ”项目来监视主题的状态时,所监视的主题必须至少具有一个活动状态 的 I/O 点。通过定义标记名,并将其与使用“Status作为项目名的设备主题相关联,您可以 从 InTouch 中读取服务器通讯的状态。例如,如果 WindowViewer 使用Wonderware 仿 真 I/O 服务器 与 PLC 通讯,则访问名定义将为:监测监测InTouchInTouch和和I/OServerI/OServer通讯状态通讯状态要监视主 题 PLC1 的所有通讯状态,您需要创建下面的标记名定义:提示:在 Excel 中,您可以通过在
10、单元格中输入下面的公式来读取PLC 通讯的状态: =SIMULATE|PLC1!STATUS远程标记名的引用远程标记名的引用InTouch 为工厂自动化应用提供了真正的客户端/ 服务器结构。用户不必使用本地标记名字典中的任何标记名,就可以设计出客户端应用程序。这可以通过使用InTouch 的“远程标记名引用”功能来实现。例如:在这个实例中,您可以用两种方法获取节点 Node2 上的 TempTag 标记名值。1 . 在 Node1 的标记名字典中创建一 个 I/O 型标记名,在与 I/O 标记名关联的访问名中使 用 Node2 作为“节点”。2. 使用一个 到 TempTag 的直接远程引用。
11、例如,PLC1:TempTag。换句话说,在窗口或QuickScript 中,您既可以引用本地标记名,也可以使用AccessName:item,来引用一个远程标记名。远程标记名的引用远程标记名的引用如果您要直接引用任何其它FactorySuite 应用程序中的远程标记名,只需要AccessName:item 就可以了。您不必在本地标记名字典中定义远程标记名。远程引用也可以访问来自任何I/O 数据源,如WonderwareI/O 服务器或Microsoft Excel 的数据;远程引用也支持SuperTag 。远程标记名引用SuperTag 的有效语法是: Accessname:ParentIn
12、stanceChildMemberSubMember。此外,在使用远程标记名引用并导入窗口或QuickScript 时,所有要做的事情就是将占位符标记名转换成远程标记名引用。您不必在本地标记名字典中定义标记名,而可以从网络上的任一FactorySuite 应用程序访问远程标记名引用,如下图所示。远程标记名的引用远程标记名的引用远程标记名引用远程标记名引用语语法法远程标记名引用的有效语法 是 AccessName:item。远程引用中使用的字符与标记名的有效字符相同,即有效的字符可以是:A-Z, a-z, 0-9, !, , -, ?, #, $, %,_, 和 & 。如果您确定远程标记名引用中
13、没有使用无效字符,就不必用引号将项目部分括起。提示:远程标记名引用中的“项目”部分也可以使用标记名点域点域点域点域。例如,MyAlarm.HiHi。为了使用任何其它字符,您必须将项目部分用引号括起。例如,如果您使用; ,* ,/ ,+ ,= , ,| ,*, ,=,和 ,则必须将项目部分放在引号中。然而,由于某些通用ASCII I/O 服务器接受任何字符作为有效项目名,我们极力推荐您总将“项目”部分用引号括起。例如,假定您要获取 Alen-Bradley PLC 整型寄存器中的一个位,并使用“N10:7/3”(整数10 的第三位) 作为项目名。系统会将 “N10:”视为访问名, 因为正斜 杠
14、(/) 不是一个有效字符。然而,如果您将项目名放在引号中, 即N10:7/3,系统就会将整个字符串作为项目名。远程标记名的引用远程标记名的引用您也不能连接项目名或远程标记名引用项目名。例如,假定您使用下面的表达式创建了一个字符串输出链接:当系统执行上面的表达式时,它将使用访问 名 “PLC2”,并通 过 Allen-BradleyI/O 服务器去获取存储在字符串文 件 ST10:1 中的字符串。然后它会将字符串“37” 附加到 从 ST10:1 取回的字符串的尾部。如 果 ST10:1 中存储 了 GreenPaint,则链接到该表达式的字符串输出对象将显 示 “Green Paint37”。
15、因此,操作员看不到他们本想要的ST10:137 的内容。远程标记名的引用远程标记名的引用每次您使用远程引 用 (accessname:item) 时,InTouch 会验证您指定的访问名是否有效。如果确定访问名没有定义,它将提示您进行定义。如果您在提示下选择“是”,“访问名”对话框将出现,您可以添加新的访问名。当远程标记名被激活时,系统也会验证访问名是否有效。如果检测到错误,会将其写入Wonderware Logger 。您可以删除由远程引用使用的访问名,前提是本地标记名不再使用它。远程标记名的引用远程标记名的引用记录远程引用记录远程引用缺省条件下,远程引用的标记名会被记入历史记录文件中。要记
16、录远程引用标记名,您必须启用“历史记录”,然后在应用程序目录 的 INTOUCH.INI 文件中添加下面一行:RemoteTagsLogEvents=1如果不想记 录 I/O 标记名,请在应用程序目录 的 INTOUCH.INI 文件中添加下面一行:RemoteTagsNoIOEvents=1注意注意:仅仅当当 RemoteTagsLogEvents RemoteTagsLogEvents 设设置置 为为 1 时,时,RemoteTagsNoIOEvents RemoteTagsNoIOEvents 设设置置才才适适用。用。远程标记名的引用远程标记名的引用远程标记名许可证远程标记名许可证强强制
17、制InTouch 标记名数据字典可支持多 达 61,405 个标记。InTouch 60K 标记名许可证允许最大数目的标记名引用。如果安装了 60K 标记名许可证,则每次在窗口 或 QuickScript 中激活标记名时,许可证强制逻辑所使用的标记名引用计数会增大;每次引用窗口 或 QuickScript 关闭和(或)终止时,引用计数会减小。在 InTouch 7.11 之前的版本中,在一个应用程序进程内,设计时声明的标记名总数加上有关的远程标记名引用数目必须始终小于或等 于 60K 。InTouch7.11 60K 标记名许可证允许应用程序设计人员声明超过 60K 的设计时加远程标记名引用数
18、目。当远程标记名分别进入或退出应用程序进程范围时,系统会动态地增大或减小总的标记名引用计数。注意注意:在许可证允许:在许可证允许少少于于最大最大标记名引用数的标记名引用数的情况情况下,一下,一旦旦标记名在标记名在许可许可限限额中被引用和计数,额中被引用和计数,即即使标记名不使标记名不再再使用,使用,限限额中的计数额中的计数 也也不不会减少会减少。动态引用地址动态引用地址 (DRA)动态地址引用允许您用单一标记名对多个数据源编址。通过把有效引用赋给I/O 型标记名的.Reference 点域,您就可以动态地改变该标记名的数据源地址。每个I/O 型标记名都有一个与其数据源地址关联的引用。.Refr
19、ence 点域的有效语法包括:有效语法 描述Tagname.Reference=accessname.item 改变访问名和项目Tagname.Reference=.item 相同访问名,不同项目Tagname.Reference=accessname 改变访问名Tagname.Reference= 使标记名无效。如没有指定访问名或项目,则使用该域的当前值。注意注意:动态地址引用对远程标记名引用:动态地址引用对远程标记名引用无无效效。动态引用地址动态引用地址 (DRA)使用动态引用使用动态引用动态引用用于查看那些临时需要观察数值的数据点,例如诊断应用中。因为标记名的数据源可以改变,动态引用不能
20、用于那些需要永久保存或连续监视其报警状态的数据。动态引用在传统应用上的一个很好例子是诊断应用。在这项应用中,使用单个标记名来查看 PLC 上任意一个模拟量点的输入值。这使得维护人员可以立即查看任意采样点的状态,从而实现故障诊断的目的。动态引用地址动态引用地址 (DRA)提示:要创建一个诊断应用程序:1 . 创建一个I/O 整型标记名。在本实例中,我们将标记名命名为AnalogSpy。它的初始引用访问名 为 PLC1 项目名 为 WX001。2. 输 入 # 号,创建一个文本对象。3. 双 击 # 号,打开动画链接对话框。4. 单击“用户输入”区域中的“字符串”。“输入-字符串标记名”对话框出现
21、:5. 在“标记名”框中,输 入 “AnalogSpy.Reference”。6. 单击“确定”。7. 启动 WindowViewer ,编译和运行应用程序。8. 单击文本对象,为赋给标记名的访问名和项目名输入一个新值。例如,要查看访问名 为 PLC6 的 WX031 项目,可以输 入 PLC6.WX031作为引用。9. 如果您要确认新值是否有效,可以使用下一节所介绍的ReferenceComplete 点域。动态引用地址动态引用地址 (DRA)使用使用IOSetItem 函函数改变引用数改变引用IOSetItem InTouch 7.0 以前版本称为 SetDdeItem 函数用于设置 I/
22、O 型标记名 的 .Reference 点域。这个函数的基本格式是:IOSetItem(TagName, AccessName, Item)格式中的标记名、访问名和项目名可指定为文字字符串,或由其它InTouch 标记名或函数提供的字符串值。例如:标记名 MyTag1 的.Reference 域可通过如下方式改为指向访问名 Excel 和项 目 R1C1:IOSetItem(MyTag1, Excel, R1C1);或者:Number = 1;TagNameString = MyTag + Text(Number, #);IOSetItem(TagNameString, Excel, R1C1
23、);动态引用地址动态引用地址 (DRA)如果为访问名和项目名指定了一个空字符串 (),则标记名将失效。例如,使用下面的语句可使标记名MyTag2 失效:IOSetItem(MyTag2, , );如果只为访问名指定一个空字符串,则标记名的当前项目名会被保留,而其访问名会被更新。例如,下面的语句将标记名MyTag3 的访问名改为Excel2,但不影响当前项目名 :IOSetItem(MyTag3, Excel2, );同样,如果只为项目名指定了一个空字符串,则标记名的当前访问名会被保留,而其项目名会被更新。例如,下面的语句将标记名MyTag3 的项目改为Excel2,但不影响当前访问名:IOSe
24、tItem(MyTag4, , R1C2);动态引用地址动态引用地址 (DRA)使用使用.ReferenceComplete 验验证引用证引用每个 I/O 型标记名都有一个.ReferenceComplete 域。这个离散域用于确认引用字段中所要求的项目是否反映在 .Value 域中。启动WindowViewer ,.ReferenceComplete 域初始化为假 (0)。当确认 .Value域 由 .Reference 域中指定的数据源更新时,.ReferenceComplete 值设为真 (1)。如果 .Reference 域改变,.ReferenceComplete 域自动设为假 (0
25、),当更新为新值时,再更新为真(1)。动态引用地址动态引用地址 (DRA)在本地标记名中使用在本地标记名中使用间间接标记接标记本节介绍使用间接标记名引用本地标记名字典的常用方法。间接标记名允许您创建可在多个数据集中使用的“通用”标记名。例如,您可以使用通用面板来修改多个本地标记名的报警限。您可以让许多不同的标记名使用您的报警限面板。要使面板转至适当的标记名,您可以执行下面 的 QuickScript :IndirectTagname.dotfield = tagname;此处,tagname 是在本地标记名字典中定义的实际标记名。当执行此脚本时,与本地标记名关联的所有点域点域点域点域都可以通
26、过间接标记名进行访问。动态引用地址动态引用地址 (DRA)在远程引用中使用在远程引用中使用间间接标记名接标记名远程引用标记名在许多方式上与本地标记名存在不同:远程引用的语法是:AccessName:Item此处,AccessName 是任何有效的 InTouch 访问名,而 Item 是受 I/O 服务器(由访问名定义)支持的任何有效项目名。当使用远程引用时,服务器会向客户端返回一个值,而不是标记名结构。此值包括时间标签和质量标记。因此,指定给远程引用的间接标记名将不能访问任何有关值、时间和质量之外的标记名点域。例如,间接标记名不能通过远程引用来访问报警限。动态引用地址动态引用地址 (DRA)
27、为了解决这个问题,您可以用若干个间接标记名来创建一个面板。例如:注意此面板使用十个间接标记名,它们都使用隐式 .Value 引用。动态引用地址动态引用地址 (DRA)让我们假定此报警面板被转到远程引用标记 名 TIC-101 ,它位于一个名为TagServer1 的远 程 InTouch 节点上。InTouch 访问名配置如下:访问名: TagServer1节点: TagServer1应用程序名: View主题名: Tagname要将面板转到远程引用标记 名 TIC-101 ,可以执行下面 的 QuickScript :IndirectTagname.Name = TagServer1:TIC
28、-101.Name;IndirectTagValue.Name = TagServer1:TIC-101;IndirectTagHiHiLimit.Name = TagServer1:TIC-101.HiHiLimit;IndirectTagHiLimit.Name = TagServer1:TIC-101.HiLimit;IndirectTagLoLimit.Name = TagServer1:TIC-101.LoLimit;IndirectTagLoLoLimit.Name = TagServer1:TIC-101.LoLoLimit;IndirectTagHiHiStatus.Name
29、= TagServer1:TIC-101.HiHiStatus;IndirectTagHiStatus.Name = TagServer1:TIC-101.HiStatus;IndirectTagLoStatus.Name = TagServer1:TIC-101.LoStatus;IndirectTagLoLoStatus.Name = TagServer1:TIC-101.LoLoStatus;动态引用地址动态引用地址 (DRA)由于每次面板改向时都必须执行此脚本,即浪费时间又容易出错。因此,一个更好的方法是创建InTouch QuickFunction ,它允许您只写一次脚本,然后将其传
30、递给远程引用名。 例如,使用上述的脚本命令集 , 您可以定义一个名为 RedirectAlarmFacePlate() 的 QuickFunction 函数:动态引用地址动态引用地址 (DRA)您现在只需调用 QuickFunction 函数 RedirectAlarmFacePlate(),就可以处理整个改向操作。要实现这一点,必须由另 一 InTouch QuickScript 来调用QuickFunction 函数。例如:CALL RedirectAlarmFacePlate (TagServer1:TIC-101);通常,您应该专门使用远程引用来开发新的应用程序(也可以远程引用InTo
31、uch 中的本地标记名字典)。这可以从图形中提取数据源(本地或远程)。通过在 InTouch 应用程序中使用专有远程引用,当您以后在分布式FactorySuite 系统中添加新的窗口或图形对象时,就可以显著地减少应用程序的维护工作。InTouch SuperTagInTouch支持SuperTag模板结构,可以定义一个名叫SuperTag 的复合标记名类型。SuperTag 模板最多可容纳 64 个标记名成员和两个嵌套级别。这就意味着,一个SuperTag 父项可以包含最多64个内嵌的子项成员,并且每个子项成员又可以包 含 64 个子成员标记名,因而总共可以有4095 个成员标记名(当一个Su
32、perTag 模板父项被内嵌到另一个SuperTag模板时,它就变成了一个“子成员”)。所有SuperTag 模板子成员标记名的行为与常规标记名一样,它们支持趋势、报警和所有标记名点域点域点域点域。SuperTag 语语法法由于InTouch 标记名限制在32 字符内,每个SuperTag 的父辈实例子辈成员子成员均限制为最多32 个字符。SuperTag 引用的层数最多只能为两个模板(父辈实例子辈成员)和一个成员,如下所示:SuperTag 模板中的每个成员都可以使用您现在用于访问常 规 InTouch 标记名类型的点域的标准格式去访问。InTouch 中凡是可以使用常规标记名的地方,都支持
33、使用SuperTag 引用语法。例如,一个有效的SuperTag 引用可以是:ColdRoom4EvapUnit1FanMotor2.MaxEU远程标记名引用也支持SuperTag 。语法实例:PLC1:TurkeyEvapUnit2PrsRegVlv.EngUnits建立建立SuperTag模板结构模板结构为了形象地描述工厂环境中的SuperTag 概念,我们假定有四个同样的冷藏室,其中储存着牛肉、猪肉、鸡肉和火鸡。每个冷藏室都有一个室内温度,以及两个脱水器单元。每个脱水器单元有七个我们需要在运行时监控的数据值。例如:建立建立SuperTag模板结构模板结构如果我们不创建SuperTag 模
34、板来实现,就需要为每个冷藏室中的每个数据值人工定义一个单独的标记名,然后乘以冷藏室的总数。换句话说,我们必须在标记名字典中组织和定义数十个标记名!通过使用SuperTag ,我们就可以节约开发时间并最大程度地降低出错可能。使用上面所述的冷库方案,我们创建一个名 为 “EvapUnit” 的SuperTag 父模板(这个EvapUnit 稍后将变成ColdRoom 父模板的子成员,这是一种“逐渐细化”的设计概念)。EvapUnit 可以用七个子成员标记名来定义。成员标记 类型 描述FanMotor1 离散型 风扇1 的马达启动器FanMotor2 离散型 风扇2 的马达启动器DefrostVlv
35、 离散型 除霜气体阀状态LiquidVlv 离散 液体冷却阀状态CoilTemp 实型 致冷剂的温度PrsRegVlv 整型 压力调节阀(0-100%)EvapStatus 消息型 蒸发单元状态字符串建立建立SuperTag父模板父模板要创建一个要创建一个SuperTag 父模板:父模板:1 . 在“特殊”菜单上,单 击 “TemplateMaker”,或者在应用程序浏览器中,双 击 “TemplateMaker”。TemplateMaker 对话框出现:建立建立SuperTag父模板父模板2. 在 TemplateMaker 窗口中,选择“InTouch模板”,然后单击“新模板”,或者右击“
36、InTouch 模板”,然后选择“新模板”。出现“新模板”对话框:提示:您也可以选择“InTouch 模板”,然后右击窗口的空白区域。提示:如果您右击任一TemplateMaker 对话框中的文本输入框,会 出现一个菜单,显示可应用于选定文本的命令。建立建立SuperTag父模板父模板3. 在“名称”字段中,为新模板输入一个唯一的名称(最多10 个字符)。提示:当添加新的父模板时,其名称将作为标记名类型之一立即显示在标记名字典的“标记名类型”对话框中,并可立即供您选用。您不必重新启动WindowMaker ,就可以定义新的标记名并将其赋给SuperTag 类型。4. 在“描述”字段中,输入用于
37、描述模板的任何信息。5. 单击“确定”。TemplateMaker 对话框重新出现,在窗口中显示新的模板名。建立建立SuperTag父模板父模板一旦创建模板,“新成员”和“删除”按钮即被激活。当选择模板名时,模板创建日期和时间和(或)最近一次修改的日期和时间、以及模板的描述也会显示出来。注意注意:TemplateMaker TemplateMaker 窗口以窗口以分分层层表表的方的方式式显示所有当前定义的显示所有当前定义的SuperTagSuperTag父父模板模板及及其其子子成员。要展成员。要展开开模板模板视图视图,单击单击模板名模板名旁边旁边的。的。 所有为所有为父父模板名定义的成员标记名
38、模板名定义的成员标记名都都将显示出来。要将显示出来。要折叠折叠视图视图, 单击单击。建立建立SuperTag成员标记名成员标记名要创建要创建SuperTag SuperTag 成员标记名:成员标记名:1 . 在TemplateMaker 窗口中,选择SuperTag 模板(本例中为EvapUnit),然后单击“添加成员”,或者右击SuperTag 模板名称,然后单击“添加成员”。“新成员标记”对话框出现:2. 在“名称”框中,输入新成员标记名的名称。建立建立SuperTag成员标记名成员标记名3. 在“类型”框中,输入成员的标记名类型,然后单击“类型”箭头,从列表中选择类型。类型可以是离散型、
39、整型、实型、消息型或另一SuperTag 模板。提示:如果您输入类型的第一个字母,则列表框中以该字母开头的第一个类型会自动显示在框中。如果有多个类型以该字母开头,您可以继续输入名称的下一个字母,以此类推。注意:此处指定的类型仅仅是SuperTag 模板的占位符。缺省条件下,当您在TemplateMaker 中定义时,所有成员标记名均设置为“内存”类型,但在标记名称字典中定义模板实例时,您必须指定这些标记名是“内存”还是“I/O类型的标记名。4. 在“注释”字段中,输入用于描述成员标记名的任何信息。5. 单击“确定”。提示:重复此过程,以添加其它的成员标记名到SuperTag 模板中。建立建立S
40、uperTag成员标记名成员标记名新的成员标记名会添加到TemplateMaker 窗口中SuperTag 父模板的下方。建立建立SuperTag成员标记名成员标记名注意注意:一:一旦旦选定成员标记名,选定成员标记名,“新成员新成员”按钮按钮将将失效失效,这是,这是因因为成员为成员只只能在现能在现有的有的SuperTag 父父模板下创建。当选择成员时,成员标记名的创建模板下创建。当选择成员时,成员标记名的创建日期日期和时和时间间、最近最近一一次次修改的修改的日期日期和时和时间间,以,以及及模板描述模板描述都会都会显示出来。显示出来。6. 现在,创建另一个父模 板 ColdRoom 。ColdR
41、oom 将包含一个名为RoomTemp 的成员标记名和两个EvapUnit 子成员模板(EvapUnit1 和EvapUnit2 )。这两个子成员模板将使用父SuperTag 模 板 “EvapUnit” 作为其类型。7. 在TemplateMaker 窗口中,选择“InTouch 模板”,然后单击“新模板”,或者右击“InTouch 模板”,然后单击“新模板”。“新模板”对话框出现:建立建立SuperTag成员标记名成员标记名8. 在“名称”字段中,为新的父模板输入一个唯一的名称(最多10 个字符)提示:当添加新的父模板时,其名称将作为标记名类型之一立即显示在标记名字典的“标记名类型”对话框
42、中,并且可立即供您选用。您不必重新启动WindowMaker ,就可以定义新的标记名并将其赋给SuperTag类型。9. 在“描述”字段中,输入用于描述模板的任何信息。10. 单击“确定”。TemplateMaker 对话框重新出现,在窗口中显示新的模板名。11 . 单击“确定”。建立建立SuperTag成员标记名成员标记名父模板将添加到TemplateMaker 窗口的InTouch 模板列表中。1 2. 我们现在需要为ColdRoom父模板创建三个成员、两个 EvapUnit 子成员和一个名为RoomTemp 的成员标记名。建立建立SuperTag成员标记名成员标记名1 3. 在Templ
43、ateMaker 窗口中,选择SuperTag 父模板(本例中为ColdRoom ),然后单击“”添加成员”,或者右击SuperTag 父模板名,然后单击“添加成员”。“新成员标记”对话框出现:1 4. 在“名称名称名称名称”框中,输入新成员标记名的名称。1 5. 在“类型”框中,输入成员的标记名类型,或者单击“类型”箭头,从列表中选择类型。类型可以是离散型、整型、实型、消息型或另一SuperTag 模板。1 6. 在“注释”字段中,输入用于描述成员标记名的任何信息。1 7. 单击“确定”。建立建立SuperTag成员标记名成员标记名下一步,我们创建两个子成员模板:EvapUnit1 和Eva
44、pUnit2 ,它们使用EvapUnit 模板类型。1 . 在TemplateMaker 窗口中,选择SuperTag 父模板(本例中为ColdRoom ),然后单击“”添加成员”,或者右击SuperTag 父模板名,然后单击“添加成员”。“新成员标记”对话框出现:建立建立SuperTag成员标记名成员标记名2. 在“名称”框中,输入新成员标记名的名称。3. 在“类型”框中,输入成员的标记名类型,或者单击“类型”箭头,从列表中选择类型。此时,我们可以使用特殊模板类型EvapUnit 。4. 在“注释”字段中,输入用于描述成员标记名的任何信息。5. 单击“确定”。提示:对EvapUnit2 重复
45、上述过程。建立建立SuperTag成员标记名成员标记名一旦完成ColdRoom父模板,TemplateMaker 窗口将显示下列的模板层次结构:单击“确定”。至此我们完成了ColdRoomSuperTag 模板,可以着手创建使用该模板作 为其标记名类型的标记名实例。设计设计SuperTag 模板和成员标记名模板和成员标记名您可以随时修改SuperTag 模板或成员标记名。然而,如果您修改一个现有的SuperTag 模板或其成员,该模板的所有现有实例将不会受影响(实例指的是在标记名字典中使用SuperTag 类型定义的标记名)。换句话说,您对SuperTag 所做的修改不可回溯。然而,所有使用修
46、改后的SuperTag 定义的新实例将使用新的结构。要要编辑编辑现有的现有的SuperTag SuperTag 模板或成员标记名:模板或成员标记名:1 . 在TemplateMaker 窗口中,双击SuperTag 模板名(或成员名),或右击它,然后单击“编辑”。“编辑模板”或“编辑成员标记”对话框出现,显示SuperTag 模板(或成员)的定义。2. 进行所需的编辑,然后单击“确定”设计设计SuperTag 模板和成员标记名模板和成员标记名要删除要删除SuperTag SuperTag 模板或成员模板:模板或成员模板:1 . 在TemplateMaker 窗口中,选择您要删除的SuperTa
47、g 模板名(或成员名),或右击它,然后单击“删除”。屏幕出现一个要求您确认删除的对话框。2. 单击“是”删除所选名称,或单击“否”取消删除。注意:如果您按下 ESC 键而不是“确定”来关闭TemplateMaker 则模板不会被删除。当您删除模板时,也将删除所有相关联的成员标记名。定义定义SuperTag模板实例模板实例在TemplateMaker 中一个很重要的概念是区分SuperTag 模板和模板实例。模板实例是SuperTag 模板的一个特定的具体示例。模板与实例的最重要区别是父模板名将被实例标记名替代,而子模板名和次成员标记名不会改变。这相当于一个用来设计蜡纸之类的文字模板,该蜡纸用来
48、制作实际的图画。图画自身,打个比方,就是“模板实例”,它们按照模板和蜡纸的样子进行创建。再次回到ColdRoom 模板方案,在创建了该模板后,从这个模板我们可以创建SuperTag 实例如“牛肉”、“猪肉”、鸡肉”和“火鸡”。为此,我们只要简单地创建四个使用ColdRoom 作为其类型的标记名。这样我们一次努力,就可以快速地在标记名字典中创 建 60 个标记名。从而节约了大量的时间。在创建ColdRoom SuperTag 模板和实例后,我们可以通过使用有效的SuperTag 引用,在动画链接表达式或QuickScript 中引用其任何成员。例如:BeefRoomTempChickenRoom
49、Temp.RawValueChickenEvapUnit1FanMotor1.OnMsgPorkEvapUnit2EvapStatusTurkeyEvapUnit2PrsRegVlv.EngUnits定义定义SuperTag模板实例模板实例要使用新建的模板来创建要使用新建的模板来创建SuperTaSuperTag g:1 . 在“特别”菜单上,单击“标记名字典”,或者在应用程序浏览器中,双击“标记名字典”。“标记名字典”对话框出现:2. 单击“新建”(“标记名”框将被清除)。3. 在“标记名”框中,输入新标记名的名称。提示:标记名最长可为32个字符,但必须以一个希腊字符开头(A-Z 或a-z
50、。其余的字符可以是A-Z, a-z, 0-9, !, , -, ?, #, $, %, _, 和 & 。标记名不能使 用 RetVal 一字。这个字是保留字。如果您试图使用这个字,然后尝试编 辑 QuickFunction ,将出现一条错误消息 A variablecannot have that name.Tag exists(变量不能使用该名称,标记已经存在)。定义定义SuperTag模板实例模板实例4. 单击“类型”,“标记名类型”对话框出现:5. 从标记名中选择ColdRoom 然后单击“确定确定确定确定”。定义定义SuperTag模板实例模板实例6. 选择SuperTag 模板作为标