Skip to main content

读取插值器的状态

参见 CNC13_ReadInterpolatorState.project 的安装目录中的示例项目 CODESYS 下面 ..\CODESYS SoftMotion\Examples

该示例项目显示了如何读取 CNC 插值器的状态。该状态用于在机器和解码器坐标中显示机器的位置

应用程序的结构

该结构是数控应用的典型结构。G 代码在后台任务中读取。插值是在总线任务中执行的

在插值过程中, SMC_ReadAdditionalIpoState 函数块被调用。

插值一开始, Valid 输出是 TRUE。插值器的位置始终以机器坐标系 (MCS) 输出,然后使用当前的解码器坐标系 (DCS) 进行转换并在可视化中输出

SMC_V3_Set(pos_MCS, ipo.piSetPosition.dX, ipo.piSetPosition.dY, ipo.piSetPosition.dZ);

readState(
    Enable:= TRUE,
    ipo:= ipo);

IF readState.Valid THEN
    SMC_PosInfo_Trf_Inverse(
        piOut:= piMCS_to_DCS,
        piIn:= readState.State.DCS,
        eOriConv:= readState.State.OriConv);

     SMC_PosInfo_Trf_Apply(
        vDst:= pos_DCS,
        piTrf:= piMCS_to_DCS,
        vSrc:= pos_MCS,
        eOriConv:= readState.State.OriConv);
END_IF

有关解码器坐标系的更多信息,请参阅以下内容: 移动、旋转和缩放坐标系

调试

  1. 生成应用程序并将其下载到控制器。

  2. 打开可视化。

  3. 启动应用程序,然后按 开始 可视化按钮。

    您可以在 MCS 和 DCS 中跟踪 X 和 Y 坐标的移动。