SMC_VARLIST (STRUCT)

 

TYPE SMC_VARLIST : STRUCT

The standard IEC 61131-3 provides no possibility to determine the value of a variable by its symbolic name represented as a string. This however is necessary, if the variable functionality, which is available for the user by SMC_CNC_REF, also should be available for reading in the CNC program from a file. This can be managed by using the structure SMC_­VARLIST.

Example

Assume a CNC program in a file, containing the two variables g_rT­estX (REAL) and g_byCommand (BYTE):

N0 G$g_byCommand$ X$g_rTestX$

In order to link this syntax to IEC variables and to make the g-code understandable for SMC_ReadNCFile, one would use SMC_VARLIST and declare e.g. the following:

g_byCommand : BYTE;
g_rTest : REAL;
asv : ARRAY[0..1] OF SMC_SingleVar := [
  (strVarName := 'G_BYCOMMAND', eVarType := SMC_TYPE_BYTE, pAdr := ADR(g_byCommand)),
  (strVarName := 'G_RTESTX', eVarType := SMC_TYPE_REAL, pAdr := ADR(g_rTest))];
vl : SMC_VarList := (wNumberVars := 2, psvVarList := ADR(asv[0]));

If a variable cannot be replaced, SMC_ReadNCFile will return an error.

InOut:

Name

Type

Initial

Comment

wVarListID

WORD

16#BBFA

Internal use

wNumberVars

WORD

0

Contains the number of all used variables

psvVarList

POINTER TO SMC_SINGLEVAR

0

Pointer to the first element of an array of SMC_SingleVar