Conectar EN/ENO a las FUNs o FBs

El estado de EN/ENO (TRUE o FALSE) de la primera función (FUN) o del primer bloque de función (FB) determina si se va a ejecutar y si se escribirá en sus salidas o no (consultar EN/ENO en LD y FBD).

Si otra FUN o FB utiliza una de estas salidas como una entrada, el compilador crea una variable temporal. Puesto que otras variables temporales pueden ocupar esta dirección, el valor está indefinido en esta posición si no se ha de escribir, es decir, si ENO es FALSE.

Para evitar esto, asegurarse de que todas las FUNs y FBs en una red, solamente se ejecutan si la FUN/FB previa se ha ejecutado. El compilador simplemente comprueba que la FUN o el FB siguiente no tiene entrada EN y que no está involucrada una función AND.

En la Red 1, se recibirá una advertencia debido al comportamiento indefinido si Compare es FALSE.

La red 2 muestra la programación correcta y no se generará ninguna advertencia.

En la red 3, si Add_to es FALSE y Compare es TRUE, se ejecutará la FUN (E_GT) pero no la FUN (E_ADD) previa. Aunque el comportamiento es indefinido, el compilador no generará ninguna advertencia.

Temas relacionados

Modificado el: 2020-10-27Comentarios sobre esta páginaLínea directa de Panasonic