Skip to main content

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.

Beispiel 13. Beispiel

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