El comportamiento es correcto, según el funcionamiento de SoMachine frente al Forzado.
Cuando se fuerzan valores, la secuencia de comandos en un ciclo es la siguiente:
1---> Leer entradas
2---> Forzar valores
3---> Ejecutar código
4---> Forzar valores
5---> Escribir salidas
Si tenemos el siguiente código con variables M1 --> M5:
El comportamiento sería el siguiente:
1---> Leer entradas --> No hay en el programa entradas %Ix.x configuradas, por lo tanto no se produce ningún efecto sobre M1..M5
2---> Forzar valores --> M4 se activa en la red 1 y 2
3---> Ejecutar código --> Red 1: M4 = (M1 AND NOT M2 AND M3) = False
---> Red 2 : M4 = False = M5
4---> Forzar valores --> M4 se activa en la red 1 y 2
5---> Escribir salidas --> No hay en el programa salidas %Qx.x configuradas, por lo tanto no se produce ningún efecto sobre M1..M5
Esto significa que el paso 3 donde se ejecuta el código, hace que se sobrescriba el forzado de M4, con el resultado de M5 = False
La función de forzado está pensada para E/S reales, no para variables, aún así, es posible forzar variables, pero el usuario debe tener en cuenta el procesa explicado anteriormente, pues los valores forzados pueden ser sobrescritos por el código.
Cuando se fuerzan valores, la secuencia de comandos en un ciclo es la siguiente:
1---> Leer entradas
2---> Forzar valores
3---> Ejecutar código
4---> Forzar valores
5---> Escribir salidas
Si tenemos el siguiente código con variables M1 --> M5:
El comportamiento sería el siguiente:
1---> Leer entradas --> No hay en el programa entradas %Ix.x configuradas, por lo tanto no se produce ningún efecto sobre M1..M5
2---> Forzar valores --> M4 se activa en la red 1 y 2
3---> Ejecutar código --> Red 1: M4 = (M1 AND NOT M2 AND M3) = False
---> Red 2 : M4 = False = M5
4---> Forzar valores --> M4 se activa en la red 1 y 2
5---> Escribir salidas --> No hay en el programa salidas %Qx.x configuradas, por lo tanto no se produce ningún efecto sobre M1..M5
Esto significa que el paso 3 donde se ejecuta el código, hace que se sobrescriba el forzado de M4, con el resultado de M5 = False
La función de forzado está pensada para E/S reales, no para variables, aún así, es posible forzar variables, pero el usuario debe tener en cuenta el procesa explicado anteriormente, pues los valores forzados pueden ser sobrescritos por el código.