Vous pouvez utiliser ce bloc fonction pour obtenir l'état d'un SLC et réaliser plusieurs opérations de maintenance.
Pour assurer le bon fonctionnement du bloc fonction, définissez d'abord les entrées i_ifSafeLogic et i_sPassword avant d'activer le bloc via l'entrée i_xEnable. Si vous avez besoin d'envoyer une commande au SLC, définissez l'entrée i_etUserCommand et exécutez la requête sur un front montant de i_xExecute.
Si la clé USB du SLC n'a pas encore de mot de passe, vous devez d'abord lui en définir un via la commande ET_UserCommand.SetSafeKeyPassword et l'entrée i_sNewPassword.
Le bloc fonction doit être appelé jusqu'à ce que la valeur q_xDone ou q_xError devienne TRUE (et que q_xActive devienne FALSE). En l'absence d'erreur, l'état du SLC peut être évalué via la structure au niveau de la sortie q_stStatus. Les paramètres q_etDiag et q_etDiagExt permettent d'analyser les erreurs détectées pendant la requête de commande.
En cas d'erreur, le bloc fonction ne traite aucune autre commande. Pour le réinitialiser, il est nécessaire de le désactiver, puis de le réactiver via l'entrée i_xEnable.
Entrée |
Type de données |
Description |
---|---|---|
i_xEnable |
BOOL |
Un front montant (FALSE -> TRUE) active le POU. Un front descendant (TRUE -> FALSE) le désactive, efface les erreurs et rétablit son état par défaut. Un POU désactivé n'exécute aucune action. |
i_xExecute |
BOOL |
Un front montant (FALSE -> TRUE) démarre le traitement de la commande indiquée par l'entrée i_etUserCommand sur le SLC défini par l'entrée i_ifSafeLogic. |
i_etUserCommand |
Action à exécuter par le SLC. |
|
i_ifSafeLogic |
SystemConfigurationItf.IF_SafeLogic |
SLC avec lequel interagir. L'équipement doit figurer dans l'arborescence EcoStruxure Machine Expert. de |
i_sPassword |
STRING[80] |
Mot de passe du SLC sur lequel doit être exécutée la commande. Ce mot de passe n'est pas pertinent si le paramètre i_etUserCommand indique que seul l'état est demandé. |
i_sNewPassword |
STRING[80] |
Spécifie un nouveau mot de passe de clé USB à enregistrer sur le SLC. |
Sortie |
Type de données |
Description |
---|---|---|
q_xActive |
BOOL |
TRUE : Le POU est actif et doit être exécuté ultérieurement. FALSE : Le POU est inactif. |
q_xReady |
BOOL |
TRUE : Le POU est prêt à fonctionner et peut accepter des commandes utilisateur. FALSE : Le bloc fonction n'est pas prêt à accepter des commandes utilisateur. |
q_xBusy |
BOOL |
TRUE : Le POU exécute la commande utilisateur émise. FALSE : Le POU attend d'autres commandes utilisateur. |
q_xDone |
BOOL |
TRUE : La commande utilisateur a été exécutée. FALSE : La commande utilisateur est en cours d'exécution ou aucune n'a encore été émise. |
q_stStatus |
Dernier état signalé par le SLC. |
|
q_etDiag |
Informations générales sur le diagnostic indépendantes de la bibliothèque. Une valeur différente de GD.ET_Diag.Ok correspond à un message de diagnostic. |
|
q_etDiagExt |
Sortie de diagnostic propre au POU. q_etDiag = GD.ET_Diag.Ok -> message d'état q_etDiag <> GD.ET_Diag.Ok -> message de diagnostic |
|
q_sMsg |
STRING[80] |
Message déclenché par un événement, qui fournit des informations plus détaillées sur l'état de diagnostic. |
q_stStatusExtended |
Dernier état étendu signalé par TM5CSLC300FS ou TM5CSLC400FS. |
q_etDiag |
q_etDiagExt |
Description |
---|---|---|
OK |
Disabled |
Le POU est désactivé. |
OK |
Initializing |
Le POU est en cours d'initialisation. |
OK |
Running |
Le POU est occupé à traiter des requêtes ou à exécuter des procédures internes. |
OK |
WaitForExecution |
Le POU est prêt et attend d’être exécuté ou la saisie d'un utilisateur. |
InputParameterInvalid |
CommandFailedToExecute |
Une commande a été envoyée au SLC, puis a échoué. |
InputParameterInvalid |
InvalidIfSafeLogic |
L'interface ifSafeLogic n'est pas valide. |
InputParameterInvalid |
InvalidUserCommand |
La commande utilisateur demandée n'est pas valide. |
SercosConditionInvalid |
CommunicationFailure |
Une erreur a été détectée lors de l'établissement de la communication avec le SLC. |
UnexpectedProgramBehavior |
CommandFailedToExecute |
Une commande a été envoyée au SLC, puis a échoué. |
UnexpectedProgramBehavior |
CommunicationFailure |
Une erreur a été détectée lors de l'établissement de la communication avec le SLC. |
UnexpectedProgramBehavior |
GlobalSercosInterfaceInvalid |
L'interface Sercos globale n'est pas valide. |
UnexpectedProgramBehavior |
UnknownInternalState |
Le POU a détecté un état interne indéterminé. |
ExecutionAborted |
CommandFailedToExecute |
Une commande a été envoyée au SLC, puis a échoué. |
Nom d'énumération : |
CommandFailedToExecute |
Valeur d'énumération : |
31 |
Description : |
Une commande a été envoyée au SLC, puis a échoué. |
Cause |
Solution |
---|---|
Mot de passe du SLC manquant ou incorrect au niveau de l'entrée i_sPassword. |
Vérifiez le mot de passe au niveau de l'entrée i_sPassword et corrigez-le si besoin. Définissez-le si ce n'est pas déjà fait, puis réessayez. |
Le paramètre RemoteControlAllowed n'est pas défini sur « Yes-ATTENTION » dans le programme du SLC actif. |
Définissez le paramètre RemoteControlAllowed sur « Yes-ATTENTION ». |
Non-respect des prérequis concernant la commande demandée. Par exemple, une confirmation de remplacement de module a été émise alors qu'il n'existe pas de modules remplacés à confirmer. |
Exécutez seulement des commandes autorisées par l'état du SLC. |
Ordre d'exécution des commandes incorrect. |
Exécutez les commandes dans le bon ordre. Exemple : confirmez d'abord la clé USB, puis les modules. |
Nom d'énumération : |
CommunicationFailure |
Valeur d'énumération : |
30 |
Description : |
Une erreur a été détectée lors de l'établissement de la communication avec le SLC. |
Cause |
Solution |
---|---|
Le SLC n'a pas répondu correctement à la requête. |
Désactivez et réactivez le bloc fonction pour effacer l'état d'erreur et exécutez à nouveau la commande. |
Nom d'énumération : |
Disabled |
Valeur d'énumération : |
1 |
Description : |
Le POU est désactivé. |
Le bloc fonction est désactivé.
Nom d'énumération : |
GlobalSercosInterfaceInvalid |
Valeur d'énumération : |
23 |
Description : |
L'interface Sercos globale n'est pas valide. |
Cause |
Solution |
---|---|
Interface Sercos globale manquante ou incorrecte. |
Vérifiez qu'un objet Sercos III est bien présent dans l'arborescence du projet et corrigez-le si besoin. |
Nom d'énumération : |
Initializing |
Valeur d'énumération : |
2 |
Description : |
Le POU est en cours d'initialisation. |
Le bloc fonction est occupé à exécuter ses procédures d'initialisation.
Nom d'énumération : |
InvalidIfSafeLogic |
Valeur d'énumération : |
20 |
Description : |
L'interface ifSafeLogic n'est pas valide. |
Cause |
Solution |
---|---|
Valeur manquante ou incorrecte au niveau de l'entrée i_ifSafeLogic. |
Indiquez un objet valide de type SystemConfigurationItf.IF_SafeLogic au niveau de l'entrée i_ifSafeLogic. |
Nom d'énumération : |
InvalidUserCommand |
Valeur d'énumération : |
21 |
Description : |
La commande utilisateur demandée n'est pas valide. |
Cause |
Solution |
---|---|
Un nombre dont la valeur ne peut être associée à aucun élément de l'énumération ET_UserCommand a été transmis au niveau de l'entrée i_etUserCommand. |
Un élément de l'énumération ET_UserCommand doit être transmis au niveau de l'entrée i_etUserCommand. |
Nom d'énumération : |
Running |
Valeur d'énumération : |
4 |
Description : |
Le POU est occupé à traiter des requêtes ou à exécuter des procédures internes. |
Le bloc fonction est occupé à exécuter une commande.
Nom d'énumération : |
UnknownInternalState |
Valeur d'énumération : |
22 |
Description : |
Le POU a détecté un état interne indéterminé. |
Cause |
Solution |
---|---|
Le POU a détecté un état interne indéterminé. |
Désactivez et réactivez le bloc fonction pour effacer l'état d'erreur et exécutez à nouveau la commande. |