CNC 数据结构以及全局访问

在工程进行编译的同时,CNC编辑器中的数据将会被转换到一个全局变量列表中 ('CNC Data'),如果编译模式设置为“SMC_OutQueue”,每个结构变量都会被一个变量类型为 SMC_OUTQUEUE的结构替换。如果模式为“SMC_CNC_REF”,一个CNC元素将会被 SMC_CNC_REF结构所替换。在 IEC 程序运行时,数据结构会立刻实例化并填充变量,所有这些变量可以在 IEC 程序中进行处理,在处理过程中会有全局变量的产生。所有的数据结构都是 “SM3_CNC”函数库中一部分。

CNC 数据的全局权限

在初始化时变量类型以及CNC程序中编译创建对象数量将会被决定。在一个隐式定义中所有对象的全局数据结构将被统一罗列。对象类型SMC_OUTQUEUE被罗列在全局数据结构g_CNCQueueManager中并且包含属性数量以及方法GetOutQueue(int n))。对象类型SMC_CNC_REF被罗列在全局数据对象g_CNCProgManager中并包含属性数量以及方法GetProgram(int n)。现在用户可以在IEC程序中访问他们。

示例

访问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);
    (* compute 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);
    (* compute pCNC_Ref *)
END_FOR