Questo blocco funzione gestisce la lettura dei sensori di temperatura ed umidità HTemp-485 della HW group con il protocollo seriale RS485. Occorre passare alla FB in File il puntatore allo stream di comunicazione con il dispositivo.
Attivando l'ingresso Enable viene effettuata la lettura dei valori di temperatura ed umidità dal dispositivo indirizzato in Address, terminata l'esecuzione si attiva l'uscita Done. Se il comando ha avuto esito positivo si attiva l'uscita Ok, in caso contrario si attiva l'uscita Fault. Per eseguire nuovamente il comando occorre disabilitare e riabilitare l'ingresso Enable. L'ingresso SpyOn se attivo permette di spiare il funzionamento della FB.
Il blocco funzione è realizzato per permetterne la connessione in cascata, è possibile connettere al Done di un FB l'Enable di un'altro e così di seguito condividendo lo stesso stream di comunicazione.
Function block
CODESYS: Non disponibile
LogicLab: eLLabUtyLib
Enable (BOOL) Comando abilitazione acquisizione sensore. Per rieseguire il comando disabilitare e poi riabilitare questo ingresso.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento della FB (Vedi articolo).
File (eFILEP) Flusso dati stream da utilizzare per la comunicazione.
Address (STRING[1]) Indirizzo sensore, è posibile acquisire in multidrop fino a 25 sensori con indirizzo da A a Z escluso T.
Delay (REAL) Tempo di pausa dopo l'esecuzione del comando espresso in S.
Done (BOOL) Si attiva al termine della esecuzione comando e rimane attiva fino alla disabilitazione di Enable.
Ok (BOOL) Attivo per un loop se esecuzione comando corretta.
Fault (BOOL) Attivo per un loop se errore esecuzione comando.
Errors (UDINT) Numero di errori, incrementato ad ogni nuovo errore, raggiunto valore massimo riparte da 0.
Temperature (REAL) Valore di temperatura (°C).
Humidity (REAL) Valore umidità (%).
Trigger di spy
Se SpyOn attivo è possibile utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.
Esempi
Come utilizzare gli esempi.
Nell'esempio è gestita l'acquisizione di un sensore HTem-485 con indirizzo "E" (Indirizzo di default), connesso alla porta seriale RS485.
PROGRAM ST_HWgHTemp485 VAR Sp : SysSerialPort; (* Serial port *) Sensor : HWgHTemp485; (* HTemp sensor *) END_VAR // ***************************************************************************** // PROGRAM "ST_HWgHTemp485" // ***************************************************************************** // A HWgroup HTemp-485 sensor connected to the COM2 serial port is acquired. // ----------------------------------------------------------------------------- // ------------------------------------------------------------------------- // INITIALIZATION // ------------------------------------------------------------------------- // Program initializations. IF (SysFirstLoop) THEN // Serial port settings. Sp.COM:=ADR('COM2'); //COM port definition Sp.Baudrate:=9600; //Baudrate Sp.Parity:='N'; //Parity Sp.DataBits:=8; //Data bits Sp.StopBits:=1; //Stop bits Sp.DTRManagement:=DTR_AUTO_WO_TIMES; //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 // HTemp sensor settings. Sensor.SpyOn:=TRUE; //Spy On Sensor.Address:='E'; //Sensor address Sensor.Delay:=1.0; //Delay time (S) END_IF; // ------------------------------------------------------------------------- // SENSOR ACQUISITION // ------------------------------------------------------------------------- // Sensor acquisition. Sp(Open:=TRUE); //Serial port management Sensor.File:=Sp.File; //File pointer Sensor(); //HTemp sensor Sensor.Enable:=Sp.Opened AND NOT(Sensor.Done); //Acquisition enable // [End of file]
Ultimo aggiornamento: 7 Ottobre 2020