Binding modes绑定模式

<< 点击显示目录 >>

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

Binding modes绑定模式



oneWay用于对源数据的读取访问。 例: OPC UA 变量和输出widget之间的绑定 (e.g. widget "NumericOutput")

twoWay 用于对源数据的读写访问。 例: OPC UA 变量和输入widget之间的绑定 (e.g. widget "NumericInput")

oneWayToSource 用于对源数据的写访问。 例: OPC UA 变量和widget "PushButton"之间的绑定。

Binding types绑定类型

Value binding 数值绑定

如果只需要没有单位或限制的值,则使用值绑定。 数据转发只涉及绑定变量的值。

<Binding mode="oneWay">
    <Source xsi:type="opcUa" refId="::AsGlobalPV:gMainLogic.par.coffeeType" attribute="value" />
    <Target xsi:type="brease" widgetRefId="ImageSwitchCoffeeType" contentRefId="myContent" attribute="selectedIndex" />
</Binding>

Node binding 节点绑定

如果需要带有单位或限制的值,则使用节点绑定。 数据转发涉及绑定变量的值、单位和界限。

<Binding mode="oneWay">
    <Source xsi:type="opcUa" refId="::AsGlobalPV:gMainLogic.par.coffeeType" attribute="node" />
    <Target xsi:type="brease" contentRefId="myContent" widgetRefId="ImageSwitchCoffeeType" attribute="node" />
</Binding>

List binding 列表绑定

如果需要从值列表中获取值,则使用列表绑定。使用列表绑定,将定义一个值列表和一个选择器。选择器的值定义列表中的哪个元素将被选中。列表中元素的值定义了绑定的值。使用元素的索引进行选择。

在此示例中,session会话中的 slotId 与 isLoggedIn 标志结合使用以显示或隐藏按钮。

<Binding mode="oneWay">
  <Source xsi:type="listElement" >
 <Selector xsi:type="session" refId="::SYSTEM:clientInfo.slotId" attribute="value"  />
 <be:List xsi:type="be:opcUa" attribute="value" >
   <bt:Element index="0" refId="::AsGlobalPV:ClientInfo[0].isLoggedIn" />
   <bt:Element index="1" refId="::AsGlobalPV:ClientInfo[1].isLoggedIn" />
   <bt:Element index="2" refId="::AsGlobalPV:ClientInfo[2].isLoggedIn" />
   <bt:Element index="3" refId="::AsGlobalPV:ClientInfo[3].isLoggedIn" />
   <bt:Element index="4" refId="::AsGlobalPV:ClientInfo[4].isLoggedIn" />
 </be:List>
  </Source>
  <Target xsi:type="brease" contentRefId="myContent" widgetRefId="LogoutButton1" attribute="visible" />
</Binding>

在此示例中,PLC 变量 IndexVar 用于将 PLC 变量 TestVar2 之一绑定到数字输入。

<!-- Multiple bindings from between PLC and mappView />-->
  <Binding mode="twoWay">
    <Source xsi:type="listElement">
      <Selector xsi:type="opcUa" refId="::AsGlobalPV:IndexVar" attribute="value" />
        <be:List xsi:type="be:opcUa" attribute="value">
   <bt:Element index="0" refId="::AsGlobalPV:TestVar2[0]" />
   <bt:Element index="1" refId="::AsGlobalPV:TestVar2[1]" />
   <bt:Element index="2" refId="::AsGlobalPV:TestVar2[2]" />
   <bt:Element index="3" refId="::AsGlobalPV:TestVar2[3]" />
        </be:List>
     </Source>
    <Target xsi:type="brease" contentRefId="contentStart" widgetRefId="NumericInput2" attribute="value" />
</Binding>

“brease”类型列表的示例

<Binding mode="oneWay">
  <Source xsi:type="listElement" >
 <Selector xsi:type="session" refId="selectorVar" attribute="value"  />
 <be:List xsi:type="be:brease" contentRefId="contentId1" >
   <bt:Element index="0" widgetRefId="numericInput1" attribute="value" />
   <bt:Element index="1" widgetRefId="numericInput2" attribute="value" />
   <bt:Element index="2" widgetRefId="numericInput3" attribute="value" />
 </be:List>
  </Source>
  <Target xsi:type="opcUa" refId=":Prg1:Var1" attribute="value" />
</Binding>

Structure binding 结构体绑定

如果需要一个结构体的多个值,则使用结构绑定

<ComplexBinding templateId="TankData" widgetType="widgets.CoffeeMachine.Tank">
    <SourceRoot xsi:type="opcUaComplex" refId="::AsGlobalPV:TankStruct"/>
    <TargetRoot xsi:type="breaseComplex" widgetRefId="SetupTank1" contentRefId="Content1"/>
</ComplexBinding>

mapp Link binding mappLink绑定

widget使用mapp Link绑定,它们可以与mapp组件交换信息。

<Binding mode="twoWay">
    <Source xsi:type="mapp" refId="mpAlarmXCore" attribute="link" />
    <Target xsi:type="brease" widgetRefId="AlarmList1" contentRefId="myContent" attribute="mpLink" />
</Binding>