参阅动态路径程序CNCDynamicPath.project。
你可以在CODESYS安装文件的文件夹 "..\Projects\SoftMotion\Examples\Tutorial" 中找到示例程序。 |
这个示例显示如何在应用程序中不使用G-代码在工程中创建CNC路径。在路径POU中,一个路径对象将会在运动的时候被创建。它可以传递给后续的处理模块(例如,预处理模块或者插补模块)。
这里是一个SMC_NCDecoderHere 对象类型的POU路径,通常作为G代码格式外部描述的计算,被一个新的程序路径创建的路径替换。这里定义一个SMC_OUTQUEUE类型的对象并指向数组类型 SMC_GEOINFO。SMC_GEOINFO 数组相当于路径描述。 ⇘
从 CNConline.project 中退出。
准备步骤
1. | 打开 CNConline.project 并删除存在的 POU 路径。添加一个新的 POU 路径实现语言为 ST。 ( | )。
2. | 因此,定义一个SMC_OUTQUEUE 类型的数据对象 QUEUE ,分配存取区域用于SMC_GEOINFO路径描述序号并定义变量类型 SMC_GEOINFO。 |
3. | 实现 QUEUE 的初始化步骤。 |
IEC-代码
代码:
PROGRAM Path VAR QUEUE: SMC_OUTQUEUE; BUF: ARRAY[0..49] OF SMC_GEOINFO; GEO: SMC_GEOINFO:=(dT1:=0, dT2:=1, dToolRadius:=0, dVel:=100, dVel_End:=100, dAccel:=200, dDecel:=500, iObj_Nr:=0); END_VAR //Initialization Queue QUEUE.nSize := SIZEOF(BUF); QUEUE.pbyBuffer := ADR(BUF[0]); ...
实现
按照以下步骤实现 ⇘ 元素数组:
1. | 设置起始位置(第一个对象)或者从之前对象中拷贝。
|
||
2. | 定义运动类型
|
||
3. | 通过选择运动类型设置参数。
|
||
4. | 如果适用,在 InternMark 中设置路径预处理的起始或者停止位。 | ||
5. | 计算结束位置
|
||
6. | 计算对象长度:
|
||
7. | 存储对象到 OUTQUEUE:
|
||
8. | 在路径创建之后立即设置结束标志:
|
提示! 如果每个SMC_GEOINFO类型的元素被写入,例如,如果 QUEUE.bFULL = TRUE,你不能尝试去附加一个工程。在这种情况下路径的创建必须被中断直到 QUEUE 第一个对象被处理。那么这样可以附加一个工程。如果希望避免这种情况,必须定义缓冲区的大小非常大这样可以包含所有的路径元素。 |