Encoding

Schreiben Lesen TwinCAT TIA
Netzwerk TCP/IP Client ActiveClients Ein Client

ns=2;s=DEPRAG Smart/Network/TCP/IP/ActiveClients/0/Encoding

Die Codierung des Nachrichteninhalts: Ascii, BigEndian, Unicode, Default, Latin1, Unicode, Utf32, Utf7, Utf8

Beispiele:

Neben den bereits erläuterten Parametern sind für die Implementierung in TwinCAT 3 nachfolgende Variablen anzulegen / zu übergeben:

Beckhoff Parameter:

    bTcpIpReadEncoding
    Eine boolesche Variable, über welche die Ausführung des ReadEncoding-Befehls getriggert werden kann.
    bTcpIpRWriteEncoding
    Eine boolesche Variable, über welche die Ausführung des WriteEncoding-Befehls getriggert werden kann.
    TcpIpEncoding
    Eine DINT-Variable, in welcher die Codierung des Nachrichteninhalts hinterlegt ist.
    hrTcpIpEncoding
    Hiermit kann die Ausführung des Befehls überwacht werden. Fehler-Codes haben den Typ HRESULT.
    fbTcpIp
    Eine Instanz des, mit der DEPRAG Smart-Bibliothek gelieferten, "FB_TcpIp" Funktionsbausteins.
    ClientId
    Eine STRING(255)-Variable, welche die ID des Clients darstellt.
    PointerToNodeValue
    Eine Variable vom Typ "POINTER TO BYTE", in welcher der zu setzende Wert hinterlegt ist.
    SizeOfNodeValue
    Eine UINT-Variable, welche die Länge des zu setzenden Wertes enthält.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
   bTcpIpReadEncoding  : BOOL;
   bTcpIpRWriteEncoding : BOOL;
   TcpIpEncoding   : DINT;
   hrTcpIpEncoding   : HRESULT;

   fbTcpIp  : FB_TcpIp;
END_VAR

hrTcpIpEncoding := fbTcpIp.ReadEncoding(
        bExecute    := bTcpIpReadEncoding,
        ConnectionHandle  := depragSmartConnection.ConnectionHandle,
        ClientId   := '0',
        Output    => TcpIpEncoding);
IF hrTcpIpEncoding <> S_FALSE THEN 
   bTcpIpReadEncoding := FALSE;
END_IF 
    
hrTcpIpEncoding := fbTcpIp.WriteEncoding(
        bExecute    := bTcpIpRWriteEncoding,
        ConnectionHandle  := depragSmartConnection.ConnectionHandle,
        ClientId   := '0',
        PointerToNodeValue  := ADR(TcpIpEncoding),
        SizeOfNodeValue  := SIZEOF(TcpIpEncoding));
IF hrTcpIpEncoding <> S_FALSE THEN 
   bTcpIpRWriteEncoding := FALSE;
END_IF 
                                                    

Für Beispiele und Erklärungen bezüglich der Aufrufe von Knoten via Siemens TIA Portal sei an dieser Stelle auf den Unterpunkt "Siemens TIA Portal" in Abschnitt "Erste Schritte" verwiesen.