Vai al contenuto

OWireCore, One-Wire interface core

Vai all indice del manuale di programmazione

La rete 1 Wire® é un protocollo standard che come indica lo stesso nome è basato su di un solo filo di comunicazione, i dispositivi sono interconnessi da soli due fili, uno per la massa ed uno per il segnale e l’alimentazione. Il protocollo 1 Wire® consente di ottenere un elevato trasferimento dati ed una sicurezza intrinseca sulla loro validità grazie a tecniche di indirizzamento univoche e CRC polinomiali di controllo.

Questo blocco funzione inizializza e gestisce il convertitore One-Wire connesso allo stream definito in File. Con il comando Power è possibile gestire l’alimentazione del convertitore e la sua inizializzazione. Attivando Enable il FB esegue la gestione del convertitore definito in IType.

L’uscita CPower gestisce l’accensione del convertitore, se il convertitore è connesso ad una porta seriale deve gestirne il segnale DTR. l’uscita Fault si attiva in caso di errori di gestione.

Descrizione

Enable (BOOL) Comando abilitazione.
Power (BOOL) Comando alimentazione convertitore One-Wire.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento della FB (Vedi articolo).
File (FILEP) Flusso dati stream a cui è connessa l’interfaccia One-Wire.
IType (OW_ITYPE) Il FB può gestire diversi tipi di interfacce, occorre definirne il tipo (Definizione).
SStart (BOOL) Comanda l’invio dati dal buffer indicato in DBAddress su bus one-wire (Gestito da FBs collegati).
DBAddress (@BYTE) Indirizzo buffer dati da inviare su bus one-wire (Gestito da FBs collegati).
DBLength (UDINT) Dimensione buffer dati da inviare su bus one-wire (Gestito da FBs collegati).
Done (BOOL) Si attiva al termine della esecuzione comando.
Fault (BOOL) Attivo per un loop se errore esecuzione.
SEnd (BOOL) Si attiva a fine invio dati su bus one-wire (Gestito da FBs collegati).
CPower (BOOL) Comando alimentazione convertitore, generalmente connesso al segnale DTR della porta seriale di gestione.
OWISet (BOOL) Si attiva al termine della inizializzazione interfaccia one-wire.
OWBEr (BOOL) Errore gestione bus One-Wire.
OWBSts (OW_BSTATUS) Stato bus One-Wire (Definizione)
OkCount (UDINT) Contatore comunicazioni con convertitore correttamente eseguite.
Errors (UDINT) Contatore errori di esecuzione si incrementa ad ogni errore.

Immagine FB OWireCore
Compatibilità con sistemi

Questo blocco funzione quando utilizzato con l’interfaccia su modulo CPU è compatibile con i sistemi operativi a partire da Sfw198e010 (Pck051b010). Per compatibilità con versioni precedenti è disponibile per il download la versione predente di libreria (Manuale).

Connessione adattatore 1-Wire DS9097U con seriale RJ45

Per la connessione dell’adattatore 1-Wire DS9097U alla porta seriale dei ns dispositivi è possibile utilizzare l’adattatore CBL055A000 ed il cavo CBL057A000.

In alternativa è possibile realizzare un cavo seguendo lo schema di connessione.

Connessione seriale DB9M-RJ45

Spionaggio funzionamento

Se SpyOn attivo è possibile utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Trigger di spionaggio
16#00000001Tx: Trasmissione dati verso interfaccia.
16#00000002Rx: Ricezione dati da interfaccia.
16#10000000Lg: Messaggi di log funzionamento.
16#40000000Er: Errori di esecuzione.

Esempi

Come utilizzare gli esempi.
Viene gestito l’adatttore One-Wire basata su DS9097U connesso alla porta seriale COM0. La gestione core esegue il solo controllo del bus, è possibile vederne il funzionamento attraverso la console di spionaggio. Per altri esempi di utilizzo si rimanda agli esempi degli altri FB di gestione dispositivi One-Wire.

LogicLab (Ptp120, ST_OWireCore)
PROGRAM ST_OWireCore
VAR
    Sp : SysSerialPort; (* Serial port management *)
    OWCore : OWireCore_v2; (* FB One-Wire core *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_OWireCore"
// *****************************************************************************
// This programs shows how to use the one wire core management FB.
// Boths managed One-Wire converter are managed:
// DS2480B: Serial converter, connected to serial COM0 port
// DS2484: CPU module, connected to serial PCOM255.0 port
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // INITIALIZATION
    // -------------------------------------------------------------------------
    // First program execution loop initializations.

    IF (SysFirstLoop) THEN

        // Set serial port parameters.

//        Sp.COM:=ADR('PCOM255.0'); //COM port definition (DS2484)
        Sp.COM:=ADR('COM0'); //COM port definition (DS2480B)
        Sp.Baudrate:=9600; //Baudrate
        Sp.Parity:='N'; //Parity
        Sp.DataBits:=8; //Data bits
        Sp.StopBits:=1; //Stop bits
        Sp.DTRManagement:=DTR_OFF; //DTR management
        Sp.DTRComplement:=FALSE; //DTR complement
        Sp.EchoFlush:=FALSE; //Received echo flush
        Sp.DTROnTime:=0; //DTR On time delay (mS)
        Sp.DTROffTime:=0; //DTR Off time delay (mS)
        Sp.FlushTm:=0; //Flush time (mS)
        Sp.RxSize:=0; //Rx buffer size
        Sp.TxSize:=0; //Tx buffer size

        // Set One-Wire core parameters.

        OWCore.SpyOn:=TRUE; //Spy active
        OWCore.IType:=OW_ITYPE#OW_ITDS2480B; //Interface type
//        OWCore.IType:=OW_ITYPE#OW_ITDS2484; //Interface type
    END_IF;

    // -------------------------------------------------------------------------
    // MANAGE THE FBs
    // -------------------------------------------------------------------------
    // One-Wire core management

    Sp(Open:=TRUE); //Serial port management
    eTO_JUNK(SysSetSerialDTR(OWCore.CPower, Sp.File)); //Manage DTR signal

    OWCore.Enable:=NOT(OWCore.Done); //Enable
    OWCore.Power:=Sp.Opened; //Converter power
    OWCore(File:=Sp.File); //FB One-Wire core

// [End of file]
Was this article helpful?