Vai al contenuto

Connessione dispositivi 1-Wire alla interfaccia nativa su MPS054

Home Forum Controllori SlimLine e Netsyst (LogicLab) Connessione dispositivi 1-Wire alla interfaccia nativa su MPS054

Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Autore
    Post
  • #86523
    Anonimo
    Inattivo

    Stò cercando di collegare un sensore DS18B20 al modello MPS054C110 che ha l’interfaccia 1Wire.

    Tutti gli esempi usano la porta seriale con adattatore 1Wire, non ho trovato dettagli su come usare quella nativa su questo modello di PLC.

    #86525
    Sergio Bertana
    Amministratore del forum

    Dovendo acquisire la temperatura tramite un sensore DS18B20, nell’esempio ST_OWRdTemperature, presente nella Knowledge Base relativa al FB OWRdTemperature, trovi un esempio che si adatta perfettamente a questo caso. Come si può vedere nel programma di esempio, sono indicate le due possibili modalità di collegamento:

        Sp.COM:=ADR('COM0'); //Convertitore Seriale/1-Wire su porta indicata
        Sp.COM:=ADR('PCOM255.0'); //Interfaccia 1-Wire nativa sul modulo CPU

    Per quanto riguarda il tipo di interfaccia, occorre impostare:

        OWCore.IType:=OW_ITYPE#OW_ITDS2480B; //Convertitore Seriale/OneWire
        OWCore.IType:=OW_ITYPE#OW_ITDS2484; //Interfaccia 1-Wire nativa

    In pratica l’interfaccia One-wire nativa sul modulo CPU viene vista come una porta seriale PCOM255.0, .

    • Convertitore seriale/1-Wire: Definire porta seriale a cui e connesso ed i corretti parametri di comunicazione (Default 9600, n, 8, 1) .
    • 1-Wire nativa: Definire porta seriale PCOM255.0, in questa configurazione i parametri della porta seriale non vengono utilizzati. Sono comunque impostati quelli di default 9600, n, 8, 1.

    In entrambi i tipi di connessione è importante notare che il segnale DTR della porta seriale è utilizzato per l’attivazione del bus 1-Wire, quindi settandolo a DTR_OFF il bus si disattiva.

    Se al bus 1-Wire connetti un solo componente DS18B20 puoi utilizzare la lettura broadcast nel FB OWRdTemperature puoi definire il parametro IDCode=0, se invece vuoi acquisire più dispositivi connessi al bus in daisy chain devi utilizzare più istanze del FB e definire in ogni istanza l’IDCode del dispositivo da acquisire.

    #86536
    Sergio Bertana
    Amministratore del forum

    Aggiungo che, come visto precedentemente, quando si devono acquisire più dispositivi 1-Wire collegati sullo stesso bus, è necessario conoscere l’IDCode da impostare nel relativo FB di acquisizione.

    Se l’IDCode non è noto, può essere rilevato in due modi diversi:

    • Utilizzando il FB OWRdIdentifier: In questo caso si connette un unico dispositivo sul bus 1-Wire. Il FB utilizzando il comando Read ROM esegue la lettura del codice e lo ritorna.
    • Utilizzando il FB OWSearch: In questo caso è possibile collegare più dispositivi sul bus 1-Wire. Il FB utilizzando il comando Search ROM esegue la scansione di tutti i dispositivi ritornandone il relativo codice.

    il programma di esempio ST_OWSearch mostra come effettuare la scansione del bus 1-Wire e rilevare i codici dei dispositivi presenti. In pratica, OWRdIdentifier è indicato quando si deve identificare un singolo dispositivo, mentre OWSearch è la soluzione più adatta quando sul bus sono presenti più dispositivi 1-Wire.

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