Bloques de función del sistema

A partir de la versión V2.3.56, al compilar proyectos antiguos pueden ocurrir los siguientes problemas: Un temporizador colocado por el compilador en el área de retención en una versión anterior, es ahora asignado a un área de no retención a partir de la Versión V2.3.56.

El motivo de esta modificación a partir de la versión V2.3.56, es que se pueden asignar las llamadas a bloques de función, a áreas de retención y de no retención. Así, el compilador asigna un temporizador del sistema desde el final del área de memoria para temporizadores (registros del sistema del 5 al 1) al principio del área de retención (registro del sistema 6) de cada llamada VAR_RETAIN del bloque de función ‘TM_xxxs_FB’. Por cada llamada de la clase VAR, el compilador asigna un temporizador del sistema desde el final del área de no retención (valor de los registros del sistema de 6 al 1) hasta 0.

Si los registros del sistema 5 y 6 se configuran como en el ejemplo de abajo, ocurre el efecto arriba descrito. Los registros del sistema 5 o 6 deben configurarse correctamente o se debe modificar la clase de la llamada del bloque de función.

Ejemplo

En la versión anterior a V2.3.56, los temporizadores comenzaban a partir del número 2999, que se encuentra en el área de retención. A partir de la versión V2.3.56, el compilador intenta asignar el temporizador a un área de no retención. El compilador asigna el número 2499.

Solución: Modificar la clase en la cabecera del programa que contiene la llamada asignada al área de retención.

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