ModbusTCPGateway, modbus TCP gateway

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Gestione networking
  6. ModbusTCPGateway, modbus TCP gateway

Questo blocco funzione opera come gateway Modbus tra una connessione modbus TCP ed una connessione seriale Modbus RTU. Il FB può gestire più streams Modbus TCP, per questo in FpTCP occorre passare l'array di streams di I/O da cui arrivano le richieste Modbus TCP. In FpRTU occorre passare lo stream verso cui sono inviate le richieste convertite in Modbus RTU. In MaxConn viene definito il numero di connessioni massime gestite sullo stream Modbus TCP.

In IFTime occorre definire il tempo di pausa su ricezione caratteri da porta seriale (Modbus RTU). In Timeout si definisce il tempo massimo di esecuzione di un comando Modbus TCP (Da quando il comando viene ricevuto a quando dopo la conversione in RTU viene ritornata la risposta).

L'ingresso SpyOn se attivo permette di spiare il funzionamento della FB. In caso di errore esecuzione o tempo di esecuzione superiore al tempo definito in Timeout, viene attivata per un loop di programma l'uscita Fault.

Il FB può gestire più connessioni TCP contemporanee, quando da una connessione ha ricevuto un comando Modbus completo lo inoltra sullo stream di gestione Modbus RTU, attende la risposta e la reinvia sulla connessione TCP da cui ha ricevuto la richiesta.

Function block
CODESYS: Non disponibile
LogicLab: eLLabNetworkLib

Enable (BOOL) Abilitazione blocco funzione.

SpyOn (BOOL) Se attivo permette di spiare il funzionamento della FB (Vedi articolo).

MaxConn (USINT) Numero massimo di connessioni contemporanee accettate dal server. Deve essere uguale al numero di files definiti.

FpTCP (@FILEP) Pointer ad array streams di I/O connessioni Modbus TCP. Occorre definire un numero di streams pari al numero di connessioni contemporanee accettate.

FpRTU (@FILEP) Stream di I/O connessione Modbus RTU.

IFTime (UDINT) Tempo ricezione caratteri (μS) deve essere definito in base al baud rate (Vedi tabella sotto).

Timeout (UINT) Tempo massimo esecuzione comando espresso in mS. Se il comando non termina nel tempo definito viene abortito ed attivata l'uscita Fault.

Enabled (BOOL) Blocco funzione abilitato.

Fault (BOOL) Attivo per un loop se errore esecuzione.

Trigger di spy

Se SpyOn attivo  è possibile utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Errori

In caso di errore eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.
Semplice gateway Modbus TCP/RTU, accetta fino a 3 connessioni TCP su porta 2000 reindirazzondole come Modbus RTU sulla porta seriale COM2.

LogicLab (Ptp119)
PROGRAM FBD_ModbusTCPGateway_v1
VAR
    TCPServer : SysTCPServer; (* TCP server *)
    SPort : SysSerialPort; (* Serial port *)
    FP : ARRAY[0..2] OF FILEP; (* File pointer *)
    MTCPGw : ModbusTCPGateway_v1;  (* Modbus TCP gateway *)
END_VAR

Esempio in FBD per FB ModbusTCPGateway_v1

LogicLab (Ptp119)

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 8 Gennaio 2021