Home › Forum › Programmazione IEC 61131 (LogicLab) › Realizzare un semplice convertitore Ethernet/Seriale
-
AutorePost
-
Luglio 24, 2013 alle 1:24 pm #35391Sergio BertanaAmministratore del forum
Ricevo da un cliente la richiesta di realizzare utilizzando un modulo CPU SlimLine un convertitore Ethernet/Seriale, ecco allora un programma che realizza il convertitore. Il cuore del programma si basa su queste linee di codice.
IF (((SysGetIChars(Fp[0]) = IChars[0]) AND (IChars[0] > 0)) OR (IChars[0] > 192)) THEN
RxChars[0]:=Sysfread(ADR(RxString), 1, IChars[0], Fp[0]); (* Received characters *)
RxChars[0]:=Sysfwrite(ADR(RxString), 1, RxChars[0], Fp[1]); (* Transmitted characters *)
END_IF;IChars[0]:=SysGetIChars(Fp[0]); (* Input characters *)
In pratica vengono controllati ciclicamente i caratteri in ricezione da uno stream e quando non sono ricevuti caratteri per almeno un loop di programma (In alternativa si può gestire una temporizzazione) i caratteri ricevuti dallo stream sono inviati in uscita sull’altro.
Se il numero di caratteri in ricezione da uno stream supera i 3/4 del buffer di appoggio (192 bytes) i caratteri ricevuti dallo stream sono inviati in uscita sull’altro.
Naturalmente si possono realizzare nel modulo CPU almeno 3 convertitori (Uno per ognuna delle seriali disponibili), ad ogni convertitore verrà assegnata una porta TCP diversa. Ecco la stampa del programma ed il programma sorgente.
Dicembre 10, 2013 alle 9:34 am #37920Sergio BertanaAmministratore del forumViste altre richieste relative a questo topic ho sviluppato il blocco funzione DataStreamExch che permette di scambiare dati tra due stream di I/O (Estratto manuale). Definendo come stream un socket TCP e come altro stream una porta seriale è facilmente realizzabile un convertitore Ethernet/Seriale.
Allego la stampa e programma sorgente di utilizzo di uno SlimLine come convertitore Ethernet/Seriale.
Dicembre 13, 2013 alle 4:36 pm #37926Sergio BertanaAmministratore del forumSe si vuole utilizzare un software di VirtualCOM con il programma descritto precedentemente è possibile utilizzare il HW VSP3 – Virtual Serial Port della HWgroup, questo screenshot illustra l’utilizzo di uno SlimLine proprio con il software di virtualizzazione porta seriale.In un PC con Windows 7 è stato installato il software Virtual Serial Port impostando la porta COM3 sull’indirizzo IP dello SlimLine (192.168.0.162) su porta 1000 come definito nel programma. Nel PC è anche installato un convertitore USB/Seriale ATC-810 configurato come COM8, la sua porta seriale RS232 è connessa con la porta COM0 dello SlimLine.Utilizzando Toolly sono stati aperte due sessioni di terminale una connessa alla COM3 ed una alla COM8, come si vede i dati inviati sulla COM3 sono ricevuti dalla COM8 e viceversa.Attenzione, sulla porta virtuale COM3 non è possibile impostare i parametri di comunicazione seriale, il valore 9600, e, 8 è indicativo perché in realtà lo SlimLine utilizza sulla sua seriale COM0 i parametri definiti nel programma con il FB SetSMode.
Marzo 18, 2016 alle 1:20 pm #39468MassimoModeratoreHo realizzato per un cliente una versione del programma EthToSerialConverter con la nuova versione di LogicLab (Screenshot), tutto il programma è contenuto in un unico file ladder che può facilmente essere importato nel proprio progetto nel caso in cui serva gestire un convertitore Seriale/Ethernet (Download programma).
-
AutorePost
- Devi essere connesso per rispondere a questo topic.