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

| Parametro | Tipo | 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. |
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#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]