Dovendo acquisire la temperatura tramite un sensore DS18B20, nell’esempio ST_OWRdTemperature, presente nella Knowledge Base relativa al FB OWRdTemperature, trovi un esempio che si adatta perfettamente a questo caso. Come si può vedere nel programma di esempio, sono indicate le due possibili modalità di collegamento:
Sp.COM:=ADR('COM0'); //Convertitore Seriale/1-Wire su porta indicata
Sp.COM:=ADR('PCOM255.0'); //Interfaccia 1-Wire nativa sul modulo CPU
Per quanto riguarda il tipo di interfaccia, occorre impostare:
OWCore.IType:=OW_ITYPE#OW_ITDS2480B; //Convertitore Seriale/OneWire
OWCore.IType:=OW_ITYPE#OW_ITDS2484; //Interfaccia 1-Wire nativa
In pratica l’interfaccia One-wire nativa sul modulo CPU viene vista come una porta seriale PCOM255.0, .
- Convertitore seriale/1-Wire: Definire porta seriale a cui e connesso ed i corretti parametri di comunicazione (Default 9600, n, 8, 1) .
- 1-Wire nativa: Definire porta seriale PCOM255.0, in questa configurazione i parametri della porta seriale non vengono utilizzati. Sono comunque impostati quelli di default 9600, n, 8, 1.
In entrambi i tipi di connessione è importante notare che il segnale DTR della porta seriale è utilizzato per l’attivazione del bus 1-Wire, quindi settandolo a DTR_OFF il bus si disattiva.
Se al bus 1-Wire connetti un solo componente DS18B20 puoi utilizzare la lettura broadcast nel FB OWRdTemperature puoi definire il parametro IDCode=0, se invece vuoi acquisire più dispositivi connessi al bus in daisy chain devi utilizzare più istanze del FB e definire in ogni istanza l’IDCode del dispositivo da acquisire.