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