Questa funzione esegue il calcolo del valore ohmico di un potenziometro acquisendo il valore di tensione in uscita dal suo cursore.
In PVoltage occorre indicare la tensione di alimentazione del potenziometro, in Resistance la sua resistenza. Fornendo in AVoltage il valore acquisito dal suo cursore la funzione calcola il valore del potenziometro alla sua posizione attuale. Per compensare l’errore di lettura dovuto alla impedenza di ingresso del canale di acquisizione della tensione occorre definirla in AImpedance.
Descrizione
PVoltage (REAL) Tensione di alimentazione del potenziometro. La tensione applicata ai suoi estremi (V).
Resistance (REAL) Valore resistivo del potenziometro (Ohm).
AVoltage (REAL) Valore di tensione acquisita sul cursore del potenziometro (V).
AImpedance (REAL) Valore di impedenza di ingresso del canale di acquisizione (Ohm) (Vedi tabella).

Esempi
Come utilizzare gli esempi
Viene acquisito il valore ohmico alla posizione del cursore di un potenziometro da 10 KOhm alimentato con tensione di 10 Volt. Il valore è acquisito tramite un modulo di ingresso analogico.
Per evitare l’influenza della impedenza di ingresso conviene eseguire l’acquisizione impostando il modulo nella configurazione ad alta impedenza (Tipicamente acquisizioni fino a 3V). Nelle acquisizioni 0-10 volt occorre tenere in considerazione l’impedenza di ingresso del modulo, scegliendo un potenziometro di valore il più possibile inferiore all’impedenza di ingresso.

LogicLab (Ptp114, ST_VaPotentiometer)
PROGRAM ST_VaPotentiometer
VAR
PotResistance : REAL; (* Potentiometer resistance (Ohm) *)
RdResistance : REAL; (* Read resistance (Ohm) *)
AImpImpedance : REAL; (* Analog input impedance (Ohm) *)
AOut : SysSetAnOut; (* Analog output management *)
AInp : SysGetAnInp; (* Analog input acquisition *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_VaPotentiometer"
// *****************************************************************************
// This program by using an analog I/O module generate the 10V output to power
// a potentiometer and by acquiring the analog voltage from it calculates its
// resistance.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// ANALOG OUTPUT MANAGEMENT
// -------------------------------------------------------------------------
// Manages analog output.
AOut.Address:=0; //Module address
AOut.Channel:=0; //Module channel
AOut.Mode:=AO_MODE#DA_VOLT_0_10; //Output mode
AOut.Value:=10.0; //Output value
AOut(); //Analog output management
// -------------------------------------------------------------------------
// ANALOG INPUT ACQUISITION
// -------------------------------------------------------------------------
// Acquires analog input 0 by module with address 0.
AInp.Address:=1; //Module address
AInp.Channel:=0; //Module channel
AInp.Mode:=AI_MODE#AD_VOLT_0_10_DIFFER; //Acquisition mode
AInp(); //Analog input acquisition
IF NOT(AInp.Done) THEN RETURN; END_IF;
// Calculates the resistance.
// The potentiometer used has resistance of 10KOhm.
// The analog input module has 11KOhm of impedance.
PotResistance:=10000.0; //Potentiometer resistance (Ohm)
AImpImpedance:=11000.0; //Analog input impedance (Ohm)
RdResistance:=VaPotentiometer(AOut.Value, PotResistance, AInp.Value, AImpImpedance);
// [End of file]