Il blocco funzione è utilizzato per leggere lo stato di un SLC ed eseguire operazioni di manutenzione.
Il blocco funzione consente di interrogare lo stato di un SLC ed eseguire diverse operazioni di manutenzione.
Per il corretto funzionamento, impostare prima gli ingressi i_ifSafeLogic e i_sPassword e attivare il blocco funzione tramite l'ingresso i_xEnable in seguito. Se è stato inviato un comando al SLC, impostare l'ingresso i_etUserCommand ed eseguire la richiesta tramite un fronte di salita su i_xExecute.
Se la chiavetta di memoria del SLC non dispone ancora di una password, è necessario innanzitutto impostare una password tramite il comando ET_UserCommand.SetSafeKeyPassword e l'ingresso i_sNewPassword.
Il blocco funzione deve essere chiamato finché q_xDone o q_xError non cambia il valore su TRUE (e q_xActive passa a FALSE). Se non sono stati rilevati errori, lo stato del SLC può essere valutato tramite la struttura all'uscita q_stStatus. Gli errori rilevati durante l'elaborazione della richiesta di comando possono essere analizzati con q_etDiag e q_etDiagExt.
Se viene rilevato un errore, non vengono elaborati ulteriori comandi dal blocco funzione che può essere ripristinato solo disattivandolo e riattivandolo tramite l'ingresso i_xEnable.
Ingresso |
Tipo di dati |
Descrizione |
---|---|---|
i_xEnable |
BOOL |
Un fronte di salita (FALSE -> TRUE) attiva la POU, un fronte di discesa (TRUE -> FALSE) disattiva la POU, cancellando gli errori e ripristinando la POU allo stato predefinito. Una POU disattivata non esegue alcuna azione. |
i_xExecute |
BOOL |
Un fronte di salita (FALSE -> TRUE) inizia a elaborare il comando specificato dall'ingresso i_etUserCommand sul SLC specificato dall'ingresso i_ifSafeLogic. |
i_etUserCommand |
Specifica l'azione che deve essere eseguita dal SLC. |
|
i_ifSafeLogic |
SystemConfigurationItf.IF_SafeLogic |
Specifica il SLC con cui interagire. Il dispositivo deve esistere nella struttura EcoStruxure Machine Expert. in |
i_sPassword |
STRING[80] |
Password del SLC su cui eseguire il comando. Se i_etUserCommand indica che è richiesta solo la condizione, la password non è rilevante. |
i_sNewPassword |
STRING[80] |
Specifica una nuova password per la chiavetta di memoria da memorizzare nel SLC. |
Uscita |
Tipo di dati |
Descrizione |
---|---|---|
q_xActive |
BOOL |
TRUE: la POU è attiva e deve essere eseguita ulteriormente. FALSE: la POU è inattiva. |
q_xReady |
BOOL |
TRUE: la POU è pronta per funzionare e può accettare i comandi dell'utente. FALSE: il blocco funzione non è pronto per accettare i comandi dell'utente. |
q_xBusy |
BOOL |
TRUE: la POU esegue il comando utente emesso. FALSE: la POU è in attesa di ulteriori comandi utente. |
q_xDone |
BOOL |
TRUE: il comando utente è stato eseguito. FALSE: il comando utente è in corso di esecuzione o non è ancora stato emesso alcun comando. |
q_stStatus |
Ultima condizione segnalata dal SLC. |
|
q_etDiag |
Dichiarazione generale relativa alla diagnostica indipendente dalla libreria. Un valore diverso da GD.ET_Diag.Ok corrisponde a un messaggio di diagnostica. |
|
q_etDiagExt |
Uscita di diagnostica specifica della POU. q_etDiag = GD.ET_Diag.Ok -> messaggio di stato q_etDiag <> GD.ET_Diag.Ok -> messaggio di diagnostica |
|
q_sMsg |
STRING[80] |
Messaggio attivato da evento che fornisce informazioni più dettagliate sullo stato della diagnostica. |
q_stStatusExtended |
Ultimo stato esteso segnalato da TM5CSLC300FS o TM5CSLC400FS. |
q_etDiag |
q_etDiagExt |
Descrizione |
---|---|---|
OK |
Disabled |
La POU è disattivata. |
OK |
Initializing |
È in corso l'inizializzazione della POU. |
OK |
Running |
La POU è occupata nell'elaborazione di una richiesta o procedure interne. |
OK |
WaitForExecution |
La POU è pronta e in attesa di esecuzione o di un’immissione dell'utente. |
InputParameterInvalid |
CommandFailedToExecute |
Un comando è stato inviato correttamente al SLC ma è terminato in modo errato. |
InputParameterInvalid |
InvalidIfSafeLogic |
L'interfaccia ifSafeLogic non è valida. |
InputParameterInvalid |
InvalidUserCommand |
Il comando utente richiesto non è valido. |
SercosConditionInvalid |
CommunicationFailure |
È stato rilevato un errore durante il tentativo di comunicare con il SLC. |
UnexpectedProgramBehavior |
CommandFailedToExecute |
Un comando è stato inviato correttamente al SLC ma è terminato in modo errato. |
UnexpectedProgramBehavior |
CommunicationFailure |
È stato rilevato un errore durante il tentativo di comunicare con il SLC. |
UnexpectedProgramBehavior |
GlobalSercosInterfaceInvalid |
L'interfaccia Sercos globale non è valida. |
UnexpectedProgramBehavior |
UnknownInternalState |
La POU ha rilevato uno stato interno indeterminabile. |
ExecutionAborted |
CommandFailedToExecute |
Un comando è stato inviato correttamente al SLC ma è terminato in modo errato. |
Nome enumerazione: |
CommandFailedToExecute |
Valore enumerazione: |
31 |
Descrizione: |
Un comando è stato inviato correttamente al SLC ma è terminato in modo errato. |
Causa |
Soluzione |
---|---|
No, o altrimenti password SLC errata all'ingresso i_sPassword. |
Verificare la password all'ingresso i_sPassword e correggerla se necessario. Se la password non è già stata impostata, impostarla e riprovare. |
Il parametro RemoteControlAllowed non è impostato su "Yes-ATTENTION" nel programma SLC attivo. |
Impostare il parametro RemoteControlAllowed su "Yes-ATTENTION". |
Le precondizioni del comando richiesto non sono soddisfatte. Ad esempio, è stato emesso un riconoscimento di sostituzione modulo anche se non vi sono moduli sostituiti da riconoscere. |
Emettere solo comandi consentiti che danno lo stato del SLC. |
Ordine errato dei comandi eseguiti. |
Eseguire i comandi nell'ordine corretto. Ad esempio: prima confermare la chiavetta di memoria, quindi i moduli. |
Nome enumerazione: |
CommunicationFailure |
Valore enumerazione: |
30 |
Descrizione: |
È stato rilevato un errore durante il tentativo di comunicare con il SLC. |
Causa |
Soluzione |
---|---|
Il SLC ha risposto a una richiesta in modo errato. |
Disattivare e attivare il blocco funzione per cancellare lo stato di errore rilevato e ripetere il comando. |
Nome enumerazione: |
Disabled |
Valore enumerazione: |
1 |
Descrizione: |
La POU è disattivata. |
Il blocco funzione è disabilitato.
Nome enumerazione: |
GlobalSercosInterfaceInvalid |
Valore enumerazione: |
23 |
Descrizione: |
L'interfaccia Sercos globale non è valida. |
Causa |
Soluzione |
---|---|
No, o in alternativa è stata rilevata l'interfaccia Sercos globale non valida. |
Verificare che nella struttura del progetto sia presente un oggetto Sercos III e correggere se necessario. |
Nome enumerazione: |
Initializing |
Valore enumerazione: |
2 |
Descrizione: |
È in corso l'inizializzazione della POU. |
Il blocco funzione è occupato nell'esecuzione delle relative procedure di inizializzazione.
Nome enumerazione: |
InvalidIfSafeLogic |
Valore enumerazione: |
20 |
Descrizione: |
L'interfaccia ifSafeLogic non è valida. |
Causa |
Soluzione |
---|---|
No, o in alternativa è stato fornito un valore non valido all'ingresso i_ifSafeLogic. |
Specificare un oggetto valido del tipo SystemConfigurationItf.IF_SafeLogic a i_ifSafeLogic. |
Nome enumerazione: |
InvalidUserCommand |
Valore enumerazione: |
21 |
Descrizione: |
Il comando utente richiesto non è valido. |
Causa |
Soluzione |
---|---|
All'ingresso i_etUserCommand, è stato trasferito un numero il cui valore non può essere correlato ad alcun elemento di ET_UserCommand. |
All'ingresso i_etUserCommand, occorre trasferire un elemento dell'enumerazione ET_UserCommand. |
Nome enumerazione: |
Running |
Valore enumerazione: |
4 |
Descrizione: |
La POU è occupata nell'elaborazione di una richiesta o procedure interne. |
Il blocco funzione è occupato nell'esecuzione di un comando richiesto.
Nome enumerazione: |
UnknownInternalState |
Valore enumerazione: |
22 |
Descrizione: |
La POU ha rilevato uno stato interno indeterminabile. |
Causa |
Soluzione |
---|---|
La POU ha rilevato uno stato interno indeterminabile. |
Disattivare e attivare il blocco funzione per cancellare lo stato di errore e ripetere il comando. |