Vai all indice del manuale di programmazione
Tipo:
Funzione
Libreria LogicLab:
eLLabCommonLib
Libreria Codesys:
Non disponibile
Questa funzione esegue il controllo sul valore di una variabile, in VarAdd occorre indicare l’indirizzo della variabile da controllare, in VarType il tipo di variabile ed in Mode il controllo da eseguire.
Descrizione
VarAdd (PVOID) Indirizzo variabile da controllare.
VarType (VR_TYPE) Tipo variabile da stampare (Definizione).
Mode (VAR_CHECK) Tipo di controllo da eseguire (Definizione).
La funzione ritorna (BOOL), FALSE se il controllo è negativo, TRUE se il controllo è positivo.

Esempi
Come utilizzare gli esempi.
Nell’esempio sono riportati alcuni controlli su diversi tipi di variabili.
LogicLab (Ptp201, ST_VarVCheck)
PROGRAM ST_VarVCheck
VAR
i : BOOL; (* Auxiliary variable *)
SData : SINT; (* SINTdata example *)
SDataChk : ARRAY[0..3] OF BOOL; (* SINT data check *)
DData : DINT; (* DINT data example *)
DDataChk : ARRAY[0..3] OF BOOL; (* DINT data check *)
RData : REAL; (* REAL data example *)
RDataChk : ARRAY[0..5] OF BOOL; (* REAL data check *)
LRData : LREAL; (* LREAL data example *)
LRDataChk : ARRAY[0..5] OF BOOL; (* LREAL data check *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_VarVCheck"
// *****************************************************************************
// This program shows the use of VarVCheck function.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// CHECK VARIABLES
// -------------------------------------------------------------------------
// SINT data check.
SData:=-10; //SINT data example
SDataChk[0]:=VarVCheck(ADR(SData), VR_TYPE#SINT_TYPE, VAR_CHECK#VCK_NORMAL); //Return TRUE
SDataChk[1]:=VarVCheck(ADR(SData), VR_TYPE#SINT_TYPE, VAR_CHECK#VCK_ZERO); //Return FALSE
SDataChk[2]:=VarVCheck(ADR(SData), VR_TYPE#SINT_TYPE, VAR_CHECK#VCK_POSITIVE); //Return FALSE
SDataChk[3]:=VarVCheck(ADR(SData), VR_TYPE#SINT_TYPE, VAR_CHECK#VCK_NEGATIVE); //Return TRUE
// DINT data check.
DData:=12345678; //DINT data example
DDataChk[0]:=VarVCheck(ADR(DData), VR_TYPE#DINT_TYPE, VAR_CHECK#VCK_NORMAL); //Return TRUE
DDataChk[1]:=VarVCheck(ADR(DData), VR_TYPE#DINT_TYPE, VAR_CHECK#VCK_ZERO); //Return FALSE
DDataChk[2]:=VarVCheck(ADR(DData), VR_TYPE#DINT_TYPE, VAR_CHECK#VCK_POSITIVE); //Return TRUE
DDataChk[3]:=VarVCheck(ADR(DData), VR_TYPE#DINT_TYPE, VAR_CHECK#VCK_NEGATIVE); //Return FALSE
// REAL data check.
RData:=-120.5; //REAL data example
RDataChk[0]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_NORMAL); //Return TRUE
RDataChk[1]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_ZERO); //Return FALSE
RDataChk[2]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_POSITIVE); //Return FALSE
RDataChk[3]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_NEGATIVE); //Return TRUE
RDataChk[4]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_NAN); //Return FALSE
RDataChk[5]:=VarVCheck(ADR(RData), VR_TYPE#REAL_TYPE, VAR_CHECK#VCK_INFINITE); //Return FALSE
// LREAL data check.
LRData:=LREAL#-120.5; //LREAL data example
LRDataChk[0]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_NORMAL); //Return TRUE
LRDataChk[1]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_ZERO); //Return FALSE
LRDataChk[2]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_POSITIVE); //Return FALSE
LRDataChk[3]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_NEGATIVE); //Return TRUE
LRDataChk[4]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_NAN); //Return FALSE
LRDataChk[5]:=VarVCheck(ADR(LRData), VR_TYPE#LREAL_TYPE, VAR_CHECK#VCK_INFINITE); //Return FALSE
// [End of file]