标准的 IEC 61131-3 没有提供通过一个图标名称作为字符串的方式定义一个变量值。然而这个变量功能,在使用 ⇘ SMC_CNC_REF时是必须的,这种方式也会在从文件中读取一个CNC程序的时候使用。这个方式可以被结构体 SMC_VARLIST进行管理。
| 成员 | 类型 | 初始值 | 描述 | 
|---|---|---|---|
| stVarName | STRING | '' | 包含CNC程序中使用的变量的名称。 | 
| pAdr | Pointer to BYTE | 0 | 指向名为 stVarName 的变量 | 
| eVarType | SMC_VARTYPE | SMC_TYPE_UNKNOW | 定义变量的类型 | 
| diValue | DINT | 0 | 内部使用的变量 | 
| fValue | LREAL | 0 | 内部使用的浮点数变量 | 
示例
在 CNC 程序中通过使用 SMC_ReadNCFile 从文件中进行的读取,有两个变量 g_rTestX (REAL) 以及 g_byCommand (BYTE):
N0 G$g_byCommand$ X$g_rTestX$
所以必须定义以下变量:
g_byCommand: BYTE;
g_rTest: REAL;
asv: ARRAY[0..1]OF SMC_SingleVar := [
(strVarName := 'G_BYCOMMAND', eVarType := SMC_TYPE_BYTE, p_Adr := ADR(g_byCommand)),
(strVarName := 'G_RTESTX', eVarType := SMC_TYPE_REAL, pAdr := ADR(g_rTest)))];
vl: SMC_VarList := (wNumberVars := 2, psvVarList := ADR(asv[0]));
如果变量不能被替换,将会产生一个错误并且模块将会中断。