CNC-Datenstrukturen und globaler Zugriff
Die im Projekt vorhandenen CNC-Objekte werden in Funktionsbausteine vom Typ SMC_OUTQUEUE oder SMC_CNC_REF übersetzt. (Dies geschieht nicht wenn die Übersetzungsmethode FILE verwendet wird.)
Im Zuge der Kompilierung des Projekts werden die erstellten CNC-Daten intern in Funktionsbausteinen SMC_CNC_Data verwaltet. Beim Übersetzungsmodus SMC_OutQueue wird jedes CNC-Element durch einen Funktionsbaustein SMC_OUTQUEUE repräsentiert, beim Übersetzungsmodus SMC_CNC_REF wird ein CNC-Element durch SMC_CNC_REF repräsentiert. Die Funktionsbausteine werden während des Ablaufs des IEC-Programms instanziert und mit Werten gefüllt, die dann in IEC-Programmen verarbeitet werden können. All diese Funktionsbausteine sind in SM3_CNC enthalten.
Globaler Zugriff auf CNC-Daten
Während der Initialisierung werden Typ und Anzahl der generierten Objekte aus dem CNC-Programm ermittelt. In einer implizit deklarierten globalen Datenstruktur werden all diese Objekte zusammen aufgelistet. Objekte vom Typ SMC_OUTQUEUE werden in dem globalen Datenobjekt g_CNCQueueManager mit der Eigenschaft Count und der Methode GetOutQueue(int n) aufgelistet. Objekte vom Typ SMC_CNC_REF werden in dem globalen Datenobjekt g_CNCProgManager mit der Eigenschaft Count und der Methode GetProgram(int n) aufgelistet. Der Anwender kann dann in einem IEC-Programm darauf zugreifen.
Zugriff auf Datenobjekte der Struktur 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_FORZugriff auf Datenobjekte der Struktur 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