Vai al contenuto

Realizzare un semplice convertitore Ethernet/Seriale

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.