Strutture dati CNC e accesso globale
Gli oggetti CNC disponibili nel progetto sono compilati in blocchi funzione di tipo SMC_OUTQUEUE
o SMC_CNC_REF
. (Ciò non accade quando il metodo compile FILE si usa.)
Quando il progetto viene compilato, i dati del CNC creati vengono gestiti internamente nel file SMC_CNC_Data
blocchi funzione. Per la modalità di compilazione SMC_OutQueue
, ogni elemento del CNC è rappresentato da a SMC_OUTQUEUE
blocco funzione. Per la modalità di compilazione SMC_CNC_REF
, un elemento CNC è rappresentato da SMC_CNC_REF
. Durante l'elaborazione del programma IEC, i blocchi funzione vengono istanziati e popolati con valori che possono essere elaborati nei programmi IEC. Tutte queste POU sono contenute in SM3_CNC
.
Accesso globale ai dati CNC
Durante l'inizializzazione, dal programma del CNC vengono rilevati il tipo e il numero degli oggetti generati. Tutti questi oggetti sono elencati insieme in una struttura dati globale dichiarata in modo implicito. Oggetti di tipo SMC_OUTQUEUE
sono elencati nell'oggetto dati globale g_CNCQueueManager
con la proprietà Count
e il metodo GetOutQueue(int n)
. Oggetti di tipo SMC_CNC_REF
sono elencati nell'oggetto dati globale g_CNCProgManager
con la proprietà Count
e il metodo GetProgram(int n)
. L'utente può ora accedervi in un programma IEC.
Accesso agli oggetti dati della struttura 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
Accesso agli oggetti dati della struttura 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