局部变量
每个 G 代码文件都可以声明局部变量。对于主程序,必须在最开始插入声明;对于子程序,直接在子程序声明之后。
局部变量仅在声明它们的程序或子程序中可见。 (无动态范围)
提示
局部变量仅在在线解码器中起作用(不在 CNC 编辑器中)。
局部变量的数量
4.18.0.0 版之前:每个子程序和主程序中的局部变量的数量限制为 21 个。
版本 4.18.0.0 及更高版本:局部变量的数量仅受内存限制。可以使用库参数更改最大值 SMC_CNC_LibParams.MAX_SUBPROGRAM_PARAMS。
有关更多信息,请参阅: 库参数
声明的语法
语法类似于用于声明子程序参数的语法。每个块可以声明一个变量。该块不以 N 字开头。变量可以在声明时提供一个可选的初始值。否则,它会根据数据类型(LREAL: 0, BOOL: FALSE, STRING: ‘‘
)。
声明的语法: LET <FormalParam> [:= <InitialValue>]
.
<FormalParam> ::= <ParamName> : <ParamType> <ParamName> ::= #[a-zA-Z0-9_]+ <ParamType> ::= LREAL | BOOL | STRING ; String mit maximaler Länge von 255 Bytes
<InitialValue>
: 具有与变量匹配的值和类型的表达式。表达式也可以使用局部变量(并且在子程序中使用子程序的参数),但仅限于在程序代码中声明的那些。
例子
• LET #x : LREAL (* Variable #x, Typ LREAL, Initialwert 0 *) • LET #y : LREAL := #x + 1 (* Variable #y, Typ LREAL, Initialwert #x+1 = 1 *) • LET #b : BOOL := #x >= #y (* Variable #b, Typ BOOL, Initialwert FALSE *)
与子程序参数一样,局部变量不区分大小写。 (两个都 #x
和 #X
表示同一个变量。)在一个程序/子程序中声明的所有局部变量的名称必须不同。它们必须与子程序的形参名称不同。
局部变量可以像子程序的参数一样在 G 代码中使用。
例子
• N10 G01 X#x Y#y • N20 G20 L10 K#b