将片段绑定到一组文本上

<< 点击显示目录 >>

主页  mappView帮助助手 > mapp View帮助信息 > 工程 > 变量和数据 > Snippets > 使用案例 >

将片段绑定到一组文本上

我们想根据OPC UA变量的值,在HMI应用程序中显示一个文本组的文本。

如果OPC UA变量改变,那么文本也应该改变。

实施

 

我们假设配置了一块ID为Content1的内容,包含名称为StatusOutput的小组件TextOutput。

我们假设OPC UA变量 statusIndex被创建为一个名为Program1的任务中的局部变量,数据类型为INT。

 

 

我们将定义一组文本。

我们将定义一个引用该组文本的片段。

我们将定义一个绑定,如果OPC UA变量发生变化,则改变该片段。

我们将定义一个绑定,使片段的变化在HMI应用程序中可见。

定义一个文本组

我们定义一组具有共同ID Status文本 。

这些文本的命名空间必须被设置为 IAT

<tu tuid="Status.1">
   <tuv xml:lang="en">
      <seg>high</seg>
   </tuv>
   <tuv xml:lang="de">
      <seg>hoch</seg>
   </tuv>
</tu>
<tu tuid="Status.2">
   <tuv xml:lang="en">
      <seg>low</seg>
   </tuv>
   <tuv xml:lang="de">
      <seg>niedrig</seg>
   </tuv>
</tu>

定义一个引用文本组的代码段

我们创建一个 "IndexText "类型的片段,将文本组写入格式项中,并为索引设置占位符"{1}"。

  <Snippet id="SnippetStatus" xsi:type="session" type="IndexText" formatItem="Status.{1}" />

每当片段被解析时,它就会以文本ID的当前值计算,并从文本系统中读取文本。

定义一个改变片段的绑定方式

我们将定义一个值绑定,当OPC UA变量改变时,触发对片段的改变。

<Binding mode="oneWay">
   <Source xsi:type="opcUa" refId="::Program1:statusIndex" attribute="value"/>
   <Target xsi:type="snippet" refId="SnippetStatus" attribute="value"/>
</Binding>

每当OPC UA变量的值发生变化时,在片段中就会计算出一个新的文本。

定义一个改变HMI应用程序的约束

我们将定义一个值绑定,当片段发生变化时触发对HMI应用程序的改变。

<Binding mode="oneWay">
   <Source xsi:type="snippet" refId="SnippetStatus" attribute="value" />
   <Target xsi:type="brease" widgetRefId="StatusOutput" contentRefId="Content1" attribute="value" />
</Binding>

每当该片段的值发生变化时,新的文本就会显示在HMI应用程序中。