Funciones definidas por el usuario
FactoryTalk Design Workbench
admite la creación y administración de funciones definidas por el usuario (UDF) para reutilizar la lógica del programa y hacer que nuestro programa sea más legible. Utilice una UDF para cálculos simples que requieran solo una salida.Las UDF no pueden acceder a las variables locales del programa de llamada. Las variables locales del programa de llamada deben pasarse a la UDF como parámetros de entrada.
IMPORTANTE:
Un parámetro de entrada definido por el usuario no puede habilitar o deshabilitar las UDF, ya que el parámetro de entrada solo habilita o deshabilita las instrucciones dentro de la UDF.
Para habilitar o deshabilitar una UDF, active o desactive
EN/ENO
en el panel Propiedades
.Cuando
EN/ENO
está desactivado, no se ejecuta la UDF y los parámetros de salida no se sobrescriben.Si una UDF se ejecuta varias veces por exploración de programa, no se recomienda utilizar instrucciones que requieran más de una exploración de programa para completarse, como las instrucciones de temporizador, movimiento, mensaje y contador. Estas instrucciones conservan los estados entre escaneados de programa.
Use UDF en lugar de bloques de funciones definidas por el usuario (UDFB)
- Para un cálculo simple que requiera solo una salida, comoY=MX+B.
- Para las instrucciones sin estado que no requieran guardar valores de variables locales entre las ejecuciones, como SIN.
- Cuando el parámetro de salida no requiera un tipo de datos estructurados o de matrices.
- Siempre que sea posible, porque una UDF consume menos memoria.Cuando se requieren varias instancias, un UDFB puede utilizar menos memoria que una UDF debido a que un UDFB no existe en un programa hasta que se crea una instancia de él como una variable.
Utilice un UDFB en lugar de una UDF
- Para cálculos complejos que tienen múltiples salidas.
- Cuando se requiera guardar los valores de las variables locales entre las ejecuciones (guarda el estado).
- Cuando se requieran varias instancias. Un UDFB puede utilizar menos memoria que una UDF debido a que un UDFB no existe en un proyecto en un programa hasta que se crea una instancia de él como una variable.
- Cuando el parámetro de salida requiera un tipo de datos estructurados o de matrices.
- Cuando se envía más de un mensaje simultáneamente.Cuando una UDF contiene una instrucción de mensaje como MSG_CIPGENERIC, la UDF solo envía un mensaje por vez, incluso si la UDF se llama varias veces por exploración del programa.
Tenga en cuenta los siguientes procedimientos recomendados al utilizar UDF
- Utilice la encapsulación de datos.Las UDF pueden acceder a variables globales. No se recomienda acceder a las variables globales desde un UDFB.
- Antes de llamar a una UDF varias veces en el proyecto, depure el programa de UDF porque:
- Es difícil supervisar la lógica de una UDF cuando se llama varias veces.
- No se admite supervisar una UDF a la que se llama desde un programa de interrupción.
- Inicializar las variables locales en cada ejecución.De forma predeterminada, las variables locales de un programa de UDF no se vuelven a inicializar de forma automática cada vez que se llama a la UDF. Debido a que no se admiten varias instancias de UDF, se recomienda inicializar las variables locales de UDF en cada ejecución con los parámetros de entrada o una constante.
Entregue su opinión