Skip to main content

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 da SMC_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).

_sm_img_digital_switches_example.png

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 in GlueApplication programma di esempio.

  • Trace: La traccia mostra la dinamica degli assi e anche le uscite del GlueApplication 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:

  1. I blocchi funzione per comandare i trigger vengono sempre richiamati prima dei blocchi funzione di movimento.

  2. 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.