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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13055—Place cursor, enter symbol, move cursor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13144—GUI graphical user interface, icon, function bloc editor, OI operator interface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15038—Internet, tcp-ip, web server see under S05B219-40
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31156—Network structure, internet
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31422—Upload, download programs, parameters from, to station to, from server
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33148—CLS client server architecture, client consumes, server provides services
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total 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.
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.
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.
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.
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.
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).
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)
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)
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 |
-
2001
- 2001-09-24 US US09/961,931 patent/US8086664B2/en not_active Expired - Fee Related
-
2002
- 2002-09-03 ES ES02078612T patent/ES2315337T3/es not_active Expired - Lifetime
- 2002-09-03 AT AT02078612T patent/ATE416419T1/de not_active IP Right Cessation
- 2002-09-03 EP EP02078612A patent/EP1296232B1/en not_active Expired - Lifetime
- 2002-09-03 DE DE60230098T patent/DE60230098D1/de not_active Expired - Lifetime
- 2002-09-24 CN CNB02132350XA patent/CN100380359C/zh not_active Expired - Lifetime
-
2005
- 2005-01-31 US US11/047,057 patent/US8086666B2/en not_active Expired - Fee Related
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) | 用于开发工业应用的系统、方法和计算机可读介质 |