Skip to main content

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.

ejemplo 13. Ejemplo

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