Il blocco funzione esegue l'acquisizione dell'ingresso analogico dal modulo di acquisizione, sono gestiti vari modi di acquisizione in funzione del modulo analogico a cui fa riferimento.

Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode AD_VOLT_0_10_COMMON.

Function block
CODESYS: eCDSS8CoreMng
LogicLab: eLLabS8CoreMng, eLLabXUnified12Lib

Address (USINT) Occorre specificare l'indirizzo di modulo da cui eseguire l'acquisizione degli ingressi analogici (Range da 0 a 15). Il valore 0 indica il primo modulo di estensione, 1 il secondo e così di seguito. L'indirizzo 255 indica il modulo CPU.

Channel (USINT) Occorre specificare l'indirizzo del canale sul modulo (Range da 0x00 a 0x0F). Se viene settato un indirizzo di canale non presente, si interrompe l'esecuzione e viene settato il bit di Fault.

Mode (AI_MODE) Occorre specificare il modo di acquisizione (Definizione).

Done (BOOL) Dato acquisito, viene attivato se acquisizione terminata.

Fault (BOOL) Errore di acquisizione, viene attivato in caso di errore nella sequenza di acquisizione.

Value (REAL) Ritorna il valore di acquisizione espresso nella unità definita dal modo di acquisizione. Potrebbe essere un valore NaN (Not A Number) ad indicare un problema nell'acquisizione, tipicamente sensore rotto.

Errori

In caso di errore si attiva l'uscita Fault, eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.
Viene acquisito l'ingresso analogico sul canale 0 del modulo CPU (Address 255). Se dato valido il valore acquisito nel range 0÷10 Volt è trasferito nella variabile Value.

LogicLab (Ptp116)
PROGRAM ST_SysGetAnInp
VAR
    Value : REAL; (* Analog input value *)
    AInp : SysGetAnInp; (* Analog input acquisition *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysGetAnInp"
// *****************************************************************************
// This program acquires an analog input by the CPU module.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // ANALOG INPUT ACQUISITION
    // -------------------------------------------------------------------------
    // Acquires analog input 0 by CPU module.

    AInp.Address:=255; //Module address
    AInp.Channel:=0; //Module channel
    AInp.Mode:=AI_MODE#AD_VOLT_0_10_COMMON; //Acquisition mode
    AInp(); //Analog input acquisition
    IF (AInp.Done) THEN Value:=AInp.Value; END_IF;

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 31 Marzo 2020