Type : |
Bloc fonction |
Disponible à partir de : |
V2.0.108.9437 |
Hérite de : |
- |
Implémente : |
- |
Ce bloc fonction écrit un IDN sur un équipement de manière asynchrone afin de ne pas bloquer la tâche du contrôleur. Pour permettre le traitement de plusieurs requêtes tour à tour, les requêtes de canal de service sont placées dans une file d'attente. Cette file d'attente peut contenir jusqu'à 20 éléments. Une fois que la file d'attente est pleine, toute demande d'ajout de requête d'écriture provoque l'erreur "Failure_ServiceChannelBusy". Les nouvelles requêtes sont traitées selon le principe "premier entré, premier sorti". Si une requête atteint sont délai limite avant d'être terminée, elle est retirée de la file d'attente et, si elle est active, elle est abandonnée.
Au début, le mode d'accès est soit l'adresse topologique, soit le descripteur d'équipement. Lorsque la valeur à l'entrée i_xExecute devient TRUE, l'appel asynchrone est lancé.
Le contexte des données est indiqué via les quatre entrées i_dwParameterIdn, i_usParameterElement, i_pbDataPointer et i_uiDataLength. Si la requête dépasse le délai spécifié via l'entrée i_timTimeOut (autrement dit, si son exécution n'est pas terminée), la sortie q_xError prend la valeur TRUE. Cela n'affecte pas la valeur de l'entrée i_pbDataPointer. Si la requête est acceptée, la sortie q_xActive prend la valeur TRUE.
Entrée |
Type de données |
Description |
---|---|---|
i_etSVCAccessMode |
ET_ServicChannelAccessingMode |
Détermine si l'accès à l'équipement utilise l'adresse topologique ou le descripteur d'équipement. Valeur par défaut : ET_ServicChannelAccessingMode.TopoAddress |
i_xExecute |
BOOL |
Le passage de cette entrée à la valeur TRUE lance l'appel asynchrone. Les sorties du bloc fonction ne sont pas réinitialisées avant le passage suivant de cette entrée à la valeur TRUE. |
i_uiTopologicalAddress |
UINT |
La valeur de cette entrée identifie l'équipement si la valeur à l'entrée i_etSVCAccessMode a été définie sur TopoAddress. |
i_stSlave |
ST_Slave |
La valeur de cette entrée identifie l'équipement si la valeur à l'entrée i_etSVCAccessMode a été définie sur SlaveHandle. |
i_dwParameterIdn |
DWORD |
Indique l'IDN à écrire. Pour générer la valeur de cette entrée, utilisez SERC.FC_BuildIDN ou calculez la valeur. Pour plus d'informations, consultez la rubrique Numéro d'identification de paramètre (IDN) Sercos dans la bibliothèque SercosCommunication. |
i_pbDataPointer |
POINTER TO BYTE |
Indique le pointeur de l'emplacement d'enregistrement des données écrites. |
i_uiDataLength |
UINT |
Indique la longueur des données à écrire. |
i_timTimeOut |
LTIME |
Indique le délai d'expiration de la requête. Valeur initiale : LTIME#1s0ms0us0ns |
Sortie |
Type de données |
Description |
---|---|---|
q_xDone |
BOOL |
Si cette sortie est TRUE, l'exécution s'est effectuée correctement. |
q_xError |
BOOL |
Si la valeur à cette sortie est TRUE, cela signifie qu'une erreur a été détecté. Voir q_diErrorID pour plus de détails. |
q_diErrorId |
DINT |
ID d'erreur avec des informations supplémentaires sur l'erreur détectée. Voir etResult. |
q_xActive |
BOOL |
Si le bloc fonction est actif, cette sortie est TRUE. |
Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, il peut arriver que des zones de mémoire soient déplacées vers de nouvelles adresses et, par conséquent, qu'un un pointeur ou une référence ne soit plus valide. To help avoid errors associated with invalid pointers, variables of type POINTER TO… or REFERENCE TO… must be updated cyclically or at least at the beginning of the cycle in which they are used.
ATTENTION | |
---|---|