Questo blocco funzione esegue lo scambio dati tra due streams di comunicazione. Definendo uno stream come socket TCP e l'altro come seriale è possibile realizzare un convertitore Ethernet/Seriale.
In FpA ed FpB occorre indicare i file pointer degli streams di comunicazione. Il FB riceve i dati da uno stream e li invia sull'altro. Per il trasferimento dei dati viene allocato dinamicamente un buffer di memoria che può raggiungere al massimo la dimensione definita in DBMax (Si consiglia 2048 bytes).
Se non c'è comunicazione tra gli streams dopo il tempo definito in DBLife (Si consiglia 5 secondi) il buffer di memoria viene disallocato liberando risorse di sistema. Se valore impostato è 0 il buffer non viene mai disallocato.
Function block
CODESYS: Non disponibile
LogicLab: eLLabNetworkLib
Enable (BOOL) Abilitazione blocco funzione.
FpA (FILEP) Flusso dati stream di comunicazione.
FpB (FILEP) Flusso dati stream di comunicazione.
DBMax (UINT) Dimensione massima allocazione buffer dati (Bytes). Valore massimo 4096.
DBLife (REAL) Tempo di vita buffer dati (S).
Enabled (BOOL) Blocco funzione abilitato.
Fault (BOOL) Attivo per un loop se errore esecuzione.
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 convertitore Ethernet/Seriale, accetta una connessione TCP su porta 2000, i dati ricevuti dalla connessione TCP sono inviati in uscita sulla porta seriale COM0 e viceversa.
PROGRAM FBD_DataStreamExch_v1 VAR Sp : SysSerialPort; (* Serial port management *) Sk : SysTCPServer; (* Socket server *) FP : FILEP; (* File pointer *) DExch : DataStreamExch_v1; (* Data exchange *) END_VAR
Ultimo aggiornamento: 27 Febbraio 2020