Passa al contenuto principale

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​

Immagine F ValueScale

ParametroTipoDescrizione
InputREALValore in ingresso da scalare.
ILowREALLimite minimo del valore in ingresso da scalare.
IHighREALLimite massimo del valore in ingresso da scalare.
OLowREALLimite minimo del valore in uscita scalato.
OHighREALLimite massimo del valore in uscita scalato.
OutREALLa 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]