Skip to main content

CNC 数据结构和全局访问

项目中可用的 CNC 对象编译为类型的功能块 SMC_OUTQUEUE 或者 SMC_CNC_REF. (编译方法时不会发生这种情况 文件 用来。)

编译项目时,创建的 CNC 数据在内部管理 SMC_CNC_Data 功能块。对于编译模式 SMC_OutQueue, 每个 CNC 元素由一个表示 SMC_OUTQUEUE 功能块。对于编译模式 SMC_CNC_REF, CNC 元素表示为 SMC_CNC_REF.在处理 IEC 程序的同时,功能块被实例化并填充有可以在 IEC 程序中处理的值。所有这些 POU 都包含在 SM3_CNC.

全球访问 CNC 数据

在初始化期间,生成对象的类型和数量由 CNC 程序确定。所有这些对象都列在隐式声明的全局数据结构中。类型的对象 SMC_OUTQUEUE 列在全局数据对象中 g_CNCQueueManager 与财产 Count 和方法 GetOutQueue(int n).类型的对象 SMC_CNC_REF 列在全局数据对象中 g_CNCProgManager 与财产 Count 和方法 GetProgram(int n).用户现在可以在 IEC 程序中访问它。

13. 例子

访问结构的数据对象 SMC_OUTQUEUE

PROGRAM CNCManageQueue
VAR
    pCNC_OutQueue : POINTER TO SMC_OUTQUEUE;
    n: INT;
    i: INT;
END_VAR

n := g_CNCQueueManager.Count;
FOR i:= 0 to n-1 DO
    pCNC_OutQueue := g_CNCQueueManager.GetOutQueue(I);
    (* calculate pCNC_OutQueue *)
END_FOR

访问结构的数据对象 SMC_CNC_REF

PROGRAM CNCManageRef
VAR
    pCNC_Ref: POINTER TO SMC_CNC_REF;
    n: INT;
END_VAR

n := g_CNCProgManager.Count;
FOR i:= 0 to n-1 DO
    pCNC_Ref := g_CNCProgManager.GetProgram(I);
    (* calculate pCNC_Ref *)
END_FOR