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