Si el valor de una variable o de una dirección se lee dentro de una red, el compilador siempre usa el valor que tenía la variable o la dirección cuando el compilador comenzó a procesar la red.
Tener en cuenta que a menudo ocurren errores de programación, cuando se modifica y después se lee, el valor de una variable o una dirección.
Al comienzo de la red, el valor de la variable correspondiente se copia en una variable temporal. Todos los accesos de lectura posteriores se realizan sobre la variable temporal; todos los accesos de escritura, sobre la variable original.
Ejemplo 1:
Editor |
Código de programa |
Descripción |
|
LD |
Resultado no consistente debido a una lectura sobre la copia temporal. ![]() |
![]() |
|
![]() |
Código adicional para copiar el valor de iVariable en DT768 en una variable temporal en DT769 |
||
![]() |
Lee desde la variable temporal en DT769 añade 5 y escribe el resultado en iVariable en DT768. Lee de nuevo desde la variable temporal en DT769 multiplica el valor por 3 y escribe el resultado en iVariable en DT768. |
||
Editor tipo GR |
Resultado consistente debido a que no se realiza la lectura sobre la copia temporal ![]() |
![]() |
Ejemplo 2:
Editor |
Código de programa |
Descripción |
|
LD |
Resultado consistente debido a una lectura sobre la copia temporal de bOutput ![]() |
![]() |
Código adicional para copiar el valor de bOutput en R0511 en una variable temporal en R0500 |
![]() |
|||
![]() |
Lee desde la variable temporal R0500 |
||
Editor tipo GR |
Resultado inconsistente debido a que no se realiza la lectura sobre la copia temporal ![]() |
![]() |