Esempio CNC 01: Generazione diretta di OutQueue
Vedi il CNC01_direct.project
progetto di esempio nella directory di installazione di CODESYS sotto ..\CODESYS SoftMotion\Examples
.
Questo esempio mostra un programma CNC con due assi. Vengono raggiunte quattro posizioni nel piano X/Y con velocità e accelerazione definite. Il programma imposta due punti di commutazione del percorso sul percorso. Il programma viene scritto direttamente in una struttura dati utilizzando l'estensione SMC_OutQueue modalità di compilazione.
Creazione di un programma NC nell'editor CNC
Creare un
CNCdirect
progetto con a SoftMotion controllore.Inserisci a Programma CNC oggetto chiamato
Example
.Seleziona il Implementazione
Din66025
e il Modalità di compilazioneSMC_OutQueue
.Specificare i seguenti blocchi di movimento:
Editor CNC:
Creazione di un'interfaccia dell'azionamento e configurazione del PLC
Definire una struttura di azionamento con due azionamenti lineari come segue:
Inserisci due unità virtuali
X_Drive
eY_Drive
sotto il Pool di assi generali SoftMotion.Impostare il Tipo di asse parametro a
Finite
(1).Editor di configurazione:
Creazione di un programma IEC
Aggiungi un nuovo programma CFC ipo all'applicazione e configurare un task ciclico con un intervallo di 3 ms.
Attivare gli azionamenti con il blocco funzione
MC_Power
.POU:
Ora aggiungi il blocco di costruzione
SMC_Interpolator
uno. Il blocco converte un percorso descritto dagli oggetti GEOINFO in punti di percorso discreti. Il blocco riceve in ingressopoqDataIn
l'indirizzo del programma CNC creato. Inoltre, sull'ingresso deve essere impostato il tempo di ciclo del task IECdwIpoTime
da scrivere. Puoi usarlo come valore costante all'ingressodwIpoTime
inserisci o usi la variabiledwCycle
la struttura del gruppo di assi dalla configurazione del controllo. Il vantaggio è che l'ora corretta viene utilizzata automaticamente come ingresso dell'interpolatore se si modifica il tempo di ciclo del task.POU:
In questo esempio, verrà controllato un sistema a portale. A tal fine, inserire un'istanza dei blocchi funzione di trasformazione inversa e diretta dal
SM_Trafo
biblioteca. Il blocco funzione di trasformazione in avanti contiene gli azionamenti come ingressi. Il blocco funzione di trasformazione inversa deve contenere la posizione impostata dell'interpolatore. La trasformazione in avanti nell'esempio è richiesta solo per la visualizzazione.Istanza del blocco funzione:
Le uscite del blocco funzione (le coordinate degli assi) devono essere scritte negli azionamenti. Questo è fatto con il
SMC_ControlAxisByPos
blocco funzionale. Poiché l'applicazione non garantisce che le uscite dell'interpolatore siano costanti (es. il percorso termina in un punto diverso da quello in cui è iniziato), attivare l'evitamento gap (bAvoidGaps
,fGapVelocity
,fGapAcceleration
,fGapDeceleration
). Quindi collegare ilStopIpo
uscita albEmergency_Stop
ingresso dell'interpolatore e collegare l'uscita dell'interpolatoreiStatus
ai rispettivi ingressi dei blocchi funzione di controllo assi.Osservare l'ordine corretto dei blocchi funzione durante la programmazione con CFC.
CFC:
Creazione di un'interfaccia operativa e di un'interfaccia di test
Collega due oggetti di visualizzazione a una nuova visualizzazione: il modello dell'interpolatore e il modello della trasformazione. È necessario utilizzare i segnaposto per collegarli alle rispettive istanze di blocchi funzione (qui: Ipo.smci
e Ipo.trafof
).
La messa in produzione
Compila e avvia il programma creato. Il programma esegue il movimento del CNC non appena il Execute
è stato impostato l'ingresso dell'interpolatore. Dopo che il programma è stato eseguito completamente, è possibile riavviarlo mediante un nuovo fronte di salita.
Notare la funzione degli interruttori di percorso che vengono visualizzati anche nella visualizzazione del blocco funzione di interpolazione.