Questo blocco funzione è un'analogia digitale con un'unità interruttore camma su una guida o un albero meccanico. Il blocco funzione fornisce fino a 32 tracce. Una volta raggiunta una posizione predeterminata, viene attivata un'uscita logica e/o fisica.
Le tracce sono rappresentate come un array di 32 valori booleani. Su queste tracce è possibile organizzare fino a 255 eventi di commutazione.
In MC_CamSwitch_Ref (alias della struttura ST_CamSwitch_Ref della libreria MotionInterface), si imposta il numero di eventi di commutazione (NumberOfSwitches) e un puntatore a un array di eventi di commutazione (ST_CamSwitch). Il valore del parametro NumberOfSwitches deve essere uguale al numero di voci ST_CamSwitch nell'array.
Un evento di commutazione è rappresentato dalla struttura ST_CamSwitch della libreria MotionInterface.
Il blocco funzione MC_DigitalCamSwitch non può verificare la correttezza del parametro NumberOfSwitches e la correttezza dei singoli eventi di commutazione nell'array di eventi di commutazione definito con le voci della struttura ST_CamSwitch.
AVVERTIMENTO | |
---|---|
Il parametro TrackNumber della struttura ST_CamSwitch specifica il numero della traccia, ovvero l'uscita. Il valore massimo è 32.
Il parametro Position della struttura ST_CamSwitch specifica la posizione della traccia in corrispondenza della quale l'evento di commutazione deve essere attivato in unità definite dall'utente.
Il parametro AxisDirection della struttura ST_CamSwitch specifica la direzione del movimento in cui deve essere attivato l'evento di commutazione. L'enumerazione corrispondente ET_AxisDirection fornisce tre valori:
Both (0): l'evento di commutazione viene attivato durante i movimenti in entrambi i sensi.
Positive (1): l'evento di commutazione viene attivato solo durante i movimenti nel senso di movimento positivo.
Negative (2): l'evento di commutazione viene attivato solo durante i movimenti nel senso di movimento negativo.
Il parametro CamSwitchMode della struttura ST_CamSwitch specifica il tipo di commutazione per l'evento di commutazione da attivare. L'enumerazione corrispondente ET_CamSwitchMode fornisce quattro valori:
On (0): l'uscita è impostata su ON quando viene raggiunta la posizione specificata.
Off (1): l'uscita è impostata su OFF quando viene raggiunta la posizione specificata.
Invert (2): l'uscita viene commutata quando viene raggiunta la posizione specificata.
TimeBased (3): l'uscita è impostata su ON per il periodo di tempo specificato con il parametro Duration.
L'ingresso TrackOptions del blocco funzione consente di specificare un tempo di compensazione per l'attivazione degli eventi di commutazione tramite MC_Track_Ref (alias della struttura ST_Track_Ref della libreria MotionInterface). Ogni elemento dell'array per la struttura ST_Track_Ref specifica il tempo di compensazione per la traccia corrispondente. Un elemento dell'array ha due valori:
OnCompensation: specifica il tempo di compensazione in secondi quando l'uscita è impostata su ON.
OffCompensation: specifica il tempo di compensazione in secondi quando l'uscita è impostata su OFF.
È possibile utilizzare valori positivi e negativi per il tempo di compensazione per consentire la compensazione positiva o negativa. Se CamSwitchMode è Invert, viene utilizzato solo il valore di OnCompensation indipendentemente dallo stato precedente dell'uscita. Se CamSwitchMode è TimeBased, viene utilizzato solo il valore di OnCompensation (l'uscita rimane ON per il tempo specificato per l'evento di commutazione con il parametro Duration. La compensazione (nuova posizione di attivazione) dipende dall'accelerazione e dalla velocità al momento del calcolo: ((nuova posizione di attivazione + tempo di compensazione) * velocità) + (0,5 * accelerazione * tempo di compensazione2). Nel caso di un asse modulo, la nuova posizione di attivazione di un evento di commutazione può essere nel successivo periodo modulo. Se la nuova posizione di attivazione di un evento di commutazione è superiore a due periodi modulo, viene rilevato l'errore EdgePositionOutOfTwoModuloRanges.
L'ingresso EnableMask del blocco funzione consente di specificare le tracce da controllare tramite il blocco funzione. Con il valore predefinito FFFFFFFF hex, le tracce sono controllate dal blocco funzione. Se il valore di EnableMask viene modificato durante il runtime, le tracce per cui EnableMask è 0 non vengono azzerate, ma le tracce non sono più controllate dal blocco funzione.
Esempio con sette eventi di commutazione su due tracce su un asse modulo come definito dalle strutture ST_CamSwitch_Ref e ST_CamSwitch:
Evento di commutazione |
TrackNumber | CamSwitchMode | Position | AxisDirection | Duration |
S01 |
1 |
0 (On) |
2000 |
1 (Positive) |
- |
S02 |
1 |
1 (Off) |
3000 |
1 (Positive) |
- |
S03 |
1 |
0 (On) |
4000 |
1 (Positive) |
- |
S04 |
1 |
1 (Off) |
1000 |
1 (Positive) |
- |
S05 |
2 |
0 (On) |
2500 |
2 (Negative) |
- |
S06 |
2 |
1 (Off) |
3200 |
2 (Negative) |
- |
S07 |
2 |
3 (TimeBased) |
3000 |
0 (Both) |
1750 ms |
Rappresentazione grafica dell'esempio:
Il senso del movimento è positivo come indicato dalla freccia.
Gli eventi di commutazione S01, S02 S03 e S04 sono assegnati alla traccia 1 con il parametro TrackNumber; ossia, agiscono sull'uscita 1. Gli eventi di commutazione S05, S06 e S07 sono assegnati alla traccia 2 con il parametro TrackNumber; ossia, agiscono sull'uscita 2.
L'evento di commutazione S01 viene attivato alla posizione 2000 (CamSwitchMode = On). L'evento di commutazione S02 viene attivato alla posizione 3000 (CamSwitchMode = Off).
L'evento di commutazione S03 viene attivato alla posizione 4000 (CamSwitchMode = On). I salti modulo non hanno impatto sulle uscite. L'uscita 1 rimane On fino all'evento di commutazione successivo, indipendentemente da un salto modulo che può verificarsi nel frattempo. L'evento di commutazione S04 viene attivato alla posizione 1000 (CamSwitchMode = Off).
Il parametro AxisDirection degli eventi di commutazione S05 e S06 è impostato a 2 (Negative) pertanto questi eventi di commutazione non vengono attivati con la direzione di movimento positiva nell'esempio.
L'evento di commutazione S07 viene attivato alla posizione 3000 (CamSwitchMode = TimeBased e rimane attivo per una durata di 1750 ms come impostato dal parametro Duration.
Ingresso |
Tipo di dati |
Descrizione |
---|---|---|
Axis |
Axis_Ref |
Riferimento all'asse per cui deve essere eseguito il blocco funzione. |
Switches |
MC_CamSwitch_Ref (alias della struttura ST_CamSwitch_Ref della libreria MotionInterface) consente di impostare il numero di eventi di commutazione (NumberOfSwitches) e un puntatore a un array di eventi di commutazione (ST_CamSwitch). Il numero massimo di eventi di commutazione è 255. |
|
Enable |
BOOL |
Campo valori: FALSE, TRUE. Valore predefinito: FALSE. L'ingresso Enable avvia o termina l'esecuzione di un blocco funzione.
|
EnableMask |
DWORD |
Valore predefinito: FFFFFFFF hex Questo ingresso specifica le tracce che devono essere controllate dal blocco funzione. Con il valore predefinito, tutte le tracce sono controllate dal blocco funzione. Se il valore di EnableMask viene modificato durante il runtime, le tracce per cui EnableMask è 0 non vengono azzerate, ma le tracce non sono più controllate dal blocco funzione. |
TrackOptions |
Questo ingresso specifica un tempo di compensazione per l'attivazione degli eventi di commutazione assegnati a una traccia tramite MC_Track_Ref (alias della struttura ST_Track_Ref della libreria MotionInterface). |
Uscita |
Tipo di dati |
Descrizione |
---|---|---|
InOperation |
BOOL |
Campo valori: FALSE, TRUE. Valore predefinito: FALSE.
|
Error |
BOOL |
Campo valori: FALSE, TRUE. Valore predefinito: FALSE.
|
ErrorID |
Questa enumerazione fornisce informazioni diagnostiche. |