Skip to main content

CNC 实例 02:带变量的在线解码

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

该示例显示了如何 使用变量 解码 CNC 程序。

在 CNC 编辑器中创建 NC 程序

  1. 创建一个 CNCOnline 程序与 SoftMotion 控制器。

  2. 创建一个全局变量列表并声明两个变量。

    VAR_GLOBAL
            g_x: REAL:=100;
            g_y:REAL:=50;
    END_VAR
  3. 插入一个 数控程序 命名的对象 Example.

    选择 执行Din66025编译模式SMC_CNC_REF.此模式是必需的,因为您在程序中使用了变量。

  4. 指定以下运动块:

    数控编辑器:

    _sm_img_example_cnc2_1.png

创建驱动接口和 PLC 配置

定义驱动结构(例如 CNCdirect)。

创建 IEC 程序

  1. 添加名为的 POU (CFC) Path 到应用程序。

    OUTQUEUE 的 NC 程序解码和速度检查发生在 Path 程序。

    打电话 SMC_CheckVelocities 是必须的。

    氟氯化碳:

    _sm_img_example_cnc2_3.png
  2. 添加名为的 POU (CFC) Ipo 到应用程序。

    这个程序几乎与 CNCdirect 示例项目。但是,插补器的数据输入与 CNC 程序名称(ADR(Example)),但是到路径预处理功能块的 OutQueue 输出 (checkVel.poqDataOut)。

为路径预处理创建任务

因为你选择了编译模式 SMC_CNC_REF,必须在IEC程序中进行解码和路径预处理。这个计算很耗时。它不必在插值器循环中执行,因为每次解码器调用都会生成一个路径对象,并且该对象通常用于许多插值器调用。您应该将此操作替换为优先级较低且调用频率较低的任务。

  1. 创建一个 PathTask 任务。

  2. 定义以下参数:

    • 优先事项: 10

    • 间隔: T#30ms

  3. 添加 Path POU 到任务。

1. “路径任务”任务
“路径任务”任务


. 底层机制:
  • 在慢速任务中,最初每个周期大约生成一个 GEOINFO 对象。该对象存储在解码器功能块的 OUTQUEUE 结构中。如果 OUTQUEUE 已满,则慢任务的功能块将暂停,直到 OUTQUEUE 不再满为止。一旦快速任务处理第一个 GEOINFO 对象并将其从 OUTQUEUE 中删除,就会发生这种情况。

  • 然后慢任务的功能块再次激活并填充 OUTQUEUE 结构。

  • 在快速任务中,来自 OUTQUEUE 结构的路径点, DataIn 输入指向,在每个循环中被计算和处理。因为一个 GEOINFO 对象通常由多个路径点组成,所以在第一个 GEOINFO 对象被内插器自动处理和删除之前需要几个周期。

  • 由于 GEOINFO 对象的处理持续几个周期而不是它的创建,因此慢任务的调用频率可以低于快速任务。

  • 但是,必须选择任务时间,以便在慢速任务的最后一个 OUTQUEUE 中始终存储足够的 GEOINFO 对象,从而防止发生任何数据欠载。当没有更多 GEOINFO 对象可用于来自 DataIn 的内插器,并且尚未到达路径末端时,就会发生这种情况。在这种情况下,内插器会减慢速度并停止,直到新的数据元素再次可用。

创建操作界面和测试界面

可视化对应于 CNCdirect.project 示例项目。将附加模板添加到新功能块 (SMC_NCDecoderSMC_CheckVelocities)。也为全局变量创建一个显示 g_xg_y 以便您可以在以后调试时检查它们的功能。

调试

编译并启动创建的程序。程序一执行 CNC 运动 Execute 解码器和内插器的输入已设置。如果更改全局变量的值,则在重新启动解码器并相应地调整路径时将使用它们。监控功能 Append 解码器的输入也是如此。