Solo para el FP-e y para el FP0: No utilizar en los programas de interrupción instrucciones con datos de tipo REAL
Los literales enteros como '123' se convierten implícitamente a REAL.
Las variables del tipo de datos REAL son números reales de 32 bits según el estándar IEEE754. Consisten en una mantisa de 23 bits y en un exponente de 8 bits.
Rango de valores de tipo REAL: |
-3.402823466*E38 a -1.175494351*E-38 |
0.0 |
|
+1.175494351*E-38 a +3.402823466*E38 |
|
El valor inicial por defecto, por ejemplo, en la declaración de la variable en la cabecera de la POU o en la lista de variables globales: |
0.0 |
Se pueden introducir valores de tipo REAL en el siguiente formato: [+-] Entero.Entero [(Ee) [+-] Entero]
5.983e-7
-33.876e12
3.876e3
0.000123
123.0
Problema:
Las instrucciones en coma flotante requieren números reales válidos.
Rango de valores de tipo REAL: |
-3.402823466*E38 a -1.175494351*E-38 |
0,0 |
|
+1.175494351*E-38 a +3.402823466*E38 |
Si un número real es menor que -3.402823466*E38, o mayor que +3.402823466*E38 se activan las variables del sistema sys_bIsOperationErrorHold y sys_bIsOperationErrorNonHold y se detiene la operación si el registro del sistema 26 está configurado como Detener.
Esta condición se comprueba con las funciones IsValidReal y IsValidReal2.
Si un número real está en el rango de -1.175494351*E-38 a +1.175494351*E-38, el PLC toma el valor 0.0 y no se activan las banderas de error.
Algunos tipos de PLC antiguos como FP1 o FP-M no soportan números reales.
En este ejemplo las funciones IsValidReal y IsValidReal2 está programada en diagrama de contactos (LD) y en lista de instrucciones (IL). Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
Cabecera de la POU
En la cabecera de la POU, se declaran todas las variables de entrada y de salida que van a ser usadas en la programación de esta función.
LD: IsValidReal
LD: IsValidReal2