标准的 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]));
如果变量不能被替换,将会产生一个错误并且模块将会中断。