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

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#00000001 | Tx: Trasmissione dati verso interfaccia. |
| 16#00000002 | Rx: Ricezione dati da interfaccia. |
| 16#10000000 | Lg: Messaggi di log funzionamento. |
| 16#40000000 | Er: 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]