实时更新文本中的一个值

<< 点击显示目录 >>

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

实时更新文本中的一个值

我们想在HMI应用程序中的一个文本字段中显示当前的温度。

如果温度改变,那么显示的文本值也应该改变。

如果语言改变了,那么文本应该以新的语言显示。

实施

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

 

我们将定义应该显示的文本。

我们将定义一个将在文本中被引用的片段。

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

我们将定义一个绑定,当片段改变时改变文本。

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

定义一个文本

我们将定义应该显示的文本。

<tu tuid="OutdoorTemperature">
   <tuv xml:lang="en">
      <seg>Outdoor temperature: {@SnippetTemp}</seg>
   </tuv>
   <tuv xml:lang="de">
      <seg>Aussentemperatur: {@SnippetTemp}</seg>
   </tuv>
</tu>

定义文本中使用的片段

我们将创建一个类型为 "Numeric "的代码段。我们只想将温度度数输出为整数。

   <Snippet id="SnippetTemp" xsi:type="session" type="Numeric" formatItem="{1|.0lf}" />

每当该片段被解析时,它就会计算出当前的数值,并显示出没有小数位的数值。

定义一个改变片段的绑定

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

<Binding mode="oneWay">
   <Source xsi:type="opcUa" refId="::AsGlobalPV:gTemperature" attribute="value" />
   <Target xsi:type="snippet" refId="SnippetTemp" attribute="value" />
</Binding>

每当OPC UA变量的值改变时,就会计算出一个新的片段值。

定义一个改变文本的绑定

我们将定义一个绑定,当片段发生变化时触发对文本的更改。

引用是通过 完全合格的文本ID (命名空间+文本ID)完成的  。

<Binding mode="oneWay">
   <Source xsi:type="snippet" refId="SnippetTemp" attribute="value" />
   <Target xsi:type="text" refId="IAT/OutdoorTemperature" attribute="value" />
</Binding>

每当片段的值发生变化时,文本就会被再次检索出来。

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

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

引用是通过 完全合格的文本ID (命名空间+文本ID)完成的  。

<Binding mode="oneWay">
   <Source xsi:type="text" refId="IAT/OutdoorTemperature" attribute="value" />
   <Target xsi:type="brease" widgetRefId="TextOutput1" contentRefId="Content1" attribute="value" />
</Binding>

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