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