MessageBox: Displaying a numerical value in the message消息框:在消息中显示一个数值

<< 点击显示目录 >>

主页  mappView帮助助手 > mapp View帮助信息 > 指南 > FAQs > 事件和行动应用 >

MessageBox: Displaying a numerical value in the message消息框:在消息中显示一个数值

这个例子演示了以下用例。

 

一个特定的事件(例如,点击一个按钮或改变一个OPC UA标签的值)调用一个消息框。这个消息框应该显示事件发生时的文本中的当前值(例如,生产步骤中的错误:44)。

MessageBoxNumeric

消息框中直接使用 数字片段 不会导致在数值(如OPC UA变量)改变时对片段的改变。在这种情况下,该片段必须被绑定到一个会话变量。

实施

OPC UA变量的值被绑定到绑定文件中的一个片段。该片段在第二步中被绑定到一个文本增量。

将文本绑定到一个会话变量上,导致片段中的格式项目被更新。在事件绑定中,这个会话变量可以在事件发生时被读取,并被指定为消息属性的一个参数。

文本定义

必须在一个文本文件(.tmx)中创建一个带有格式项的文本ID。

TextSnippet

创建一个片段和会话变量

必须在一个.snippet文件中为HMI应用程序创建一个具有唯一ID的片段。

<Snippet xsi:type="session" id="ErrorSnippet" type="Numeric" formatItem="{1}" />

必须在.svar文件中创建一个字符串类型的会话变量。

<Variable name="ErrorText" xsi:type="ANY_STRING" value="" />

创建绑定

在一个绑定文件中必须输入三个绑定,这些绑定需要更新片段、文本和会话变量。

<Binding mode="oneWay">
 <Source xsi:type="opcUa" refId="::Program:ProductionStep" attribute="value" />
 <Target xsi:type="snippet" refId="ErrorSnippet" attribute="value" />
</Binding>
<Binding mode="oneWay">
 <Source xsi:type="snippet" refId="ErrorSnippet" attribute="value" />
 <Target xsi:type="text" refId="ErrorMsg" attribute="value" />
</Binding>
<Binding mode="oneWay">
 <Source xsi:type="text" refId="ErrorMsg" attribute="value" />
 <Target xsi:type="session" refId="ErrorText" attribute="value" />
</Binding>

创建一个事件绑定

HMI应用程序的事件绑定导致对按钮部件的点击事件的响应,并显示一个消息框。

一个操作数被用来读取会话变量 "错误文本 "的值,并指定它作为消息框中消息属性的参数。

<EventBinding>
 <Source xsi:type="widgets.brease.Button.Event" widgetRefId="Button1" contentRefId="Content1" event="Click"/>
 <Operand name="myOperand" datatype="ANY_STRING">
 <ReadTarget xsi:type="session.VariableAction.Read" refId="ErrorText" >
 <Method xsi:type="session.VariableAction.GetValue" />
 </ReadTarget>
 </Operand>
 <EventHandler>
 <Action>
 <Target xsi:type="clientSystem.Action">
 <Method xsi:type="clientSystem.Action.ShowMessageBox" type="OKCancel" message="=myOperand" header="Warning!" icon="Warning" />
 </Target>
 </Action>
 </EventHandler>
</EventBinding>

从mapp View 1.1版开始支持操作数Operands。