Principios Básicos De La Coherencia De Datos - Siemens SIMATIC S7-1200 Manual De Sistema

Ocultar thumbs Ver también para SIMATIC S7-1200:
Tabla de contenido

Publicidad

La consecuencia de realizar la copia de la estructura para cambiar el formato es que se pierden
los datos escritos por el OB de alarma. Lo mismo puede suceder cuando se escribe un valor con
un HMI. El HMI puede interrumpir el programa de usuario y escribir un valor de la misma forma
que un OB de alarma.
Hay varias formas de solucionar este problema:
• La mejor solución es que los ajustes de optimización del bloque de programa y del bloque de
datos sean los mismos cuando se utilizan tipos de datos complejos (por ejemplo STRUCT). De
este modo el programa de usuario siempre transfiere los parámetros mediante "llamada por
referencia".
• Otra solución es que un OB de alarma o un HMI no modifiquen un elemento directamente en
la estructura. El OB o HMI puede modificar otra variable y, posteriormente, el usuario puede
copiar esta variable en la estructura en un punto concreto del programa de usuario.
7.4
Principios básicos de la coherencia de datos
La CPU conserva la coherencia de datos de todos los tipos de datos simples (p. ej. Word o DWord)
y de todas las estructuras definidas por el sistema (p. ej. IEC_TIMERS o DTL). La lectura o escritura
de valores no se puede interrumpir. (Por ejemplo, la CPU protege el acceso a un valor de palabra
doble (DWord) hasta que se hayan leído o escrito los cuatro bytes de la palabra doble.) Para
garantizar que los OBs de ciclo y de alarma no puedan escribir simultáneamente en la misma
posición de memoria, la CPU no ejecuta un OB de alarma hasta que no haya finalizado la
operación de lectura o escritura en el OB de ciclo.
Si el programa de usuario comparte varios valores entre un OB de ciclo y un OB de alarma en la
memoria, dicho programa debe garantizar asimismo que estos valores se modifiquen o lean de
forma coherente. Utilice las instrucciones DIS_AIRT (deshabilitar tratamiento de eventos de
alarma) y EN_AIRT (habilitar tratamiento de eventos de alarma) del OB de ciclo de programa para
proteger cualquier acceso a los valores compartidos.
• Inserte una instrucción DIS_AIRT en el bloque lógico para garantizar que un OB de alarma no
pueda ejecutarse durante la operación de lectura o escritura.
• Inserte las instrucciones que leen o escriben los valores que podrían ser modificados por un
OB de alarma.
• Inserte una instrucción EN_AIRT al final de la secuencia para cancelar la instrucción DIS_AIRT
y permitir la ejecución del OB de alarma.
Una petición de comunicación de un dispositivo HMI o de otra CPU puede interrumpir asimismo
la ejecución del OB de ciclo de programa. Las peticiones de comunicación también pueden
causar problemas relacionados con la coherencia de datos. La CPU garantiza que las
instrucciones del programa de usuario lean y escriban coherentemente los tipos de datos
simples. Puesto que las comunicaciones interrumpen el programa de usuario de forma
periódica, no es posible garantizar que el dispositivo HMI actualice simultáneamente varios
valores en la CPU. Por ejemplo, los valores visualizados en la pantalla de un HMI podrían provenir
de diferentes ciclos de la CPU.
Las instrucciones PtP (punto a punto), PROFINET (p. ej. TSEND_C y TRCV_C), instrucciones E/S
descentralizadas para PROFINET (Página 369) y instrucciones E/S descentralizadas para
PROFIBUS (Página 369) transfieren búferes de datos que podrían interrumpirse. La coherencia
de datos de los búferes debe asegurarse evitando operaciones de lectura y escritura en los
búferes, tanto en el OB de ciclo como en un OB de alarma. Si es necesario modificar los valores
Controlador programable S7-1200
Manual de sistema, V4.5 05/2021, A5E02486683-AO
Principios básicos de programación
7.4 Principios básicos de la coherencia de datos
187

Publicidad

Tabla de contenido
loading

Tabla de contenido