ValueScale, scales a value
Questa funzione esegue la messa in scala di un valore. E' possibile definire il limite minimo e massimo del valore in ingresso da scalare (ILow, IHigh) ed il valore minimo e massimo del valore in uscita scalato (OLow, OHigh).
L'utilizzo di questa funzione è particolarmente indicato per convertire valori acquisiti da sensori in corrente (4-20 mA) nella corrispondente unità di misura rilevata dal trasduttore.
Approfondimenti
- In questo topic informazioni sull'utilizzo della funzione per conversione segnale 4-20ma in unità ingegneristica.
Descrizione
| Parametro | Tipo | Descrizione |
|---|---|---|
| Input | REAL | Valore in ingresso da scalare. |
| ILow | REAL | Limite minimo del valore in ingresso da scalare. |
| IHigh | REAL | Limite massimo del valore in ingresso da scalare. |
| OLow | REAL | Limite minimo del valore in uscita scalato. |
| OHigh | REAL | Limite massimo del valore in uscita scalato. |
| Out | REAL | La funzione ritorna un REAL che rappresenta il valore in Input opportunamente scalato. |
Esempi
Come utilizzare gli esempi.
Viene eseguita una acquisizione analogica di un sensore di temperatura Pt100 connesso ad un convertitore con uscita in corrente 4-20 mA (Come questo), il convertitore ha come valore in uscita la corrente di 4 mA a -30 °C e la corrente di 20 mA a 60°C. Utilizzando la funzione si esegue direttamente la conversione in gradi centigradi del valore acquisito.
LogicLab (Ptp114, ST_ValueScale)
PROGRAM ST_ValueScale
VAR
AInp : SysGetAnInp; (* Analog input acquisition *)
Temperature : REAL; (* Temperature (°C) *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_ValueScale"
// *****************************************************************************
// Acquires temperature from a Pt100 transducer connected to a temperature to
// 4-20 mA current converter.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
// Configure the analog input acquisition.
IF (SysFirstLoop) THEN
AInp.Address:=0; //Module address
AInp.Channel:=0; //Module channel
AInp.Mode:=AD_CURR_0_20_COMMON; //Acquisition mode
END_IF;
// -------------------------------------------------------------------------
// TEMPERATURE ACQUISITION
// -------------------------------------------------------------------------
// The output is from 0 to 20 mA, the measure range is from -30 to 60°C.
AInp(); //Analog input acquisition
Temperature:=ValueScale(AInp.Value, 4.0, 20.0, -30.0, 60.0);
// [End of file]