MPROG - Lenguaje Gráfico

Creada por Luiza Holtz, Modificado el Lun., 22 Dic., 2025 a las 1:53 P. M. por Luiza Holtz

Este manual ofrece una visión general del lenguaje gráfico de bloques de función utilizado en la línea Climate PRO. Detalla los principales conceptos y elementos de este lenguaje, como la creación de lógicas de control mediante bloques interconectados, tipos de datos, conexiones y diagramas. 



Lenguaje de bloques de función 

El lenguaje utilizado en la plataforma es gráfico, donde los bloques de función se conectan formando un diagrama combinacional que ejecuta la lógica definida por los bloques. 

La lógica es actualizada continuamente por el equipo, generando nuevos valores para las salidas de cada bloque en cada ciclo de ejecución. Un ciclo representa la actualización de todos los bloques del proyecto.


La velocidad de ejecución depende del tamaño de la lógica programada y de la capacidad de procesamiento del controlador. En modo de depuración, el sistema informa la velocidad media de ejecución en ciclos por segundo.



Diagramas

Un diagrama es una página donde es posible crear lógicas utilizando bloques de función. Basta con arrastrar los bloques desde la biblioteca hacia un diagrama para crearlo. Para organizar programas grandes, es posible (y recomendable) crear varios diagramas, separando los módulos del proyecto. Después de la compilación, todos los diagramas se integran y se ejecutan cíclicamente como si fueran un solo diagrama. 



Tipos de datos 

El lenguaje de bloques admite 3 tipos de datos: booleano, entero y real (punto flotante). El tipo de dato se representa por el color de la entrada/salida del bloque: 


BOOLEANO (Bit).

 

ENTERO.

 

REAL (punto flotante).


Internamente, la ejecución de la lógica utiliza datos INT32 para los valores enteros y FLOAT IEEE32 para los datos reales. 



Conexiones 

Las conexiones entre las entradas y salidas de los bloques se realizan mediante líneas. La línea adopta el color del tipo de dato cuando está correctamente conectada. Una línea roja indica un problema de conexión. Para crear una conexión, basta con colocar el mouse sobre la entrada/salida, hacer clic y arrastrar la línea hacia la siguiente salida/entrada. 


El sistema impide conexiones incorrectas, como entradas y salidas con diferentes tipos de datos o la conexión de dos salidas o dos entradas. Es posible conectar varias entradas a una misma salida, pero no se permite la conexión de varias salidas a una misma entrada.  



Labels

Los LABELs son una herramienta gráfica que permiten la conexión de entradas y salidas sin necesidad de utilizar una línea. Su función es organizar el diagrama gráfico, evitando que una gran cantidad de conexiones por líneas deje la lógica muy cargada y dificulte la visualización del programa. 


Otra función del label es la conexión de bloques entre diferentes diagramas. 


El label conecta todos los demás labels con el mismo nombre, enlazando las entradas y salidas conectadas a él.  


En el ejemplo anterior, los labels TAMB están todos conectados. La conexión es global, es decir, funciona tanto dentro del mismo diagrama como entre diagramas diferentes. Las reglas de conexión funcionan de la misma forma que con las líneas. 



Constantes en las entradas 

Es posible definir valores constantes en las entradas de los bloques. Para crear o modificar el valor de esta constante, basta con hacer doble clic en el bloque y ajustar los valores en la pestaña “ENTRADAS”. El valor ajustado aparece al lado de la entrada, como en el ejemplo anterior para la entrada SETP del bloque PID1


Para entradas booleanas, el valor se muestra como T (TRUE) o F (FALSE).  


No es necesario eliminar la constante para conectar una línea a la entrada. Cuando la línea se conecta, la constante se deshabilita automáticamente. 



Parámetros de los bloques 

Algunos bloques poseen parámetros fijos que deben ajustarse para un funcionamiento correcto. Para acceder a los parámetros, basta con hacer doble clic en el bloque. El ajuste debe realizarse en la pestaña “Parámetros”. Para más detalles sobre los parámetros disponibles, se debe consultar la ayuda del bloque. 


Algunos bloques especiales cuentan con pestañas dedicadas para la configuración dentro de la ventana de propiedades. 



Orden de ejecución 

El orden de ejecución de los bloques dentro de un diagrama sigue el orden en que fueron creados. En la gran mayoría de los casos, el usuario no necesita preocuparse por la secuencia de ejecución. En situaciones especiales, cuando esto sea necesario, MPROG permite modificar este orden a través de un menú específico. 



Temporizaciones 

Varios bloques cuentan con control de temporización (retardos, etc.). En la mayoría de los casos, estos tiempos se programan en décimas de segundo (100 ms), pero pueden variar según cada bloque. Es importante destacar que la evaluación del tiempo se realiza durante el ciclo de ejecución y actualización del bloque.


Si el tiempo de ciclo es mayor que la unidad básica de tiempo del bloque (100 ms), los retardos configurados no se respetarán. La solución en estos casos es utilizar un hardware con mayor capacidad de procesamiento o simplificar la lógica de programación.



Bloques de función 

En las secciones siguientes se explican algunas funcionalidades de bloques básicos o especiales. Para más detalles, consulte la ayuda del bloque. 


Bloques de I/O 

Los bloques de I/O permiten el acceso a las entradas y salidas físicas del equipo. La disponibilidad depende del controlador utilizado. 


  • Bloques AI: permiten el acceso a las entradas analógicas (tensión/corriente o sensor NTC) del equipo. Cuando están asociados a una entrada NTC, el valor de salida del bloque es la temperatura medida. Cuando están asociados a una entrada de tensión/corriente, el valor de salida varía de 0 a 100 %. Para ajustar la escala, basta con utilizar un bloque SCALE_F. La salida VALID del bloque permite detectar la validez del valor de salida. Cuando es falsa, indica un sensor desconectado. 


  • Bloques BI: permiten el acceso a las entradas digitales del equipo, generando una salida booleana con el valor actual de la entrada. 


  • Bloques AO: permiten el control de una salida analógica del equipo. El valor de la entrada debe estar siempre entre 0 y 100 %. 


  • Bloques BO: permiten el control de las salidas digitales del equipo. El valor booleano de la entrada del bloque se copia a la salida física del equipo. 


Bloques de comunicación 

Los bloques de comunicación (BACS – BACnet Server y MDBS – Modbus esclavo) se utilizan para disponibilizar variables de la lógica interna en la red de comunicación. Por defecto, ninguna variable de la lógica es accesible vía protocolo, a menos que se cree explícitamente un bloque de comunicación. 


La mayoría de los controladores admite tanto los protocolos BACnet como Modbus. Existen bloques similares para cada protocolo, pero el concepto es el mismo. Es posible operar ambos protocolos al mismo tiempo en interfaces diferentes. Consulte los manuales de los controladores para conocer los detalles del soporte disponible.  


De forma resumida, existen 3 tipos de bloques de comunicación: IN, CFG y OUT. 


  • Bloques IN: son bloques de entrada, donde una escritura vía red pone a disposición un valor para la lógica interna. Estos bloques pueden ser leídos y escritos por la red de comunicación. 


  • Bloques CFG: también son bloques de entrada, con la diferencia de que el valor escrito es retentivo, es decir, no se pierde en caso de falta de energía. Estos bloques pueden utilizarse para la creación de setpoints accesibles vía red. 


  • Bloques OUT: son bloques de salida, donde la lógica interna genera un valor para ser leído por la red. Estos bloques no pueden ser escritos vía protocolo. En el protocolo BACnet, los bloques OUT tienen la capacidad de generar alarmas no solicitadas en la red.  

¿Le fue útil este artículo?

¡Qué bueno!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Díganos cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
La verificación de CAPTCHA es obligatoria.

Comentarios enviados

Agradecemos su iniciativa, e intentaremos corregir el artículo