Passa al contenuto principale

OWireCore, One-Wire interface core

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.

Approfondimenti
  • In questo articolo informazioni sul sistema di comunicazione a singolo filo noto con il nome di 1-Wire bus.
  • In questo topic informazioni sulla gestione del bus 1-Wire con i ns sistemi programmabili.
  • In questo topic informazioni sulla lettura di più sonde di temperatura one-wire.
  • Per evitare problemi di carico con più sensori connessi al bus, si consiglia di inserire una resistenza da 100-120 ohm in serie al segnale data di ciascun sensore.

Descrizione​

Immagine FB OWireCore

Connessione seriale DB9M-RJ45

ParametroTipoDescrizione
EnableBOOLComando abilitazione.
PowerBOOLComando alimentazione convertitore One-Wire.
SpyOnBOOLSe attivo permette di spiare il funzionamento della FB (Vedi articolo).
FileFILEPFlusso dati stream a cui è connessa l'interfaccia One-Wire.
ITypeOW_ITYPEIl FB può gestire diversi tipi di interfacce, occorre definirne il tipo (Definizione).
SStartBOOLComanda l'invio dati dal buffer indicato in DBAddress su bus one-wire (Gestito da FBs collegati).
DBAddress@BYTEIndirizzo buffer dati da inviare su bus one-wire (Gestito da FBs collegati).
DBLengthUDINTDimensione buffer dati da inviare su bus one-wire (Gestito da FBs collegati).
DoneBOOLSi attiva al termine della esecuzione comando.
FaultBOOLAttivo per un loop se errore esecuzione.
SEndBOOLSi attiva a fine invio dati su bus one-wire (Gestito da FBs collegati).
CPowerBOOLComando alimentazione convertitore, generalmente connesso al segnale DTR della porta seriale di gestione.
OWISetBOOLSi attiva al termine della inizializzazione interfaccia one-wire.
OWBErBOOLErrore gestione bus One-Wire.
OWBStsOW_BSTATUSStato bus One-Wire (Definizione)
OkCountUDINTContatore comunicazioni con convertitore correttamente eseguite.
ErrorsUDINTContatore errori di esecuzione si incrementa ad ogni errore.

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.

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]