直线运动 G代码 : G1 功能 :该定位指令执行直线插补。直线插补将插补点从当前位置移动到直线上定义的目标坐标。所有轴同时到达那里。必须为线的描述定义目标坐标 (X/Y/Z)。 除了空间运动之外,您还可以为附加轴 A/B/C/P/Q/U/V/W 指定目标位置,这些轴与笛卡尔目标坐标同时到达。 重要 两个连续的相同位置总是会导致运动停止在该位置。当后续路径稳定连接并且可以不间断地行驶时,也会发生停
抛物线 G代码 : G6 功能 :该命令内插一条由端点 X/Y/Z 和顶点 I/J 的坐标定义的抛物线。顶点是元素的切线与起点和终点的连接线平行的点。 提示 抛物线是始终位于 X/Y 平面中的 2.5D 对象。不支持其他平面上的抛物线。 句法 G6 X Y Z I J A B C P Q U V W F E H L/O D S G码字 描述 X Y Z 笛卡尔坐标轴的目标位置 I J 抛物线的顶点
定位 G代码 : G0 , G92 功能 :这些命令定位工具。 G0 命令沿直线快速定位到定义的位置(通常无需刀具操作)。 G92 突然设定位置。结果是在轴上也执行了跳转。如果 MC_ControlAxisByPos.bAvoidGaps:=TRUE 被设置,则不执行跳转。相反,所有轴都以最短距离单独运行到目标位置。可以在第一个移动元件之前插入 G92 以设置起始位置。 在一系列 G92 指令中,
将单个附加轴配置为模轴 (PA/PB/...) 功能: 对于 A、B、C、P、Q、U、V 和 W 轴,可以通过设置字来指定模周期 PA , PB , PC 等。默认情况下, PA , PB 等的值为 0,表示轴是线性的。如果将附加轴配置为模数轴,则始终插入从起始位置到目标位置的最短距离。对于 360 的模周期,从起始位置 270 到目标位置 45 的行程如下:在正方向(过去 360)总共 135
使用变量 句法 $<Variablenname>$ 变量和表达式的有效 IEC 基本类型: INT , SINT , USINT , UINT , DINT , UDINT , BYTE , WORD , DWORD , REAL , 和 LREAL .例外情况包括 M 函数的 O 参数(它需要一个类型为 SMC_M_PARAMETERS ) 和 G36/G37 (其中也允许字符串变量)。 可以为
改变变量的值 G代码 : G36 , G37 功能 :命令更改变量的值。 G36 将指定值写入变量。 G37 将变量增加指定的值。 O$var$ 定义被编辑的变量。 D 定义写入的值 G36 或添加 G37 .例如,该命令用于条件跳转所需的循环计数器。 句法 G36 O D G37 O D G36 的 G 代码字 描述 O 写入的变量。如果 O 未定义,则使用内部解码器变量。 D 新变量值 G37
表达式 功能 : 在 4.4.0.0 及更高版本中,可以使用数学、布尔和字符串表达式。这 SMC_ReadNCFile2 和 SMC_NCInterpreter 为此必须使用功能块(而不是 SMC_ReadNCFile 和 SMC_NCDecoder )。 提示 表达式仅适用于在线解码器(不适用于 CNC 编辑器)。 原则上,表达式可以在 G 代码中的两个位置使用: 作为 G 字的值(一个 G 字
局部变量 每个 G 代码文件都可以声明局部变量。对于主程序,必须在最开始插入声明;对于子程序,直接在子程序声明之后。 局部变量仅在声明它们的程序或子程序中可见。 (无动态范围) 提示 局部变量仅在在线解码器中起作用(不在 CNC 编辑器中)。 提示 每个子程序和主程序中局部变量的数量限制为 21 个。 声明的语法 语法类似于用于声明子程序参数的语法。每个块可以声明一个变量。该块不以 N 字开头。变
CNC实例01:直接生成OutQueue 见 CNC01_direct.project 安装目录下的示例工程 CODESYS 在下面 ..\CODESYS SoftMotion\Examples . 这个例子显示了一个有两个轴的 CNC 程序。以定义的速度和加速度接近 X/Y 平面中的四个位置。程序在路径上设置了两个路径切换点。该程序通过使用直接写入数据结构 SMC_OutQueue 编译模式。