Realizzare un semplice convertitore Ethernet/Seriale

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Realizzare un semplice convertitore Ethernet/Seriale

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #35391
    Sergio Bertana
    Amministratore 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.

    #37920
    Sergio Bertana
    Amministratore del forum

    Viste 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 stampaprogramma sorgente di utilizzo di uno SlimLine come convertitore Ethernet/Seriale.

    #37926
    Sergio Bertana
    Amministratore del forum

    Se 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.

    #39468
    Massimo
    Moderatore

    Ho 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).

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.