Creación de ventanas emergentes de faceplates (popups) e iconos de bloque personalizados con el estilo APL en SIMATIC PCS 7 WinCC

El desarrollo de ventanas emergentes de faceplates e iconos de bloque personalizados con estilo APL (Advanced Process Library) en SIMATIC PCS 7 WinCC requiere sincronizar los bloques de función SCL del controlador con el Faceplate Designer de WinCC y las librerías de gráficos de plantillas. Los ingenieros deben estructurar las interfaces de los bloques con atributos de sistema (como S7_m_c para la comunicación con la OS), definir tipos de variables estructuradas coincidentes en WinCC Tag Management, diseñar iconos de bloque personalizados en @PCS7Typicals.pdl y crear vistas modulares de faceplates (@PG_<TipoDeBloque>.pdl). Cuando un operador hace clic en el icono de bloque, los scripts en C estándar de APL analizan el prefijo de variable tecnológica y abren dinámicamente la ventana emergente.

Índice de contenidos

Arquitectura de los faceplates APL y ventanas emergentes tecnológicas

En SIMATIC PCS 7, la interacción del operador se ajusta a la arquitectura de gestión de ventanas de la Advanced Process Library (APL):

  • Icono de bloque (@PCS7Typicals.pdl / @Template.pdl): Un objeto gráfico compacto ubicado en las pantallas de proceso que muestra el estado del equipo, alarmas y modos de operación.
  • Contenedor superior del faceplate (@PG_<Tipo>.pdl): El marco de ventana principal que contiene la barra de título, los botones de selección de vista (Estándar, Alarma, Tendencia, Parámetro, Nota) y los iconos de autorización.
  • Vista estándar (@PG_<Tipo>_Standard.pdl): La ventana emergente interactiva principal que muestra telemetría en tiempo real (por ejemplo, tres marcas de tiempo y tres valores analógicos) y botones de comando.
  • Enlace dinámico de variables mediante prefijo de variable (Tag Prefix): Los faceplates APL no contienen nombres de variables codificados de forma rígida (hardcoded). Cuando un operador hace clic en un icono de bloque, el script en C interno APL_OpenFaceplate() recupera el nombre de la variable tecnológica (por ejemplo, Unit1/Motor01) y lo asigna como Prefijo de variable (Tag Prefix) de la ventana emergente, vinculando dinámicamente todos los controles a la instancia del bloque de destino.

Diseño de la interfaz de bloques en STEP 7 y atributos S7_m_c

Para habilitar la generación automática de variables en WinCC y la conectividad con el faceplate, cree el bloque de función (FB) SCL personalizado con los atributos de sistema adecuados:

FUNCTION_BLOCK FB2001
TITLE = 'CustomMultiValMon'
{ S7_m_c := 'true' }
AUTHOR : 'Eng'

VAR_INPUT
   Val1 { S7_m_c := 'true' } : REAL := 0.0;
   Val2 { S7_m_c := 'true' } : REAL := 0.0;
   Val3 { S7_m_c := 'true' } : REAL := 0.0;
   Time1 { S7_m_c := 'true' } : DATE_AND_TIME;
   Time2 { S7_m_c := 'true' } : DATE_AND_TIME;
   Time3 { S7_m_c := 'true' } : DATE_AND_TIME;
   Op_Level { S7_m_c := 'true' } : INT := 5;
END_VAR

VAR_OUTPUT
   QError { S7_m_c := 'true' } : BOOL := FALSE;
END_VAR

Cuando se compila el diagrama CFC y se compila la OS, el compilador crea automáticamente un tipo de variable estructurada llamado CustomMultiValMon en WinCC Tag Management.

Diseño de iconos de bloque personalizados en @PCS7Typicals.pdl

Para garantizar que el compilador de la OS genere automáticamente los iconos de bloque durante la compilación:

  1. En WinCC Graphics Designer, abra la imagen de plantilla maestra @PCS7Typicals.pdl (o @PCS7Typicals_Custom.pdl).
  2. Copie un icono de bloque APL existente (por ejemplo, @MonAnL/1) para que sirva como base de diseño.
  3. Abra las propiedades del objeto para el nuevo objeto personalizado:
    * type: Establézcalo en @CustomMultiValMon/1. La cadena antes de la barra diagonal debe coincidir exactamente con el nombre de su bloque SCL.
    * servername: Establézcalo en PCS7 CustomMultiValMon Control.
    * tag: Conéctelo a una variable de muestra o déjelo como propiedad de plantilla.
  4. Agregue el evento de clic: en Evento -> Mouse -> Mouse Click, verifique que se llame al script en C estándar de APL:
    c // APL Standard Icon Click Action #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { PCS7_OpenInputBox(lpszPictureName, lpszObjectName); }
  5. Guarde @PCS7Typicals.pdl.

Construcción de vistas de faceplate en Graphics Designer (@PG_*.pdl)

Cree las pantallas de vista del faceplate de acuerdo con las convenciones de nombres de APL:

  1. Cree la vista maestra (@PG_CustomMultiValMon.pdl):
    * Copie @PG_MonAnL.pdl y guárdelo como @PG_CustomMultiValMon.pdl.
    * Configure los botones de vista para cargar @PG_CustomMultiValMon_Standard.pdl.
  2. Cree la vista estándar (@PG_CustomMultiValMon_Standard.pdl):
    * Cree una imagen vacía de 400x300 píxeles de tamaño.
    * Inserte etiquetas de texto estático (Static Text): "Timestamp 1", "Value 1", etc.
    * Inserte campos de E/S (I/O Fields) para los valores analógicos:
    • Establezca el formato de datos en Floating-Point.
    • En Output Value -> Dynamic, asigne la variable .Val1 (observe el punto inicial: .Val1 se vincula a <TagPrefix>.Val1).
    • Inserte campos de E/S para las marcas de tiempo:
    • Establezca el formato de datos en Date/Time.
    • Vincule dinámicamente a .Time1.
  3. Guarde todos los archivos .pdl en el directorio GraCS del proyecto WinCC.

Verificación

Confirme la instanciación y el funcionamiento del faceplate personalizado:

  1. Compilación de la OS:
    * Instancie el bloque SCL personalizado en un diagrama CFC dentro de la Jerarquía de plantas (Plant Hierarchy).
    * Compile los diagramas y ejecute Compile OS (Ámbito: Solo cambios / Changes only).
    * Confirme que el compilador genere el icono de bloque en la pantalla de proceso.
  2. Prueba de interacción en Runtime:
    * Abra el gráfico de proceso de WinCC en runtime.
    * Verifique que el icono de bloque muestre valores en tiempo real.
    * Haga clic en el icono de bloque: confirme que @PG_CustomMultiValMon.pdl se abra rápidamente.
    * Verifique que las tres fechas y los tres valores analógicos muestren datos del PLC coincidentes de forma dinámica.

Limitaciones y precauciones operativas

  • Protección de plantillas: Nunca modifique @PCS7Typicals.pdl sin conservar copias de seguridad; se recomienda crear un archivo @PCS7Typicals_Project.pdl específico del proyecto para evitar que las actualizaciones del Editor de proyectos de OS sobrescriban los iconos personalizados.
  • Sintaxis estricta del prefijo de variable: Todos los enlaces dinámicos dentro de @PG_*_Standard.pdl deben comenzar con un punto (.Val1, .Time1) para permitir el enlace dinámico al prefijo de variable de la ventana.
  • Consumo de objetos de proceso: Los bloques de función tecnológica personalizados configurados con S7_m_c := 'true' consumen licencias de objetos de proceso (PO) estándar del AS al compilar.

Preguntas frecuentes del ingeniero

  • ¿Qué atributo de sistema en SCL expone los parámetros de bloque a WinCC?
    El atributo { S7_m_c := 'true' } colocado en la cabecera del bloque y en las variables individuales.
  • ¿Qué convención de nomenclatura se requiere para los faceplates APL personalizados?
    El contenedor maestro debe llamarse @PG_<TipoDeBloque>.pdl y la vista estándar @PG_<TipoDeBloque>_Standard.pdl.
  • ¿Cómo se vinculan los faceplates APL a instancias de equipos específicos de forma dinámica?
    El icono de bloque pasa el nombre de la variable de instancia a la ventana del faceplate como un prefijo de variable (Tag Prefix); los controles dentro del faceplate hacen referencia a las variables utilizando una sintaxis relativa (por ejemplo, .Val1).
  • ¿Dónde se almacenan los iconos de bloque personalizados para que el compilador de la OS pueda encontrarlos?
    En @PCS7Typicals.pdl o en un archivo de elementos típicos personalizado (por ejemplo, @PCS7Typicals_Custom.pdl) en la carpeta GraCS del proyecto.
  • ¿Qué atributo en el icono de bloque lo vincula al tipo de bloque SCL?
    La propiedad type en el icono de bloque debe establecerse en @<NombreDeBloque>/<Variante>, como @CustomMultiValMon/1.
  • ¿Pueden los faceplates personalizados mostrar variables DATE_AND_TIME?
    Sí, los campos de E/S de WinCC se pueden formatear como Fecha/Hora (Date/Time) para representar de forma nativa las estructuras de datos DATE_AND_TIME de S7.
  • ¿Qué script abre un faceplate APL cuando se hace clic en un icono?
    El script APL estándar PCS7_OpenInputBox() o APL_OpenFaceplate() ejecutado en el evento de clic del ratón.
  • ¿Requiere la creación de un faceplate personalizado programación en C?
    Los faceplates básicos se pueden crear utilizando el enlace de variables dinámicas estándar y el Faceplate Designer de WinCC sin escribir scripts en C personalizados complejos.
  • ¿Cómo evito que los iconos de bloque personalizados se sobrescriban durante las actualizaciones?
    Cree un archivo de elementos típicos personalizado (por ejemplo, @PCS7Typicals_Project.pdl) y regístrese en el Editor de proyectos de OS.
  • ¿Qué nivel de autorización de usuario se requiere para modificar valores en faceplates personalizados?
    Configurar el parámetro Op_Level en el bloque permite mapear operaciones a los niveles de autorización de WinCC (del 1 al 16).

Referencias técnicas

  • Portal de Siemens Industry Online Support (SIOS): ¿Cómo se crean iconos de bloque y faceplates personalizados para SIMATIC PCS 7? (ID de entrada: 68679830).
  • Manual de SIMATIC PCS 7 Faceplate Designer, Siemens AG.
  • Sistema de información de SIMATIC WinCC V7.5 - Trabajar con imágenes de proceso y ActiveX.

Artículos relacionados

Etiquetas relacionadas

PCS 7, WinCC, APL, Faceplates, Iconos de bloque, SCL, Graphics Designer, Bloques personalizados

20 respuestas