ES2406067T3 - Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico - Google Patents

Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico Download PDF

Info

Publication number
ES2406067T3
ES2406067T3 ES10000398T ES10000398T ES2406067T3 ES 2406067 T3 ES2406067 T3 ES 2406067T3 ES 10000398 T ES10000398 T ES 10000398T ES 10000398 T ES10000398 T ES 10000398T ES 2406067 T3 ES2406067 T3 ES 2406067T3
Authority
ES
Spain
Prior art keywords
code
cyclo
logical component
communication
control program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES10000398T
Other languages
English (en)
Inventor
Claus Peter Kühnl
Klas Hellmann
Johannes Kalhoff
Holger Meyer
Dietmar Krumsiek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Contact GmbH and Co KG
Original Assignee
Phoenix Contact GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42164232&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2406067(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Phoenix Contact GmbH and Co KG filed Critical Phoenix Contact GmbH and Co KG
Application granted granted Critical
Publication of ES2406067T3 publication Critical patent/ES2406067T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Procedimiento para configurar al menos dos módulos de comunicación que contienen un respectivo componentelógico a fin de realizar un control al menos parcialmente acíclico de un sistema de comunicación, especialmente unsistema de automatización, con los pasos de procedimiento siguientes: generación de un programa de control cicloorientado que está subdividido en varias partes de programa y que esejecutable en un dispositivo de control programable en memoria para producir un funcionamiento cicloorientado delsistema de comunicación; conversión de varias partes del programa de control cicloorientado en sendos códigos ejecutables por uncomponente lógico (80, 96, 106); carga de los códigos de las partes convertidas del programa en el respectivo componente lógico (80, 96, 106) de unmódulo de comunicación separado (10, 90, 100), caracterizado porque los componentes lógicos (80, 96, 106) deestos módulos de comunicación (10, 90, 100) se comunican uno con otro para ejecutar acíclicamente, en respuestaal respectivo código, las partes convertidas del programa de control cicloorientado, haciéndose funcionar ensincronismo los componentes lógicos de los módulos de comunicación.

Description

Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico.
La invención concierne a un procedimiento para configurar un módulo de comunicación que contiene un componente lógico con miras a efectuar un control al menos parcialmente acíclico de un sistema de comunicación, especialmente un sistema de automatización, así como a un sistema de comunicación para configurar un módulo de comunicación de esta clase.
Para controlar desarrollos de procesos se utilizan sistemas de automatización, por ejemplo sistemas de bus de campo, en los que en general un controlador programable en memoria (SPS) está unido con sensores y actores a través de un bus para vigilar y controlar el proceso. El controlador del proceso recibe, por ejemplo, un programa de control cicloorientado que en general es almacenado fijamente por el fabricante como sistema operativo en un aparato SPS. El programa de control de funcionamiento cíclico detecta primeramente el estado de todos los sensores conectados al aparato SPS y confecciona a partir de los datos detectados una imagen del proceso de todas las entradas del aparato SPS. Seguidamente, el programa de control cicloorientado entrega un programa de usuario al controlador. El programa de usuario detecta ahora a partir de la imagen del proceso de todas las entradas una imagen del proceso de todas las salidas, es decir, las señales de salida destinadas a los actores conectados. A continuación, el programa de usuario transfiere nuevamente el control de la instalación al sistema operativo, es decir al programa de control cicloorientado. El programa de control cuida de que las señales de salida detectadas sean transmitidas a los respectivos actores. Seguidamente, el ciclo de control comienza desde el principio.
Para dominar procesos de control rápidos se describe en el documento DE 42 05 524 A1 un controlador programable en memoria que presenta al menos un componente lógico con un conexionado interno a través del cual al menos una salida está unida con su entrada correspondiente. Asimismo, en el documento DE 42 05 524 A1 se describe un procedimiento de programación para un componente lógico de esta clase, estando dispuesto el componente lógico en un grupo constructivo que puede estar unido, a través de un bus, con una unidad de control, con otros grupos constructivos y con otras unidades periféricas. El componente lógico configurado, por ejemplo, como una FPGA puede ser programado desde un aparato de programación a través de la unidad central, confeccionándose a este fin una parte del programa no crítica en tiempo y una parte del programa crítica en tiempo, y siendo las partes del programa completamente independientes una de otra. La parte del programa no crítica en tiempo se almacena en la unidad central y se ejecuta secuencialmente, mientras que la parte del programa crítica en tiempo se transmite al respectivo componente lógico para su ejecución por éste.
Se conoce también por "Implementing a Fieldbus Interface Using an FPGA" de G. Lías, M.D. Valdéz, M.A. Dominguez y M.J. Mourne, FPL 2000, páginas 175 a 180, el uso de una FPGA para una interfaz de bus de campo.
La presente invención se basa en el problema de crear un procedimiento y un sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico, que hagan posible un control flexible y rápido del proceso en un sistema de comunicación.
Una idea central de la invención estriba en que un programa de control cicloorientado, confeccionado para un dispositivo de control programable en memoria, es convertido al menos parcialmente en un código que puede ser ejecutado por un componente lógico de un módulo de comunicación, de modo que al menos la parte convertida del programa de control cicloorientado se puede ejecutar acíclicamente. Acíclico o casi acíclico significa que al menos algunas de las tareas de control, funciones de aplicación y/o funciones del sistema implementadas pueden ejecutarse en paralelo y, por tanto, con mayor rapidez que en el caso de la ejecución del programa de control cicloorientado.
El problema técnico anteriormente citado se resuelve, por un lado, por medio de los pasos de procedimiento de la reivindicación 1.
Según ésta, se proporciona un procedimiento para configurar un módulo de comunicación que contiene un componente lógico con miras a realizar un control al menos parcialmente acíclico de un sistema de comunicación, especialmente un sistema de automatización. En primer lugar, se genera un programa de control cicloorientado que puede ser ejecutado en un dispositivo de control programable en memoria para el funcionamiento cicloorientado del sistema de comunicación. Un programa de control cicloorientado puede ser confeccionado, por ejemplo, por un sistema de programación IEC 61131. Al menos una parte del programa de control cicloorientado es convertida en un código ejecutable por un componente lógico. El componente lógico puede consistir, por ejemplo, en una FPGA (field programmable gate array - matriz de puertas programables en campo). El código de la parte convertida del programa es cargado en un componente lógico de un módulo de comunicación que se denomina seguidamente también módulo lógico. El componente lógico del módulo de comunicación ejecuta entonces, en respuesta al código, la parte correspondiente del programa de control cicloorientado. El módulo de comunicación funciona en este caso como un dispositivo de control que ejecuta al menos algunas de las funciones proyectadas en el plano de las
puertas lógicas.
Control acíclico o funcionamiento acíclico puede significar, por ejemplo, que el componente lógico del módulo de comunicación detecta en paralelo los estados de todos los sensores conectados al módulo de comunicación, en vez de hacerlo secuencialmente, tal como ocurriría en la ejecución del programa de control cicloorientado.
El código cargado en el componente lógico puede consistir en un código HDL (Hardware Description Language – lenguaje de descripción de hardware) o en cualquier código utilizable para su procesamiento ulterior en el componente lógico.
Para hacer posible un control flexible y eficiente del sistema de comunicación, varios módulos de comunicación se hacen cargo del control del sistema. A este fin, se subdivide el programa de control cicloorientado en varias partes de programa. Las partes del programa de control cicloorientado se convierten después en un respectivo código ejecutable por un componente lógico. Los códigos de las partes convertidas del programa se cargan seguidamente en un respectivo componente lógico de un módulo de comunicación separado. Los componentes lógicos se comunican uno con otro de tal manera que, en respuesta a los respectivos códigos, las partes convertidas del programa de control cicloorientado pueden ejecutarse acíclicamente. En este ejemplo de realización todo el programa de control cicloorientado o al menos algunas partes del mismo pueden ser ejecutados acíclicamente por varios módulos de comunicación. La distribución de las partes convertidas del programa sobre los componentes lógicos de los módulos de comunicación y la comunicación entre los módulos de comunicación o los componentes lógicos pueden efectuarse a través de uniones transversales temporal o permanentemente conectadas. En el caso de una unión transversal dinámicamente estructurada se puede variar o permutar también durante la operación en curso, es decir, "on line" (en línea), el código en los respectivos componentes lógicos. Las uniones transversales pueden estar ejecutadas también como uniones serie, por ejemplo por medio de registros de desplazamiento.
Para que, en el caso de un control distribuido del sistema de comunicación, se pueda asegurar un funcionamiento correcto se tienen que sincronizar los componentes lógicos para la ejecución correcta del respectivo código.
Si el programa de control cicloorientado no es convertido completamente en uno o varios códigos, se ejecuta entonces por un dispositivo de control programable en memoria la parte no convertida del programa de control cicloorientado. Las partes convertidas del programa se cargan como código en uno o varios componentes lógicos. El dispositivo de control programable en memoria y los componentes lógicos en los que están almacenadas como código las partes convertidas del programa cooperan de tal manera que una parte del programa de control cicloorientado que haya sido convertida sea ejecutada solamente por el respectivo componente lógico y no por el dispositivo de control programable en memoria. La ejecución correcta del programa puede ser vigilada y controlada por el dispositivo de control programable en memoria o al menos por uno de los componentes lógicos correspondientes.
Para poder variar el control del funcionamiento durante la operación en curso, el respectivo código almacenado en un componente lógico está subdividido en segmentos. Según la implementación, estos segmentos pueden estar subdivididos en segmentos variables y no variables. Si se debe sustituir un segmento predeterminado, se carga el nuevo segmento en un lugar libre de la memoria del componente lógico o se sobreescribe el segmento que se quiere sustituir. Se pueden seguir ejecutando los restantes segmentos del código que no se tienen que sustituir.
Si, como se ha mencionado, se archiva el nuevo segmento por separado en el componente lógico, este componente lógico, en respuesta a una señal de habilitación, puede desactivar el segmento a sustituir y puede integrar en el código y activar el nuevo segmento.
Cabe hacer notar que, después de la carga del nuevo segmento, se puede seguir operando con el segmento a sustituir. Esta medida es ventajosa especialmente cuando, al testar el nuevo segmento, se presenta un defecto.
Una señal de reloj proporcionada por el componente lógico asegura que se confeccione una imagen del proceso en un instante determinado y que se ejecuten en sincronismo los segmentos del código cargado.
Cabe mencionar que con las medidas anteriormente descritas se ejecutan todas las funciones proyectadas para controlar el sistema de comunicación en el plano de las puertas lógicas y no a través de un sistema operativo como en los dispositivos de control convencionales programables en memoria.
Para poder cambiar un componente lógico defectuoso de una manera sencilla, es decir principalmente sin una configuración costosa en tiempo del nuevo componente lógico, se almacena adicionalmente en un dispositivo de memoria separado el código almacenado en el componente lógico. Este dispositivo de memoria puede implementarse en cualquier módulo de comunicación. Como alternativa o como complemento, puede estar previsto un dispositivo de memoria externo centralmente conectado que pueda unirse con todos los módulos de comunicación y almacene varios códigos. En respuesta a un evento predeterminado se carga automáticamente el código en el componente lógico recién instalado desde el dispositivo de memoria central o desde el dispositivo de
memoria implementado en el módulo de comunicación.
En consecuencia, cuando se cambia un componente lógico defectuoso se puede retirar únicamente el componente lógico defectuoso del módulo de comunicación en cuestión o, siempre que esté previsto un dispositivo de memoria externo, se puede cambiar todo el módulo de comunicación y se le puede sustituir por un nuevo módulo.
El procedimiento y el módulo de comunicación propuestos pueden utilizarse también en sistemas de bus de campo. El módulo de comunicación se configura aquí como un abonado de bus, tal como, por ejemplo, un dispositivo maestro, un sensor o un actor, a cuyo fin se carga en otro módulo de comunicación un código referido al bus de campo. El componente lógico de este otro módulo de comunicación puede ejecutar entonces funciones de un abonado de bus en respuesta al código referido al bus de campo.
Los módulos de comunicación y los componentes lógicos presentan al menos una interfaz de entrada/salida a través de la cual se pueden intercambiar datos. Una interfaz de programación sirve para cargar el código correspondiente en el componente lógico del módulo de comunicación correspondiente.
Según una ejecución especial, los módulos de comunicación están configurados de tal manera que pueden enclavarse sobre un carril de pinzado, especialmente un carril de sombrerete.
Cabe hacer notar en este sitio que el código referido al bus de campo puede emplearse también para configurar el componente lógico del módulo de comunicación adicional como un módulo de conexión para sensores y/o actores. Cuando se han programado en este caso las interfaces de entrada/salida del módulo de comunicación según protocolos de comunicación adecuados, los sensores y/o los actores conectados al módulo de comunicación pueden ser activados con sus respectivos protocolos de comunicación.
El problema técnico anteriormente citado se resuelve, por otro lado, con las características de la reivindicación 10.
Según ésta, se ha previsto un sistema de comunicación, especialmente un sistema de automatización. El sistema de comunicación presenta al menos un módulo de comunicación. El al menos un módulo de comunicación contiene un componente lógico en el que se genera el código de una parte de un programa de control cicloorientado que puede ejecutarse en un controlador programable en memoria para el funcionamiento cicloorientado del sistema de comunicación. En respuesta al código, el componente lógico ejecuta la parte correspondiente del programa de control cicloorientado.
Para poder adaptar el controlador de una manera flexible y rápida a un nuevo entorno, el programa de control cicloorientado está subdividido en varias partes de programa que se han convertido cada una de ellas en un código ejecutable por un componente lógico. Los códigos de las partes convertidas del programa están almacenados en un respectivo componente lógico de un módulo de comunicación separado. Estos módulos de comunicación están configurados de tal manera que sus componentes lógicos, en respuesta al respectivo código, ejecuten acíclicamente las partes convertidas correspondientes del programa de control cicloorientado.
Para poder aumentar aún más la capacidad del sistema de comunicación se ha previsto un dispositivo de control programable en memoria en el que está almacenado el programa de control cicloorientado. Los componentes lógicos de los módulos de comunicación cooperan con el dispositivo de control programable en memoria de tal manera que dicho dispositivo de control programable en memoria ejecute solamente las partes no convertidas del programa y los componentes lógicos ejecuten las partes del programa de control cicloorientado convertidas en códigos correspondientes. De esta manera, algunas partes del programa de control cicloorientado que pueden ejecutarse rápidamente se distribuyen como códigos sobre uno o varios componente lógicos y se ejecutan acíclicamente. Las partes del programa que pueden o tienen que ejecutarse lentamente son ejecutadas como hasta ahora de una manera cicloorientada por el dispositivo de control programable en memoria.
Se explica seguidamente la invención con más detalle ayudándose de algunos ejemplos de realización y en combinación con los dibujos adjuntos. Muestran:
La figura 1, un módulo de comunicación con un componente lógico según la invención,
La figura 2, un fragmento de un sistema de comunicación esquemáticamente representado con dos módulos de comunicación yuxtapuestos según la invención y
La figura 3, un sistema de comunicación alternativo con un SPS y un módulo de comunicación según la figura 1.
La figura 1 muestra un ejemplo de un módulo de comunicación 10 que presenta una FPGA 80 en calidad de componente lógico. La FPGA 80 se representa simbólicamente por medio de una memoria de carga 87 y su plano de puertas lógicas programable 85. El módulo de comunicación 10 presenta varias interfaces 20, 30, 50, 70 que pueden programarse como entradas y/o salidas. A través de estas interfaces se puede comunicar el módulo de comunicación 10 con otros aparatos, por ejemplo con otros módulos de comunicación, sensores o actores, tal como se representa, por ejemplo, en las figuras 2 y 3. A través de un puerto de entrada/salida 40 se puede programar, es
decir, configurar, la FPGA 80 por medio de un dispositivo de programación, a cuyo fin, por ejemplo, se carga en la memoria de carga 87 un programa de control convertido cicloorientado. Se puede emplear otro puerto de entrada/salida 60 para cargar el código del programa de control convertido cicloorientado en el componente lógico de otro módulo de comunicación o para transmitir una señal de reloj central que sincroniza los módulos de comunicación comunicantes o sus FPGAs. Esto es necesario, por ejemplo, cuando varias FPGAs 96 y 106 asumen en solitario el control de un sistema de comunicación, tal como se muestra en la figura 2, o bien cuando al menos una FPGA 80 asume el control de un sistema de comunicación en unión de un dispositivo de control 110 programable en memoria, llamado también abreviadamente SPS, tal como se muestra en la figura 3.
En general, el módulo de comunicación 10 es parte integrante de un sistema de automatización que contiene varios módulos de comunicación. La figura 3 muestra a título de ejemplo el fragmento de un sistema de comunicación que contiene el SPS 110 y el módulo de comunicación 10. Tanto el SPS 110 como el módulo de comunicación 10 pueden estar enclavados sobre un carril de sombrerete no representado.
Según un primer ejemplo de realización, el funcionamiento del sistema de comunicación deberá ser controlado por medio del SPS y la FPGA 80 del módulo de comunicación 10. Naturalmente, es imaginable también la integración de otros módulos de comunicación para controlar el sistema de comunicación.
Supóngase ahora que se debe emplear un programa de control cicloorientado confeccionado para un dispositivo de control 110 programable en memoria a fin de lograr un control al menos parcialmente acíclico, preferiblemente en paralelo, del sistema de comunicación. El programa de control que trabaja en forma cicloorientada puede almacenarse en una memoria 112 del SPS 110 y controla un microprocesador 116. El programa de control cicloorientado confeccionado, por ejemplo, por medio de un sistema de programación IEC 61131 se convierte para ello al menos parcialmente en un código HDL. El código HDL puede cargarse seguidamente en la memoria 87 de la FPGA 80 a través del puerto de entrada/salida 40. Si el código HDL es proporcionado por el SPS 110, el código puede ser transmitido al módulo de comunicación 10 a través del puerto 114 y el puerto de entrada/salida 40. Cabe ya mencionar en este sitio que el código HDL puede archivarse adicionalmente en una memoria central del sistema (no representada) o en una memoria no representada del módulo de comunicación 10, que está dispuesta por separado de la FPGA. En caso necesario, se puede sustituir así simplemente el componente lógico 80 por el componente lógico capacitado para funcionar, ya que el código HDL correspondiente puede ser cargado automáticamente en el nuevo componente lógico desde la memoria del sistema o desde la memoria implementada en el módulo de comunicación. Cabe hacer notar que la memoria de carga de las respectivas FPGAs puede ser activada no sólo durante la puesta en funcionamiento (power up), sino también durante el funcionamiento.
La parte del programa de control cicloorientado archivada como código HDL programa el plano de puertas lógicas 85 de la FPGA 80 de tal manera que se ejecuten acíclicamente las funciones definidas por esta parte del programa. Cabe suponer que en la interfaz 20 programada, por ejemplo, como interfaz de salida están conectados actores y en la interfaz 50 programada como interfaz de entrada están conectados sensores. En este caso, la FPGA 80 puede estar programada de tal manera que ésta, en respuesta al código HDL archivado en la memoria 87, consulte en paralelo todos los estados de los sensores a través de la interfaz de entrada 70, en un paso adicional calcule todos los parámetros de salida para los actores conectados a la interfaz 20 y a continuación transmita en paralelo los parámetros de salida como parámetros para los actores correspondientes. La FPGA 80 está programada en este ejemplo como grupo de conexión de sensores y/o de actores, tal como éste puede utilizarse en sistemas de bus de campo.
Como alternativa, sería imaginable que el código HDL que está archivado en la FPGA 80 ejecute las funciones de aplicación de un sensor o un actor.
La forma de realización explicada hace posible que las funciones del programa de control cicloorientado rápidamente ejecutables, de preferencia en paralelo, sean ejecutadas solamente por la FPGA 80 del módulo de comunicación 10 y que las funciones restantes sean ejecutadas únicamente por el SPS 110. El SPS 110 y la FPGA 80 del módulo de comunicación 10 pueden intercambiar datos correspondientes, también señales de reloj, a través de la interfaz 115 del SPS 110 y la interfaz 30 del módulo de comunicación 10 para poder ejecutar en debida forma un control del proceso.
La unidad de control 110 programable en memoria puede estar unida también con un bus apto para Ethernet (no representado), por ejemplo a través de un puerto de entrada/salida 111. El protocolo de comunicación correspondiente puede archivarse en un dispositivo de memoria 113. El SPS 110 puede unirse de esta manera con un sistema de comunicación de rango superior.
En el ejemplo de realización alternativo seguidamente descrito se deberá controlar el funcionamiento del sistema de comunicación exclusivamente desde al menos una FPGA. Naturalmente, es imaginable también la integración de otros módulos de comunicación para controlar el sistema de comunicación.
La figura 2 muestra a modo de ejemplo dos módulos de comunicación 90 y 100 unidos uno con otro que deberán ejecutar acíclicamente las diferentes partes del programa de control cicloorientado. Los módulos de comunicación 90
y 100 pueden ser de constitución semejante a la del módulo de comunicación 10. Como se muestra en la figura 2, el módulo de comunicación 90 contiene una FPGA 96 que presenta una memoria de carga 97 y un plano de puertas lógicas configurable 98 esquemáticamente representado. El módulo de comunicación 100 contiene también una FPGA 106 que presenta una memoria de carga 107 y un plano de puertas lógicas configurable 100 esquemáticamente representado.
Supóngase que el programa de control cicloorientado consta de dos partes de programa. En cada parte del programa se genera un código HDL. Uno de los códigos HDL puede ser cargado en la memoria 97 a través de un puerto 92 del módulo de comunicación 90 y el otro código HDL puede ser cargado en la memoria 107 a través de un puerto 102 del módulo de comunicación 100. Los puertos separados 92 y 102 sirven principalmente para poder cargar datos, informaciones y códigos HDL en las distintas memorias de carga de una manera deliberada y mutuamente independiente. Sin embargo, los puertos o terminales 92 y 102 pueden unirse también por técnicas de bus. Es imaginable también que el código HDL destinado a la FPGA 106 se cargue en la memoria de carga 107 a través de una unión transversal (no representada) constituida, por ejemplo, temporalmente entre el puerto 92 y el puerto 102. A través de interfaces de entrada/salida 94 y 101 se pueden transmitir datos de cualquier clase, también señales de reloj, entre los módulos de comunicación 90 y 100 o sus FPGAs 96 y 106. La señal de reloj puede emplearse para la ejecución síncrona de los códigos HDL por las dos FPGAs 96 y 106.
Asimismo, supóngase que están conectados sensores a interfaces 95 del módulo de comunicación 90 y actores a la interfaz 105 del módulo de comunicación 100. Según las funciones proyectadas, la FPGA 96, en respuesta al código HDL almacenado, consulta el estado de todos los sensores conectados a la interfaz 95 y entrega estos estados a la FPGA 106 del módulo de comunicación 100 a través de las interfaces 94 y 101. En respuesta al código HDL archivado, la FPGA 106 establece seguidamente los parámetros de salida para los actores y retransmite estos parámetros en paralelo a todos los actores conectados.
Como quiera que el control del funcionamiento de un sistema de comunicación se distribuye al menos parcialmente sobre una FPGA o sobre varias FPGAs cooperantes, se pueden ejecutar al menos algunas de las funciones proyectadas con más rapidez que cuando el control del funcionamiento es ejecutado solamente por un SPS.
Las interfaces 94 y 101 de los módulos de comunicación 90 y 100, mostradas en la figura 2, pueden programarse, por ejemplo, por medio de las respectivas FPGAs 96 y 106 de tal manera que sea posible un intercambio de datos entre las FPGAs 90 y 106. De esta manera, es posible variar también durante el funcionamiento los códigos HDL almacenados en las FPGAs.
Según un perfeccionamiento ventajoso, el código HDL archivado en la FPGA 80 puede estar subdividido en varios subcódigos, también llamados segmentos, que pueden ejecutarse y modificarse independientemente uno de otro. Cuando se deba sustituir un subcódigo predeterminado del código HDL archivado en la memoria 87, se genera primero el nuevo subcódigo correspondiente a partir del programa de control cicloorientado que ha sido actualizado, y se carga dicho nuevo subcódigo en la FPGA 80, por ejemplo a través del puerto 40. Se puede sobreescribir inmediatamente el subcódigo a sustituir, que está archivado en la memoria 87. Como alternativa, se puede archivar el nuevo subcódigo en un lugar de memoria libre dentro de la memoria 87 o en una memoria local del módulo de comunicación 10. En la alternativa últimamente citada la FPGA 80 está programada de tal manera que ésta, en respuesta a un evento predeterminado, desactive el subcódigo a sustituir y active el nuevo código. De esta manera, se pueden cargar en la FPGA, durante la operación en curso, las funciones recientemente proyectadas.

Claims (11)

  1. REIVINDICACIONES
    1. Procedimiento para configurar al menos dos módulos de comunicación que contienen un respectivo componente lógico a fin de realizar un control al menos parcialmente acíclico de un sistema de comunicación, especialmente un sistema de automatización, con los pasos de procedimiento siguientes:
    generación de un programa de control cicloorientado que está subdividido en varias partes de programa y que es ejecutable en un dispositivo de control programable en memoria para producir un funcionamiento cicloorientado del sistema de comunicación;
    conversión de varias partes del programa de control cicloorientado en sendos códigos ejecutables por un componente lógico (80, 96, 106);
    carga de los códigos de las partes convertidas del programa en el respectivo componente lógico (80, 96, 106) de un módulo de comunicación separado (10, 90, 100), caracterizado porque los componentes lógicos (80, 96, 106) de estos módulos de comunicación (10, 90, 100) se comunican uno con otro para ejecutar acíclicamente, en respuesta al respectivo código, las partes convertidas del programa de control cicloorientado, haciéndose funcionar en sincronismo los componentes lógicos de los módulos de comunicación.
  2. 2.
    Procedimiento según la reivindicación 1, caracterizado porque los componentes lógicos (80) cooperan con un dispositivo de control (110) programable en memoria - en el que se ejecuta el programa de control cicloorientado de tal manera que las partes convertidas del programa de control cicloorientado son ejecutadas solamente por los respectivos componentes lógicos (80).
  3. 3.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque el código cargado en el respectivo componente lógico (80) está subdividido en segmentos y porque un segmento predeterminado del código almacenado en el respectivo componente lógico es sustituido por un nuevo segmento.
  4. 4.
    Procedimiento según la reivindicación 3, caracterizado porque, en respuesta a una señal de habilitación, el componente lógico (80, 96, 106) del respectivo módulo de comunicación (10, 90, 100) desactiva el segmento predeterminado y activa el nuevo segmento.
  5. 5.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque el código es un código HDL.
  6. 6.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque se almacena el código en un dispositivo de memoria y, en respuesta a un evento predeterminado, se carga dicho código en el respectivo componente lógico (80, 96, 106).
  7. 7.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque se carga un código referido a un bus de campo en un componente lógico de otro módulo de comunicación y porque, en respuesta al código referido al bus de campo, el componente lógico de este otro módulo de comunicación ejecuta funciones de un abonado de bus.
  8. 8.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque algunos de los módulos de comunicación (10, 90, 100) presentan al menos una interfaz de entrada/salida que se programa con arreglo a un protocolo de comunicación predeterminado para poder comunicarse con un abonado de bus a través del protocolo de comunicación predeterminado.
  9. 9.
    Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque los módulos de comunicación se enclavan sobre un carril de pinzado y presentan cada uno de ellos una interfaz de entrada/salida (94, 101) para el intercambio de datos y una interfaz para la programación del respectivo componente lógico.
  10. 10.
    Sistema de comunicación, especialmente un sistema de automatización, con al menos dos módulos de comunicación (10) que presentan cada uno de ellos un componente lógico (80) en el que está almacenado al menos el código de una parte de un programa de control cicloorientado que es ejecutable en un dispositivo de control (110) programable en memoria para producir un funcionamiento cicloorientado del sistema de comunicación,
    en donde uno de los componentes lógicos (80) ejecuta acíclicamente, en respuesta al código, la parte correspondiente del programa de control cicloorientado,
    en donde el programa de control cicloorientado está subdividido en varias partes de programa que se han convertido cada una de ellas en un código ejecutable por un componente lógico, y
    en donde los códigos de la parte convertida del programa están almacenados cada uno de ellos en un componente lógico (96, 106) de un módulo de comunicación separado (90, 100), caracterizado porque los módulos de comunicación están configurados de tal manera que sus componentes lógicos se comunican uno con otro para ejecutar acíclicamente, en respuesta al respectivo código, las partes convertidas del programa de control cicloorientado, y porque se hacen funcionar en sincronismo los componentes lógicos de los módulos de comunicación.
  11. 11. Sistema de comunicación según la reivindicación 10, caracterizado por un dispositivo de control (110) programable en memoria en el que se ejecuta el programa de control cicloorientado, cooperando al menos el un componente lógico (80) del módulo de comunicación (10) con el dispositivo de control (110) programable en memoria de tal manera que la parte del programa de control cicloorientado, convertida en el código correspondiente, sea ejecutada solamente por el al menos un componente lógico (80).
ES10000398T 2009-01-19 2010-01-18 Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico Active ES2406067T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102009005399 2009-01-19
DE102009005399.9A DE102009005399B4 (de) 2009-01-19 2009-01-19 Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls

Publications (1)

Publication Number Publication Date
ES2406067T3 true ES2406067T3 (es) 2013-06-05

Family

ID=42164232

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10000398T Active ES2406067T3 (es) 2009-01-19 2010-01-18 Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico

Country Status (4)

Country Link
US (1) US8316168B2 (es)
EP (1) EP2216696B1 (es)
DE (1) DE102009005399B4 (es)
ES (1) ES2406067T3 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010129909A1 (en) 2009-05-07 2010-11-11 Cypress Semiconductor Corporation Development, programming, and debugging environment
US20120005693A1 (en) * 2010-01-08 2012-01-05 Cypress Semiconductor Corporation Development, Programming, and Debugging Environment
DE102010027286B4 (de) * 2010-07-16 2012-06-21 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Übertragung von Daten in einem Automatisierungssystem
DE102012004844B4 (de) * 2012-03-13 2018-05-17 Phoenix Contact Gmbh & Co. Kg System der Messwertüberwachung und Abschaltung bei Auftreten von Messwertabweichungen

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0499695B1 (de) * 1991-02-22 1996-05-01 Siemens Aktiengesellschaft Speicherprogrammierbare Steuerung
US5535342A (en) * 1992-11-05 1996-07-09 Giga Operations Corporation Pld connector for module having configuration of either first PLD or second PLD and reconfigurable bus for communication of two different bus protocols
US6081473A (en) * 1998-12-15 2000-06-27 Lattice Semiconductor Corporation FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode
US6625637B1 (en) * 1999-12-09 2003-09-23 Koninklijke Philips Electronics N.V. Method and apparatus for synthesizing communication support based on communication types of application
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US6744274B1 (en) * 2001-08-09 2004-06-01 Stretch, Inc. Programmable logic core adapter
DE10221772A1 (de) * 2002-05-15 2003-11-27 Flowtec Ag Variables Feldgerät für die Prozeßautomation
US7613858B1 (en) * 2005-01-24 2009-11-03 Altera Corporation Implementing signal processing cores as application specific processors
US7592833B1 (en) * 2008-05-15 2009-09-22 General Electric Company Systems and methods involving field programmable gate arrays

Also Published As

Publication number Publication date
US8316168B2 (en) 2012-11-20
US20100185798A1 (en) 2010-07-22
EP2216696A1 (de) 2010-08-11
DE102009005399A1 (de) 2010-07-22
EP2216696B1 (de) 2013-05-01
DE102009005399B4 (de) 2024-02-08

Similar Documents

Publication Publication Date Title
ES2523129T3 (es) Controlador de procesos doblemente redundante
ES2406067T3 (es) Procedimiento y sistema de comunicación para configurar un módulo de comunicación que contiene un componente lógico
ES2749464T3 (es) Sistema de comunicación para conectar aparatos de campo con un dispositivo de control de nivel superior
ES2686083T3 (es) Sistema de control, método de control y tablero de extensión
US10437571B2 (en) Method for programming a safety controller
US8521925B2 (en) Method and communication system for determining the time of an event in an IO device
US11487265B2 (en) Systems and methods for simultaneous control of safety-critical and non-safety-critical processes in automation systems using master-minion functionality
US20090271006A1 (en) Method for synchronizing two control devices, and redundantly designed automation system
JP2017518585A (ja) 複数のミックスドシグナルのリソース管理のための制御モジュール
CN107430564B (zh) 具有多个独立微控制器的微控制器装置
WO2008146091A1 (en) Data processing system, data processing method, and apparatus
WO2013128578A1 (ja) 制御装置および制御装置の制御方法
ES2640932T3 (es) Aparato para controlar tráfico de red
ES2550049T3 (es) Procedimiento y sistema para la distribución dinámica de funciones de programa en sistemas de control distribuidos
WO2016149078A2 (en) Low-pin microcontroller device with multiple independent microcontrollers
JP6029433B2 (ja) マイコン
ES2552739B1 (es) Sistema de Ejecución Determinista en Tiempo, Distribuida y Sincronizada para Aplicaciones de Control, Test y Medida
JP6175788B2 (ja) マイクロプログラムを更新可能な電子機器
EP3702852A1 (en) Control device, control method for control device, information processing program, and recording medium
ES2804505T3 (es) Sistema de extensión de la red PLC
BR112013028524B1 (pt) método para configurar pelo menos um dispositivo de processamento de entrada/saída configurável, dispositivo de processamento de entrada/saída configurável e sistema de controle de aviônica
ES2835338T3 (es) Dispositivo de automatización y procedimiento para reducir la fluctuación
JP2011123688A (ja) 同期プログラマブルコントローラ、同期プログラマブルコントローラシステム
KR20130011186A (ko) Plc용 모듈의 펌웨어 다운로드 방법
US10498340B2 (en) Field programmable gate array comprising plurality of functional blocks, and control device for a power plant