<< 点击显示目录 >> 主页 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 mode="oneWay">
<Source xsi:type="opcUa" refId="::AsGlobalPV:gMainLogic.par.coffeeType" attribute="value" />
<Target xsi:type="brease" widgetRefId="ImageSwitchCoffeeType" contentRefId="myContent" attribute="selectedIndex" />
</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>
如果需要从值列表中获取值,则使用列表绑定。使用列表绑定,将定义一个值列表和一个选择器。选择器的值定义列表中的哪个元素将被选中。列表中元素的值定义了绑定的值。使用元素的索引进行选择。
在此示例中,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>
如果需要一个结构体的多个值,则使用结构绑定
<ComplexBinding templateId="TankData" widgetType="widgets.CoffeeMachine.Tank">
<SourceRoot xsi:type="opcUaComplex" refId="::AsGlobalPV:TankStruct"/>
<TargetRoot xsi:type="breaseComplex" widgetRefId="SetupTank1" contentRefId="Content1"/>
</ComplexBinding>
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>