FB_Encoder_M262: abilitazione e monitoraggio encoder.
Descrizione del blocco funzione
Questo blocco funzione viene utilizzato per abilitare e monitorare l'encoder in modalità incrementale o SSI.
È possibile utilizzare solo un'istanza di questo blocco funzione che viene richiamata una sola volta.
Utilizzare le chiamate cicliche per aggiornare i valori.
Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresentazione di funzioni e blocchi funzione.
Descrizione delle variabili di I/O
Questa tabella descrive le variabili di ingresso:
L'ingresso |
Tipo |
Predefinito |
Commenti |
---|---|---|---|
ENC_REF_M262 |
ENC_REF_M262 |
– |
Riferimento dell’istanza encoder. |
xEnable |
BOOL |
FALSE |
TRUE abilita il blocco funzione. Su un fronte di salita, vengono presi in considerazione i valori dei seguenti parametri di ridimensionamento: oudiScaling_NbOfIncs oudiScaling_NbOfUnits oudiScaling_IncPerTurn Se si modificano tali valori, attivare un fronte di salita su xEnable per prenderli in considerazione. |
udiScaling_NbOfIncs |
UDINT |
0 |
0 indica che il ridimensionamento è disattivato. Il valore in unità utente diCurrentValue_Unit equivale al valori in impulsi diCurrentValue. |
> 0 indica che il ridimensionamento è attivato . Il valore in unità utente è calcolato dal valore in impulsi diCurrentValue, ad esempio: diCurrentValue_Unit = diCurrentValue × (udiScalingNbOfUnits / udiScalingNbOfIncs). |
|||
udiScaling_NbOfUnits |
UDINT |
0 |
0 indica che il ridimensionamento è disattivato. Il valore in unità utente diCurrentValue_Unit equivale al valori in impulsi diCurrentValue. Se non vi è ridimensionamento, udiScalingNbOfUnits=udiScalingNbOfIncs. |
> 0 indica che il ridimensionamento è attivato . Il valore in unità utente è calcolato dal valore in impulsi diCurrentValue, ad esempio: diCurrentValue_Unit = diCurrentValue × (udiScalingNbOfUnits / udiScalingNbOfIncs). |
|||
udiScaling_IncPerTurn |
UDINT |
0 |
Quando uguale a 0, il tipo di asse ha una modalità lineare di contatore. L'intervallo di conteggio è: - 2 147 483 648...2 147 483 647. |
Se il numero di incrementi è > 0, il tipo di asse ha una modalità rotatoria di contatore. Il valore udiSaling_IncPerTurn definisce il valore modulo del rollover del contatore (il valore modulo non viene mai raggiunto). L'intervallo di conteggio è: 0...diScaling_IncPerTurn -1. |
Questa tabella descrive le variabili di uscita:
Uscita |
Tipo |
Predefinito |
Commento |
---|---|---|---|
xValid |
BOOL |
FALSE |
TRUE indica che i valori di uscita sul blocco funzione sono validi. Se il blocco funzione è disattivato, l'uscita è impostata a FALSE . |
xError |
BOOL |
FALSE |
TRUE indica che è stato rilevato un errore. |
etErrorId |
ET_ENC_ERROR_M262 |
ENC_ERROR_NO |
Indica il codice dell'errore rilevato quando xError è TRUE. |
diNbTurns |
DINT |
0 |
Indica il valore modulo dell’encoder. In modalità incrementale, viene incrementato quando il contatore supera il limite superiore. Viene decrementato quando il contatore supera il limite inferiore. In modalità SSI diNbTurns = raw (valore SSI - valore preimpostato) / udiScaling_IncPerTurn Il valore raw SSI proviene direttamente da SSI senza alcuna trasformazione. |
diCurrentValue |
DINT |
0 |
In modalità reale, indica il valore della posizione del dispositivo in impulsi. Il valore dell’intervallo è: - 2 147 483 648...2 147 483 647. In modalità rotatoria, indica il valore della posizione in impulsi per ciascuna rotazione della meccanica. Il valore dell’intervallo per diCurrentValue è 0...diScaling_IncPerTurn - 1. |
lrCurrentValue_Unit |
LREAL |
0 |
Indica il valore dell'encoder in unità di rotazione della meccanica. diCurrentValue_Unit = diCurrentValue / udiScaling_IncPerUnit quando udiScaling_IncPerUnit ≥ 1. |