SMC_VARLIST

标准的 IEC 61131-3 没有提供通过一个图标名称作为字符串的方式定义一个变量值。然而这个变量功能,在使用 SMC_CNC_REF时是必须的,这种方式也会在从文件中读取一个CNC程序的时候使用。这个方式可以被结构体 SMC_VARLIST进行管理。

SMC_VARLIST

组件

类型

初始值

描述

wVarListID

WORD

 

内部变量

wNumberVars

WORD

0

包含所有使用变量的数量C

 psvVarList

Pointer to SMC_SingleVar

0

指向数组 SMC_SingleVar 的第一个变量

SMC_SingleVar

成员

类型

初始值

描述

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]));

如果变量不能被替换,将会产生一个错误并且模块将会中断。