Buen día German, para el HMI
SH-300 subimos un nuevo ejemplo en la pagina Web para mostrar float en el panel HMI desde el PLC.
Podes ver el ejemplo en el siguiente link:
Float HMIEn el ejemplo podes encontrar el proyecto para el PLC en Ladder y el proyecto para descargar en panel HMI.
La descripción seria la siguiente:
Los registros MODBUS tipo holding son enteros de 16-bits. El display HMI ofrece la posibilidad
de considerar parte del numero mostrado como entero y otra parte como decimal.
Por ejemplo, si consideramos el numero entero
24506, podemos decirle al display HMI que los
primeros 3 dígitos son la parte entera y los últimos 2 son la parte decimal, resultando
en la visualización:
245.06Entonces, si tenemos un float en el PLC con el valor
245.06 debemos multiplicarlo por 100 para
obtener
24506 y mantener la resolución de dos decimales en la parte entera.
Luego almacenamos en el registro MODBUS el float con el valor
24506, previamente convertido a entero con:
VariableEntera = FloatToInt(VariableFloat)Finalmente, configuramos un objeto
"NUMERIC" en el SH-300 para que
lea el registro MODBUS con el valor
24506, pero que muestre
245.06.
Utilizar
"FORMAT" con
DIGIT=5 y
DECIMAL=2 como muestra la
foto en este link en el objeto
NUMERIC del software del SH-300.
Para concluir, debemos convertir los float a enteros (previamente
multiplicados por
10 x numero_de_decimales). Luego almacenamos el valor
en el registro MODBUS y mostramos en el SH-300 utilizando un formato
de configuración.
Como el registro MODBUS es de 16-bits esta tecnica nos limita el rango
del valor
float a mostrar en el HMI.
Quedamos a disposición por cualquier otra consulta.