Configuration d’appareils à l’aide du canal de service

Présentation

Le maître Sercos peut utiliser le canal de service (SVC) pour lire et écrire des IDN et des commandes de procédure. La communication via le SVC utilise le canal temps réel, mais elle est non cyclique. La durée d’exécution type d'un paramètre de 4 octets est d’environ 10 cycles Sercos. Selon la disponibilité du SVC, cette durée peut s'allonger considérablement. Comme il est possible de mettre en attente jusqu’à 20 commandes de procédure et opérations de lecture et écriture d’IDN dans un tampon commun, l’exécution d'une commande de procédure ou d'une opération de lecture ou d'écriture d’IDN peut requérir un certain temps.

Consultez la section Communication Sercos non cyclique via le RTC pour en savoir plus sur le SVC, et la section Paramètres Sercos pour en savoir plus sur les IDN et les commandes de procédure.

Lecture et écriture de commandes de procédure

Les commandes de procédure sont exécutées de manière asynchrone. Une commande de procédure ne bloque pas la tâche. Vous devez lire l’état de la commande de procédure pour savoir si elle est terminée.

Pour exécuter une commande de procédure, deux possibilités s’offrent à vous :

  • Via FC_ExecuteProcedureCommandAsync avec l'IDN et l’adresse topologique des paramètres d’entrée

  • Via FC_ExecuteProcedureCommandAsyncViaHandle avec l’IDN et le pointeur des paramètres d’entrée

Valeurs de retour possibles :

DINT

Nom (ET_Result)

Description

0

Ok

Commande de procédure exécutée.

8

Pending

Commande de procédure en attente d’exécution.

-1

DeviceManagerInvalidDeviceHandle

Impossible d’exécuter la commande de procédure.

Uniquement pour appel via le pointeur.

-2

DeviceManagerNoPhysicalSlaveConnected

Impossible d’exécuter la commande de procédure.

-11

TopologicalAddressOutOfBounds

Impossible d’exécuter la commande de procédure.

Uniquement pour appel via l’adresse topologique.

-15

ServiceChannelIdnInvalid

Impossible d’exécuter la commande de procédure.

-43

ServiceChannelBusy

Impossible d’exécuter la commande de procédure.

-99

UnexpectedFeedback

Impossible d’exécuter la commande de procédure.

Pour lire l'état d’une commande de procédure, deux possibilités s’offrent à vous :

  • Via FC_ReadProcedureCommandAsync avec l’adresse topologique des paramètres d’entrée

  • Via FC_ReadProcedureCommandAsyncViaHandle avec le pointeur des paramètres d’entrée

Les valeurs de retour sont identiques à celles concernant l’exécution d’une commande de procédure. L'appel renvoie l’état de la commande de procédure en cours de traitement. Si aucune commande de procédure n’est en cours de traitement, l'appel renvoie l’état de la commande de procédure suivante dans la file d'attente. Une commande de procédure est terminée si la valeur de retour est différente de 8.

Lecture et écriture d’IDN

La lecture ou l’écriture d'un paramètre est asynchrone. La tâche n’est pas bloquée.

Utilisez le bloc fonction FB_WriteIDN pour écrire un paramètre et le bloc fonction FB_ReadIDN pour lire les valeurs d’un paramètre.

Le timeout est l’un des paramètres d’entrée pour FB_WriteIDN et FB_ReadIDN. La valeur par défaut du timeout est 1000000 µs (1 s). Le timeout démarre au déclenchement de la commande de lecture ou d'écriture, pas à son démarrage dans la file d'attente. Selon le nombre d'éléments et le temps nécessaire pour traiter ces éléments, il se peut qu’une commande de lecture ou d'écriture atteigne son timeout avant même son lancement.