Trigger
I trigger possono essere utilizzati per eseguire azioni come l'accensione di uno strumento quando viene raggiunta una posizione definita sul percorso o con uno spostamento temporale prima o dopo. Per questo scopo, CODESYS SoftMotion fornisce la possibilità di configurare i trigger per i movimenti e quindi leggere continuamente il tempo rimanente fino al raggiungimento della posizione.
Quando si utilizzano i trigger, prestare attenzione a quanto segue:
Il tempo fino al raggiungimento di un trigger può essere recuperato solo quando il gruppo di assi si è avvicinato al trigger fino al tempo di una previsione configurabile. Come viene configurata questa previsione e quale impatto hanno le impostazioni è spiegato nel Configurazione dell'applicazione per l'utilizzo dei trigger sezione.
La traiettoria non viene modificata dall'uso di trigger. In particolare, la traiettoria non viene rallentata per rispettare la previsione configurata. Se, ad esempio, la posizione di un trigger all'inizio di un movimento viene raggiunta già dopo 0,01 secondi, anche una previsione più elevata non può ottenere che venga fornita una notifica sul raggiungimento del punto con più di 0,01 secondi di anticipo.
Per ulteriori informazioni, vedere gli esempi Esempio di trigger 1: esempio semplice E Esempio di trigger 2: processo di incollaggio.
Configurazione dell'applicazione per l'utilizzo dei trigger
Configurazione della durata della previsione
La durata della previsione determina quanto nel futuro viene eseguita la pianificazione. Questo è impostato dal fPlanningForecastDuration
parametro del SMC_TuneCPKernel
blocco funzione. La modalità di impostazione di questo parametro dipende dai requisiti dell'applicazione. Ci sono due requisiti principalmente contraddittori:
Durata della previsione più lunga possibile
Latenza più bassa possibile. La latenza all'inizio di un movimento aumenta perché la previsione deve essere stabilita per prima. La dimensione di questa latenza aggiuntiva dipende principalmente dalle prestazioni del controller utilizzato ed è generalmente molto inferiore alla previsione configurata. Inoltre, la latenza del gruppo di assi per reagire all'interruzione di movimenti e interruzioni aumenta della previsione configurata. La previsione non ha alcun impatto su
MC_GroupHalt
EMC_GroupStop
. Entrambi i blocchi funzione agiscono sempre immediatamente e indipendentemente dalla previsione configurata.
IL fPlanningForecastDuration
parametro del SMC_TuneCPKernel
blocco funzione dovrebbe quindi essere impostato al livello più alto necessario ma il più basso possibile. Se non è richiesta una previsione, il parametro può essere lasciato al valore predefinito 0.
La previsione effettiva disponibile può differire da quella configurata per vari motivi, ad esempio se la fine dell'ultimo movimento è già quasi raggiunta. L'attuale previsione disponibile può essere monitorata mediante il CurrentPlanningForecast
uscita di MC_GroupReadStatus
.
Configurazione del numero massimo di trigger per movimento
Come consegnato, CODESYS SoftMotion supporta fino a 8 trigger per movimento. Se questo numero non è sufficiente, allora il MAX_NUM_TRIGGERS_PER_MOVEMENT
parametro può essere modificato come parametro di libreria. Questo è possibile con il Responsabile Biblioteca e il rispettivo editore per il parametri della libreria. Per utilizzare i parametri della libreria, a CODESYS versione >= SP19 è consigliata.
Comandare e valutare i trigger
Sono disponibili due blocchi funzione per comandare i trigger: SMC_GroupPrepareTrigger E SMC_GroupReadTrigger.
I trigger sono assegnati a un movimento. Ogni singolo trigger deve essere preparato utilizzando il SMC_GroupPrepareTrigger
blocco funzione. La posizione può essere specificata relativa, assoluta o come intersezione con un piano (vedi SMC_TriggerPositionType). L'ordine di chiamata di SMC_GroupPrepareTrigger
e il rispettivo movimento è di particolare importanza perché i trigger preparati sono assegnati al successivo movimento comandato nello stesso ciclo. Pertanto, in ogni applicazione è necessario prestare attenzione a quanto segue:
SMC_GroupPrepareTrigger
deve sempre essere chiamato prima del blocco funzione di movimento.I trigger e il rispettivo movimento devono sempre essere comandati nello stesso ciclo. Se nel ciclo non viene avviato alcun movimento, i trigger preparati vengono scartati e il
CommandAborted
uscita delSMC_GroupPrepareTrigger
i blocchi funzione sono impostati.
Quando il trigger è assegnato a un movimento, le informazioni su un trigger possono essere recuperate utilizzando SMC_GroupReadTrigger
. Non appena il trigger rientra nella durata della previsione disponibile, lo stato cambia in SMC_TRIGGER_STATUS.Active
e il tempo fino al raggiungimento del trigger può essere letto. L'ora si riferisce sempre all'ora di inizio del ciclo in corso. A seconda di quando deve essere attivato il trigger (prima, durante o dopo il raggiungimento della posizione), l'azione desiderata può essere eseguita nell'applicazione in un ciclo adeguato.
I trigger non possono essere interrotti quando sono stati assegnati a un movimento. Invece, possono semplicemente essere ignorati.
Se un movimento viene interrotto da un secondo movimento con MC_BUFFER_MODE.Aborting
, scompaiono anche i trigger assegnati al primo movimento.
Trigger per movimenti con blending
Per movimenti con Miscelazione, i trigger vengono proiettati sul percorso di fusione. L'immagine seguente mostra qualitativamente un caso in cui un movimento da P1 a P2 e un movimento successivo sono stati comandati ciascuno con la fusione. La fusione al primo movimento termina nel punto B e la fusione al movimento precedente inizia nel punto A. Il trigger blu si trova tra P1 e B. Viene proiettato sulla metà posteriore del primo movimento di fusione (evidenziato dalla linea blu) . Allo stesso modo, il grilletto rosso, situato tra A e P2, viene proiettato sulla metà anteriore del secondo movimento di sfumatura (evidenziato dalla linea rossa). Il grilletto verde è al di fuori delle aree di fusione e non è spostato.

Quando ci si fonde con i trigger, c'è una funzione speciale riguardante lo stato del movimento e i rispettivi trigger. Il blocco funzione di comando per il passaggio da P1 a P2 segnala Done
non appena si raggiunge il punto A. Tuttavia, il trigger rosso associato a questo movimento rimane attivo fino a quando non viene raggiunta la posizione sull'elemento di fusione su cui è stato proiettato.