Passa al contenuto principale

VarVCheck, variable value check

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​

Immagine F VarVCheck

ParametroTipoDescrizione
VarAddPVOIDIndirizzo variabile da controllare.
VarTypeVR_TYPETipo variabile da stampare (Definizione).
ModeVAR_CHECKTipo di controllo da eseguire (Definizione).
OutBOOLLa 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
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]