Skip to content
simpleServerModel.tmpl 10.1 KiB
Newer Older
<?xml version="1.0" encoding="utf-8"?>
<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
<!-- *  Generated by: $Author
 *  Date: $Date
 *  Description: $Description !-->

#set $ns=$ns
#set $rr=$int($ns)
#for $i in $range(0,$rr-1)
          <Uri>http://localhost/$Assembly$str($i)/</Uri>
#end for
	  <Uri>http://localhost/$Assembly/</Uri>
<Aliases> 
<Alias Alias="Boolean">i=1</Alias> 
<Alias Alias="SByte">i=2</Alias>
<Alias Alias="Byte">i=3</Alias> 
<Alias Alias="Int16">i=4</Alias> 
<Alias Alias="UInt16">i=5</Alias> 
<Alias Alias="Int32">i=6</Alias> 
<Alias Alias="UInt32">i=7</Alias> 
<Alias Alias="Int64">i=8</Alias> 
<Alias Alias="UInt64">i=9</Alias> 
<Alias Alias="Float">i=10</Alias> 
<Alias Alias="Double">i=11</Alias> 
<Alias Alias="DateTime">i=13</Alias> 
<Alias Alias="String">i=12</Alias> 
<Alias Alias="ByteString">i=15</Alias> 
<Alias Alias="Guid">i=14</Alias> 
<Alias Alias="XmlElement">i=16</Alias> 
<Alias Alias="NodeId">i=17</Alias> 
<Alias Alias="ExpandedNodeId">i=18</Alias> 
<Alias Alias="QualifiedName">i=20</Alias> 
<Alias Alias="LocalizedText">i=21</Alias> 
<Alias Alias="StatusCode">i=19</Alias> 
<Alias Alias="Structure">i=22</Alias> 
<Alias Alias="Number">i=26</Alias> 
<Alias Alias="Integer">i=27</Alias> 
<Alias Alias="UInteger">i=28</Alias> 
<Alias Alias="HasComponent">i=47</Alias> 
<Alias Alias="HasProperty">i=46</Alias> 
<Alias Alias="Organizes">i=35</Alias> 
<Alias Alias="HasEventSource">i=36</Alias> 
<Alias Alias="HasNotifier">i=48</Alias> 
<Alias Alias="HasSubtype">i=45</Alias> 
<Alias Alias="HasTypeDefinition">i=40</Alias> 
<Alias Alias="HasModellingRule">i=37</Alias> 
<Alias Alias="HasEncoding">i=38</Alias> 
<Alias Alias="HasDescription">i=39</Alias> 
<Alias Alias="Range">i=884</Alias>
</Aliases>
#silent L=[]
#silent N=[]
#silent T=[]
<UAObject NodeId="ns=${ns};i=1" BrowseName="${ns}:${Assembly}Folder">
  <DisplayName>${Assembly}</DisplayName>
  <Description>The folder of the Assembly</Description>
  <References>
      <Reference ReferenceType="Organizes" IsForward="false">i=85</Reference>
      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
  </References>
</UAObject>
<UAObject NodeId="ns=${ns};i=2" BrowseName="${ns}:${Assembly}_Get_Points" ParentNodeId="ns=${ns};i=1">
  <DisplayName>${Assembly} Monitoring Variables</DisplayName>
  <Description>The folder of the Assembly Monitoring Variables</Description>
  <References>
      <Reference ReferenceType="Organizes" IsForward="false">ns=${ns};i=1</Reference>
      <Reference ReferenceType="HasTypeDefinition">ns=${ns};i=1</Reference>
#for $idx in $range(0,$x["NRows"])
	<Reference ReferenceType="HasProperty">$x['OPC_UA node'][$idx]</Reference>
#end for
<UAObject NodeId="ns=${ns};i=3" BrowseName="${ns}:${Assembly}_Set_Points" ParentNodeId="ns=${ns};i=1">
  <DisplayName>${Assembly} Setting Variables</DisplayName>
  <Description>The folder of the Assembly Setting Variables</Description>
  <References>
      <Reference ReferenceType="Organizes" IsForward="false">ns=${ns};i=1</Reference>
      <Reference ReferenceType="HasTypeDefinition">ns=${ns};i=1</Reference>
#for $idx in $range(0,$y["NRows"])
	<Reference ReferenceType="HasProperty">$y['OPC_UA node'][$idx]</Reference>
#end for
<UAObject NodeId="ns=${ns};i=4" BrowseName="${ns}:${Assembly}_Mode_cmd" ParentNodeId="ns=${ns};i=1">
  <DisplayName>${Assembly} Mode Variables</DisplayName>
  <Description>The folder of the Assembly Setting Variables</Description>
  <References>
      <Reference ReferenceType="Organizes" IsForward="false">ns=${ns};i=1</Reference>
      <Reference ReferenceType="HasTypeDefinition">ns=${ns};i=1</Reference>
#for $idx in $range(0,$m["NRows"])
#if not $m['OPC_UA node'][$idx] in T
	<Reference ReferenceType="HasProperty">$m['OPC_UA node'][$idx]</Reference>
#silent T.append($m['OPC_UA node'][$idx])
#end if
#end for
<UAObject NodeId="ns=${ns};i=5" BrowseName="${ns}:${Assembly}_Commands" ParentNodeId="ns=${ns};i=1">
  <DisplayName>${Assembly} Command Variables</DisplayName>
  <Description>The folder of the Assembly Monitoring Variables</Description>
  <References>
      <Reference ReferenceType="Organizes" IsForward="false">ns=${ns};i=1</Reference>
      <Reference ReferenceType="HasTypeDefinition">ns=${ns};i=1</Reference>
#for $idx in $range(0,$c["NRows"])
#if not $c['OPC_UA node'][$idx] in T
	<Reference ReferenceType="HasProperty">$c['OPC_UA node'][$idx]</Reference>
#silent T.append($c['OPC_UA node'][$idx])
#end if
#end for
#for $idx in $range(0,$x["NRows"])
#silent L.append($x["Short name"][$idx])
#if not $x['OPC_UA node'][$idx] in N
#if ($x["OPC UA Data type"][$idx]).upper()[-1]==']' ## test for arrays
 #set $sp=($x["OPC UA Data type"][$idx].upper()).split("[")
 #set $type=$sp[0].capitalize()
    #if $type[0]=="U"
	#set $type=$type.replace("i","I")
  #end if
 #set $dim=$sp[1].replace("]","")
<UAVariable ArrayDimensions="$dim" NodeId="$x['OPC_UA node'][$idx]" BrowseName="${ns}:$x['Name of command'][$idx]" DataType="$type" ParentNodeId="ns=${ns};i=2" ValueRank="1">
  <DisplayName>$x['Name of command'][$idx]</DisplayName>
  <Description>$x['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=2</Reference>
  </References>
</UAVariable>
#else
  #set $type=$x["OPC UA Data type"][$idx].capitalize()
    #if $type[0]=="U"
	#set $type=$type.replace("i","I")
  #end if
<UAVariable NodeId="$x['OPC_UA node'][$idx]" BrowseName="${ns}:$x['Name of command'][$idx]" DataType="$type" ParentNodeId="ns=${ns};i=2">
  <DisplayName>$x['Name of command'][$idx]</DisplayName>
  <Description>$x['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=2</Reference>
#if $type!="String" and $type != "Boolean" 
       #set $val=str($x['Default value'][$idx])
       #if $val=="nan" or $val=="NA"
	#set $val="0"
       #end if
       #if $x["OPC UA Data type"][$idx].upper()=="INT16" or $x["OPC UA Data type"][$idx].upper()=="INT32" 
		#set $val=str($val).split(".")[0]
       #end if
      <uax:$type>$val</uax:$type>
#silent N.append($x['OPC_UA node'][$idx])
#end if
#end if
#end for
#for $idx in $range(0,$y["NRows"])
#silent L.append($y["Short name"][$idx])
#if not $y['OPC_UA node'][$idx] in N
#if ($y["OPC UA Data type"][$idx]).upper()[-1]==']' ## test for arrays
  #set $sp=($y["OPC UA Data type"][$idx].upper()).split("[")
   #set $type=$sp[0].capitalize()
    #if $type[0]=="U"
	#set $type=$type.replace("i","I")
  #end if
   #set $dim=$sp[1].replace("]","")
  <UAVariable ArrayDimensions="$dim" NodeId="$y['OPC_UA node'][$idx]" BrowseName="${ns}:$y['Name of command'][$idx]" DataType="$type" ParentNodeId="ns=${ns};i=3" UserAccessLevel="3" AccessLevel="3" ValueRank="1">
  <DisplayName>$y['Name of command'][$idx]</DisplayName>
  <Description>$y['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=3</Reference>
  </References>
</UAVariable>
#else
  #set $type=$y["OPC UA Data type"][$idx].capitalize()
  #if $type[0]=="U"
	#set $type=$type.replace("i","I")
  #end if

  <UAVariable NodeId="$y['OPC_UA node'][$idx]" BrowseName="${ns}:$y['Name of command'][$idx]" DataType="$type" ParentNodeId="ns=${ns};i=3" UserAccessLevel="3" AccessLevel="3">
  <DisplayName>$y['Name of command'][$idx]</DisplayName>
  <Description>$y['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=3</Reference>
#if $type!="String" and $type != "Boolean" 
       #set $val=str($y['Default value'][$idx])
       #if $val=="nan" or $val=="NA"
	#set $val="0"
       #end if
      <uax:$type>$val</uax:$type>
#end if 
</UAVariable> 
#silent N.append($y['OPC_UA node'][$idx])
#end if
#for $idx in $range(0,$m["NRows"])
#set $name=($m["OPC_UA node"][$idx].split(";")[1]).split("=")[1].replace(".","_")
#if not $name in L
#if not $m['OPC_UA node'][$idx] in N
    #set $type=$m["OPC UA Data type"][$idx].capitalize()
    #if $type[0]=="U"
	#set $type=$type.replace("i","I")
    #end if
   <UAVariable NodeId="$m['OPC_UA node'][$idx]" BrowseName="${ns}:$name" DataType="$type" ParentNodeId="ns=${ns};i=4" UserAccessLevel="3" AccessLevel="3">
  <DisplayName>$name</DisplayName>
  <Description>$m['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=4</Reference>
      <uax:$type>0</uax:$type>
#silent N.append($m['OPC_UA node'][$idx])
#end if
#silent L.append($name)
#end if
#end for
#for $idx in $range(0,$c["NRows"])
#set $name=($c["OPC_UA node"][$idx].split(";")[1]).split("=")[1].replace(".","_")
#if not $name in L
#if not $c['OPC_UA node'][$idx] in N
    #set $type=$c["OPC UA Data type"][$idx].capitalize()
    #if $type[0]=="U"
	#set $type=$type.replace("i","I")
    #end if
   <UAVariable NodeId="$c['OPC_UA node'][$idx]" BrowseName="${ns}:$c['Name of command'][$idx]" DataType="$type" ParentNodeId="ns=${ns};i=5" UserAccessLevel="3" AccessLevel="3">
  <DisplayName>$c['Name of command'][$idx]</DisplayName>
  <Description>$c['Description'][$idx]</Description>
  <References>
      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
      <Reference ReferenceType="HasProperty" IsForward="false">ns=${ns};i=5</Reference>
      <uax:$type>0</uax:$type>
#silent N.append($c['OPC_UA node'][$idx])
#end if
#silent L.append($name)
#end if
#end for

</UANodeSet>