Skip to main content

Structures de données CNC et accès global

Les objets CNC disponibles dans le projet sont compilés dans des blocs fonctionnels de type SMC_OUTQUEUE ou SMC_CNC_REF. (Cela ne se produit pas lorsque la méthode de compilation DÉPOSER est utilisé.)

Lors de la compilation du projet, les données CNC créées sont gérées en interne dans le SMC_CNC_Data blocs fonctionnels. Pour le mode compilation SMC_OutQueue, chaque élément CNC est représenté par un SMC_OUTQUEUE bloc fonctionnel. Pour le mode compilation SMC_CNC_REF, un élément CNC est représenté par SMC_CNC_REF. Pendant le traitement du programme CEI, les blocs fonctionnels sont instanciés et remplis de valeurs pouvant être traitées dans les programmes CEI. Tous ces POU sont contenus dans SM3_CNC.

Accès mondial aux données CNC

Lors de l'initialisation, le type et le nombre d'objets générés sont déterminés à partir du programme CNC. Tous ces objets sont répertoriés ensemble dans une structure de données globale déclarée implicitement. Objets de type SMC_OUTQUEUE sont répertoriés dans l'objet de données global g_CNCQueueManager avec la propriété Count et la méthode GetOutQueue(int n). Objets de type SMC_CNC_REF sont répertoriés dans l'objet de données global g_CNCProgManager avec la propriété Count et la méthode GetProgram(int n). L'utilisateur peut désormais y accéder dans un programme IEC.

Exemple 13. Exemple

Accès aux objets de données de la structure 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

Accès aux objets de données de la structure 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