ES2315337T3 - Metodo y aparato para la programacion de controladores programables y para generar datos de configuracion desde un servidor centralizado. - Google Patents

Metodo y aparato para la programacion de controladores programables y para generar datos de configuracion desde un servidor centralizado. Download PDF

Info

Publication number
ES2315337T3
ES2315337T3 ES02078612T ES02078612T ES2315337T3 ES 2315337 T3 ES2315337 T3 ES 2315337T3 ES 02078612 T ES02078612 T ES 02078612T ES 02078612 T ES02078612 T ES 02078612T ES 2315337 T3 ES2315337 T3 ES 2315337T3
Authority
ES
Spain
Prior art keywords
server
programming
client device
code
engineering
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.)
Expired - Lifetime
Application number
ES02078612T
Other languages
English (en)
Inventor
George Lo
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.)
Siemens Energy and Automation Inc
Original Assignee
Siemens Energy and Automation Inc
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
Application filed by Siemens Energy and Automation Inc filed Critical Siemens Energy and Automation Inc
Application granted granted Critical
Publication of ES2315337T3 publication Critical patent/ES2315337T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13055Place cursor, enter symbol, move cursor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15038Internet, tcp-ip, web server see under S05B219-40
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31156Network structure, internet
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31422Upload, download programs, parameters from, to station to, from server
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33148CLS client server architecture, client consumes, server provides services
    • 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]

Abstract

Un sistema que comprende un servidor (50), una red (35), al menos un dispositivo de cliente (30) que posee una aplicación de interfaz de red, en donde el servidor está en comunicación con al menos un dispositivo de cliente (30) a través de la red (35); una herramienta de ingeniería (77) que reside en el servidor (50) y que es accesible por al menos un dispositivo de cliente (30) a través de la red, en donde la herramienta de ingeniería funciona en la aplicación de interfaz de red en al menos un dispositivo de cliente (30); una memoria (58) asociada al servidor (50) y al menos un controlador programable (40); caracterizado porque el servidor (50) es un servidor central; porque la herramienta de ingeniería (77) es una herramienta para generar código de programación para controladores programables (40) empleando un lenguaje de programación; y porque el código de programación y los datos de configuración generados con la herramienta de ingeniería son almacenados en la memoria (58) asociada al servidor central y son descargados a un controlador programable objetivo (40).

Description

Método y aparato para la programación de controladores programables y para generar datos de configuración desde un servidor centralizado.
Campo de la invención
La presente invención trata en general del campo de los controladores programables. En particular, la presente invención presenta un aparato y un método para escribir código de programación y/o generar datos de configuración para estos controladores programables sin la necesidad de adquirir ni instalar una herramienta de ingeniería en un dispositivo de programación.
Antecedentes de la invención
Los controladores programables, incluidos los Controladores Lógicos Programables (PLC, por sus siglas en inglés), se utilizan en muchas aplicaciones comerciales e industriales. Los controladores programables normalmente monitorizan entradas, toman decisiones basándose en cómo están programados y controlan las salidas de los procesos automatizados o de las máquinas. Uno de los controladores programables más comunes en uso es el PLC. Los PLC consisten en módulos o puntos de entrada, una unidad de procesamiento central (CPU) y puntos o módulos de salida. Una entrada acepta una variedad de señales digitales o analógicas de varios dispositivos de campo, como sensores, y los convierte en una señal lógica que puede utilizar el CPU. El CPU toma decisiones y ejecuta instrucciones de control basándose en instrucciones de programación almacenadas en una memoria. Estas instrucciones de programación determinan qué hará el PLC para una entrada específica. Los módulos de salida convierten las instrucciones de control desde el CPU en una señal digital o analógica que se puede utilizar para controlar varios dispositivos de campo, tales como actuadores o válvulas.
Ya que la mayoría de los controladores programables, incluidos los PLC, son en esencia ordenadores, almacenan información en forma de estados off y on (es decir, unos o ceros), a las que se conoce como dígitos binarios (es decir, bits). Un programa para un controlador programable consta de una o más instrucciones que realizan una tarea. Programar un PLC u otro controlador es cuestión de construir una serie de instrucciones. Programar implica muchas veces generar datos de configuración. Configurar un controlador programable implica asignar el área de entrada/salida (I/O) del controlador a la I/O física. Los editores de configuración son generalmente gráficos.
Existen varias maneras de abordar un programa, como por ejemplo, mediante la programación por diagrama de flujo, lenguaje Ladder (o diagrama de escalera), listas de instrucciones o diagramas de bloque de funciones. El lenguaje Ladder ("LD") es un lenguaje de programación utilizado con los PLC. Como se muestra en la figura 1, el código de lenguaje Ladder (10) utiliza símbolos gráficos que se asemejan a elementos electromecánicos utilizados en un formato de diagrama lógico de relé para describir un control cableado. La línea vertical izquierda de un diagrama típico en lenguaje Ladder generalmente representa un conductor activo o de potencia. Una línea vertical derecha representa la trayectoria de regreso de un diagrama de línea de un control cableado y puede ser omitida. Los diagramas Ladder (o diagramas de escalera) se leen de izquierda a derecha, de arriba abajo. A menudo, los peldaños se conocen como redes. Una red puede tener varias instrucciones de entrada y salida. Las instrucciones de entrada representadas por una serie de contactos en una o más ramas paralelas, ejecutan comparaciones o pruebas y están normalmente justificadas a la izquierda en el peldaño. Las instrucciones de salida representadas por espirales para las que puede haber sólo una en cada rama de salida, ejecutan algunas operaciones o funciones, y normalmente están justificadas a la derecha en el peldaño. Como se muestra en el código Ladder del ejemplo (10) representado en la figura 1, 10.0, 10.1 y Q0.0 representan la primera combinación de instrucción. Si se activan las entradas 10.0 y 10.1, se activa la salida Q0.0. Las entradas pueden ser conmutadores, botones pulsadores o cierres de contacto. Las salidas pueden ser, por ejemplo, un solenoide o una bombilla. 10.4, 10.5 y Q0.1 representan una segunda combinación de instrucción. Si las entradas 10.4 o la 10.5 están activas, la salida Q0.1 produce una activación, esto es, activa.
Una lista de instrucción (IL) proporciona otra visión de una serie de instrucciones y se ejemplifica (20) en la figura 1. La operación, es decir, lo que se va a hacer, se muestra a la izquierda. El operando, el elemento al que se aplica la operación, se muestra a la izquierda. El LD y la IL poseen una estructura similar. La serie de instrucciones en la IL (20) de la figura 1 ejecuta las mismas tareas que el LD de (10).
Los diagramas de funciones (FBD, por sus siglas en inglés) proporcionan otra visión de una serie de instrucciones y se ejemplifican (30) en la figura 1. Cada función tiene un nombre para designar su tarea específica. Las funciones se indican por medio de un rectángulo. Las entradas se muestran en el lado izquierdo del rectángulo y las salidas se muestran en el lado derecho. El diagrama de funciones (30) mostrado en la figura 3 realiza las mismas tareas que muestra la LD (10) de la figura 1 y la IL (20) de la figura 1.
Los controladores programables en general, y los PLC en particular, ejecutan un código de programa en un proceso repetitivo al que se conoce como un escaneo o exploración. Un escaneo o exploración puede empezar con la lectura de un estado de entradas por parte del CPU. El programa de aplicación se ejecuta utilizando el estado de entradas. Una vez que el programa se completa, la CPU realiza diagnósticos internos y tareas de comunicación. Los ciclos de escaneo o exploración finalizan con la actualización de las salidas y entonces vuelven a empezar. El tiempo del ciclo depende del programa, del número de entradas y salidas y de la cantidad de comunicación necesaria.
Para poder escribir instrucciones de programación y generar datos de configuración y descargar el código y los datos de configuración en un controlador programable, se necesitan varias herramientas. Como se muestra en la figura 1, un dispositivo de programación, como por ejemplo un ordenador personal (1), se interconecta con un PLC (7). Normalmente, un cable propietario (5), como por ejemplo Siemens® PC/PPI, conecta el puerto RS 232 del ordenador con el PLC 7. Previamente a la presente invención, las herramientas de software de ingeniería (3), como Siemens STEP7®, tenían que instalarse en el PC de manera que éste se pudiera utilizar para escribir instrucciones de programación para el PLC. Normalmente, las herramientas de ingeniería se venden en CDs o en otro medio de lectura informático.
La figura 2 muestra una idea general de los pasos normales y de los déficits que resultan de la adquisición de una copia de una herramienta de ingeniería. El cliente de una herramienta de ingeniería compra normalmente una copia del software y obtiene una licencia para utilizar la herramienta, paso (20). El cliente tiene entonces que instalar el software en un solo ordenador del cliente, paso (25). El cliente sólo puede desarrollar el software de aplicación, es decir, el código de programación para un controlador programable en ordenadores que incluyen la herramienta de ingeniería, paso (27). Los acuerdos de licencia que acompañan normalmente a las herramientas de ingeniería limitan la capacidad del cliente para instalar la herramienta en más de un ordenador sin pagar una licencia para ordenadores adicionales.
El software o las herramientas de ingeniería, tales como Siemens STEP7® o MicroWin®, son a menudo herramientas propietarias desarrolladas por el fabricante del controlador. Normalmente, el desarrollo de estas herramientas de ingeniería cuesta miles de horas-persona. Las herramientas se diseñan y se prueban con frecuencia para trabajar en un sistema operativo informático específico, como por ejemplo Microsoft Windows®98. Cuando cambia el sistema operativo para el ordenador en el que se está utilizando la herramienta, se tiene que volver a verificar la herramienta. A menudo, los vendedores de PC entregan sólo la última versión del sistema operativo de Microsoft en sus PC. Esto fuerza a los vendedores de herramientas de ingeniería a que también ofrezcan soporte técnico para el nuevo sistema operativo, lo cual supone normalmente una inversión de cientos o miles de horas-persona adicionales. En muchas organizaciones, se actualiza el sistema operativo del PC sin tomar en consideración el software, tales como las herramientas de ingeniería, que se encuentran en los PC.
Las herramientas de ingeniería se actualizan con mucha frecuencia con el paso del tiempo. En consecuencia, pueden existir al mismo tiempo versiones diferentes de las herramientas. En una instalación de fabricación grande es muy probable que no todas las herramientas de programación utilicen la misma versión. Esto no sólo aumenta los costes de propiedad, sino que, además, puede provocar problemas al utilizar diferentes dispositivos de programación para escribir el código de programación para la misma aplicación de PLC. Con frecuencia, se asigna un equipo de ingenieros para programar un PLC. Cada ingeniero del equipo puede trabajar independientemente en un aspecto específico de la aplicación. Más tarde, estos aspectos específicos se combinan en un programa que se ejecuta en el PLC. Si todos los ingenieros no están utilizando la misma versión de la herramienta, es posible que el código generado desde una versión de la herramienta pueda no ser compatible con una versión anterior de esa herramienta.
Además de los problemas asociados con la ejecución de sistemas operativos diferentes en los dispositivos de programación y versiones diferentes de las herramientas de ingeniería en los sistemas operativos, el código de programación para los controladores programables a menudo no se archiva de manera centralizada. Con frecuencia, el código para un PLC en una fábrica puede almacenarse en un portátil o en un ordenador personal de sobremesa y el código para otro PLC se puede almacenar en cualquier otro sitio. Si un PLC fue programado inicialmente con un primer PC y ese PC es reemplazado más tarde por un segundo PC, y si el PLC es reprogramado con un segundo PC, a menudo no habría forma de restablecer el programa original en el caso de que el nuevo programa fuera insuficiente.
WO 01/14963 describe el uso de un programa gráfico en un servidor central para superar los problemas de usuarios informáticos que no están familiarizados con la programación basada en texto.
WO 01/69335 describe la programación de un controlador lógico programable (PLC) utilizando un paquete de software que se encuentra en el PLC, pero al que se accede mediante Internet.
US6151609 describe la edición remota de un archivo almacenado en un servidor remoto utilizando un navegador Web.
Resumen de la invención
De acuerdo con un primer aspecto de la presente invención, un sistema consta de un servidor, una red, al menos un dispositivo de cliente que posee una aplicación de interfaz de red, en donde el servidor está en comunicación con al menos un dispositivo de cliente a través de la red; una herramienta de ingeniería que reside en el servidor y que es accesible por al menos un dispositivo de cliente mediante la red, en donde la herramienta de ingeniería se ejecuta en la aplicación de interfaz de red en al menos un dispositivo de cliente, una memoria asociada al servidor; y al menos un controlador programable; caracterizado porque el servidor es un servidor central; caracterizado porque la herramienta de ingeniería es una herramienta para generar código de programación para controladores programables que utilicen un lenguaje de programación; y caracterizado porque el código de programación y los datos de configuración generados con la herramienta de ingeniería se almacenan en la memoria asociada al servidor central y se descargan a un controlador programable de destino.
De acuerdo con un segundo aspecto de la presente invención, un método para crear código de programación de un controlador programable en un sistema que consta de un servidor, una red; al menos un dispositivo de cliente; una herramienta de ingeniería que reside en el servidor y que es accesible por al menos un dispositivo de cliente, dispositivo que posee una aplicación de interfaz de red; y el sistema que consta además de una memoria y de, al menos, un controlador programable; el método que consta de acceso a la herramienta de ingeniería con al menos un dispositivo de cliente; ejecutándose la herramienta de ingeniería en una aplicación de interfaz de red instalada en al menos un dispositivo de cliente, donde el servidor está en comunicación con al menos un dispositivo de cliente mediante la red, y donde la memoria está asociada al servidor; caracterizado porque el servidor es un servidor central y porque la herramienta de ingeniería es una herramienta para generar código de programación para controladores programables que utilizan un lenguaje de programación; método que consta además de la generación de código de programación y datos de configuración para los controladores programables que utilicen la herramienta de ingeniería; almacenando el código de programa generado en la memoria asociada al servidor central; y descargando el código de programación a un controlador programable de destino.
La presente invención proporciona un sistema para la programación de un controlador programable, tales como un PLC u otro controlador industrial. En una ejecución, un dispositivo de cliente que posee una aplicación de interfaz de red, tal como, por ejemplo, una aplicación de navegación, se comunica a través de la red con un servidor. En el servidor reside una herramienta de ingeniería para crear el código de programación y los datos de configuración para los controladores programables. La herramienta de ingeniería emplea un lenguaje de programación para los controladores programables de programación y es accesible por el dispositivo de cliente utilizando la aplicación de navegación que reside en ella. El servidor puede tener asociada una unidad de memoria para almacenar el código de programación generado por la herramienta de ingeniería en el dispositivo de cliente. En algunas ejecuciones, la herramienta de ingeniería emplea un lenguaje de programación gráfico como el lenguaje Ladder (o diagrama de escalera), programación por diagramas de flujo o programación por diagramas de funciones. En otras ejecuciones, puede utilizar lenguajes basados en texto, tales como listas de instrucciones. Se puede encontrar también en el servidor un compilador para la compilación del código de programación o puede ser accesible para el servidor.
En consecuencia, la presente invención proporciona métodos numerosos y robustos para desarrollar código de programación para controladores programables. En una ejecución, un usuario accede a un servidor a través de una red con un dispositivo de cliente que posee una aplicación de navegación. La aplicación de navegación invoca preferiblemente la herramienta de ingeniería. El usuario crea, entonces, un documento que contiene instrucciones de programación con la herramienta de ingeniería. El documento se transmite a través de la red al servidor. El documento puede ser almacenado en el servidor para su posterior acceso y edición. En una ejecución particular, el documento es un documento XML.
En una ejecución de la presente invención, el código de programación se almacena en un servidor central. Esto proporciona un método eficiente y rentable para la programación de controladores programables. El servidor y el controlador programable pueden interconectarse para comunicarse entre sí a través de la red. Tras interconectarlos, puede descargarse el código de programación compilado desde el servidor al controlador a través de la red.
La presente invención ofrece un nuevo paradigma en la manera en la que las entidades abordan la programación de sus controladores programables. Las entidades que deseen programar sus controladores programables no necesitan ni la adquisición ni el mantenimiento de herramientas de ingeniería de elevado coste. En lugar de ello, se puede habilitar la utilización en la web de una herramienta de ingeniería y su mantenimiento se puede realizar en un servidor central al que se accede a través de una red informática. Los usuarios que posean dispositivos de cliente están provistos de acceso al servidor a través de la red. El servidor recibe del dispositivo de cliente un documento que contiene el código de programación creado en el dispositivo de cliente con la herramienta de ingeniería. El código se puede compilar en el servidor y se puede descargar al controlador programable. Puede ser descargado directamente al controlador si el dispositivo es accesible a través de la red de informática, o se puede descargar al dispositivo a través de un dispositivo de cliente que resida en la red y que esté interconectado con el controlador programable.
Breve descripción de los dibujos
La figura 1 es una ilustración de las herramientas de la técnica anterior necesarias para programar controladores programables.
La figura 2 es un diagrama de bloque que ilustra los pasos y deficiencias de los métodos y herramientas para la programación de controladores programables de la técnica anterior.
La figura 3 es una ilustración de una ejecución de la presente invención, en donde un dispositivo de cliente que está conectado a un PLC está en comunicación a través de una red con un servidor que contiene una herramienta de ingeniería que habilita su utilización en la Web para escribir código de programación para el PLC y para configurar los dispositivos y redes de entrada/salida.
La figura 4 es una ilustración de la arquitectura general de una ejecución de la presente invención, en donde una herramienta de ingeniería para escribir código de programación para un controlador programable y para la configuración de los dispositivos y la red de entrada/salida se encuentran en un servidor al que se accede a través de una red mediante un dispositivo de cliente.
La figura 5 ilustra una ejecución alternativa de la presente invención, en donde el servidor también consta de un nivel de capa de servicio Web.
La figura 6 ilustra, tanto desde la perspectiva de un cliente como desde la de un servidor, los componentes de una herramienta de ingeniería habilitada para la utilización en la Web de acuerdo con la presente invención que funciona a través de Internet, en donde se usan técnicas de programación gráfica.
La figura 7 ilustra un método alternativo de una herramienta de ingeniería habilitada para la utilización en la Web utilizando formato XML de acuerdo con la presente invención.
La figura 8 ilustra la habilitación para la utilización en la Web de una herramienta de ingeniería heredada, de acuerdo con la presente invención, utilizando el interfaz de la aplicación de la herramienta heredada.
La figura 9 es una vista de la pantalla de una herramienta de ingeniería de programación por diagrama de flujo habilitada para su utilización en la Web de acuerdo con la presente invención.
La figura 10 es una vista de pantalla de una herramienta de ingeniería de programación en lenguaje Ladder habilitada para la utilización en la Web de acuerdo con la presente invención.
La figura 11 es un diagrama de flujo que muestra los pasos del método de una ejecución de la presente invención.
La figura 12 es un diagrama de flujo que muestra un método de acuerdo con la presente invención para la programación de un controlador programable.
La figura 13 ilustra una configuración de un sistema de acuerdo con la presente invención, en donde un dispositivo de cliente está conectado en red con un servidor que posee una herramienta de ingeniería habilitada para la utilización en la Web, y un segundo dispositivo de cliente conectado en red con el servidor está en una red de área local (LAN) con uno o más controladores programables.
La figura 14 ilustra una configuración alternativa de la presente invención, en donde los controladores programables están interconectados directamente con un servidor, que posee una herramienta de ingeniería habilitada para la utilización en la Web, que se comunica con un dispositivo de cliente.
La figura 15 ilustra aún otra configuración alternativa de la presente invención, en donde un servidor, que posee una herramienta de ingeniería habilitada para la utilización en la Web, se encuentra en Internet o en una intranet con un dispositivo de cliente, y uno o más controladores programables están conectados en red con el servidor a través de una intranet o de Internet.
La figura 16 es un diagrama de flujo que muestra los pasos para proporcionar servicios de herramienta de ingeniería de acuerdo con la presente invención.
La figura 17 es un diagrama de flujo que muestra los pasos para generar código de programación fuera de línea, de acuerdo con la presente invención.
La figura 18 ilustra un nuevo paradigma de negocio para la venta de servicios de herramienta de ingeniería, de acuerdo con la presente invención.
La figura 19 ilustra un nuevo paradigma de negocio alternativo para la venta de servicios de herramienta de ingeniería, de acuerdo con la presente invención.
La figura 20 ilustra una ejecución de la presente invención en donde un código de ingeniería de legibilidad humana es almacenado en un servidor y es enlazado al código compilado ejecutándose en un controlador programable y accesible a un servidor de automatización.
La figura 21 ilustra cómo la presente invención puede ser constituida para ser una sola entidad corporativa o comercial.
La figura 22 ilustra un sistema de ingeniería colaborativa.
La figura 23 es un diagrama de flujo que muestra un método para el desarrollo y la comprobación del código de programación para el controlador programable y/o los datos de configuración.
La figura 24 es un diagrama de flujo que muestra un método para generar e instalar código de programación en un controlador programable de acuerdo con la presente invención.
La figura 25 ilustra una ejecución de la presente invención en donde un conjunto de herramientas de ingeniería reside en un servidor, contiene un editor de configuración y es invocado por un dispositivo de cliente mediante una red.
Figura 26 es un diagrama de flujo que muestra un método colaborador de ingeniería habilitado mediante la presente invención.
Figura 27 es un diagrama de flujo que muestra otro método colaborador de ingeniería alternativo.
Descripción detallada de la invención
La presente invención, entre otras cosas, proporciona un sistema y método para escribir código de programación (el cual normalmente también incluye la generación de datos de configuración) en un servidor central y para la descarga del código de programación compilado junto con cualquier dato de configuración a un controlador programable, como por ejemplo un PLC. Como se muestra en la figura 3, un dispositivo de cliente (30), como por ejemplo un ordenador personal que incluya un navegador, como por ejemplo Microsoft Internet Explorer® o Netscape Navigator®, se encuentra en una red pública o privada (35). La red (35) puede ser Internet o una intranet. En una ejecución, un PLC (40), como puede ser el Siemens® S7-200 PLC, se conecta al dispositivo de cliente (30) por medio de un cable de interfaz (45), como por ejemplo el Siemens® PC/PPI. El cable puede contener conmutadores DIP (48) para controlar los ajustes, como por ejemplo la tasa de baudios. En esta ejecución, el dispositivo de cliente (30) actúa como un dispositivo de programación para la programación del PLC (40). Sin embargo, a diferencia de los enfoques anteriores de la técnica para la programación del PLC (40), en donde las herramientas de ingeniería para la programación del PLC están instaladas en el dispositivo de programación, las herramientas de ingeniería necesarias para escribir y compilar código de programación residen en un servidor (50) al que puede acceder el dispositivo de cliente (30) mediante Internet o mediante una intranet u otra red (35). Las herramientas de ingeniería son preferiblemente herramientas habilitadas para la utilización en la Web para funcionar en cualquier aplicación de navegación de cualquier dispositivo de cliente (30).
Un usuario (55) accede al servidor (50) mediante la red (35) con el dispositivo de cliente (30). El dispositivo de cliente (30) puede ser un cliente ligero, es decir, no necesita contener ningún software que no sea el navegador. Así, el dispositivo de cliente (30) puede tener muchas formas, incluida la de ordenadores personales, PDAs habilitadas para la utilización en la Web, teléfonos móviles, dispositivos de televisión preparados para Internet, aparatos de Internet, etc. La presente invención es escalable en tanto que puede funcionar en una variedad de modos en una variedad de dispositivos de cliente que poseen una variedad de funcionalidad. Por ejemplo, la presente invención puede funcionar con funcionalidad limitada en un navegador de teléfono móvil habilitado para la utilización en la Web que tiene funcionalidad limitada y capacidad informática, o puede funcionar con funciones robustas en un ordenador personal sofisticado que posea un procesador de alta velocidad y grandes cantidades de memoria y capacidades gráficas robustas.
De acuerdo con la presente invención, las herramientas de ingeniería, similares a herramientas como Siemens STEP7®, se encuentran en el servidor (50) y están habilitadas para la utilización en la Web. Normalmente, estas herramientas de ingeniería emplearán esquemas de programación gráficos como lenguaje Ladder, programación por diagrama de flujo, por gráfico secuencial de funciones o por diagramas de funciones (véase, por ejemplo, la figura 1). Preferentemente, están configuradas para manejar una variedad de lenguajes de programación, incluida la programación de lista de instrucción y todos los demás lenguajes estándar, tales como por ejemplo todos los lenguajes del estándar IEC-1131 (LD, FBD, SFC; IL y ST). Las herramientas están configuradas para funcionar en una aplicación de navegación, consiguiendo de este modo que funcionen independientemente del sistema operativo que utilice el cliente. Preferentemente, las herramientas de ingeniería se configuran para que funcionen con una interfaz HTML o XML, de manera que puedan funcionar en cualquier navegador disponible. Las herramientas pueden proporcionar, además, un editor de configuración para asignar una área de entrada/salida lógica de un controlador a una área de entrada/salida física.
La figura 4 representa una ejecución de la arquitectura general del sistema para herramientas de ingeniería habilitadas para la utilización en la Web. Un dispositivo de cliente Web (30) contiene un navegador Web estándar. Una herramienta de ingeniería para generar código de programación para un controlador programable reside en un servidor Web (50) y es capaz de funcionar en el cliente Web en una aplicación de navegación. La herramienta de ingeniería está habilitada para la utilización en la Web y, en su forma más básica, consta de un editor o editores que pueden funcionar en el navegador Web. De forma ventajosa, los editores son independientes con respecto al sistema operativo y pueden funcionar en las últimas versiones de navegadores, sistemas operativos y hardware. El servidor Web (50) puede contener también un editor para llevar a cabo configuración de hardware. Puede contener, asimismo, el software y hardware necesario para llevar a cabo la gestión de versión y para ejecutar simulaciones. El cliente Web (30) y el servidor Web (50) están los dos ubicados en una red (35), como por ejemplo una intranet o Internet. Un usuario crea código de programación y/o genera datos de configuración para un controlador programable en el cliente Web (30). El código y los datos de configuración se convierten en un documento XML y se transmiten a través de la red (35) al servidor Web (50). El código de programación y los datos de configuración pueden almacenarse en una base de datos de proyecto (58) asociada al servidor Web (50). La base de datos de proyecto (58) puede tener la forma de cualquier medio de almacenamiento estándar. El servidor (50) no necesita estar ejecutando la última la plataforma más actual (Sistema operativo y hardware).
La figura 5 representa una ejecución alternativa en la cual una capa de servicio Web (70) está incorporada con el servidor (50). Los servicios Web adicionales, tales como las herramientas y servicios de simulación, pueden estar en capas por encima de las herramientas de ingeniería existentes. Esto proporciona al desarrollador de herramientas de ingeniería una manera rápida y rentable de innovar y desarrollar nuevos productos. Un vendedor de herramienta de ingeniería puede impulsar y aumentar la longevidad de su inversión existente desarrollando la herramienta de ingeniería. En esta ejecución, los usuarios de una herramienta de ingeniería básica tendrán a su disposición servicios de ingeniería robustos que están a sólo un clic de ratón.
XML es particularmente muy apropiado para su uso con la presente invención porque representaciones gráficas, del tipo que utiliza el lenguaje de programación común PLC, se convierten fácilmente a un documento XML. De este modo, la transmisión entre el cliente (30) y el servidor (50) es preferible en forma de documento XML.
La figura 6 ilustra la parte del cliente, la parte del servidor y los componentes de Internet necesarios para habilitar la utilización en la Web de una herramienta estándar de ingeniería, tal como la Siemens STEP7®, utilizando técnicas de programación gráficas. Aunque se pueden utilizar técnicas de programación gráficas para habilitar la utilización en la Web de herramientas de ingeniería estándar tales como Siemens STEP 7®, la tecnología Microsoft®.Net proporciona un método más eficiente para habilitar la utilización en la Web de herramientas de ingeniería. Como se muestra en la Figura 7, la tecnología .Net facilita la interfaz entre una aplicación de servicio Web (99) y un servidor Web utilizando un formato XML. También permite el intercambio de datos cliente-servidor en un formato XML.
Como se muestra en la figura 8, los nuevos servicios Web (50) se pueden construir encima de la Interfaz de Aplicación ("API") 59 de una herramienta de ingeniería 77 ya existente, como por ejemplo la Siemens STEP 7®. El servidor (50) y los dispositivos de cliente (30) intercambian entonces documentos XML utilizando protocolos estándar.
Las herramientas de ingeniería habilitadas para la utilización en la Web y ejecutables en un navegador poseen, preferentemente, funciones de fácil manejo para el usuario para las varias fases de un proyecto de automatización. Las vistas de pantalla que representan una herramienta típica de ingeniería habilitada para la utilización en la Web, tal y como se vería en un dispositivo de cliente con un navegador estándar, se muestran en las figuras 9 y 10. La figura 9 representa una herramienta de ingeniería de programación por diagrama de flujo habilitada para la utilización en la Web y la figura 10 representa una herramienta de ingeniería habilitada para la utilización en la Web para la programación en un esquema de lenguaje Ladder (o diagrama de escalera). Normalmente, estas herramientas de ingeniería incluyen funciones tales como la configuración y parametrización de hardware, definición de la comunicación, programación, prueba, arranque y servicio, documentación y archivo, y funcionamiento/diagnosis. Las herramientas pueden contener un editor de símbolos para definir designaciones simbólicas, tipos de datos y comentarios de etiqueta global. Las herramientas trabajan con todos los lenguajes de programación, incluidos aunque sin limitarse a ellos, la programación de organigrama, IL, ST, SFC y/o FBD, y todos los lenguajes de programación posteriores especificados por IEC.
Como se discutía arriba, las funciones proporcionadas por las herramientas de ingeniería pueden ser escalables dependiendo del tipo de dispositivo de cliente sobre los que se ejecuten. Por ejemplo, un dispositivo de cliente ligero, como por ejemplo un teléfono móvil habilitado para la utilización en la Web, puede tan sólo ser capaz de ejecutar una herramienta que utilice funciones de edición gráfica limitada o basadas en texto. Un dispositivo de cliente más sofisticado, como por ejemplo un IBM 600E Thinkpad®, puede tolerar más funciones y puede, a su vez, permitir a la herramienta de ingeniería llevar a cabo más funciones, tales como edición gráfica completa, durante el desarrollo del código. Así, de acuerdo con la presente invención, si las funciones de la herramienta de ingeniería se llevan a cabo en el dispositivo de cliente o si lo hacen en el servidor, puede variar dependiendo de las habilidades del dispositivo de cliente, la velocidad de la conexión de Internet o intranet y otros parámetros.
Como se muestra en la figura 3 y se muestra en este diagrama de flujo de la figura 11, en una ejecución de la presente invención, un usuario (o varios usuarios) puede acceder a la herramienta de ingeniería de programación de PLC (38) (o una herramienta de ingeniería para la programación de otros controladores programables) que residen en un servidor (50), paso (1000). En una ejecución, el servidor (50) reside en el área de la Web de Internet. En otra ejecución, el servidor reside en una red colectiva privada o en un intranet colectivo. El usuario (55) acciona la herramienta de ingeniería (38) en un navegador Web en el dispositivo de cliente (30), paso (1005), y crea el código de programación en el navegador para el controlador programable, paso (1010). Las medidas estándar de seguridad se pueden emplear para limitar el acceso tanto al servidor como a los programas creados en ellos. El usuario (55) puede crear un programa en una única sesión o en un periodo de varias sesiones. El usuario puede modificar, editar y depurar el código de programación en una aplicación de navegación, paso (1015). El código generado en el navegador puede estar en forma gráfica. El código se convierte entonces en un documento, paso (1020), y el documento se transmite mediante la red al servidor, paso (1025). Preferentemente, el código de programación se almacena en el servidor (50), paso (1030).
El software de edición, el software de depuración y un compilador pueden estar localizados en el servidor (50). Esto permite prácticamente a cualquier PC, PDA u otro dispositivo de cliente habilitado para la utilización en la Web (30) actuar como un dispositivo de programación. Después de que el usuario (55) cree y edite el código de programación, el código puede ser almacenado y compilado en el servidor (50), que tiene preferentemente un compilador. En algunas ejecuciones, un servidor adicional podría usarse para archivar el código. Más aún, el compilador puede residir también en un servidor diferente al que puede acceder el servidor que contiene la herramienta de ingeniería.
Después de que el código sea creado, depurado y compilado, es descargado a un controlador programable. Como se muestra en el diagrama de flujo de la figura 12, en una ejecución la programación de un controlador programable consta de dos pasos: establecer la comunicación entre el controlador y el servidor, paso (2000), y descargar el código de programación al controlador a través de la red, paso (2005). En una ejecución, como la mostrada en la figura 3, el código puede ser descargado en el dispositivo de cliente (30) el cual, sucesivamente, puede entonces intercomunicarse con el controlador programable (40). En esta ejecución, una copia del código de programación compilado puede residir en el dispositivo de cliente o puede ser archivado en el dispositivo de cliente.
Normalmente, el dispositivo de cliente (30) se interconecta con el controlador programable (40) mediante un cable conector (45), como por ejemplo un Cable Conector Siemens PC/PPI (véase figura 3). Como se muestra en la figura 3, cuando un PC es utilizado como dispositivo de cliente (30), el cable conector permite a una interfaz en serie en el controlador programable comunicarse con una interfaz en serie RS-232 estándar. Cuando otro dispositivo, como por ejemplo una PDA, se utiliza como dispositivo de cliente, el cable conector se interconecta con un puerto de comunicación en el dispositivo. El cable, como se muestra en la figura 3, puede contener conmutadores DIP (48) que se utilizan para seleccionar una velocidad apropiada (tasa de baudios) a la que la información es transmitida entre el PLC (40) y el dispositivo de cliente (30). El dispositivo de cliente (30), como se muestra en la figura 13, puede interconectarse con una pluralidad de controladores programables (40). En algunas ejecuciones donde existe un número amplio de controladores programables interconectados con un dispositivo de cliente individual, puede ser necesario un repetidor (no mostrado) junto con el cable.
En una ejecución alternativa, como la mostrada en la figura 14, los controladores programables (40) se pueden conectar directa o indirectamente a una red, como por ejemplo una LAN (100), en la cual reside el servidor sin tener que pasar a través del dispositivo de cliente (30). En esta ejecución, los controladores programables (40), están en comunicación con el servidor (50) a través de las redes, (100) las cuales pueden constar de una red estándar que utilice protocolos de Ethernet TCP/IP, una red Profibus®, o prácticamente cualquier otra configuración de red. El código de programación compilado podrá entonces ser descargado directamente a un controlador programable (40).
En otra ejecución más, como la representada en la figura 15, los controladores programables (40) pueden comunicarse con el servidor (50) a través de una red (110), como por ejemplo una intranet o Internet. Los dispositivos programables, en algunas ejecuciones, pueden estar enlazados entre sí en una LAN (100) utilizando protocolos como TCP/IP o Profibus® o cualquier otro protocolo apropiado.
Sin tener en cuenta si el dispositivo programable está directamente interconectado con la red donde reside el servidor o si está en comunicación con el servidor a través de un dispositivo de cliente, se puede almacenar una copia de archivo del código de programación en una base de datos de proyecto de archivo (120) en el servidor (50) o en un dispositivo de memoria asociado al servidor (50) (véase figura 14). Esto proporciona, de forma ventajosa, un alamacenamiento centralizado para copias de seguridad del código de programación compilado. La copia de archivo puede almacenarse también en un servidor diferente o en una base de datos disponible a través de la red.
En algunas ejecuciones puede ser deseable crear el código de programación para el controlador programable fuera de línea, es decir, después de que el dispositivo de cliente sea desconectado del servidor que contiene la herramienta de ingeniería. La programación fuera de línea permite a un usuario crear y editar el código de programa sin mantener una conexión con el servidor. Como se muestra en el diagrama de flujo de la figura 17, un usuario establece comunicación entre un dispositivo de cliente y un servidor que contenga una herramienta de ingeniería habilitada para la utilización en la Web y una base de datos de programación de proyectos, paso (3000). El usuario abre, entonces, la herramienta de ingeniería habilitada para la utilización en la Web en una aplicación de navegación en el cliente (3005). El usuario verifica entonces una copia del proyecto de la base de datos de proyecto, paso (3010), y la copia del proyecto se transmite al dispositivo de cliente, (3015). La comunicación entre el cliente y el servidor es entonces finalizada, paso (3020). El usuario es ahora libre de editar la copia verificada fuera de línea, paso (3025). Cuando el usuario termina la edición, el usuario restablece la comunicación entre el cliente y el servidor, paso (3030). El código de programación editado se vuelve a verificar en (3035), y otros usuarios que posean derechos de acceso podrán acceder a él. En algunas ejecuciones, mientras el proyecto es verificado, puede permitirse a otros usuarios leer una copia del proyecto verificado en la forma en la que existía antes de ser verificado. Dependiendo de la sofisticación y de los recursos del dispositivo de cliente, las técnicas y funciones de la programación fuera de línea pueden variar.
Cuando el dispositivo de cliente carezca de sofisticación, se puede proporcionar una función simple de "sólo edición" basada en texto. Cuando el recurso del cliente contenga un nivel alto de sofisticación (por ejemplo, memoria, capacidad gráfica, velocidad de procesador, etc.) se pueden proporcionar funciones más sofisticadas de creación de código y edición gráfica. De este modo, la presente invención es escalable. Por ejemplo, en una ejecución que funcione en un dispositivo sencillo habilitado para la utilización en la Web, el usuario puede estar provisto con sólo una función de edición de texto, mientras que en otra ejecución que funcione en un cliente más sofisticado, el usuario puede estar provisto con una herramienta de ingeniería que funcione en el navegador Web que contenga todas las funciones de edición gráfica que existen cuando el usuario está conectado al servidor.
Además de depender de los recursos del cliente (por ejemplo, la memoria), otros factores, como el sistema operativo del cliente y cuestiones de seguridad, pueden influenciar la funcionalidad de la herramienta de ingeniería habilitada para la utilización en la Web. Para poder trabajar fuera de línea, el sistema operativo del dispositivo necesita admitir alguna forma de instalar la aplicación en el dispositivo de cliente. Normalmente., esto no es un problema para las PDA modernas, pero puede suponer un problema para aparatos más pequeños, como por ejemplo los teléfonos móviles. Por razones de seguridad, normalmente las aplicaciones de navegación Web tienen limitado el acceso a los recursos del sistema, tales como controladores y memoria de sistema. Microsoft Corp., Redmond Washington, proporciona un software que permite que las aplicaciones que se ejecuten en su Internet Explorer® accedan a los recursos del sistema del cliente por medio de controles ActiveX incorporados en la aplicación. Para aquellos que deseen una mayor seguridad, Microsoft Corp. proporciona al usuario la capacidad de inhabilitar en su navegador la descarga de todos los controles ActiveX juntos, o sólo aceptar las descargas de sitios de confianza o solamente controles ActiveX contratados originalmente.
Las funciones específicas se proporcionan/suministran al dispositivo de cliente según sus necesidades. Por ejemplo, la verificación de la sintaxis no se proporciona hasta que el usuario del dispositivo de cliente necesite esa función. Esto permite al usuario descargar en el dispositivo de cliente funciones mínimas inicialmente y agregar funciones adicionales sólo cuando esas funciones se necesiten.
En general, no es necesario conectar el dispositivo programable al controlador programable cuando se está generando y compilando el código de programación. Sin embargo, puede resultar deseable que el controlador programable se encuentre en línea con el servidor y el dispositivo de cliente al mismo tiempo. En este caso, los cambios se descargan al controlador programable. Además, se puede monitorizar el estado de los elementos de entrada y de salida. El servidor puede estar equipado con software de diagnóstico o funciones que permitan la monitorización del controlador programable. El servidor puede simular entradas y salidas y comunicar éstas con el controlador programable. Esto permite crear y almacenar de manera centralizada algoritmos de prueba diversos y resistentes. Los algoritmos de prueba resistentes pueden ser accesibles sólo para usuarios autorizados y a los usuarios se les puede cobrar un precio para poder utilizarlos.
La presente invención proporciona un nuevo paradigma en la industria de herramientas de ingeniería. Previamente a la presente invención, las herramientas de ingeniería eran productos que se fabricaban y se vendían (véase figura 2). De acuerdo con la presente invención, las herramientas de ingeniería habilitadas para la utilización en la Web ofrecen un nuevo paradigma de negocio donde los fabricantes de una herramienta de ingeniería suministran un servicio (véase figuras 18 y 19). En una ejecución, como la mostrada por el diagrama de flujo de la figura 18, se proporciona a un usuario acceso al servidor que contiene la herramienta de ingeniería para desarrollar y compilar el código de programación para un controlador programable, paso (200). Se puede proporcionar al usuario con acceso gratis a la herramienta de ingeniería con el propósito de escribir código de programación. El usuario puede desarrollar el código en un dispositivo de cliente que se comunica con el servidor, paso (205). El usuario puede crear y modificar el código de programación sin que tenga que pagar por ello. Esto, de forma ventajosa, proporciona incluso a negocios de la pequeña empresa con acceso a herramientas de ingeniería sofisticadas y actualizadas. Sólo después de que el usuario complete el código y lo compile, se le aplicarán honorarios, paso (207). Los honorarios se pueden calcular en el momento en el que el código de programación es compilado o se cargan al usuario al descargar el código compilado al PLC (véase figura 19, paso (220)). Los honorarios por el código se pueden basar en el tamaño del código compilado, el tiempo necesario para escribir el código, el número de entradas y/o salidas que el código está diseñado para manejar, o una variedad de otros parámetros que pueden ser medidos. Puesto que la herramienta de ingeniería reside en un servidor central y no en un dispositivo de cliente, la limitación y el control del acceso a la herramienta es simplificado. Más aún, es tarea fácil para un representante de un servicio al cliente o para un vendedor suministrar a un cliente con el uso adicional de la herramienta de programación, cuando dicho uso adicional resultara ventajoso por un posible negocio. Por ejemplo, un vendedor podría proporcionar un periodo limitado de uso libre de coste de una herramienta de ingeniería habilitada para la utilización en la Web para programar y configurar un PLC cuando un cliente adquiere un PLC nuevo o un dispositivo de campo nuevo que se interconecte con un PLC ya existente.
Visto desde la perspectiva de la entidad que construye y/o distribuye las herramientas de ingeniería, el nuevo paradigma de negocio puede tomar la forma de los pasos mostrados en el diagrama de flujo de la figura 16. El fabricante o el distribuidor de la herramienta mantienen una herramienta de ingeniería habilitada para la utilización en la Web en un servidor al que acceden los clientes a través de una red, como por ejemplo Internet, paso (1601). A los clientes se les proporciona el acceso a la herramienta a través de la red, paso (1605). Se pueden utilizar contraseñas u otras medidas de seguridad para restringir el acceso sólo a usuarios autorizados. El público puede tener acceso a la herramienta, pero no acceder necesariamente al código creado con la herramienta. El distribuidor de la herramienta de ingeniería recibe un documento de un usuario - por ejemplo, a través de la red-, que contiene el código de programación que se ha generado con la herramienta de ingeniería habilitada para la utilización en la Web, paso (1610). El código de programación puede entonces ser compilado, paso (1615), o podría guardarse y hacerse accesible para la entidad que lo creó o para una entidad que tenga el acceso autorizado. Finalmente, el código se compila y luego se descarga al controlador programable, paso (1620).
Puesto que el código se crea en un servidor central, el código puede archivarse tanto en un formulario de legibilidad humana como en un formulario compilado (véase figura 20). Esto proporciona un método para reinstalar el software ya existente en controladores programables nuevos o restaurar versiones antiguas del código cuando una versión nueva no pueda funcionar de la forma deseada. Al usuario se le cobra una cantidad por obtener la descarga de una copia archivada. Esta cantidad puede ser menor que la cantidad inicial por la primera copia que ha descargado el usuario.
Además, si el formulario del código de legibilidad humana (conocido también como fuente) es archivado y enlazado con el código máquina de lectura, la monitorización habilitada para la utilización en la Web, la simulación y el control de servicios automatizados se facilitan. Por ejemplo, como se muestra en la figura 20, un PLC habilitado para la utilización en la Web (300) puede contener un servidor Web incorporado (310). El PLC puede ser conectado a una red (350), como por ejemplo Internet o una intranet. El PLC se puede programar con las herramientas de ingeniería habilitadas para la utilización en la Web de la presente invención. El código de programación para el PLC puede residir en un servidor de ingeniería (400) tanto en formulario de legibilidad humana como en formulario compilado. El formulario de legibilidad humana se almacena en una memoria o en un dispositivo de almacenamiento de datos (410) y el código se enlaza con el formulario compilado que también reside en un dispositivo de memoria (420) asociado al servidor de ingeniería. Puesto que el servidor de ingeniería es accesible a través de Internet o de una intranet junto con el PLC, es posible mantener otro servidor (ya sea un servidor físicamente separado del servidor de ingeniería o un servidor virtual que sea parte física del servidor de ingeniería en el PLC), como por ejemplo un servidor de automatización en la misma red. El servidor de automatización puede incluso ser parte del PLC, como por ejemplo cuando el PLC contiene un servidor Web incorporado. La simulación robusta y sofisticada, la monitorización y el software de control pueden residir en el servidor de automatización y estar habilitados para la utilización en la Web para que un dispositivo de cliente acceda a ellos en Internet o en una intranet. Ya que la versión de legibilidad humana del código de programación para el software que se ejecuta en el PLC está disponible por medio del servidor de ingeniería, los paquetes de software de simulación robusta, de diagnóstico, de control y de monitorización pueden acceder de manera ventajosa al código de legibilidad humana y proporcionar información valiosa para ejecutar estos paquetes de software. Por ejemplo, ya que el código de legibilidad humana es fácilmente accesible, se facilita el acceso a información de etiquetas para dispositivos de campos diversos controlados por el PLC. La presente invención permite de este modo una comunicación sofisticada y robusta así como la transferencia de datos desde una planta de producción hasta una sala de juntas.
Como se muestra en la figura 5, mantener un servidor con herramientas de ingeniería centralizadas habilitadas para la utilización en la Web proporciona una plataforma para el desarrolador de la herramienta de ingeniería para lanzar nuevos servicios y productos. Por ejemplo, previamente a la presente invención, el coste de la adquisición de herramientas de simulación para optimizar el código de programación impedía a muchos clientes invertir en estas herramientas. Puesto que, en una ejecución, el código de programación es almacenado y generado en un servidor central al que accede un gran número de clientes, el coste de la instalación del software de simulación en el servidor puede ser distribuido entre este gran número de clientes. Es más, en una ejecución, los clientes sólo pagan por el uso de las herramientas de simulación. Además, las herramientas de diagnóstico podrían ser instaladas en el servidor y compartidas de forma similar. El propietario del servidor y de las herramientas podría obtener una compensación basándose en el uso, en el ahorro de costes al cliente o en cualquier otra variedad de esquemas comerciales.
Puesto que las herramientas están localizadas de manera central, la concesión de licencia de las herramientas se simplifica. Las licencias para las herramientas pueden concederse a empresas, a ciertos individuos dentro de una empresa o a los propios individuos. El acceso a las herramientas puede ser realizado utilizando técnicas de encriptación y/o protección con contraseña y puede estar condicionada al mantenimiento de una licencia válida. Puede ser deseable suministrar un periodo limitado de acceso libre de coste a la herramienta. En algunos casos, la cantidad de acceso libre de coste puede estar unido a la adquisición de controladores programables. Suministrar un servidor en modo local libre de coste durante un periodo limitado de tiempo puede, además, ser útil en la venta de licencias a largo plazo de servidores a clientes. Al usuario se le proporciona el servidor con un periodo limitado de prueba gratuito.
Como se muestra en la figura 21, una empresa puede elegir arrendar o ser propietario de su propio servidor. Para algunas empresas grandes manufactureras/de fabricación y/u otras entidades donde la seguridad es una preocupación importante, puede ser ventajoso limitar el acceso al servidor a los empleados de la empresa únicamente. Debido a que la herramienta de ingeniería reside en el servidor y no en cada PC de usuario, la gestión de versión, la actualización y otras tareas de mantenimiento del software son simplificadas. Es más, la herramienta de ingeniería va a funcionar independientemente del sistema operativo en los dispositivos de programación del usuario. Debido a que el servidor es accesible sólo para los empleados de la empresa, la información propietaria puede ser almacenada en el servidor y puede acceder a ella un equipo de programación que trabaja en localizaciones diferentes.
La ingeniería colaborativa es posible. Múltiples usuarios pueden acceder y desarrollar en conjunto el código de programación para uno o más controladores programables. Como se muestra en la figura 22, una pluralidad de usuarios puede acceder a un servidor. Una herramienta de ingeniería habilitada para la utilización en la Web (2200) se localiza en el servidor (50) y es capaz de ejecutarse en una aplicación de navegación en los dispositivos de cliente (30). El servidor puede contener una memoria para el almacenamiento de proyectos de ingeniería en una base de datos (2210), así como un administrador de configuración (2220). Los proyectos almacenados en la base de datos de proyecto (2210) pueden ser proyectos individuales o pueden estar relacionados. Normalmente, al usuario que creó un proyecto particular o una pieza de código se le otorgan derechos totales de lectura y escritura para ese proyecto. Como se muestra en la figura 22, un primer usuario (5000) puede acceder a un primer proyecto (2241). Al acceder al primer proyecto (2241), que normalmente es un documento que almacena código de programación en un formulario de legibilidad humana, se crea en el servidor (50) una copia activa (2250) del primer proyecto. Con la ayuda de la herramienta de ingeniería habilitada para la utilización en la Web (2200), el primer usuario (5000) puede modificar la copia activa del primer proyecto (2250). Otros usuarios (5001), (5002), (5003) del sistema pueden necesitar ver una copia del proyecto 1. Este es muy a menudo el caso cuando un segundo y tercer usuarios trabajan en proyectos relacionados. Puesto que una copia activa es un trabajo en proceso, es posible que el primer usuario (5000) nunca pueda guardar los cambios que el primer usuario (5000) está realizando sobre la copia activa, por lo que no sería ventajoso normalmente no otorgar al segundo y tercer usuarios derechos de lectura de la copia activa. Por el contrario, a menudo es preferible otorgar al segundo y tercer usuarios (5002), (5003) derechos de lectura para la copia archivada que reside en la base datos del proyecto. En algunas ejecuciones, puede ser ventajoso proporcionar un cuarto usuario (5001) con derechos tanto de lectura como de lectura-escritura sobre la copia activa. Esto puede resultar especialmente útil cuando el cuarto usuario (5001) es el representante de un servicio al cliente, un consultor o supervisor que supervisa a los usuarios. El acceso a las copias archivadas de los proyectos almacenados en la base de datos, así como el acceso a la copia activa, se controlan generalmente por un administrador de configuración. El creador de un proyecto otorga derechos a otros usuarios mediante el gestor de configuración (2220). A menudo, al menos un usuario distinto, como por ejemplo un supervisor o un administrador de IT, tiene la habilidad de otorgar derechos.
Como se representa en la figura 22, una tarea amplia de programación se divide en varios proyectos más pequeños. Cada proyecto se almacena como un documento en la base de datos de proyectos. Cada usuario es principalmente responsable de un proyecto diferente. El primer usuario (5000), por ejemplo, está a cargo del proyecto 1 (2241). Así, al primer usuario (5000), por medio del gestor de configuración, se le otorgan derechos de lectura y escritura sobre el primer proyecto (2241). Otros usuarios, como el segundo y el tercer usuarios (5002), (5003), pueden estar a cargo de proyectos diferentes o proyectores relacionados y, por tanto, se les otorgan derechos menores sobre el proyecto 1, tales como solamente derechos de lectura. Al segundo usuario (5002) se le ha asignado la tarea de crear el proyecto 2 (2242) y, por tanto, se le otorgan derechos totales sobre el proyecto 2, pero, a los usuarios 1 y 3 sólo se les dan derechos de lectura sobre una copia archivada del proyecto 2. Al usuario 3 se le ha asignado la tarea de crear el proyecto 3 (2243) y se le otorgan, por tanto, derechos de lectura-escritura sobre el proyecto 3, pero sólo derechos de lectura para las copias archivadas de los proyectos 1 y 2. Asimismo, al primer usuario (5000) se le otorgan sólo derechos de lectura sobre las copias archivadas de los proyectos 2 y 3. A un supervisor de proyecto, como el cuarto usuario (5001), se le pueden dar derechos de supervisión, lo que puede incluir el derecho de lectura y escritura de copias activas, así como de copias archivadas, el derecho de combinar varios proyectos (tanto las copias activas como las archivadas) en una pieza de código de programación, el derecho a compilar el código de programación y cualquier otro derecho necesario para supervisar un proyecto de programación.
La presente invención permite, por tanto, numerosos métodos para la programación colaborativa de controladores programables y la generación de datos de configuración para redes de entrada/salida y dispositivos, lo cual es normalmente parte del proceso de programación. Las figuras 26-27 representan algunos ejemplos de algunos de los muchos métodos de ingeniería colaborativa y técnicas posibilitadas por la presente invención. Mientras que los ejemplos específicos se muestran en estos dibujos, los pasos del método que están representados aquí están destinados a ser ilustrativos y no exhaustivos de los amplios y robustos métodos de ingeniería colaborativa posibilitados por la presente invención.
La presente invención proporciona el archivo idóneo del código de programación y de la gestión de versión. Un gestor de versión o sistema de gestión de versión puede ser incorporado al administrador de configuración o puede ser controlado por el administrador de configuración. Antes de que el nuevo código de programación compilado sea descargado a un controlador programable (bien directamente desde el servidor al controlador, o desde el servidor al controlador mediante el dispositivo de cliente), una copia del código ya existente es archivada en el servidor. El código de programación se archiva en un formulario de legibilidad humana antes de compilarlo. El código compilado y el código de legibilidad humana se pueden enlazar entre ellos de manera que se pueda acceder al código de legibilidad humana basándose en el código compilado (véase, por ejemplo, la figura 20).
Una herramienta de gestión de versión que reside en el servidor proporcionaría diversas ventajas y proporciona un nuevo modelo de negocio para proveedores de herramientas de ingeniería. Una de las muchas ventajas que ofrece es que un cliente puede buscar un cambio específico para un programa o puede comparar dos versiones de un programa. Esto es especialmente deseable en industrias reguladas por el Organismo para el Control de los Alimentos y los Medicamentos (FDA en sus siglas en inglés, Food and Drugs Administration). Por ejemplo, el FDA exige que se documenten todos los cambios en un programa PLC en una planta alimenticia. Una herramienta de gestión de versión puede proporcionar esta funcionalidad. En algunas ejecuciones, la herramienta de gestión de versión es parte de un gestor de configuración y reside en un servidor junto con una herramienta de ingeniería. En un escenario típico, un usuario realiza un cambio al programa de PLC (por ejemplo, versión 1.0), por ejemplo para aumentar la cantidad de azúcar en una mezcla. El programa modificado, junto con la documentación, se guarda como una nueva versión (por ejemplo, versión 1.1) en el servidor. Si en algún momento posterior en el tiempo se determina que el producto es demasiado dulce, un usuario subsiguiente puede corregirlo buscando los cambios del PLC que afectaron a la dulzura o a la cantidad de azúcar añadido al producto. El gestor de versión soporta preferiblemente esta funcionalidad. A menudo, no es posible volver a la versión original (por ejemplo, 1.0) porque ha habido cambios posteriores, pero el usuario puede crear una nueva versión realizando cambios a la versión existente que se está ejecutando en el PLC.
Además de las funciones de búsqueda que proporciona, la herramienta de gestión de versión puede también proporcionar funciones de comparación que permite a un usuario comparar una versión con otra para mostrar los cambios. La función de comparación puede funcionar en lenguajes de programación tanto basados en texto como en gráficos y preferentemente destaca los cambios.
Se puede poner a prueba el código de programación desarrollado en un servidor central. Como se muestra y se muestra en la figura 23, se accede con un dispositivo de cliente a un servidor que contiene una herramienta de ingeniería, paso (9900). La herramienta de ingeniería es accionada en el dispositivo de cliente, paso (9905), preferentemente en una aplicación de navegación en el dispositivo de cliente, y el código de programación es entonces creado en el servidor, paso (9910). El código de programación se puede poner a prueba ejecutando un software de simulación en el servidor, paso (9915). El software de simulación puede imitar un controlador programable real. El servidor se puede interconectar con un controlador programable de pruebas, paso (9920). Preferentemente, el controlador programable de pruebas se configura para poner a prueba el código de programación y/o los datos de configuración generados con la herramienta de ingeniería en el servidor. Después de poner a prueba el código de programación, éste puede ser descargado a un controlador programable real, paso (9925), el cual es identificado a menudo como controlador programable objetivo.
En la figura 24 se muestra un método para descargar el código generado por la presente invención. El código de programación y/o los datos de configuración son generados en un servidor, paso (9000). El código es entonces compilado, paso (9005). Después, es descargado en un dispositivo de cliente, paso (9010) y copiado en un dispositivo de almacenaje que está asociado al dispositivo de cliente, paso (9015). El dispositivo de almacenaje puede tener muchas formas y puede ser un dispositivo extraíble de almacenaje, tales como una unidad de disco o una unidad de memoria Flash. El dispositivo de memoria puede estar interconectado o estar acoplardo comunicativamente con un dispositivo electrónico, paso (9020). El código puede copiarse en el dispositivo electrónico, paso (9025). El código puede ser descargado entonces desde el dispositivo electrónico a un controlador programable objetivo, paso (9030).
Como se muestra en la figura 25, la presente invención también puede constar de un editor de configuración (9100) para generar código o datos para configurar redes de entrada/salida y dispositivos que residen en un servidor (9200). Un editor de configuración que es normalmente parte de la herramienta de ingeniería (9300) o parte de una serie de herramientas de ingeniería (9350). Aquellos que sean expertos en la materia, reconocerán que en muchos casos las herramientas de ingeniería descritas aquí pueden contener un editor de configuración, y la generación del código de programación puede constar de generación de datos de configuración. El editor de configuración puede tomar muchas formas, pero normalmente es gráfica y está adaptada preferiblemente para ser invocada por un dispositivo de cliente (9500) a través de una red (9600), como puede ser Internet. Un editor de configuración gráfico puede mostrar la topología de una red de entrada/salida y del dispositivo en la red. Los datos de configuración para redes de entrada/salida y dispositivos se descargan normalmente a un controlador programable (9700) en la red. En algunos casos, los datos se pueden descargar a dispositivos inteligentes en la red. Los datos de configuración constan a menudo de información como por ejemplo las tasas de baudio e información relativa a la asignación de entradas/salidas lógicas a físicas.
La presente invención, aunque descrita arriba en referencia a ejecuciones específicas, puede ser ejecutada de numerosas formas y no debería estar limitada por los ejemplos de ejecuciones descritos arriba, que son ilustrativos de la presente invención, pero no exhaustivos. Por ejemplo, aquellos que son expertos en la materia reconocerán también que, aunque los pasos del método de la presente invención son analizados arriba en un orden específico, a menudo se da el caso de que el orden de los pasos no es crítico y la invención se puede poner en práctica ejecutando los pasos en diferente orden. Por ejemplo, resulta a menudo irrelevante para la práctica de la presente invención si los pasos del método se ejecutan en un orden particular. Por ejemplo, no existe diferencia alguna si un cliente transmite un valor antes o después de descargar el código compilado y los datos de configuración a un PLC desde un servidor central.

Claims (14)

1. Un sistema que comprende un servidor (50), una red (35), al menos un dispositivo de cliente (30) que posee una aplicación de interfaz de red, en donde el servidor está en comunicación con al menos un dispositivo de cliente (30) a través de la red (35); una herramienta de ingeniería (77) que reside en el servidor (50) y que es accesible por al menos un dispositivo de cliente (30) a través de la red, en donde la herramienta de ingeniería funciona en la aplicación de interfaz de red en al menos un dispositivo de cliente (30); una memoria (58) asociada al servidor (50) y al menos un controlador programable (40); caracterizado porque el servidor (50) es un servidor central; porque la herramienta de ingeniería (77) es una herramienta para generar código de programación para controladores programables (40) empleando un lenguaje de programación; y porque el código de programación y los datos de configuración generados con la herramienta de ingeniería son almacenados en la memoria (58) asociada al servidor central y son descargados a un controlador programable objetivo (40).
2. Un sistema de acuerdo a la reivindicación 1, en donde el lenguaje de programación consta de un lenguaje de programación gráfico.
3. Un sistema de acuerdo a la reivindicación 2, en donde el lenguaje de programación consta de un lenguaje de programación Ladder (o diagrama de escalera).
4. Un sistema de acuerdo a la reivindicación 2, en donde el lenguaje de programación gráfico consta de un esquema de programación de bloque de funciones.
5. Un sistema de acuerdo a la reivindicación 2, en donde el lenguaje de programación gráfico consta de un esquema de programación de diagrama de flujo.
6. Un sistema de acuerdo a la reivindicación 1, en donde el lenguaje de programación consta de un lenguaje basado en texto.
7. Un sistema de acuerdo a la reivindicación 6, en donde el lenguaje de programación consta de un lenguaje de programación de lista de instrucción.
8. Un sistema de acuerdo a la reivindicación 6, en donde el lenguaje de programación consta de un lenguaje de texto estructurado.
9. Un sistema de acuerdo a la reivindicación 1, en donde la herramienta de ingeniería (77) está configurada para intercambiar información entre el servidor y el cliente en forma de documento XML.
10. Un sistema de acuerdo a la reivindicación 1, en donde la aplicación de interfaz de red consta de un navegador Web y en donde el sistema además consta de un compilador que reside en el servidor para la compilación del código de programación.
11. Un sistema de acuerdo a la reivindicación 1, en donde el dispositivo de cliente es una PDA.
12. Un sistema de acuerdo a la reivindicación 1, en donde el dispositivo de cliente es un ordenador personal.
13. Un sistema de acuerdo a la reivindicación1, en donde el dispositivo de cliente es un teléfono móvil habilitado para la utilización en la Web.
14. Un método para la creación de código de programación de controlador programable en un sistema que consta de un servidor (50), una red (35), al menos un dispositivo de cliente (30); una herramienta de ingeniería (77) que reside en el servidor y es accesible por al menos un dispositivo de cliente (30), teniendo el dispositivo una aplicación de interfaz de red; un sistema que, además, consta de una memoria (58) y al menos un controlador programable (40); un método que consta de acceso a la herramienta de ingeniería con al menos un dispositivo de cliente; ejecutando la herramienta de ingeniería (77) en una aplicación de interfaz de red instalada en al menos un dispositivo de cliente; en donde el servidor está en comunicación con al menos un dispositivo de cliente (30) a través de la red; y en donde la memoria (58) está asociada al servidor; caracterizado porque el servidor (50) es un servidor central, y porque la herramienta de ingeniería (77) es una herramienta para generar código de programación para al menos un controlador programable (40) empleando un lenguaje de programación; un método que, además, consta de la generación de código de programación y datos de configuración para los controladores programables que utilizan la herramienta de ingeniería; almacenando el código de programación y los datos de configuración en la memoria (58) asociada al servidor central; y descargando el código de programación a un controlador programable objetivo (40).
ES02078612T 2001-09-24 2002-09-03 Metodo y aparato para la programacion de controladores programables y para generar datos de configuracion desde un servidor centralizado. Expired - Lifetime ES2315337T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/961,931 US8086664B2 (en) 2001-09-24 2001-09-24 Method and apparatus for programming programmable controllers and generating configuration data from a centralized server
US961931 2001-09-24

Publications (1)

Publication Number Publication Date
ES2315337T3 true ES2315337T3 (es) 2009-04-01

Family

ID=25505194

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02078612T Expired - Lifetime ES2315337T3 (es) 2001-09-24 2002-09-03 Metodo y aparato para la programacion de controladores programables y para generar datos de configuracion desde un servidor centralizado.

Country Status (6)

Country Link
US (2) US8086664B2 (es)
EP (1) EP1296232B1 (es)
CN (1) CN100380359C (es)
AT (1) ATE416419T1 (es)
DE (1) DE60230098D1 (es)
ES (1) ES2315337T3 (es)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257620B2 (en) * 2001-09-24 2007-08-14 Siemens Energy & Automation, Inc. Method for providing engineering tool services
US6907302B2 (en) * 2001-10-12 2005-06-14 Kar-Tech, Inc. PDA monitoring and diagnostic system for industrial control
US6865425B2 (en) * 2002-01-07 2005-03-08 Siemens Energy & Automation, Inc. State machine for a pulse output function
CN100392587C (zh) * 2002-06-03 2008-06-04 西门子能量及自动化公司 用于编程智能模块的向导
JP2004102373A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd アクセス管理サーバ、方法及びプログラム
DE10241953B4 (de) * 2002-09-10 2005-05-04 Siemens Ag Verfahren zum Übertragen von Meldungen industrieller Steuerungen über Internet-Technologien an vordefinierte Empfänger
DE10251523A1 (de) * 2002-11-04 2004-05-19 Siemens Ag System und Verfahren zur Bereitstellung von Daten und Diensten für Geräte, sowie Gerät, welches die bereitgestellten Daten und Dienste verwendet
US7805716B2 (en) * 2002-12-10 2010-09-28 Siemens Aktiengesellschaft Method for executing a first software program, developed for a stored-program controller, on a computer
US6963814B2 (en) * 2002-12-23 2005-11-08 Siemens Energy & Automation, Inc. Systems, devices, and methods for acceptance testing a fieldbus component configuration program
US8949382B2 (en) * 2003-02-26 2015-02-03 Siemens Industry, Inc. Systems, devices, and methods for network wizards
CN1324511C (zh) * 2003-05-23 2007-07-04 联想(北京)有限公司 基于数据库和可扩展标记语言的动态文件索引设备和方法
DE10327614A1 (de) 2003-06-18 2005-01-20 Siemens Ag Vorrichtung und Verfahren zur Programmierung und/oder Ausführung von Programmen für industrielle Automatisierungssysteme
EP1678564A1 (en) * 2003-09-03 2006-07-12 Unitronics (1989) (R"G) Ltd. System and method for implementing logic control in programmable controllers in distributed control systems
EP1695272A4 (en) * 2003-11-05 2009-05-06 Shoplogix Inc AUTONOMOUS SYSTEM AND METHOD OF TESTING MACHINES
US7110918B2 (en) 2003-11-05 2006-09-19 Shoplogix Inc. Self-contained system and method for remotely monitoring machines
US20050114435A1 (en) * 2003-11-21 2005-05-26 Microsoft Corporation Web-based deployment of context sensitive navigational elements within a user interface
US20050229004A1 (en) 2004-03-31 2005-10-13 Callaghan David M Digital rights management system and method
US7779404B2 (en) 2004-06-10 2010-08-17 Cisco Technology, Inc. Managing network device configuration using versioning and partitioning
CN100394724C (zh) * 2004-07-09 2008-06-11 英华达(南京)科技有限公司 利用浏览器对可携式电子装置的界面进行编辑的方法
US9537768B2 (en) 2004-09-30 2017-01-03 Rockwell Automation Technologies, Inc. System that provides for removal of middleware in an industrial automation environment
CA2504030A1 (en) * 2005-04-13 2006-10-13 Canimex Inc. Special quiet anchor for spring fitting in counterbalancing door, and door assembly including the same
EE05043B1 (et) * 2005-06-21 2008-06-16 Mirovar O� Meetod elektriliste ja elektrooniliste seadmete, süsteemi sisaldava objekti ning selle osade haldamiseks
US8156232B2 (en) * 2005-09-12 2012-04-10 Rockwell Automation Technologies, Inc. Network communications in an industrial automation environment
DE102006019542A1 (de) * 2006-04-27 2007-10-31 Krauss Maffei Gmbh Verfahren zum Betreiben einer Fertigungsmaschine, insbesondere einer Spritzgussmaschine
EP1860548A1 (de) * 2006-05-26 2007-11-28 Siemens Aktiengesellschaft Verfahren zur Versionsverwaltung von Automatisierungsdaten eines Kraftwerk-Automatisierungssystems
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
US9217998B2 (en) 2006-09-29 2015-12-22 Rockwell Automation Technologies, Inc. Management and development of an industrial environment
US8776092B2 (en) 2006-09-29 2014-07-08 Rockwell Automation Technologies, Inc. Multiple interface support
US9261877B2 (en) * 2006-09-29 2016-02-16 Rockwell Automation Technologies, Inc. Multiple machine interface
US9058032B2 (en) * 2006-09-29 2015-06-16 Rockwell Automation Technologies, Inc. Hosting requirements for services
US20090089747A1 (en) * 2007-09-07 2009-04-02 Verizon Data Services Inc. Method and system for managing configuration information
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
CN101840216B (zh) * 2009-03-17 2013-09-18 鸿富锦精密工业(深圳)有限公司 可编程控制器的参数设定系统及方法
WO2012022378A1 (de) * 2010-08-18 2012-02-23 Siemens Aktiengesellschaft Verfahren und anordnung zur projektierung und/oder programmierung eines projektes einer industriellen automatisierungsanordnung
US8626827B1 (en) * 2011-03-25 2014-01-07 Amazon Technologies, Inc. Programmatically simulating system conditions
EP2527936B1 (de) * 2011-05-26 2016-05-18 Siemens Aktiengesellschaft Verfahren zum Zugriff auf ein Automatisierungssystem sowie nach dem Verfahren arbeitendes System
EP2538289A1 (de) * 2011-06-22 2012-12-26 Siemens Aktiengesellschaft Verschlüsselung eines Automatisierungsprogramms
US9772617B2 (en) * 2011-06-30 2017-09-26 General Electric Company Systems and methods for function block instantiation
US9551986B2 (en) 2011-12-06 2017-01-24 Siemens Aktiengesellschaft SCADA system real-time data and event management on a PC card
WO2013103381A1 (en) 2012-01-06 2013-07-11 Ge Intelligent Platforms, Inc. Method and apparatus for network-based testing
US9396504B2 (en) * 2012-04-18 2016-07-19 Abb Research Ltd. Centralized control center for electrical network computational services
US20140056427A1 (en) * 2012-08-21 2014-02-27 Ge Intelligent Platforms, Inc. Apparatus and method for providing secure communications in a network
US20140163739A1 (en) * 2012-12-07 2014-06-12 Flow Data, Inc. Dynamically-configurable local operator interface for upstream oil and gas wellhead control and monitoring
CN103914018A (zh) * 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助系统及方法
US9130818B2 (en) 2013-03-11 2015-09-08 Anue Systems, Inc. Unified systems of network tool optimizers and related methods
US9600792B2 (en) * 2013-04-11 2017-03-21 Siemens Aktiengesellschaft Method and apparatus for generating an engineering workflow
DK3011444T3 (en) 2013-06-18 2018-04-16 Ciambella Ltd METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
DE102013108478A1 (de) * 2013-08-06 2015-02-12 Endress+Hauser Process Solutions Ag Verfahren zur Erweiterung einer eingebetteten Softwarekomponente eines Feldgerätes
DE102013218971A1 (de) * 2013-09-20 2015-03-26 Vega Grieshaber Kg Kundenspezifische Konfiguration und Parametrierung von Füllstandmessgeräten beim Bestellvorgang
WO2015132971A1 (ja) * 2014-03-07 2015-09-11 三菱電機株式会社 プログラミング装置
EP3051369A1 (de) * 2015-01-27 2016-08-03 Siemens Aktiengesellschaft Verfahren zum Zugriff auf ein Automatisierungssystem mit einem Webserver mittels eines Webclients eines Geräts
US10606562B2 (en) * 2015-06-04 2020-03-31 Siemens Aktiengesellschaft Method and system for generating PLC code with a connectivity model
CN108604186B (zh) 2015-12-21 2021-11-16 西安姆贝拉有限公司 用于创建和管理基于控制器的远程解决方案的方法和装置
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
CN107728561A (zh) * 2016-08-11 2018-02-23 苏州汉扬精密电子有限公司 Plc编程系统及方法
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
DE102016122324A1 (de) * 2016-11-21 2018-05-24 Weidmüller Interface GmbH & Co. KG Steuerung für eine industrielle Automatisierungsanlage und Verfahren zum Programmieren und Betreiben einer derartigen Steuerung
WO2018170079A1 (en) 2017-03-14 2018-09-20 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
US11762364B2 (en) * 2017-08-18 2023-09-19 Valentin Lvovich KIM Automated programming of a programmable-logic controller (PLC) of a microcontroller using an expert system
CN108132651A (zh) * 2017-09-09 2018-06-08 浙江亚太机电股份有限公司 分布式数控机床联网管理系统
EP3717976A4 (en) * 2017-12-01 2021-08-04 Ciambella Ltd. METHOD AND DEVICE FOR GENERATING AND MANAGING INTELLIGENT SOLUTIONS FOR MEMORY PROGRAMMABLE CONTROLS (PLC)
EP3537239A1 (de) * 2018-03-06 2019-09-11 Siemens Aktiengesellschaft Verfahren zum betreiben einer werkzeugmaschine mittels anpassung eines precompilierten datenmodells
WO2020041820A1 (en) * 2018-08-28 2020-03-05 Peng Choo Improved control and development web platform
EP3734379A1 (en) * 2019-04-30 2020-11-04 Siemens Aktiengesellschaft Method and system for generating control programs in a cloud computing environment
US11048483B2 (en) 2019-09-24 2021-06-29 Rockwell Automation Technologies, Inc. Industrial programming development with an extensible integrated development environment (IDE) platform
US10942710B1 (en) 2019-09-24 2021-03-09 Rockwell Automation Technologies, Inc. Industrial automation domain-specific language programming paradigm
US11392112B2 (en) 2019-09-26 2022-07-19 Rockwell Automation Technologies, Inc. Virtual design environment
US11733687B2 (en) 2019-09-26 2023-08-22 Rockwell Automation Technologies, Inc. Collaboration tools
US11042362B2 (en) 2019-09-26 2021-06-22 Rockwell Automation Technologies, Inc. Industrial programming development with a trained analytic model
US11308447B2 (en) 2020-04-02 2022-04-19 Rockwell Automation Technologies, Inc. Cloud-based collaborative industrial automation design environment
JP7115506B2 (ja) 2020-04-27 2022-08-09 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
JP7115507B2 (ja) 2020-04-27 2022-08-09 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
JP2021174314A (ja) 2020-04-27 2021-11-01 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
CN111522291A (zh) * 2020-04-28 2020-08-11 同方泰德国际科技(北京)有限公司 一种可编程控制方法及可编程控制器
WO2021249795A1 (en) * 2020-06-12 2021-12-16 Tetra Laval Holdings & Finance S.A. A method and an apparatus for enabling access to process data of a food production plant

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2612309B1 (fr) * 1987-03-11 1989-07-07 Spie Trindel Procede pour valider le fonctionnement d'un automatisme et dispositif pour sa mise en oeuvre
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5835601A (en) * 1994-03-15 1998-11-10 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5508909A (en) * 1994-04-26 1996-04-16 Patriot Sensors And Controls Method and systems for use with an industrial controller
US5659705A (en) * 1994-12-29 1997-08-19 Siemens Energy & Automation, Inc. Serial access memory cartridge for programmable logic controller
US6289396B1 (en) * 1995-11-21 2001-09-11 Diamond Multimedia Systems, Inc. Dynamic programmable mode switching device driver architecture
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
DE59700413D1 (de) * 1996-01-17 1999-10-14 Siemens Ag Automatisierungsgerät
US6151609A (en) 1996-08-16 2000-11-21 Electronic Data Systems Corporation Remote editor system
US5907705A (en) * 1996-10-31 1999-05-25 Sun Microsystems, Inc. Computer implemented request to integrate (RTI) system for managing change control in software release stream
US5897642A (en) 1997-07-14 1999-04-27 Microsoft Corporation Method and system for integrating an object-based application with a version control system
US6802053B1 (en) 1997-08-18 2004-10-05 National Instruments Corporation Graphical programming system with distributed block diagram execution and front panel display
US20020091784A1 (en) * 1997-09-10 2002-07-11 Baker Richard A. Web interface to a device and an electrical network control system
US5909689A (en) 1997-09-18 1999-06-01 Sony Corporation Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created
TW436709B (en) * 1997-11-17 2001-05-28 Ibm Method and apparatus for interacting with hardware devices remotely
US6243857B1 (en) * 1998-02-17 2001-06-05 Nemasoft, Inc. Windows-based flowcharting and code generation system
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6201996B1 (en) * 1998-05-29 2001-03-13 Control Technology Corporationa Object-oriented programmable industrial controller with distributed interface architecture
US6243706B1 (en) 1998-07-24 2001-06-05 Avid Technology, Inc. System and method for managing the creation and production of computer generated works
EP1044400B1 (en) 1998-09-17 2006-04-26 Koninklijke Philips Electronics N.V. Internet-based service for updating a programmable control device
US6369836B1 (en) * 1998-12-23 2002-04-09 Triconex Cause effect diagram program
US6853867B1 (en) * 1998-12-30 2005-02-08 Schneider Automation Inc. Interface to a programmable logic controller
LU90344B1 (fr) * 1999-02-03 2000-08-04 S G F P S A Syst-me de gestion pour un parc de machines-outils - commande num-rique
EP1196838B1 (en) * 1999-03-30 2006-05-31 Siemens Energy & Automation, Inc. Programmable logic controller method, system and apparatus
US6944584B1 (en) * 1999-04-16 2005-09-13 Brooks Automation, Inc. System and method for control and simulation
FI111760B (fi) 1999-04-16 2003-09-15 Metso Automation Oy Kenttälaitteen langaton ohjaus teollisuusprosessissa
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
AU6615600A (en) * 1999-07-29 2001-02-19 Foxboro Company, The Methods and apparatus for object-based process control
AT501741B1 (de) * 1999-08-16 2006-11-15 Fronius Int Gmbh Schweissgerät mit kommunikationsschnittstelle und verfahren zum betreiben des schweissgerätes
US7159183B1 (en) * 1999-08-19 2007-01-02 National Instruments Corporation System and method for programmatically creating a graphical program
US6850973B1 (en) * 1999-09-29 2005-02-01 Fisher-Rosemount Systems, Inc. Downloadable code in a distributed process control system
US6518980B1 (en) 1999-11-19 2003-02-11 Fanuc Robotics North America, Inc. Method and system for allowing a programmable controller to communicate with a remote computer
US6560513B2 (en) * 1999-11-19 2003-05-06 Fanuc Robotics North America Robotic system with teach pendant
EP1117034B1 (en) * 2000-01-12 2003-05-14 Fileants AG Method and system for building up an online service platform and computer program product
DE60113030T2 (de) 2000-03-13 2006-07-13 Schneider Automation Inc., North Andover System zur programmierung einer sps mit einem web-browser
JP2003529147A (ja) * 2000-03-24 2003-09-30 シーメンス エナジー アンド オートメーション インコーポレイテッド 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信
US6778528B1 (en) * 2000-05-17 2004-08-17 Cisco Technology, Inc. Dial-out with dynamic IP address assignment
US6587739B1 (en) 2000-09-29 2003-07-01 Sunbeam Products, Inc. Appliance communication and control system and appliances for use in same
US6965802B2 (en) * 2000-12-06 2005-11-15 Ge Fanuc Automation North America, Inc. Method for using portable wireless devices to monitor industrial controllers

Also Published As

Publication number Publication date
EP1296232B1 (en) 2008-12-03
DE60230098D1 (de) 2009-01-15
CN100380359C (zh) 2008-04-09
US20050132064A1 (en) 2005-06-16
US8086664B2 (en) 2011-12-27
US20030061274A1 (en) 2003-03-27
US8086666B2 (en) 2011-12-27
ATE416419T1 (de) 2008-12-15
EP1296232A3 (en) 2003-08-06
CN1409233A (zh) 2003-04-09
EP1296232A2 (en) 2003-03-26

Similar Documents

Publication Publication Date Title
ES2315337T3 (es) Metodo y aparato para la programacion de controladores programables y para generar datos de configuracion desde un servidor centralizado.
US7257620B2 (en) Method for providing engineering tool services
CN112559315B (zh) 用于自动化对象的测试框架
US20030061349A1 (en) Method and system for collaboratively developing programming code for programmable controllers
US20230259335A1 (en) EXTENSIBLE IDE PLATFORM WITH OPEN APIs
US7912560B2 (en) Module and controller operation for industrial control systems
CN112631210A (zh) 用于开发工业控制程序的系统、编程方法及计算机介质
US20080082577A1 (en) Module classification and searching for industrial control systems
CN114968188A (zh) 用于开发工业应用的系统、方法及非暂态计算机可读介质
JP6761441B2 (ja) ソフトウェアアプリケーションプログラミングインタフェース(api)を用いた自動テスト機能のユーザによる制御
CN112558555A (zh) 维护和调试
CN115840421A (zh) 开发工业控制编程的系统、对工业系统编程的方法和介质
CN115877797A (zh) 工业自动化项目库交叉共享
CN115113851A (zh) 系统模型智能对象配置
CN115115325A (zh) 来自工业自动化开发环境的通知
US20230046732A1 (en) Industrial automation smart object parent/child data collection propagation
Bregulla et al. Model of a Production Stand Used for Digital Factory Purposes
CN115079644A (zh) 用于开发工业应用的系统、方法和计算机可读介质