Skip to main content

CNC 实例 07:使用表达式和子程序

CNC07_Subprogram.project 安装目录下的示例工程 CODESYS 在下面 ..\CODESYS SoftMotion\Examples.

这个例子演示了如何调用一个 子程序 从 CNC 文件以及使用 表达 在 CNC 运动指令中。

在里面 CNC 程序,驱动器首先被打开,就像在其他例子中一样。这 CNC_PreparePath 程序使用 SMC_ReadNCFile2 用于读取 CNC 文件的功能块。 SMC_ReadNCFile2 创建 SMC_ReadNCFile POU 并扩展它以支持子程序和表达式。

数控程序 CNC2Main.cnc 是通过 SMC_NCInterpreter 功能块。 SMC_NCInterpreter 创建 SMC_NCDecoder POU 并通过对子例程和表达式的支持对其进行了扩展。

该项目包含两个 CNC 程序:主程序 CNC2Main.cnc 和子程序 CNC2.cnc.主程序传值 25 在里面 #RADIUS 子程序的参数。在子程序中,表达式 X#RADIUS*2 用于计算圆形路径。

主程序

N0 G01 X$g_x$ Y0 F50 E30 E-30
N10 G01 X0 Y$g_y$
N20 CNC2{25}
N30 G01 X0 Y-200

子程序

SUBPROGRAM CNC2{#RADIUS : LREAL}
N010 G91
N020 G02 X#RADIUS*2 Y0 R#RADIUS Z2.5 F100 E-100 E100
N030 G02 X-#RADIUS*2 Y0 R#RADIUS Z7.5
END_SUBPROGRAM