Efecto De Los Ajustes De Optimización En Programas De Usuario - Siemens SIMATIC S7-1200 Manual De Sistema

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

Publicidad

Principios básicos de programación
7.3 Utilizar bloques para estructurar el programa
Los DBs pueden crearse como "optimizados" o "estándar" (no optimizados). Los bloques de datos
optimizados son más compactos que los no optimizados. Es decir, el orden de los elementos de
datos dentro del DB es diferente para DBs optimizados y no optimizados. Consulte la sección
"Bloques optimizados" de la Guía de programación S7 para S7-1200/1500, STEP 7 (TIA Portal),
03/2014 (https://support.industry.siemens.com/cs/ww/es/view/81318674) para encontrar
información sobre bloques optimizados.
Los FBs y las FCs se crean para procesar datos optimizados y no optimizados. Es posible
seleccionar la casilla de verificación "Acceso optimizado al bloque" como uno de los atributos del
bloque. El programa de usuario optimiza bloques de programa de forma predeterminada y estos
esperan que los datos transferidos al bloque estén en formato optimizado.
Cuando el programa de usuario transfiere un parámetro complejo (por ejemplo STRUCT) a una
función, el sistema comprueba el ajuste de optimización del bloque de datos que contiene la
estructura y el ajuste de optimización del bloque de programa. Si se optimizan tanto el bloque
de datos como la función, el programa de usuario transfiere STRUCT mediante "llamada por
referencia". Lo mismo es válido si ni el bloque de datos ni la función están optimizados.
Sin embargo, si la optimización es diferente para la función y el bloque de datos (es decir, si se
optimiza un bloque y el otro no), STRUCT debe convertirse al formato que espera la función. Así,
por ejemplo, si se selecciona la opción "no optimizado" para el bloque de datos y "optimizado"
para la función, un STRUCT en el bloque de datos debe convertirse a un formato optimizado
antes de que la función pueda procesarlo. El sistema realiza esta conversión realizando una
copia de STRUCT y convirtiéndola al formato optimizado que espera la función.
Resumiendo, cuando el programa de usuario transfiere un tipo de datos complejo (por ejemplo
STRUCT) a una función como parámetro IN/OUT, la función espera que lo transfiera mediante
"llamada por referencia":
• Si se selecciona "optimizado" o "no optimizado" tanto para el bloque de datos que contiene
STRUCT como para la función, el programa de usuario transfiere los datos mediante "llamada
por referencia".
• Si el bloque de datos y la función no se configuran con el mismo ajuste de optimización (uno
está optimizado y el otro no), el sistema debe realizar una copia de STRUCT antes de
transferirlo a la función. Como el sistema tiene que hacer esta copia de la estructura, esto
convierte la "llamada por referencia" en "llamada por valor" en realidad.
Efecto de los ajustes de optimización en programas de usuario
La copia del parámetro puede causar un problema en un programa de usuario si un HMI o un OB
de alarma modifica elementos de la estructura. Así, por ejemplo, hay un parámetro IN/OUT de
una función (por lo general transferido mediante "llamada por referencia"), pero los ajustes de
optimización del bloque de datos y de la función difieren:
1. Cuando el programa de usuario está listo para llamar la función, el sistema debe realizar una
copia de la estructura para cambiar el formato de los datos de forma que coincidan con la
función.
2. El programa de usuario llama la función con una referencia a la copia de la estructura.
3. Se produce un OB de alarma mientras se ejecuta la función y este OB de alarma cambia un
valor en la estructura original.
4. La función finaliza y, puesto que la estructura es un parámetro IN/OUT, el sistema copia de
nuevo los valores en la estructura original con el formato original.
186
Controlador programable S7-1200
Manual de sistema, V4.5 05/2021, A5E02486683-AO

Publicidad

Tabla de contenido
loading

Tabla de contenido