描述

<< 点击显示目录 >>

主页  mappView帮助助手 > mappView入门简单Wiki >

描述



事件文件构建器可用于快速复制和粘贴事件绑定。 复制第 1-4 章中的代码以创建事件绑定。


1 外构架Outer frame

从事件绑定的外框开始

<EventBinding>
  <!-- Add a description for the event binding here />-->
</EventBinding>


2 事件触发器 Event triggers

添加一个以下类型的事件触发器。 读 这里 了解更多信息。

OPC UA variable

  <Source xsi:type="opcUa.Event" refId="::Program:boolVariable" event="ValueChanged" />

触发器创建两个内部变量 newValueoldValue。 这些值可以稍后用于条件。

Session variable

Variable

  <Source xsi:type="session.Event" refId="variable1" event="ValueChanged"/>

Timer

  <Source xsi:type="session.Timer.Event" refId="AutoLogOutTimer" event="Elapsed"/>

触发器创建两个内部变量 newValueoldValue。 这些值可以稍后用于条件。

Client System

键盘事件 KeyBoard Events

<Source xsi:type="clientSystem.Event" event="KeyPress" />
<Source xsi:type="clientSystem.Event" event="KeyUp" />
<Source xsi:type="clientSystem.Event" event="KeyDown" />

触发器创建两个变量 keyASCIIkey。 该值可以稍后用于条件。

<EventHandler condition="keyASCII = 97" >
<EventHandler condition="key = &quot;ArrowLeft&quot;" >

手势事件 Gesture Events

<Source xsi:type="clientSystem.Event" event="SystemSwipe" />

触发器创建一个变量direction。 该值可以稍后用于条件。

<EventHandler condition="direction=&quot;fromTop&quot;">

内容加载事件 ContentLoaded Event

<Source xsi:type="clientSystem.Event" event="ContentLoaded" />

触发器创建两个变量 contentIdvisuId。 这些值可以在以后用于条件。

<EventHandler condition="contentId=&quot;Content1&quot;">

取消点击事件 DisabledClick Event

<Source xsi:type="clientSystem.Event" event="DisabledClick" />

触发器创建三个变量 contentIdwidgetIdhasPermission。 这些值可以在以后用于条件。

<EventHandler condition="contentId=&quot;Content1&quot;">

对话框打开事件 DialogOpened Event

<Source xsi:type="clientSystem.Event" event="DialogOpened" />

触发器创建一个变量dialogId。 该值可以稍后用于条件。

<EventHandler condition="dialogId=&quot;Dialog1&quot;">

对话框关闭事件 DialogClosed Event

<Source xsi:type="clientSystem.Event" event="DialogClosed" />

触发器创建一个变量dialogId。 该值可以稍后用于条件。

<EventHandler condition="dialogId=&quot;Dialog1&quot;">

Widget

<Source xsi:type="widgets.brease.Button.Event" contentRefId="Content1" widgetRefId="Button1" event="Click"/>


2.1 操作符 Operand (可选)

操作数可用于将其他变量加载到事件绑定中。

操作数的数据类型可以是 BOOL, ANY_REAL, ANY_INT, ANY_STRING, BOOL_ARRAY, ANY_REAL_ARRAY, ANY_INT_ARRAY, ANY_STRING_ARRAY, DATE_AND_TIME

OPC UA operands

<!-- Read value from PLC />-->
<Operand name="ContentIsVisible1" datatype="BOOL">
  <ReadTarget xsi:type="opcUa.NodeAction.Read" refId="::AsGlobalPV:Motor[1].IsVisible" >
    <Method xsi:type="opcUa.NodeAction.GetValue" />
  </ReadTarget>
</Operand>

Session operands

<!-- Read session variable />-->
<Operand name="InputValue2" datatype="ANY_INT">
  <ReadTarget xsi:type="session.VariableAction.Read" refId="InputValue2" >
    <Method xsi:type="session.VariableAction.GetValue" />
  </ReadTarget>
</Operand>

Widget operands

<!-- Read widget property />-->
<Operand name="contentid" datatype="ANY_STRING">
  <ReadTarget xsi:type="widgets.brease.ContentControl.ReadAction" contentRefId="Content1" widgetRefId="ContentControl1" >
    <Method xsi:type="widgets.brease.ContentControl.Action.GetContentId" />
  </ReadTarget>
</Operand>


3 事件处理 Event handler

这是触发触发器时执行的部分。 选择 3.1 或 3.2 并在必要时添加 3.3。

3.1 无条件事件的处理程序

当动作应该一直执行时,使用这个框架作为处理程序。

<EventHandler>
</EventHandler>

3.2 有条件事件的处理程序

在某些情况下,可能需要将事件触发器与其他条件结合起来。 有关比较的详细信息,请参阅 this . 布尔值使用表示法“newValue”表示真,“NOT newValue”表示假。

<!-- New value smaller 20, old value greater 10 />-->
<EventHandler condition="newValue &lt; 20 AND oldValue &gt; 10" >
</EventHandler>
<!-- String value is not equal 'correct' />-->
<EventHandler condition="value &lt;&gt; &quot;correct&quot;">
</EventHandler>

3.3 执行多个动作(可选)

如果事件处理程序必须执行多个操作,请使用序列帧。

<Sequence>
  <Step order="0">
      ...
  </Step>
  <Step order="1">
      ...
  </Step>
</Sequence>


4 事件动作 Event actions

触发触发器时执行操作。 以下目标可用于操作。 参考 this 了解更多细节. 将以下外框用于事件操作,然后将以下目标之一复制到其中。

  <Action>
  </Action>

OPC UA variable

SetValueBool

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.SetValueBool" value="true" />
</Target>

使用false重置变量

ToggleValueBool

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.ToggleValueBool"/>
</Target>

SetValueNumber

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.SetValueNumber" value="37.1" />
</Target>

AddValue

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.AddValue" value="2" />
</Target>

SetValueString

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.SetValueString" value="Hello World" />
</Target>

SetValueDateAndTime

<Target xsi:type="opcUa.NodeAction" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.SetValueDateTime" value="2018-02-23T09:33:30Z" />
</Target>

GetValue

<ReadTarget xsi:type="opcUa.NodeAction.Read" refId="::Program:Variable1" >
  <Method xsi:type="opcUa.NodeAction.GetValue" />
</ReadTarget>

GetServerStatus

<ReadTarget xsi:type="opcUa.SystemAction.Read" serverAlias="extern" >
  <Method xsi:type="opcUa.SystemAction.GetServerStatus" />
</ReadTarget>

Session variable

每个客户端连接的会话变量都作为单独的数据集存在。

SetValueBool

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.SetValueBool" value="false" />
</Target>

使用 false 重置变量

ToggleValueBool

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.ToggleValueBool" />
</Target>

SetValueNumber

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.SetValueNumber" value="4.8" />
</Target>

AddValue

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.AddValue" value="-4.8" />
</Target>

SetValueString

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.SetValueString" value="Hello World" />
</Target>

SetValueDateAndTime

<Target xsi:type="session.VariableAction" refId="Variable1" >
  <Method xsi:type="session.VariableAction.SetValueDateTime" value="2018-02-23T09:33:30Z" />
</Target>

GetValue

<ReadTarget xsi:type="session.VariableAction.Read" refId="Variable1" >
 <Method xsi:type="session.VariableAction.GetValue" />
</ReadTarget>

Start (Timer)

<Target xsi:type="session.TimerAction" refId="RepetitivTimer" >
 <Method xsi:type="session.TimerAction.Start" interval="1000" />
</Target>

Stop (Timer)

<Target xsi:type="session.TimerAction" refId="RepetitivTimer" >
  <Method xsi:type="session.TimerAction.Stop" />
</Target>

IsRunning (Timer)

<ReadTarget xsi:type="session.TimerAction.Read" refId="RepetitivTimer" >
  <Method xsi:type="session.TimerAction.IsRunning" />
</ReadTarget>

Client System

OpenDialog

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.OpenDialog" dialogId="dialog1" horizontalPos="left" verticalPos="top" />
</Target>

CloseDialog

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.CloseDialog" dialogId="dialog1" />
</Target>

ShowMessageBox

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.ShowMessageBox" type="OKCancel" message="$MachineStoppedText" header="Warning!" icon="Warning"  />
</Target>
<Result>
    <ResultHandler condition="result = 4">
    ...
    </ResultHandler>
</Result>

Action.Navigate

<Target xsi:type="clientSystem.Action"> <Method xsi:type="clientSystem.Action.Navigate" pageId="mainpage" /> </Target>

LoadContentInArea

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.LoadContentInArea" contentId="Content3" areaId="A1" pageId="MainPage" />
</Target>
The action returns the result for load successful

LoadContentInDialogArea

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.LoadContentInDialogArea" contentId="Content3" areaId="A1" dialogId="Dialog1" />
</Target>
The action returns the result for load successful

ChangeTheme

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.ChangeTheme" theme="MyNewTheme" />
</Target>

Login

<EventBinding>
    <Source xsi:type="opcUa.Event" refId="::Program:startLogin" event="ValueChanged" />
  
    <Operand name="user" datatype="ANY_STRING">
        <ReadTarget xsi:type="opcUa.NodeAction.Read" refId="::Program:user">
            <Method xsi:type="opcUa.NodeAction.GetValue" />
        </ReadTarget>
    </Operand>
    <Operand name="pwd" datatype="ANY_STRING">
        <ReadTarget xsi:type="opcUa.NodeAction.Read" refId="::Program:pwd">
            <Method xsi:type="opcUa.NodeAction.GetValue" />
        </ReadTarget>
    </Operand>
    <EventHandler condition="newValue = 1">
        <Action>
            <Target xsi:type="clientSystem.Action">
                <Method xsi:type="clientSystem.Action.Login" userName="=user" password="=pwd" />
            </Target>
        </Action>
    </EventHandler>
</EventBinding>

Logout

<Target xsi:type="clientSystem.Action">
  <Method xsi:type="clientSystem.Action.Logout"/>
</Target>

SetLanguage

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.SetLanguage" value="en" />
</Target>

SetMeasurementSystem

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.SetMeasurementSystem" value="imperial" />
</Target>

ScrollContent

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.ScrollContent" contentId="Content2" position="top" duration="2000" />
</Target>
The action returns the result for load successful

OpenDialogAtTarget

<Target xsi:type="clientSystem.Action">
    <Method xsi:type="clientSystem.Action.OpenDialogAtTarget" dialogId="dialog1" horizontalPos="left" verticalPos="bottom" target="StartContent_Button1" horizontalDialogAlignment="left" verticalDialogAlignment="middle"/>
</Target>

Widget

这些是可以在Widget上执行的操作。 有关每个小部件可以触发哪些事件的详细信息,请参阅 Automation Studio 帮助。

<Target xsi:type="widgets.brease.Button.Action" contentRefId="Content1" widgetRefId="Button1" >
  <Method xsi:type="widgets.brease.Button.Action.SetEnable" value="true"/>
</Target>