Skip to main content

改变变量的值

G代码G36, G37

功能:命令更改变量的值。 G36 将指定值写入变量。 G37 将变量增加指定的值。 O$var$ 定义被编辑的变量。 D 定义写入的值 G36 或添加 G37.例如,该命令用于条件跳转所需的循环计数器。

句法

G36 O D
G37 O D

G36 的 G 代码字

描述

O

写入的变量。如果 O 未定义,则使用内部解码器变量。此内部变量的默认值为 -1

内部变量可用于 命令。

D

新变量值

G37 的 G 代码字

O

递增的变量。如果 O 未定义,则使用内部解码器变量。

D

增量

45. 例子

编程计数器(如果路径是在线处理的)

  1. g_i 全局变量设置为 5。

N1000 G36 O$g_i$ D5

线路 1010 和 1020 行驶了五次。

N1000 G36 O$g_i$ D5
N1010 G1 X100 F100 E100 E-100
N1020 G1 X0
N1030 G37 O$g_i$ D-1
N1040 G20 L1010 K$g_i$


提示

该机制仅在路径在线处理时起作用,因为只有这样才能使用变量。该机制在 CNC 编辑器中不起作用。

为离线模式编程计数器

要离线使用编辑器,请通过以下方式不指定变量 O.然后是类型的隐式解码器变量 INT 用来。但是,只有一个变量可用。您不能编写任何嵌套跳转或循环。

使用字符串变量

您可以在 G 代码中的 O 字中使用字符串变量。此外,可以通过命令将字符串值分配并插入到此变量中 G36G37.

46. 例子
N10 G36 O$strTest$ D'Name'

strTest 变量获取名称值。

N20 G37 O$strTest$ D'=Test'

价值 =Test 被添加到变量 strTest.



提示

如果在 CNC 程序中使用字符串变量,并且如果 CNC 程序(在 IEC 程序中)是通过 SMC_ReadNCFile 功能块,则必须在 IEC 程序中为字符串保留缓冲区。否则报错 SMV_RNCF_NO_STRINGBUFFER 发生。这 SMC_StringBuffer 功能块可用于此目的。

CNC 程序的每个字符串在功能块实例中都需要自己的空间 SMC_StringBuffer,即使同一个字符串出现多次。

下面的声明可以缓冲 32 个字符串,例如:

sb: SMC_StringBuffer(uiBufferSize := 32);

功能块实例 sb 作为指针传递给 pStringBuffer 的输入 SMC_ReadNCFile 实例。