ReceiveTimeoutInMilliseconds

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

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

Maximale Zeit in Millisekunden die der Client auf den Empfang einer Nachricht wartet. Kann die Nachricht nicht innerhalb des Zeitintervalls vollständig empfangen werden, wird ein Fehler ausgegeben.

Beispiele:

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

Beckhoff Parameter:

    bTcpIpReadReceiveTimeoutInMilliseconds
    Eine boolesche Variable, über welche die Ausführung des ReadReceiveTimeoutInMilliseconds-Befehls getriggert werden kann.
    bTcpIpWriteReceiveTimeoutInMilliseconds
    Eine boolesche Variable, über welche die Ausführung des WriteReceiveTimeoutInMilliseconds-Befehls getriggert werden kann.
    TcpIpReceiveTimeoutInMilliseconds
    Eine DINT-Variable, in welcher die maximale Zeit in Millisekunden hinterlegt ist, die der Client auf den Empfang einer Nachricht wartet.
    hrTcpIpReceiveTimeoutInMilliseconds
    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
   bTcpIpReadReceiveTimeoutInMilliseconds : BOOL;
   bTcpIpWriteReceiveTimeoutInMilliseconds : BOOL;
   TcpIpReceiveTimeoutInMilliseconds  : DINT;
   hrTcpIpReceiveTimeoutInMilliseconds  : HRESULT;

   fbTcpIp  : FB_TcpIp;
END_VAR

hrTcpIpReceiveTimeoutInMilliseconds := fbTcpIp.ReadReceiveTimeoutInMilliseconds(
        bExecute    := bTcpIpReadReceiveTimeoutInMilliseconds,
        ConnectionHandle  := depragSmartConnection.ConnectionHandle,
        ClientId   := '0',
        Output    => TcpIpReceiveTimeoutInMilliseconds);
IF hrTcpIpReceiveTimeoutInMilliseconds <> S_FALSE THEN 
   bTcpIpReadReceiveTimeoutInMilliseconds := FALSE;
END_IF 
 
hrTcpIpReceiveTimeoutInMilliseconds := fbTcpIp.WriteReceiveTimeoutInMilliseconds(
        bExecute    := bTcpIpWriteReceiveTimeoutInMilliseconds,
        ConnectionHandle  := depragSmartConnection.ConnectionHandle,
        ClientId   := '0',
        PointerToNodeValue  := ADR(TcpIpReceiveTimeoutInMilliseconds),
        SizeOfNodeValue  := SIZEOF(TcpIpReceiveTimeoutInMilliseconds));
IF hrTcpIpReceiveTimeoutInMilliseconds <> S_FALSE THEN 
   bTcpIpWriteReceiveTimeoutInMilliseconds := 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.