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.

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]