Estructuras de datos CNC y acceso global
Los objetos CNC disponibles en el proyecto se compilan en bloques de función de tipo SMC_OUTQUEUE o SMC_CNC_REF. (Esto no sucede cuando el método de compilación ARCHIVO se usa.)
Cuando se compila el proyecto, los datos CNC creados se gestionan internamente en el SMC_CNC_Data bloques de funciones Para el modo de compilación SMC_OutQueue, cada elemento del CNC está representado por un SMC_OUTQUEUE bloque de funciones Para el modo de compilación SMC_CNC_REF, un elemento CNC está representado por SMC_CNC_REF. Mientras se procesa el programa IEC, los bloques de funciones se crean instancias y se completan con valores que se pueden procesar en programas IEC. Todas estas POU están contenidas en SM3_CNC.
Acceso global a datos CNC
Durante la inicialización, el tipo y el número de objetos generados se determinan a partir del programa CNC. Todos estos objetos se enumeran juntos en una estructura de datos global que se declara implícitamente. Objetos de tipo SMC_OUTQUEUE se enumeran en el objeto de datos globales g_CNCQueueManager con la propiedad Count y el metodo GetOutQueue(int n). Objetos de tipo SMC_CNC_REF se enumeran en el objeto de datos globales g_CNCProgManager con la propiedad Count y el metodo GetProgram(int n). El usuario ahora puede acceder a él en un programa IEC.
Acceso a objetos de datos de la estructura. 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_FORAcceso a objetos de datos de la estructura. 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