OWRdTemperature, One-Wire read temperature

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Libreria gestione One-Wire
  6. OWRdTemperature, One-Wire read temperature

Questo blocco funzione esegue l'acquisizione di un sensore One-Wire di temperatura (DS18B20 come questo), si collega al blocco funzione OWireCore di gestione interfaccia One-Wire. Occorre passare OwID in uscita dal blocco funzione di gestione OWireCore.

Attivando Enable, viene eseguita la lettura del valore di temperatura dal dispositivo connesso al bus One-Wire, terminata l'acquisizione si attiva l'uscita Done, se acquisizione corretta si attiva per un loop l'uscita Ok e su Temperature, sarà riportato il valore di temperatura acquisito.

L'uscita Fault si attiva in caso di errori di gestione. Disattivando Enable si azzera Done, per eseguire una nuova lettura occorre riabilitare l'ingresso Enable.

Se sul bus One-Wire è connesso un unico dispositivo, si può evitare di settare IDCode oppure si può forzare a 0. Se invece sul bus One-Wire sono presenti più dispositivi parallelati, in IDCode occorre definire l'indirizzo dell'array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire.

Function block
CODESYS: Non disponibile
LogicLab: eLLab1WireLib

Enable (BOOL) Comando abilitazione.

OwID (@_OWIREDATA)) One-Wire management ID, fornito dalla FB OWireCore.

IDCode (@BYTE) Puntatore ad array definizione ROM ID dispositivo da acquisire. Se 0 viene eseguita lettura con comando Skip ROM (Viene acquisito qualsiasi device connesso).

Done (BOOL) Si attiva al termine della esecuzione comando.

Ok (BOOL) Attivo per un loop se temperatura acquisita correttamente.

Fault (BOOL) Attivo per un loop se errore esecuzione.

Temperature (REAL) Valore di temperatura acquisito (°C). Range di lettura da -55 (°C) a +125 (°C). Precisione ±0.5 (°C) tra -10 (°C) e +85 (°C). Risoluzione di lettura 0.0625 (°C).

Errors (UDINT) Contatore errori di esecuzione.

Errori

In caso di errore eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.

FBD_OWRdTemperature: Viene eseguita la lettura del valore di temperatura da un dispositivo DS18B20 connesso al bus 1-Wire di un modulo CPU SlimLine. Non avendo definito IDCode del disposistivo da leggere viene eseguita una lettura con Skip-Rome quindi deve essere presente un solo dispositivo sul bus.

ST_OWRdTemperature: Viene eseguita la lettura del valore di temperatura da un dispositivo DS18B20 connesso ad un adattatore 1-Wire/Seriale. Nella variabile ROMID1è stato definito il codice identificativi del dispositivo da acquisire.

FBD_OWRdTemperature2Devices: Viene eseguita la lettura del valore di temperatura da due dispositivi DS18B20 connessi al bus 1-Wire di un modulo CPU SlimLine. Occorre definire nelle variabili ROMID1 e ROMID2 i codici identificativi dei due dispositivi da acquisire.

LogicLab (Ptp120)
PROGRAM FBD_OWRdTemperature
VAR
    Serial : SysSerialPort; (* Serial port management *)
    OWire : OWireCore_v1; (* FB One Wire management *)
    Temp : OWRdTemperature; (* Read temperature *)
END_VAR

LogicLab (Ptp120)
LogicLab (Ptp120)

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 27 Novembre 2019