Lorsque le système lit la valeur d’une variable ou l’adresse dans un réseau, le compilateur utilise toujours la valeur ou l’adresse de la variable avant le traitement du réseau par le compilateur.
Notez par ailleurs que des erreurs de programmation arrivent souvent lorsque la valeur d’une variable ou une adresse sont lues après avoir été modifiées.
Le mécanisme est le suivant : au début du réseau, la valeur de la variable concernée est copiée vers une variable temporaire. Tous les accès en lecture ultérieurs sont réalisés à partir de la variable temporaire ; tous les accès en écriture sont effectués sur la variable d’origine.
Exemple 1 :
Éditeur |
Code programme |
Description |
|
LD |
Résultat inattendu car valeur lue à partir de la copie temporaire. ![]() |
![]() |
|
![]() |
Code supplémentaire de copie de la valeur de iVariable à DT768 dans une variable temporaire à DT769 |
||
![]() |
Lire la valeur de la variable temporaire à DT769, ajouter 5 et écrire la nouvelle valeur dans iVariable à DT768. Lire à nouveau la valeur de la variable temporaire à DT769, la multiplier par 3 et écrire la nouvelle valeur dans iVariable à DT768. |
||
Editeur de type GR |
Résultat attendu car aucune valeur lue à partir de la copie temporaire. ![]() |
![]() |
Exemple 2 :
Éditeur |
Code programme |
Description |
|
LD |
Résultat attendu car valeur lue à partir de la copie temporaire de bOutput. ![]() |
![]() |
Code supplémentaire de copie de la valeur de bOutput à R0511 dans une variable temporaire à R0500 |
![]() |
|||
![]() |
Lecture de la valeur de la variable temporaire R0500 |
||
Editeur de type GR |
Résultat inattendu car aucune valeur lue à partir de la copie temporaire. ![]() |
![]() |