IBH Link UA:Benutzerdefinierte Variablen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche

Benutzerdefinierte Variablen

Konfiguration der Variablen

Die Konfiguration erfolgt über eine XML Datei, die über einen OPC UA Client (z.B. UaExpert) eingelesen wird. Hierzu ruft man unter "Server.Generic" die Methode "WriteConfiguration" auf.

Beispiel:

   <Object>
     <Struktur>
       <UnterStruktur name="untere Struktur">
         <diesel type="UInt16" opcvar="ns=4;s=IBH_OPCUA.PLC.Programs.Diesel.Tank" name="Diesel/Kraftstoff"/>
         <struct1>
           <struct11>
             <E10 type="UInt32" opcvar="ns=4;s=IBH_OPCUA.PLC.Programs.E10.Tank"/>
             <u2 type="UInt32" const="12345678"/>
           </struct11>
           <u1 type="UInt32"/>
           <u2 type="UInt32"/>
         </struct1>
       </UnterStruktur>
     </Struktur>
   </Object>

Eine Varible wird folgendermassen definiert:

<variablenname type="Variablentype" opcvar="OPC UA Knotendefinition" name="Ersatzname"/>

Der Variablenname kann frei gewählt werden. Die Variable erscheint dann im OPC UA Server under einem eigenen Namespace. Unter dem optionalen Parameter "name" kann man einen Variablenname angeben, der Sonderzeichen wie z.B. '/' enthält.

Als Variblentype sind folgende Angaben möglich:

  1. "Boolean"
  2. "SByte"
  3. "Byte"
  4. "Int16"
  5. "Uint16"
  6. "Int32"
  7. "UInt32"
  8. "Float"
  9. "Double"
  10. "DateTime"
  11. "String"
  12. "SByteArray"
  13. "ByteArray"
  14. "Int16Array"
  15. "Uint16Array"
  16. "Int32Array"
  17. "UInt32Array"
  18. "FloatArray"
  19. "DoubleArray"
  20. "StringArray"

Falls keine opcvar angegeben wird, wird die Variable nicht automatisch besprieben. Die Variable kann jedoch mit der Client Funktion beschrieben werden. Eine Variable kann auch eine Konstante enthalten. In diesem Fall wird anstelle opcvar const angegeben. Bei Feldern ist keine Konstante möglich. Beispiel:

<u2 type="UInt32" const="12345678"/>


Eine Struktur wird mit <struct> </struct> aufgebaut. Es sind beliebige Verschachtelungen möglich.

Verbinden von Variablen mit externen OPCUA Server Variablen

Beispiel:

  <Object>
    <OPCUAServer>
      <BoilerExample uri="urn:DELL-XPS:UnifiedAutomation:UaServerCpp" EndpointUrl="opc.tcp://10.0.12.72:48011"/>
      <S7-1500 uri="urn:SIMATIC.S7-1500.OPC-UAServer:CPU1500-Demo" EndpointUrl="opc.tcp://10.0.13.6:4840"/>
    </OPCUAServer>
    <Objectname>
      <Structurename>
        <BoilerTemperature type="Double" OPCUAServer="BoilerExample" opcvar="ns=3;s=AirConditioner_1.Temperature"/>
        <WertVon_S7-1500 type="UInt32" OPCUAServer="S7-1500" opcvar="ns=3;s="All-Scalar"."Var_UInt32""/>
      </Structurename>
    </Objectname>
  </Object>

Achtung ! Die Variablen müssen in einer Struktur organisiert sein !

Der OPCUa Server muss mit der Client Funktion eingerichtet werden siehe: IBH_Link_UA:Client_Funktionen#Server_hinzufügen