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_FOR
Acceso 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