Questions fréquentes (FAQ)

Poser une question

Pourquoi définir un timeout sur une requête READ_VAR ou WRITE_VAR ?

Le timeout détermine le temps d'attente maximal de la réponse.
Si le timeout est écoulé, l'échange se termine avec un compte-rendu d'erreur, de même, la réception d'une réponse après la fin du timeout est refusée par le système.

Si la requête n'aboutit pas (équipement distant déconnecté, en défaut, etc...) alors elle sera abandonnée au bout du timeout.
Cela permet de libérer de l'espace dans le buffer de communication et améliore la fluidité de la communication.

Si le timeout est fixé à 0 (timeout infini) et que l'équipement ne répond pas alors la requête est bufférisée et à terme sature le buffer de communication.
Une coupure secteur de l'automate devient nécessaire pour vider le buffer.

Il est donc conseillé de définir une valeur de timeout.
Sous Unity Pro ou PL7, le timeout est égal à la valeur du 3ème mot de la table de gestion des fonctions READ_VAR ou WRITE_VAR x 100 ms (Ex : 3ème mot =10 ; timeout = 1000ms soit 1s).
Cela vous a-t-il aidé ?
Que pouvons-nous faire pour améliorer l'information ?