Por qué falla la generación de controladores de módulos en bloques de canal dentro de tipos de gráfico como bloque

El generador de controladores de módulos de PCS 7 no puede interconectar automáticamente entradas de sistema (como Mode, DataXchg y MS) en bloques de canal (Pcs7DiIn o Pcs7AnIn) encapsulados dentro de un "gráfico como tipo de bloque" ("Chart as Block type") porque el generador de controladores solo analiza bloques discretos ubicados directamente en diagramas CFC estándar. Compilar un gráfico en un Bloque de Función (FB) monolítico oculta los pines de los bloques internos dentro de un bloque de datos de instancia privado. Los bloques de controladores de canales deben residir en diagramas CFC abiertos donde sus señales procesadas alimentan tipos de bloques personalizados, o la lógica debe diseñarse como un Tipo de Módulo de Control (CMT).

Índice de contenidos

Arquitectura del generador de controladores de módulos de PCS 7

En SIMATIC PCS 7, el monitoreo de diagnóstico de hardware está totalmente automatizado a través del Generador de controladores de módulos (Generate module drivers). Durante la compilación del CFC:
1. El compilador escanea la configuración de hardware (HW Config) para descubrir todos los módulos digitales, analógicos y de comunicación.
2. Genera bloques de diagnóstico del sistema (MOD_D16_PN, RACK, SUBNET) en diagramas de sistema generados automáticamente con el prefijo @.
3. Busca en todos los diagramas CFC de usuario bloques de canales periféricos (Pcs7DiIn, Pcs7DiOu, Pcs7AnIn, Pcs7AnOu, F_CH_DI).
4. Establece automáticamente interconexiones complejas del sistema:
* Mode: Interconectado a oMode_xx en el bloque controlador de módulo para rastrear el modo operativo y los estados de diagnóstico.
* DataXchg: Interconectado a DataXchg_xx para el intercambio de registros de datos de diagnóstico.
* MS: Interconectado a o_MS para la generación de informes de activos de la Estación de Mantenimiento (Maintenance Station).

Para que este mecanismo automatizado tenga éxito, el compilador debe poder leer la dirección de hardware simbólica conectada a la entrada periférica del bloque de canal (por ejemplo, PV_In enlazado a IW 512) y enrutar dinámicamente los cables hacia los pines del sistema del bloque.

Límites de encapsulamiento de los tipos de gráfico como bloque

Cuando un ingeniero coloca un bloque controlador de canal dentro de un diagrama CFC y compila el diagrama en un tipo de bloque reutilizable (Compile -> Chart as Block type):

  1. Compilación en Bloque de Función (FB) monolítico: El compilador CFC traduce todo el contenido del diagrama en un archivo fuente S7-SCL y lo compila en un único Bloque de Función (FB) binario.
  2. Ocultamiento de interfaces internas: Los bloques individuales dentro del diagrama (como Pcs7DiIn) pierden su identidad discreta; se convierten en variables estáticas internas declaradas dentro de la estructura de multi-instancia del nuevo FB.
  3. Punto ciego del generador de controladores: El generador de controladores de módulos no descompila ni inspecciona las declaraciones estáticas internas de los FB de usuario. Cuando el bloque personalizado se coloca en un nuevo diagrama, el debido compilador solo ve los pines externos. Debido a que el compilador no puede alcanzar el interior del FB compilado para acceder a los pines anidados Pcs7DiIn.Mode y DataXchg, la generación del controlador falla, dejando el bloque de canal sin maestro e informando estados de señal inactivos o erróneos.

Flujos de trabajo de ingeniería recomendados para lógica modular

Para lograr una lógica de control modular y reutilizable sin romper la generación automatizada de controladores de módulos, emplee uno de los dos patrones de diseño certificados de PCS 7:

Patrón de diseño 1: Separar los bloques de canal de los tipos de bloques algorítmicos (Práctica estándar)

  1. Mantenga el Bloque de Función personalizado puramente algorítmico:
    * Cree el FB personalizado (mediante SCL o gráfico como bloque) con entradas estándar (por ejemplo, PV: BOOL o PV_In: Struct). No coloque bloques de canal dentro del FB.
  2. Coloque el bloque de canal (Pcs7DiIn) directamente en el diagrama CFC de destino.
  3. Conecte la dirección periférica física (por ejemplo, I 0.0) a Pcs7DiIn.PV_In.
  4. Conecte la salida de Pcs7DiIn.PV_Out a la entrada de su bloque personalizado.
  5. Al compilar con Generate module drivers, el compilador vincula limpiamente los controladores de diagnóstico a Pcs7DiIn.

Patrón de diseño 2: Utilizar Tipos de Módulos de Control (CMT) en PCS 7 moderno

  1. En la biblioteca maestra (Master Data Library), cree un Tipo de Módulo de Control (CMT).
  2. Dentro del CMT, coloque tanto el bloque de canal (Pcs7DiIn) como sus bloques de lógica tecnológica personalizados.
  3. Interconéctelos gráficamente dentro de la plantilla CMT.
  4. Cuando se instancian a través de la jerarquía de planta, los CMT instancian diagramas CFC reales y abiertos en lugar de FB compilados en caja negra. El generador de controladores conserva plena visibilidad de cada instancia de bloque de canal.

Verificación

  • En SIMATIC Manager, compile los diagramas CFC que contienen los bloques de canal separados.
  • Asegúrese de que la casilla de verificación Generate module drivers esté activada.
  • Abra el diagrama CFC después de la compilación. Confirme que los pines Mode, DataXchg y MS del bloque de canal muestren conexiones de sistema dinámicas de color verde que se dirigen a los diagramas de diagnóstico @.
  • Conmute la CPU a modo RUN. Confirme que Pcs7DiIn.PV_Out.ST = 16#80 (Bueno) y que los estados de proceso se propaguen correctamente en su bloque personalizado.

Limitaciones y precauciones operativas

  • "Chart as Block type" es un concepto antiguo de Step 7 diseñado principalmente para el encapsulamiento algorítmico; nunca debe usarse para encapsular interfaces de E/S de hardware en PCS 7.
  • Los Tipos de Módulos de Control (CMT) requieren PCS 7 V8.1 o superior y la licencia Advanced Engineering System.
  • Si un proyecto ya contiene FB monolíticos con bloques de canal integrados, deben refactorizarse antes de migrar a versiones más recientes de PCS 7 o arquitecturas PROFINET.

Preguntas frecuentes del ingeniero

  • ¿Puedo exponer Mode y DataXchg como pines de nivel superior en el tipo de gráfico como bloque?
    Incluso si enruta los pines a la interfaz externa del FB, el generador de controladores de módulos no reconocerá el bloque como un controlador de canal certificado porque su familia de bloques y atributos no coinciden con la especificación de controladores de Siemens.
  • ¿Por qué APL utiliza bloques de canal separados en lugar de integrarlos en bloques de motores?
    Desacoplar los controladores de canal de los bloques tecnológicos permite que el mismo bloque de motor o válvula interactúe con diferentes tipos de hardware (E/S estándar, HART, PROFIBUS PA o PROFINET) sin cambiar los algoritmos de control.
  • ¿Puede CMT reemplazar por completo a Chart-as-Block?
    Sí. Los Tipos de Módulos de Control proporcionan estandarización modular completa, sincronización de instancias y actualización de tipos en RUN (TCiR), al tiempo que admiten plenamente la generación de controladores de módulos.

Referencias técnicas

  • Manual SIMATIC PCS 7 CFC para S7 / M7 (A5E41356247-AA).
  • Manual SIMATIC PCS 7 Channel Blocks and Diagnostic Blocks (A5E41356241-AA).
  • Siemens Industry Online Support Entry ID 109801081: Creating Reusable Block Types and CMTs in PCS 7.

Artículos relacionados

Etiquetas relacionadas

PCS 7, CFC, Module Driver Generator, Pcs7DiIn, Chart as Block, Function Blocks, CMT, Hardware Config

20 respuestas