Esempio di trigger 2: processo di incollaggio
IL Robotics_Trigger_Advanced.project
progetto di esempio qui descritto si trova nella directory di installazione di CODESYS Sotto..\CODESYS SoftMotion\Examples
.
I trigger possono essere utilizzati per eseguire azioni in posizioni specifiche sul percorso, come l'accensione e lo spegnimento di un ugello di incollaggio.
Questo esempio include i seguenti componenti:
La configurazione di una previsione garantita della traiettoria da parte del
fPlanningForecastDuration
parametro daSMC_TuneCPKernel
blocco funzione.Il comando di diversi trigger. Qui vengono utilizzati tutti e tre i metodi disponibili per definire la posizione del percorso (vedere SMC_TriggerPositionType).
L'uso di trigger con time shift. L'applicazione di esempio contiene il file
TriggerWithTimeShift
blocco funzione, che può reagire al raggiungimento della posizione del percorso con un offset temporale (prima e dopo).
Questi componenti sono mostrati in un esempio di applicazione per un processo di incollaggio. Viene eseguito il movimento visualizzato in rosso nell'immagine seguente (con fusione).

I trigger sono stati definiti nelle posizioni contrassegnate in verde:
Posizione 1: accendere il dispositivo di incollaggio 0,05 s prima di raggiungere la posizione.
Posizione 1: accendere la lampada UV quando viene raggiunta la posizione.
Posizione 2: Riempire il serbatoio di alimentazione della colla quando viene raggiunta la posizione.
Posizione 3: Spegnere il dispositivo di incollaggio e interrompere il riempimento del serbatoio della colla 0,05 s prima di raggiungere la posizione.
Posizione 3: Spegnere la lampada UV 1,5 s dopo aver raggiunto la posizione
Struttura dell'applicazione
L'applicazione è composta dalle seguenti parti.
GlueApplication
: Questo programma contiene l'applicazione di esempio che mostra come utilizzare i trigger per un processo di incollaggio.Planning_PRG
: In questo programma è configurata una previsione della traiettoria.TriggerWithTimeShift
: Questo blocco funzione contiene la logica per i trigger con uno spostamento temporale e viene utilizzato inGlueApplication
programma di esempio.Trace
: La traccia mostra la dinamica degli assi e anche le uscite delGlueApplication
programma che vengono attivati dai trigger.
Configurazione di una previsione
Se vuoi reagire in anticipo prima che venga raggiunto un trigger, ad esempio 0,05 s prima, allora il fPlanningForecastDuration
parametro da SMC_SMC_TuneCPKernel
blocco funzione deve essere impostato su almeno 0,05 s. Poiché il parametro ha un impatto diretto sulla latenza, il suo valore non dovrebbe essere maggiore del necessario (vedere la documentazione di fPlanningForecastDuration). Notare che SMC_TuneCPKernel
deve essere chiamato in SoftMotion compito di pianificazione. Per questo motivo la configurazione non viene eseguita nel programma principale GlueApplication
, ma nel Planning_PRG
programma.
In questa applicazione di esempio, la valutazione del trigger è richiesta al più presto 0,05 s prima che venga raggiunta una posizione. Per questo motivo il parametrofPlanningForecastDuration
=0.05 è impostato nel Planning_PRG
programma.
Blocco funzione: TriggerWithTimeShift
IL TriggerWithTimeShift
Il blocco funzione fornisce un'interfaccia semplificata per l'utilizzo dei trigger. Inoltre, è possibile definire uno spostamento temporale in modo che il trigger possa reagire prima del raggiungimento di una posizione (valore positivo) e dopo il raggiungimento di una posizione (valore negativo). A seconda della precisione temporale richiesta in un'applicazione, la reazione al raggiungimento di un trigger può essere la seguente:
Precisione temporale richiesta >= ciclo task bus: In questo caso, il file
TriggerWithTimeShift.TriggerReachedThisCycle
l'uscita può essere utilizzata.Precisione temporale richiesta < ciclo task bus: in questo caso, il tempo rimanente esatto
TriggerWithTimeShift.TriggerTime
fino al raggiungimento del trigger può essere utilizzato.
Internamente, TriggerWithTimeShift
utilizza il SMC_GroupPrepareTrigger
E SMC_GroupReadTrigger
blocchi funzione.
Trigger di comando
Nel GlueApplication
programma, i movimenti e i trigger vengono comandati. L'ordine di chiamata è particolarmente importante per i trigger perché i trigger vengono preparati utilizzando SMC_GroupPrepareTrigger
vengono assegnati al movimento successivo comandato nello stesso ciclo. Pertanto, in ogni applicazione è necessario prestare attenzione a quanto segue:
I blocchi funzione per comandare i trigger vengono sempre richiamati prima dei blocchi funzione di movimento.
I trigger e il rispettivo movimento vengono comandati sempre nello stesso ciclo.
I trigger utilizzano tutti i tipi da SMC_TriggerPositionType
:
I trigger alla posizione 1 utilizzano la definizione di una distanza relativa (
SMC_TriggerPositionType.MvtRelative
) e come Posizione 0.5. Poiché il rispettivo movimento ha una distanza di 10, i trigger si trovano in X=5.Il trigger in posizione 2 utilizza la definizione di una distanza in unità utente u (
SMC_TriggerPositionType.MvtDistance
) e come posizione 5. Di conseguenza, anche il trigger si trova in X=5.I trigger in posizione 3 utilizzano l'intersezione con un piano (
SMC_TriggerPositionType.PlaneIntersection
). Il piano è stato definito in modo che i trigger si trovino in X=5.
GlueApplication
ha il EnableGlue
, EnableUVLamp
, E RefillGlueStorage
uscite. Questi vengono attivati nei trigger appropriati GlueApplication.EvaluateTriggers()
. Il movimento e lo stato di queste uscite possono essere monitorati e valutati nel Trace.