ES2309130T3 - Sistema de control de acceso exclusivo de programas de control a los recursos del sistema. - Google Patents
Sistema de control de acceso exclusivo de programas de control a los recursos del sistema. Download PDFInfo
- Publication number
- ES2309130T3 ES2309130T3 ES02025293T ES02025293T ES2309130T3 ES 2309130 T3 ES2309130 T3 ES 2309130T3 ES 02025293 T ES02025293 T ES 02025293T ES 02025293 T ES02025293 T ES 02025293T ES 2309130 T3 ES2309130 T3 ES 2309130T3
- Authority
- ES
- Spain
- Prior art keywords
- resource
- control
- resources
- program
- programs
- 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
- 238000004891 communication Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 43
- 230000000903 blocking effect Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 238000004886 process control Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 description 22
- 238000005481 NMR spectroscopy Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 239000000565 sealant Substances 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000008571 general function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000003466 welding Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000005488 sandblasting Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 210000003954 umbilical cord Anatomy 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- 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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
-
- 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/32—Operator till task planning
- G05B2219/32239—Avoid deadlock, lockup
-
- 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/32—Operator till task planning
- G05B2219/32328—Dynamic scheduling, resource allocation, multi agent negotiation
-
- 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/35—Nc in input of data, input till input file format
- G05B2219/35283—Plausibility check for function, program, inhibit dangerous, unallowed program
-
- 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/39—Robotics, robotics to robotics hand
- G05B2219/39135—For multiple manipulators operating at same time, avoid collision
-
- 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]
-
- 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/80—Management or planning
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Automation & Control Theory (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Multi Processors (AREA)
- Programmable Controllers (AREA)
- Computer And Data Communications (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
Sistema que comprende: una pluralidad de nodos accesibles que representan los ubicaciones; un sistema de comunicaciones que conecta los nodos accesibles y que transmite las comunicaciones entre los nodos accesibles. una pluralidad de máquinas o procesos, estando situados las máquinas o procesos en al menos uno de los nodos accesibles; una pluralidad de programas de control que usan los recursos e incluyen una pluralidad de programas de control de máquinas o procesos, controlando cada programa de control de máquinas o procesos al menos una máquina o proceso; y caracterizado por una pluralidad de gestores de recursos, estando situados los gestores de recursos en una pluralidad de nodos accesibles, comunicándose cada gestor de recursos sobre el sistema de comunicaciones con al menos otro gestor de recursos, y en el que la pluralidad de gestores de recursos arbitra qué programa de control de entre la pluralidad de programas de control recibe el uso exclusivo de al menos un recurso durante la ejecución del programa de control, siendo el al menos un recurso un sitio de trabajo físico que es compartido, al menos parcialmente, por al menos dos máquinas.
Description
Sistema de control de acceso exclusivo de
programas de control a los recursos del sistema.
La presente invención se refiere a sistemas que
controlan máquinas o procesos que comparten recursos comunes y más
particularmente, a un sistema que controla máquinas o procesos de
manera que una máquina o programa de control de máquinas o procesos
recibe el uso exclusivo en cada momento de al menos un recurso.
La Figura 1 muestra un mecanismo de interbloqueo
de la técnica anterior usado en aplicaciones robóticas y control de
otras máquinas tradicionales. Dos robots, A y B, por ejemplo, están
interconectados no directamente, sino vía un controlador lógico
programable (PLC). La lógica de interbloqueo real está en el
interior del PLC, y los dos robots usan E/S discretas para
comunicarse con el PLC.
Cuando el robot A desea adquirir el recurso
protegido (en este ejemplo, el recurso es un espacio de trabajo
compartido), activa la solicitud A. El robot B hace lo mismo. Sin
embargo, el PLC solo permite la activación de uno de las líneas de
permiso. Un robot puede proceder mientras que el otro espera que se
active su permiso. De esta manera, presumiblemente no hay
colisiones entre los dos robots.
Sin embargo, este mecanismo tiene varias
desventajas en la práctica actual:
- 1)
- el tiempo de barrido del PLC causa problemas de temporización. Cuando cualquiera de las partes usa un recurso, entonces su línea de solicitud se desactiva (OUT Request X = FALSE) al final de la sección de programa, la línea de permiso para ese robot no se desactiva inmediatamente. Se desactivará después del siguiente barrido lógico del PLC. Si el mismo programa vuelve a retomar el recurso antes de que la línea de solicitud se desactive, el programa continuará pensando que el recurso está disponible. Tras el retraso del barrido, el PLC permitirá el control a la parte opuesta, y ambas partes asumirán el recurso simultáneamente. Si, por ejemplo, ese recurso es un sitio de trabajo compartido los dos robots colisionarán en ese sitio de trabajo. Típicamente, este problema se resuelve con retrasos introducidos en los programas de los robots, haciéndolo ineficientes.
- 2)
- Solicitud y Espera no son atómicos. El problema real en el apartado 1 anterior es que con una comunicación de E/S simple con el PLC, la operación de solicitud y la espera para la operación no son atómicos (indivisibles). De hecho la espera puede volver como resultado de una solicitud previa, no para la solicitud actual. El concepto de un objeto mutex (exclusión mutua) es bien conocido en informática y bien conocido en la programación de ordenadores. Usando dicho mecanismo, un programa típicamente solicita un recurso, y el árbitro para el mutex no vuelve de la solicitud hasta que el recurso está disponible. Usando una llamada de función tanto para la solicitud de recurso como para la devolver la propiedad del recurso, estas operaciones son indivisibles desde el punto de vista del programa. En este caso el PLC implementa un mutex apropiado. Sin embargo, los dos controladores de robot se comunican con el PLC vía bits de E/S simples, y se destruye la naturaleza atómica de las operaciones mutex.
- 3)
- Solo dos programas pueden compartir un recurso. La técnica de interbloqueo descrita aquí y usada comúnmente en la industria solo permite que dos programas compartan el recurso. Si más de dos programas necesitan compartir el recurso, entonces debe usarse una lógica PLC más complicada para ese caso especial.
- 4)
- Detección de bloqueo mutuo. Cuando múltiples programas comparten múltiples recursos, es posible que dos o más programas terminen en un bloqueo mutuo, en el que cada programa tiene la propiedad de un recurso mientras que necesita un recurso que es propiedad del otro programa. La técnica de interbloqueo con E/S de PLC típicamente usada en la industria no proporciona una manera para detectar esta situación de bloqueo mutuo y frecuentemente se necesita un considerable tiempo de depuración para encontrar el problema.
- 5)
- Prevención de bloqueos mutuos. Son técnicas bien conocidas de la informática tanto para detectar como para ayudar a prevenir bloqueos mutuos. Sin embargo, la técnica de interbloqueo con E/S de PLC no puede implementar estas técnicas. Los sistemas operativos de los ordenadores proporcionan varios mecanismos mutex para múltiples programas que se ejecutan en un único ordenador. En sistemas multiprocesadores, el sistema operativo para el sistema multiprocesador proporciona algunos mecanismos mutex para compartir recursos entre programas en el sistema. Sin embargo, no existe un sistema que prevea un mecanismo de interbloqueo fiable que resuelva todos los problemas expuestos anteriormente para programas de control que se ejecutan en controladores separados conectados solo por una red de comunicaciones estándar y con sistema operativos potencialmente diferentes en los controles separados.
La Patente US nº 6.212.444 titulada "Method of
avoiding interference of industrial robot" describe un
procedimiento basado en la distancia para evitar la colisión de un
robot con otro robot o aparato colaborador. Cada robot o
dispositivo detecta su propia entrada en una región geométrica
definida de manera común bien por comando o bien por interpolación
a lo largo de un camino. Cuando entra a una región, cada robot o
aparato envía una señal para prevenir la entrada del otro, causando
que se pare y que espere.
El procedimiento de la Patente US nº 6.212.444
tiene desventajas, algunas comunes a la técnica anterior de la
Figura 1 expuesta anteriormente:
- 1)
- Las señales enviadas entre el robot y el aparato colaborador no implementan un interbloqueo mutuamente excluyente. A pesar de que se evita una colisión, no se evita un potencial bloqueo mutuo. Este tipo de bloqueo mutuo es posible debido a que no hay un árbitro para asignar la propiedad del recurso compartido. De esta manera, cada aparato puede ser detenido por el otro, y cada uno esperará para siempre a que el otro proceda.
- 2)
- El procedimiento se basa sólo en la distancia de las máquinas. El procedimiento no puede ser usado para compartir recursos arbitrarios.
- 3)
- No hay una detección de bloqueos mutuos para un mecanismo de prevención.
\vskip1.000000\baselineskip
EP 0.433.522 A1 describe un sistema robótico en
el que los dispositivos robot son montados a partir de un
inventario de elementos en respuesta a una solicitud de trabajo. Los
dispositivos robóticos incluyen robots que incorporan motores
lineales bidimensionales que pueden moverse a lo largo de una
platina y acoplados a varias fuentes de potencia a través de
cordones umbilicales extensibles y flexibles. Los dispositivos
robóticos pueden conectarse selectivamente con manipuladores para
soportar las piezas a montar y/o realizar operaciones sobre dichas
partes y/o elementos a los que dichas partes son montadas. Los
dispositivos son montados automáticamente seleccionando los
elementos que pueden realizar las tareas necesarias para completar
la solicitud de trabajo así como seleccionando aquellos elementos
que resultan en la optimización del tiempo de montaje y eviten
colisiones y enmarañamientos de cables al desplazarse a lo largo de
los caminos atravesados por los dispositivos robóticos durante su
montaje. Una pluralidad de dispositivos robóticos montados realiza
las tareas asociadas con la solicitud de trabajo bajo el control de
un sistema electrónico central permitiendo operaciones simultáneas
mientras que previene las colisiones y enmarañamientos de cables. El
montaje, desmontaje de los dispositivos robóticos, y las tareas de
trabajo en base a solicitudes de trabajo pueden realizarse
simultáneamente en cualquier combinación.
US 5.204.942 describe un sistema de control de
robots para controlar secuencialmente un conjunto de robots
industriales para la operación en colaboración coordinada según un
único programa de control general. El sistema de control de robots
comprende una única unidad de almacenamiento que almacena un único
programa de control general que comprende las instrucciones de
movimiento para el conjunto de robots industriales, una única
unidad de lectura/compilación para leer separadamente las
instrucciones de movimiento desde la unidad de almacenamiento y
extraer las instrucciones de movimiento para cada robot industrial,
y una pluralidad de unidades accionadoras que accionan
respectivamente los correspondientes robots industriales según las
instrucciones de movimiento. El único programa de control general
facilita secuencialmente las instrucciones de movimiento coordinado
para controlar el conjunto de robots industriales de manera que los
robots industriales no interferirán entre sí durante la operación
en colaboración, encontrando errores en las instrucciones, y
modificando el programa de control general para hacer frente a los
cambios en el proceso controlado por el sistema de control de
robots.
US 5.825.981 describe un sistema de robots para
realizar una tarea prescrita operando una pluralidad de robots
hardware, que comprende: un ordenador en el que se introducen datos
iniciales que indican una tarea objetivo; un robot software, por el
que la pluralidad de robots hardware son operados según la tarea
objetivo, mediante la introducción de los datos iniciales a por lo
menos un robot hardware; y una red de comunicaciones por la que el
ordenador y la pluralidad de robots hardware están conectados de
manera que la comunicación es posible entre ellos; y comunicándose
con los robots hardware vía la red de comunicaciones, el ordenador
comprende: medios de selección para seleccionar una pluralidad de
robots hardware que son capaces de implementar en colaboración la
tarea objetivo indicada por los datos iniciales y que no están
implicados en ninguna tarea basada en otros datos iniciales; medios
generadores de robots software para crear un robot software que
comprende la pluralidad seleccionada de robots hardware; y medios
de retirada para retirar los datos iniciales del robot o robots
hardware a los que se han introducido los datos iniciales, cuando la
pluralidad de robots hardware han sido operados por el robot
software generado y han completado la tarea objetivo.
El documento Lin et al., AN
AGENT-BASED FLEXIBLE ROUTING MANUFACTURING CONTROL
SIMULATION SYSTEM, Proceedings of the 1994 Winter Simulation
Conference, p. 970-977 propone un sistema de
simulación de fabricación basado en agentes autónomos y un
mecanismo de precios dinámicos. Diferentes agentes tales como
agentes software, agentes de partes y agentes de recursos negocian
y regatean en base a una moneda ficticia para realizar las tareas
de una manera optimizada negociando un acuerdo.
La presente invención proporciona, en un sistema
de máquinas o procesos coordinados, una distribución asíncrona de
diversos recursos entre programas de control y programas de control
de máquinas o procesos, tales como, aunque sin limitarse a, sitios
de trabajo comunes a los robots. La distribución se coordina
teniendo gestores de recursos en el sistema que se comunican
directamente entre sí para solicitar y ceder recursos a un programa
de control.
Además, el gestor de recursos identifica un
potencial bloqueo mutuo de los recursos compartidos por múltiples
programas haciendo que cada programa del conjunto de múltiples
programas adquiera conjuntos de recursos en un orden fijado. Cuando
el programa de control ha finalizado con los recursos, los recursos
son liberados para estar disponibles para otros programas. La
escritura de programas de control que siempre adquieren recursos en
el mismo orden previene totalmente el bloqueo mutuo.
Un sistema según la invención incluye una
pluralidad de ubicaciones direccionables en el sistema, un sistema
de comunicaciones que conecta las ubicaciones direccionables que
transmite las comunicaciones entre las ubicaciones direccionables,
una pluralidad de máquinas o procesos, estando las máquinas o
procesos situados en al menos uno de las ubicaciones
direccionables, una pluralidad de programas de control que usan
recursos incluyendo una pluralidad de programas de control de
máquinas o procesos, en el que cada programa de control de máquinas
o procesos controla al menos una máquina o proceso; y una pluralidad
de gestores de recursos, estando situados los gestores de recursos
en una pluralidad de ubicaciones direccionables, comunicándose cada
gestor de recursos sobre el sistema de comunicaciones con al menos
otro gestor de recursos, y en el que la pluralidad de gestores de
recursos arbitran qué programa de control de entre la pluralidad de
programas de control consigue el uso exclusivo de al menos un
recurso durante la ejecución del programa de control, siendo el al
menos un recurso un sitio de trabajo físico que es compartido, al
menos en parte, por al menos dos máquinas.
El al menos un recurso puede ser el control de
una función entrada/salida compartida entre las máquinas. El al
menos un recurso puede ser el transporte de los artículos procesados
por las máquinas. El al menos un recurso puede ser el control del
intercambio de las herramientas usadas por las máquinas. El al menos
un recurso puede ser el control del procesamiento realizado en las
estaciones procesadoras en un proceso de fabricación. El al menos
un recurso puede ser el uso de un sistema detector. El programa de
control puede ser ejecutado por un ordenador situado en una
ubicación direccionable en el sistema. El ordenador puede comprender
un ordenador industrial de propósito general, un ordenador
personal, un controlador de máquinas o un controlador de lógica
programable.
Al menos un gestor de recursos puede ser
ejecutado por un ordenador situado en una ubicación direccionable
en el sistema y el ordenador puede comprender un ordenador de
propósito general, un ordenador personal o un controlador de
máquinas. El recurso puede ser controlado localmente por un gestor
de recursos en la misma ubicación direccionable que el programa de
control. El programa de control puede usar un recurso que es
controlado remotamente por un gestor de recursos en una posición
accesible diferente de la del programa de control. El al menos un
recurso puede comprender un objeto de datos.
Un interfaz hombre máquina puede ser acoplado al
por lo menos un gestor de recursos, lo que proporciona un punto de
acceso al por lo menos un gestor de recursos, para permitir el
establecimiento de los recursos bajo el control del al menos un
gestor de recursos, para observar un estado de los recursos bajo el
control del al menos un gestor de recursos y para modificar un
estado de los recursos bajo el control del al menos un gestor de
recursos. El interfaz hombre máquina puede tener acceso al por menos
un gestor de recursos a través del al menos un gestor de recursos.
El interfaz hombre máquina puede estar alejado de la al menos una
de las máquinas controladas por el al menos un gestor de
recursos.
Durante el arbitraje, al menos un gestor de
recursos puede comunicarse sobre el sistema de comunicaciones con
otro gestor de recursos que está asociado con al menos algunos de
los programas de la pluralidad de programas de control. Cada gestor
de recursos puede arbitrar el acceso a una pluralidad de recursos
siendo el acceso a la pluralidad de recursos en un orden fijado.
Cada gestor de recursos puede realizar un seguimiento de cada
programa de control que solicita el control de los recursos y en qué
orden; y si el programa de control solicita acceso a por lo menos
dos recursos fuera del orden fijado, puede emitirse un aviso que
indica que es posible un bloqueo mutuo entre el programa de control
que solicita el acceso a los por lo menos dos recursos y otro
programa de control. La pluralidad de gestores de recursos puede
colaborar para determinar si se encuentra que un conjunto de
programas de control de máquinas que solicitan acceso a un conjunto
de recursos forman un bloqueo mutuo y entonces el estado de bloqueo
mutuo es comunicado al usuario. La pluralidad de máquinas puede ser
robots que comparten una pluralidad de sitios de trabajo que pueden
estar situados al menos en parte en un sitio de trabajo común. El
programa de control puede incluir instrucciones programables por el
usuario para que la pluralidad de gestores de recursos controle el
estado del al menos un recurso. El sistema de comunicaciones puede
ser un sistema inalámbrico o un sistema por cable y el sistema por
cable puede ser un sistema Ethernet.
Un sistema según la invención incluye además una
pluralidad de ubicaciones direccionables en el sistema; un sistema
de comunicaciones que conecta la ubicación direccionable que
transmite las comunicaciones entre las ubicaciones direccionables;
una pluralidad de máquinas o procesos, estando situados las máquinas
o procesos en al menos uno de las ubicaciones direccionables;
incluyendo un grupo de programas de control una pluralidad de
programas de control de máquinas o procesos, controlando cada
programa de control de máquinas o procesos al menos una máquina o
proceso; y una pluralidad de gestores de recursos, estando situados
los gestores de recursos en una pluralidad de ubicaciones
direccionables, comunicándose cada gestor de recursos sobre el
sistema de comunicaciones con al menos otro de los gestores de
recursos, de manera que los gestores de recursos implementan al
menos un interbloqueo en relación al por lo menos un recurso,
proporcionando cada interbloqueo el uso exclusivo común de al menos
un recurso por uno de los programas de control, estando controlado
cada interbloqueo mediante instrucciones programables en el
interior de uno de los programas de control de máquinas. Las
instrucciones pueden ser instrucciones de usuario.
La Figura 1 es un diagrama de bloques del
mecanismo de interbloqueo de la técnica anterior usado en las
aplicaciones tradicionales de control robótico y de otras
máquinas.
La Figura 2 es un diagrama de bloques de un
sistema según la presente invención.
La Figura 3 es una gráfica que ilustra los
posibles recursos que pueden ser controlados con un gestor de
recursos según la presente invención.
La Figura 4 es un diagrama de bloques del
control proporcionado por la presente invención donde el recurso es
un espacio físicamente compartido accedido por dos robots.
La Figura 5 es un diagrama de flujo que ilustra
la operación de un gestor de recursos al reservar un recurso.
La Figura 6 es un diagrama de flujo que ilustra
la operación de un gestor de recursos al liberar un recurso.
La Figura 7 es un diagrama de flujo que ilustra
un gestor de recursos buscando bloqueos mutuos.
Números de referencia similares identifican
partes similares a lo largo de los dibujos.
La Figura 2 ilustra un sistema 10 según la
presente invención. El sistema 10 incluye una pluralidad de
ubicaciones direccionables 12-22 que están
conectados entre sí mediante un sistema de comunicaciones 24 que
puede ser un sistema inalámbrico o un sistema por cable. Los
ubicaciones direccionables que tienen gestores de recursos se
describen como nodos. En muchas de las ubicaciones direccionables
12-22 hay situado un mecanismo que puede ser una
máquina o un proceso industrial 28 que es controlado por un
controlador de mecanismos 40 o un controlador de procesos 42. Una
pluralidad de programas de control 30 están situados en muchas de
las ubicaciones direccionables. Los gestores de recursos 32 están
situados en muchas de las ubicaciones direccionables. Los programas
de control 30 usan los recursos 52 asociados con los gestores de
recursos 32 tal como se describe más adelante conjuntamente con la
Figura 3 e incluyen una pluralidad de programas de control de
máquinas o control de procesos, controlando cada programa de
control de máquinas al menos un mecanismo o máquina 26 y cada
programa de control de procesos controlando al menos un proceso 28.
Debería entenderse que los recursos 52 han sido ilustrados sólo en
las ubicaciones direccionables 12, pero están asociados con cada
gestor de recursos 32.
La pluralidad de gestores de recursos 32 en el
sistema 10 están situados en una pluralidad de ubicaciones
direccionables 12, 14, 20 y 22. Según la invención, no es necesario
que un gestor de recursos esté situado en cada una de las
ubicaciones direccionables. Cada gestor de recursos 32 se comunica
mediante el uso del controlador de comunicaciones 56 sobre el
sistema de comunicaciones 24 con al menos otro gestor de recursos.
Se ha ilustrado solo un único controlador de comunicaciones 56 en la
ubicación direccionable 12 pero están asociados con cada gestor de
recursos 32. Los gestores de recursos 32 arbitran qué programa de
control de entre la pluralidad de programas de control 30 recibe el
uso exclusivo de al menos un recurso durante la ejecución del
programa de control. Solo después de que el programa de control que
recibe el uso exclusivo del recurso finaliza el uso del recurso, es
liberado el recurso para el uso por otros programas de control.
Debería entenderse que los programas de control son una mezcla de
programas de control de máquinas y/o programas de control de
procesos y otros programas que proporcionan respectivamente control
directo de las máquinas o mecanismos 26 y procesos 28 o funciones
más generales que no implican el control directo de las máquinas o
procesos. Estas funciones más generales pueden controlar una
variedad de tareas desde funciones de mantenimiento de salud y
prevención a actividades basadas en detectores a tareas que están
asociadas con el mantenimiento de las herramientas de la célula de
trabajo. A pesar de que estas funciones más generales no controlan
directamente las máquinas o mecanismos y procesos, pueden competir
por los recursos compartidos. En algunos de las ubicaciones
direccionables 16 y 18, no hay gestor de recursos, y solo hay un
mecanismo 26 y/o un proceso 28 respectivamente a ser controlado por
un controlador de mecanismos 40 y/o un controlador de procesos 42.
El control del controlador de mecanismos 40 y el controlador de
procesos 42 en las ubicaciones direccionables 16 y 18 se realiza
siempre remotamente, en vista de que no hay un gestor de recursos
local 32 ni programas de control 30.
Las ubicaciones direccionables tienen funciones
específicas. Las funciones en las ubicaciones direccionables
incluyen un controlador de máquinas en la posición accesible 12, un
PC individual en la posición accesible 14, y un PLC en la posición
accesible 22 pero, debería entenderse que la invención no está
limitada a ninguna forma particular de ordenador en las posiciones
accesibles.
Los gestores de recursos 32 están situados cada
uno en un nodo 50 e incluyen recursos 52 asociados con el gestor de
recursos 32. El gestor de recursos se comunica con los programas de
control 30 por medio de mensajería, que es interna al nodo del
gestor de recursos 50. Además, un interfaz hombre máquina 54 se
comunica con el gestor de recursos por medio de la mensajería
interna y proporciona un punto de acceso al por lo menos un gestor
de recursos 32 para permitir el establecimiento de los recursos bajo
el control del al menos un gestor de recursos para observar el
estado de los recursos bajo el control del al menos un gestor de
recursos y para modificar el estado de los recursos bajo el control
del al menos un gestor de recursos. En una forma de realización
preferente, el controlador de comunicaciones 56 utiliza el protocolo
TCP/IP para las comunicaciones pero la invención no está limitada
al mismo. El sistema de comunicaciones puede estar basado en la
especificación Ethernet. Típicamente, los mecanismos 26 o procesos
28 son cada uno de ellos una máquina o un grupo de máquinas o un
proceso o un grupo de procesos. Tal como se ha descrito
anteriormente, los gestores de recursos 32 a lo largo del sistema
arbitran qué programa de control de entre la pluralidad de programas
de control 30 recibe uso exclusivo del al menos un recurso 52
durante la ejecución del programa de control. Cada gestor de
recursos 32 puede estar alejado de la ubicación direccionable en el
que están situados los programas de control 30. Como resultado, un
gestor de recursos local o un gestor recursos remoto 32 determinará
qué programa de control de entre la pluralidad de programas de
control 30 tiene el uso exclusivo sobre al menos uno de los
recursos 52.
recursos 52.
La Figura 3 ilustra una gráfica de los recursos
posibles 52 que pueden ser usados exclusivamente por solo uno de
los programas de control 32 en cada momento del tiempo. Ejemplos,
sin limitación, de los posibles recursos son espacios de trabajo
físicos 60 tal como se describe más adelante conjuntamente con la
Figura 4, entrada/salida compartida 62, dispositivos de transporte
64, herramientas intercambiables 66, sistemas detectores 68,
estación de procesado 7 y herramientas de brazo robótico 72 y
controladores de tecnología 74. Los recursos 52 pueden estar
asociados con elementos diferentes al control de máquinas o
procesos.
La Figura 4 ilustra un diagrama de bloques de la
distribución lógica del sitio de trabajo físico 60. Frecuentemente
hay preocupaciones de que los robots y/o las cargas útiles
colisionen dentro de una célula durante el manejo de las partes y
las operaciones del proceso. Esta preocupación aumenta conforme las
células de robots se hacen más densamente ocupadas. Las colisiones
pueden darse cerca de la herramienta del robot o las colisiones
pueden darse entre robots en líneas opuestas (por ejemplo,
"codos" de los robots chocándose entre sí desde atrás). Es muy
deseable reservar el sitio de trabajo físico de una manera lógica a
partir del programa de control escrito por el usuario. Esto
garantiza que los robots que están siendo controlados por programas
de control separados no se extravíen simultáneamente al interior del
mismo sitio de trabajo.
Con referencia a la Figura 4, un primer
controlador 70 y un segundo controlador 72 respectivamente
contienen un programa 74 y un programa 76. Los gestores de recursos
usados en el sistema de la Figura 4 han sido omitidos y debería
entenderse que están residentes en y son ejecutados por los
procesadores situados en el primer controlador y en el segundo
controlador. Se asigna a uno de los programas 74 y 76, según la
invención, el control exclusivo del sitio de trabajo 60 para
prevenir que este recurso sea utilizado por el otro programa. Los
robots 78 y 80 tienen brazos robóticos 82 que trabajan en el sitio
de trabajo compartido 60. El robot 78 trabaja a través de una serie
de etapas p1_1 a p6_1 mientras que el robot 80 trabaja a lo largo de
una serie de etapas p1_2 a p7_2. Como se observa, existen
posibilidades de colisión para las etapas p3_1, a p5_1 con p2_2 a
p4_2. Con la invención, cada controlador 70 y 72, a través de la
acción de un gestor de recursos que puede estar situado en el
controlador o alejado del mismo según el diagrama de bloques de la
Figura 2 asigna el uso exclusivo por el programa 74 o programa 76
al sitio de trabajo 60 como un interbloqueo para prevenir que el
otro programa comparta simultáneamente ese sitio de trabajo. Tal
como se observa a partir de las etapas del robot 78, la reserva del
sitio de trabajo 60 ocurre en la etapa p2_1 y la liberación del
mismo ocurre en la etapa p6_1 lo cual previene que el programa 76
tenga control del mismo durante la acción del robot 80.
Similarmente, la acción del robot 80 reserva el sitio de trabajo 60
en la etapa p1_2 y lo libera en la etapa p6_2 lo que bloquea la
obtención de acceso por el programa 74.
Si ambos robots 78 y 80 se mueven a posiciones
dentro del espacio compartido 60 al mismo tiempo, un choque sería
inminente. Al definir un espacio de trabajo 60 para el espacio
físico compartido y a continuación requiriendo que cada uno de los
programas tenga la propiedad del sitio de trabajo antes de entrar
realmente al espacio compartido, se previene que los robots entren
al espacio compartido 60 al mismo tiempo. Tal como se observa, la
propiedad del sitio de trabajo compartido 60 por el robot 1 ocurre
en la etapa p2_1 y la propiedad del recurso para el robot 80 ocurre
en p1_2.
Cada gestor de recursos está situado en un nodo
gestor de recursos (RMN). El conjunto de RMN están conectados sobre
el sistema de comunicaciones 24 indicado anteriormente. Cada RMN se
ejecuta en un procesador separado y el gestor de recursos 32 en el
mismo arbitra las solicitudes para los recursos que gestiona según
las recibe. Típicamente los programas de control 30 se ejecutan
también en el mismo procesador que ejecuta el gestor de recursos.
El RMN es un componente central de la característica de interbloqueo
de recursos compartidos de la presente invención. Generalmente, el
RMN puede ser un controlador (por ejemplo, controlador de robots),
un ordenador (PC individual), o un PLC. Generalmente, cada RMN
contiene un único gestor de recursos 32, un conjunto de programas
de control 30 (que controlan un conjunto de mecanismos o procesos o
entidades que no son mecanismos ni procesos), y un conjunto de
interfaces hombre máquina (HMI) 32 (para proporcionar información
al usuario final y para permitir la configuración de los recursos a
ser gestionados). El gestor de recursos 32 en cada RMN se comunica
con los programas de control 30 y los HMIs en el mismo RMN mediante
mensajería interna, tal como se ha descrito anteriormente. El
gestor de recursos 32 se comunica también con otros gestores de
recursos mediante mensajes vía el controlador de comunicaciones 56
sobre el sistema de comunicaciones 24 que son enviados
preferentemente usando, pero no limitándose a, el protocolo
TCP/IP.
Los gestores de recursos 32 tienen cuatro
funciones principales: (I) gestiona y procesa las solicitudes de
recursos 52 para los que el gestor de recursos es responsable así
como identifica cuando los recursos son adquiridos fuera de orden,
tal como se expone más adelante conjuntamente con la Figura 7; (ii)
comunica solicitudes para recursos para los que otros gestores de
recursos son responsables; (iii) proporciona información acerca de
los recursos que gestiona el gestor de recursos; y (iv) identifica
programas o recursos en bloqueo mutuo.
Cada gestor de recursos 32 puede ser configurado
para gestionar un conjunto de recursos únicos, tales como los
descritos anteriormente conjuntamente con la Figura 3 (únicos dentro
del conjunto de RMNs interconectados). Cuando el gestor de recursos
32 recibe solicitudes para estos recursos, el gestor de recursos los
concede por orden de recepción, es decir, la primera recibida es la
primera que se concede. Debido a que un único gestor de recursos 32
tiene el control de cada recurso 52, ese gestor de recursos puede
mantener el seguimiento de qué solicitud de programa obtiene el
recurso y en qué orden. También, trabajando en colaboración, los
gestores de recursos conjuntamente pueden determinar en qué orden
solicita cada programa los múltiples recursos. Si un programa
solicita dos o más recursos fuera de orden, se emite una alerta de
que es posible un bloqueo mutuo, tal como se describe más adelante
conjuntamente con la Figura 7. El orden es arbitrario y puede ser
establecido por el programador, pero una vez establecido, todos los
programas deben usar el mismo orden o se dará la alerta. Si ocurre
un bloqueo mutuo, el gestor de recursos puede determinar exactamente
qué programas/controladores están implicados en el bloqueo mutuo y
qué recursos están implicados.
Un recurso se define como una entidad lógica que
puede ser propiedad de un solo programa en cualquier momento dado.
Cualquier otro programa que desea apropiarse del recurso es encolado
hasta un tiempo en el que el recurso es liberado por el propietario
actual. La cola trabaja en modo FIFO (primero en entrar, primero en
salir).
Los programas de control 30 usan un conjunto de
comandos específico que permite reservar y liberar recursos, tal
como se expone conjuntamente con las Figuras 5 y 6 respectivamente,
que son gestionados por un gestor de recursos local o por un gestor
de recursos remoto. Cuando los comandos específicos son ejecutados,
se envía un mensaje interno al gestor de recursos para su
procesamiento. Un programa que corre en cualquiera de los
controladores puede solicitar el uso de un recurso del gestor de
recursos y esperará a la respuesta a esa solicitud dada por el
propietario del programa.
Cada HMI 31 usa mensajería interna para
determinar el estado de un recurso deseado que es gestionado
localmente (qué programa tiene la propiedad del recurso y qué
programas están encolados para el recurso) y mensajería externa
para determinar el estado de los recursos gestionados remotamente.
Cada HMI 31 es también un componente en el que se inicia un proceso
de detección de bloqueos mutuos.
A pesar de que la invención se realiza con
sistemas de comunicaciones 24 de diseños diversos incluyendo formas
inalámbricas y por cable, una forma preferente de la presente
invención usa los sistemas de comunicaciones basados en la
especificación Ethernet.
Según la presente invención, la gestión de
recursos puede realizarse centralmente o de manera distribuida, tal
como se ilustra en la Figura 2. La utilización de un gestor central
tiene un nodo RMN que es responsable de gestionar todos los
recursos definidos para un conjunto de RMNs conectados mediante un
sistema de comunicaciones 24. El resto de RMNs no gestionan
recursos y actúan meramente como un ayudante reenviando las
solicitudes de recursos al RMN que contiene el gestor de recursos
que gestiona el recurso deseado. Un modelo de gestor de recursos
distribuido puede ser usado como una alternativa a la gestión
central de recursos para gestionar el acceso a un conjunto de
recursos 52. En esta circunstancia en cada controlador el usuario
define un conjunto de recursos gestionados localmente así como un
conjunto de recursos gestionados remotamente. Cada controlador
recibe solicitudes para los recursos que gestiona el controlador y
envía solicitudes a recursos gestionados remotamente solicitados
por los programas locales 30.
Un bloqueo mutuo, tal como se ha expuesto
anteriormente, es una situación en la que existe una dependencia
circular en relación al orden en el que se adquieren los recursos
52. Considérese el ejemplo entre dos programas, uno de los cuales
adquiere el recurso A antes de adquirir el recurso B, y el otro
adquiere el recurso B antes de adquirir el recurso A. Cada programa
espera a que se libere el otro recurso antes de liberar su propio
recurso. El resultado final es que los programas simplemente esperan
siendo necesario que el usuario necesite ser capaz de detectar
fácilmente este estado. Si un robot o una máquina tienen la
propiedad de un recurso que no está en bloqueo mutuo, entonces los
robots o máquinas encolados para esos recursos tampoco están en
bloqueo mutuo. Los robots encolados pueden estar solo esperando. Un
robot que espera a un recurso propiedad de un robot en bloqueo
mutuo no está en bloqueo mutuo si no está directamente implicado en
la dependencia circular. Este robot está simplemente esperando.
Cuando se usan interbloqueos de recursos
compartidos para gestionar recursos accedidos por múltiples
programas, la posibilidad de un bloqueo mutuo está siempre presente.
Cuando ocurre un bloqueo mutuo, el programa de control (y en última
instancia los mecanismos) implicados están en un estado en el que se
mantendrán a la espera hasta que el problema sea resuelto. La
detección de bloqueos mutuos identifica este estado de error pero
no ayuda al usuario a evitarlo. Las prácticas de programación
recomendadas eliminan el problema de bloqueos mutuos al hacer que
cada programa 30 solicite los recursos 52 que necesita en el mismo
orden. Esto requiere que cuando múltiples recursos son adquiridos
por cualquier programa de control en una célula u otro sitio de
trabajo, estos son adquiridos en el mismo orden. Después de que el
programa termina con los recursos, los libera haciéndolos
disponibles para otros programas. Si un programa conmuta hacia
delante y hacia atrás entre un conjunto de recursos, debería
adquirir todo el conjunto en orden. Al escribir programas que
siempre adquieren recursos en el mismo orden, se evita
completamente los bloqueos mutuos.
La definición de cada recurso tiene un número de
secuencia fijado al mismo. Depende del usuario el asignar los
números de secuencia a cada recurso. Cuando un recurso es tomado
fuera de orden (es decir, un recurso con un número de secuencia
inferior es solicitado después de que se ha concedido un número
superior), el HMI asociado con el gestor de recursos muestra un
mensaje de alerta que indica un mensaje de alerta al usuario de que
el estado actual es vulnerable a bloqueos mutuos. Esto no significa
que los programas de control 30 están en bloqueo mutuo, sino que
meramente es posible un bloqueo mutuo en base al orden en el que se
cogieron los recursos.
Cuando los programas están en un estado de
bloqueo mutuo, se registra y se muestra un mensaje de error en cada
controlador que tenga un programa incluido en el estado de bloqueo
mutuo. Los programas en bloqueo mutuo, debido a que cada uno está
encolado para el recurso 52, están esperando y el mecanismo
respectivo 26 o máquina bajo el control de los mismos son
detenidos. El operario tiene la opción de detener los programas en
bloqueo mutuo y liberar manualmente el recurso 52, donde la acción
de liberar el recurso proporciona al siguiente programa 30,
encolado para el recurso, la propiedad del mismo, eliminando así el
bloqueo mutuo. La elección del programa en bloqueo mutuo a detener
es arbitraria y la decisión se deja al operario.
Un mensaje REVERSE introduce una relación entre
un recurso 52 y un programa de control. Cuando un programa de
control 30 solicita y obtiene un recurso 52, el recurso es
considerado propiedad del programa. Ningún otro recurso propiedad
del programa depende de él. Cuando un programa 30 solicita un
recurso que es propiedad de otro programa, se crea una dependencia.
Esta dependencia significa que todos los recursos adquiridos
previamente son dependientes del recurso solicitado. Todos los
recursos 52 permanecen dependientes hasta que el recurso es
concedido. En otras palabras, el programa no puede ejecutar ninguna
instrucción nueva hasta que el recurso 52 para el cual está
encolado sea concedido. Para cualquier programa puede haber como
máximo una dependencia existente en cualquier momento. Esto es
debido a que cada solicitud de reserva en un programa es ejecutada
en el orden en el que son procesadas.
La Figura 5 ilustra el procesamiento de un
mensaje RESERVE que puede ser obtenido desde un gestor de recursos
local 32, tal como se indica en el bloque 80 o un gestor de recursos
remoto, tal como se indica en el bloque 82. El gestor de recursos
32 es ejecutado por un ordenador recibiendo una solicitud RESERVE
identificada respectivamente en las etapas 84 y 86. En la etapa 84,
el gestor recibe una solicitud RESERVE local que es procesada en el
punto de decisión 88 para determinar si el recurso es gestionado
localmente. Si la respuesta es "no", se envía un mensaje sobre
el sistema de comunicaciones 24 al gestor de recursos responsable
del recurso, tal como se indica en el bloque 90. Por el contrario,
en el punto de decisión 88, si se determina que el recurso es
gestionado localmente, el programa procede al punto de decisión 92
que recibe también la salida del bloque 86 donde el gestor de
recursos recibe una solicitud RESERVE remota. El punto de decisión
92 determina si el recurso se toma fuera de orden. Si la respuesta
es "sí" en el punto de decisión 92, se activa una bandera de
alerta 94 que indica que el estado del recurso es vulnerable a
bloqueos mutuos. Si la respuesta es "no" en el punto de
decisión 92, o si la bandera se ha activado en 94, el procesamiento
procede al punto de decisión 96 donde se determina si el programa
es propietario del recurso. Si la respuesta es "sí" en el punto
de decisión 96, el procesamiento procede al punto 98 donde el
programa es colocado al final de una cola de solicitudes para el
recurso deseado. Por el contrario, si la decisión en el punto de
decisión 96 es "no" indicando que el programa no es
propietario del recurso, el procesamiento procede al punto 100 donde
el recurso es concedido al programa que lo solicita. El
procesamiento procede desde el punto 100 al punto de decisión 102
donde se realiza una determinación: ¿el nuevo propietario se
ejecuta dentro del nodo del gestor de recursos local? Si la
respuesta es "sí" en el punto de decisión 102, el procesamiento
procede al punto 104 donde se envía un mensaje al programa de
control 30 de que el programa es propietario del recurso. Por el
contrario, si la respuesta es "no" en el punto de decisión
102, el procesamiento procede al punto 106 donde se genera un
mensaje indicador de la propiedad al gestor de recursos 32 en el
mismo RMN que el nuevo propietario vía el controlador de
comunicaciones 56.
Un mensaje RELEASE elimina la propiedad entre el
recurso 52 y el programa 30. Si hay otros programas encolados, el
recurso 52 es concedido al siguiente programa 30 en la cola. Esta
acción elimina la dependencia entre el programa encolado y el
recurso. En otras palabras, el programa está ahora libre para
continuar la ejecución.
La Figura 6 ilustra el procesamiento por el
gestor de recursos 32 de los mensajes RELEASE. Los mensajes RELEASE
pueden ser generados localmente por un programa de control 32, tal
como se indica con el bloque 120, o remotamente, tal como se indica
con el bloque 122. El mensaje RELEASE local es recibido en el bloque
123. El procesamiento procede desde el bloque 123 al punto de
decisión 124 donde se realiza una determinación de si el recurso es
gestionado localmente. Si la respuesta es "no", el
procesamiento procede al bloque 126 donde se envía un mensaje sobre
el sistema de comunicaciones 24 al gestor de recursos 32,
responsable del recurso. El mensaje RELEASE remoto es recibido en
el bloque 128 donde el procesamiento procede al punto de decisión
130. El punto de decisión 130 recibe entradas desde la recepción del
bloque de solicitud de liberación remota 128 y el punto de decisión
124. El punto de decisión 130 determina si el programa que hace la
solicitud es propietario del recurso. Si la respuesta es "no",
el procesamiento procede al punto de decisión 132. Por el
contrario, si la decisión es "sí" en el punto de decisión 130,
el procesamiento procede al punto 134 donde el recurso es liberado.
Después, el procesamiento procede al punto de decisión 136 en el que
se realiza una determinación de si hay otro programa encolado para
el recurso. Si la respuesta es "no", el procesamiento es
finalizado tal como lo indica el punto 138. Por el contrario, si la
respuesta es "sí" en el punto de decisión 136, el
procesamiento procede al punto 140 donde se concede la propiedad del
recurso al programa situado al frente de la cola. El procesamiento
procede al punto de decisión 142 donde se realiza una determinación
de si el nuevo propietario se está ejecutando dentro del nodo del
gestor de recursos local. Si la respuesta es "sí", el
procesamiento procede al punto 144 donde se envía un mensaje al
programa de control 30 que indica que es propietario del recurso
51. Por el contrario, si la determinación es "no" en el punto
de decisión 142, el procesamiento procede al punto 146 donde se
genera un mensaje indicador de propiedad y se envía al gestor de
recursos 32 en el mismo RMN que el nuevo propietario vía del control
de comunicaciones 56.
Cuando un usuario inicia una búsqueda de
bloqueos mutuos, el gestor de recursos envía un mensaje SONDEO a lo
largo de las dependencias existentes de cualquier programa que se
esta ejecutando dentro del RMN. Si no hay dependencias existentes,
no hay bloqueos mutuos. Según se recibe SONDEO en cada gestor de
recursos, se añade la información relacionada con las dependencias
del mismo. Si el SONDEO alcanza un gestor de recursos 32 que ya ha
reenviado el SONDEO, esto indica que existe un bloqueo mutuo. A
continuación, la información del SONDEO permite al gestor de
recursos determinar qué programas y recursos están implicados en el
bloqueo mutuo.
La Figura 7 ilustra el procesamiento del gestor
de recursos para detectar un bloqueo mutuo. El procesamiento para
detectar un bloqueo mutuo comienza de una de entre tres posibles
maneras que son primero, la búsqueda de bloqueo mutuo se inicia tal
como se indica en el bloque 200, el controlador de comunicaciones 56
recibe un mensaje SONDEO programado desde un gestor de recursos,
tal como se indica en el bloque 202, o el controlador de
comunicaciones 56 recibe un mensaje SONDEO de recurso desde un
gestor de recursos 32, tal como se indica en el bloque 204. En
respuesta al inicio de una búsqueda de bloqueos mutuos en el bloque
200, el procesamiento procede al bloque 208 donde el gestor de
recursos 32 recibe una solicitud de búsqueda de bloqueos mutuos. El
procesamiento procede al punto de decisión 210 donde se realiza una
determinación de si hay algún programa 30 en el RMN esperando por
un recurso. Si la respuesta es "no", el procesamiento procede
al punto 212 que es un punto final como resultado de que el RMN no
contiene programas que están en bloqueo mutuo. Si la respuesta es
"sí" en el punto de decisión 210, el procesamiento procede al
bloque 214 donde se crea un mensaje SONDEO de recurso que contiene
el nombre del programa y el recurso 52 para el cual el programa está
esperando (información de dependencia) para cada programa en
espera. El procesamiento procede al bloque 216 donde el SONDEO de
recurso es enviado a los gestores de recursos 32 responsables de
los recursos. En el bloque 220 el gestor de recursos recibe un
SONDEO de programa en respuesta al bloque 202. El procesamiento
procede al punto de decisión 222 donde se realiza una determinación
de si el mensaje de sondeo ya ha sido procesado por el gestor de
recursos. Si la respuesta es "sí", el procesamiento procede al
bloque 224 lo que representa que se ha detectado un bloqueo mutuo y
se notifica a todos los RMNs con programas 30 y recursos 52
implicados en el bloqueo mutuo. Si la respuesta es "no" en el
punto de decisión 22, el procesamiento procede al punto de decisión
226 donde se realiza una determinación: el programa 30 todavía es
propietario del recurso 52? Si la respuesta es "sí", el
procesamiento procede al punto de decisión 228 donde se realiza una
determinación: está el programa esperando para otro recurso 52? Si
la respuesta es "sí", el procesamiento procede al bloque 230
donde se crea un mensaje de sondeo de recurso que actualiza la
información de dependencia original y añade el nombre del recurso
para el cual está esperando el último programa 30 en la lista, a
continuación procede al bloque 216 descrito anteriormente. Por el
contrario, si cualquiera de las decisiones en los puntos de decisión
226 y 228 es "no", el procesamiento procede al punto final
232. En el punto 234, el gestor de recursos 32 recibe un SONDEO de
recurso en respuesta a la recepción del controlador de
comunicaciones 56 del mensaje de sondeo de recurso desde un gestor
de recursos en el bloque 204. El procesamiento procede al punto de
decisión 236 donde se realiza una determinación de si el último
programa en la lista todavía es propietario del sitio de trabajo. Si
la respuesta es "no", el procesamiento procede al punto final
232. Si la respuesta es "sí" en el punto de decisión 236
indicando que el último programa de la lista todavía es propietario
del sitio de trabajo, el procesamiento procede al punto 238 donde
se crea un mensaje SONDEO de programa que actualiza la información
de dependencias original añadiendo el propietario del recurso al
final de la lista. El procesamiento procede al punto 240 donde el
mensaje SONDEO de programa es enviado al RMN en el que se está
ejecutando el último programa de la lista.
La característica de interbloqueo de recursos
compartidos de la invención hace fácil el control de los recursos
por múltiples controladores:
- (a)
- E/S compartida
- Puede haber un bloque de puntos de E/S en una red de comunicaciones (por ejemplo, Fieldbus, Ethernet, 802.11b inalámbrica, etcétera) que son usados por múltiples programas de control. Cuando es usado por múltiples programas de control en una manera mutuamente excluyente, es útil reservar este recurso bloque de E/S previamente a la operación sobre el mismo por un primer programa de control. Cuando termina, el primer programa de control libera el bloqueo del recurso E/S de manera que el recurso E/S podría ser reservado y operado por el programa de control 2. Este recurso bloque de E/S compartido está asociado con ciertos dispositivos o procesos. En ese caso, están incluidos en un ejemplo más adelante.
- (b)
- Dispositivos de transporte de partes (por ejemplo, plataforma giratoria, transportador, etcétera)
- Múltiples robots pueden necesitar coordinarse con un dispositivo de transporte de partes tal como una plataforma giratoria o un transportador de partes. Debido a que hay múltiples programas de control que controlan los robots individuales, es conveniente que un programa de control use exclusivamente el recurso transporte en cada momento. El recurso transporte puede ser reservado por el programa de control 1 y a continuación indexado a la posición deseada en coordinación con el robot 1 sin la preocupación de que otros programas de control interrumpan el proceso. A continuación, tras la finalización de la tarea del robot, el programa de control 1 libera el recurso transporte para ser reservado y usado por otros programas de control.
- (c)
- Herramientas y procesos activos
- Ejemplos de herramientas y procesos activos son: tenazas, pistolas de soldadura, dispensadores de selladores, dispositivos inteligentes, rebarbado, taladrado, remachado, fijación, pulverizador de pintura, limpiador por chorro de arena, sistemas de lavado, etcétera.
- (d)
- Las herramientas de procesos fijos pueden estar en un sitio de trabajo que es compartido por múltiples robots
- Por ejemplo, múltiples robots pueden mover parabrisas de coches bajo un único cabezal dispensador de sellador por turnos. Cuando este es un proceso asíncrono (por ejemplo, los programas de control para los diferentes robots que manejan los parabrisas no están sincronizados exactamente en el tiempo), hay una necesidad de garantizar que solo un programa de control manipula el flujo de la herramienta que dispensa el sellador en cada momento. Este uso exclusivo puede conseguirse reservando el recurso herramienta dispensadora de sellador por un primer programa de control previamente a la operación. A continuación, después de que el primer programa de control ha comandado al primer robot a la posición apropiada, ha activado el sellador, ha modulado el flujo proporcionalmente a la velocidad del movimiento del parabrisas bajo la pistola selladora y ha desactivado el flujo, el recurso pistola selladora puede ser liberado. En este punto, el recurso herramienta dispensadora de sellador está libre para ser reservado por otro programa de control. En esta aplicación de ejemplo, es probable que haya una reserva del recurso espacio de trabajo físico asociada con la posición del parabrisas y el robot cerca de la herramienta dispensadora de sellador.
- (e)
- Combinaciones
- Una combinación de recursos puede ser controlada también con una reserva de recursos. Si, por ejemplo, un nombre de recurso está asociado con múltiples herramientas y una zona física, todos ellos podrían ser reservados simultáneamente. Un ejemplo es la reserva de un conjunto compartido de herramientas de procesamiento y zona física, llevando una parte al interior de la zona de procesamiento, realizando la función de procesamiento A en la parte, realizando la función de procesamiento B en la parte, realizando la función de procesamiento C en la parte y retirando la parte de la zona física. En vez de reservar las funciones de proceso A, B y C más el sitio de trabajo físico con reservas independientes, los múltiplos recursos pueden ser agrupados en un único "super recurso" y ser reservados con una sola declaración de reserva.
- (f)
- Sistemas detectores (sistema de visión, sistema de barrido por láser, etcétera)
- En este contexto, los sistemas detectores son solamente otro tipo de herramientas. Por ejemplo, un sistema de visión que inspecciona una zona operada por muchos robots, puede necesitar ser usado por múltiples programas de control en una manera exclusiva. Esto puede ser fácilmente controlando reservando el recurso sistema de visión, moviendo el robot/la parte y tomando fotografías coordinadas, usando el sistema de visión para realizar los cálculos apropiados, y liberando el recurso sistema de visión para hacer que el recurso sistema de visión esté disponible para otros programas de control.
- (g)
- Herramientas intercambiables - almacén de herramientas
- Varios robots trabajan asíncronamente en una célula compartiendo pistolas de soldadura y tenazas para partes con herramientas de cambio rápido. Cuando un primer programa de control desea que un primer robot A cargue la herramienta A, el primer programa de control primero reserva la herramienta para garantizar que no está siendo usada en la actualidad por un robot diferente. Si la herramienta es "propiedad" de un robot diferente, el primer programa de control espera hasta que el recurso herramienta A haya sido liberado. Si y/o cuando el recurso herramienta A ha sido liberado, el primer programa de control reserva la herramienta A, comanda al robot 1 que mueva la herramienta A a la estación y que cargue la herramienta A. A continuación el primer programa de control comanda al robot que realice las operaciones con la herramienta, devuelve la herramienta al contenedor de la misma, mueve el robot lejos del contenedor y libera el recurso herramienta A. En este momento, el recurso herramienta A está disponible para ser usado por otros programas de control.
- (h)
- Reserva automática de recursos
- Un uso algo diferente al interbloqueo de recursos compartidos es cuando un programa automático en segundo plano (no una máquina ni un programa de control de proceso) reserva un recurso.
Caso
1
Ejemplo de herramienta retirada del almacén de
herramientas por razones de mantenimiento: En el caso en el que
varios robots intercambian herramientas automáticamente con un
almacén de herramientas, las herramientas pueden ser retiradas
periódicamente por razones de mantenimiento. Un programa automático
en segundo plano especial puede reservar un recurso herramienta
cuando una herramienta es retirada temporalmente del almacén de
herramientas por razones de mantenimiento. Esto prohíbe que el
programa de control que comanda al robot intente usar una
herramienta que está en proceso de mantenimiento.
Caso
2
Puede ser interesante en algunos casos tener un
programa de control que se comunique con una tarea de detección
para reservar un recurso cuando se cruza una medida límite (por
ejemplo, reservar un sitio de trabajo cuando la distancia a la zona
geométrica es inferior a 10 cm). En este caso, el programa de
control solo dispara la tarea de detección para iniciar la
monitorización y hace la reserva si/cuando se cruce el límite. En
este caso, el recurso sitio de trabajo sería reservado desde la
tarea de detección y no desde el programa de control, aunque el
programa de control inició la tarea de detección.
A pesar de que la invención ha sido descrita en
términos de sus formas de realización preferentes, debería
entenderse que pueden realizarse numerosas modificaciones a la misma
sin alejarse del alcance de la invención. Se pretende que todas
estas modificaciones caigan dentro del alcance de las
reivindicaciones adjuntas.
\vskip1.000000\baselineskip
La lista de referencias citadas por el
solicitante se proporciona solamente para conveniencia del lector.
Dicha lista no forma parte del documento de patente europea. A pesar
de que se ha tenido mucho cuidado durante la recopilación de las
referencias, no deben excluirse la posibilidad de que se hayan
producido errores u omisiones y a este respecto la OEP se exime de
toda responsabilidad.
\bullet US 6212444 B [0005] [0006]
\bullet US 0433522 A1 [0007]
\bullet US 5204942 A [0008]
\bullet US 5825981 A [0009]
\bulletLIN et al. Proceedings
of the 1994 Winter Simulation Conference. AN
AGENT-BASED FLEXIBLE ROUTING MANUFACTURING CONTROL
SIMULATION SYSTEM, 1994, 970-977 [0010]
Claims (24)
1. Sistema que comprende:
- una pluralidad de nodos accesibles que representan los ubicaciones;
- un sistema de comunicaciones que conecta los nodos accesibles y que transmite las comunicaciones entre los nodos accesibles.
- una pluralidad de máquinas o procesos, estando situados las máquinas o procesos en al menos uno de los nodos accesibles;
- una pluralidad de programas de control que usan los recursos e incluyen una pluralidad de programas de control de máquinas o procesos, controlando cada programa de control de máquinas o procesos al menos una máquina o proceso; y caracterizado por
- una pluralidad de gestores de recursos, estando situados los gestores de recursos en una pluralidad de nodos accesibles, comunicándose cada gestor de recursos sobre el sistema de comunicaciones con al menos otro gestor de recursos, y en el que la pluralidad de gestores de recursos arbitra qué programa de control de entre la pluralidad de programas de control recibe el uso exclusivo de al menos un recurso durante la ejecución del programa de control, siendo el al menos un recurso un sitio de trabajo físico que es compartido, al menos parcialmente, por al menos dos máquinas.
2. Sistema según la reivindicación 1 en el que
el al menos un recurso es el control de una función entrada/salida
compartida entre las máquinas.
3. Sistema según la reivindicación 1 en el que
el al menos un recurso realiza el transporte de los artículos
procesados por las máquinas.
4. Sistema según la reivindicación 1 en el que
el al menos un recurso es el control del intercambio de las
herramientas usadas por las máquinas.
5. Sistema según la reivindicación 1 en el que
el al menos un recurso es el control del procesamiento realizado en
las estaciones de procesamiento en un proceso de fabricación.
6. Sistema según la reivindicación 1 en el que
el al menos un recurso es el control de un sistema de detección.
7. Sistema según la reivindicación 1 en el que
el programa de control es ejecutado por un ordenador situado en un
nodo accesible en el sistema.
8. Sistema según la reivindicación 1 en el que
al menos un gestor de recursos es ejecutado por un ordenador situado
en un nodo accesible en el sistema.
9. Sistema según la reivindicación 1 en el que
el programa de control usa un recurso que es controlado localmente
por un gestor de recursos en la misma posición accesible que el
programa de control.
10. Sistema según la reivindicación 1 en el que
el programa de control usa un recurso que es controlado remotamente
por un gestor de recursos en una posición accesible diferente del
programa de control.
11. Sistema según la reivindicación 1 que
comprende un interfaz hombre máquina, acoplado al por lo menos un
gestor de recursos, que proporciona un punto de acceso al por lo
menos un gestor de recursos, para permitir el establecimiento de
los recursos bajo el control del al menos un gestor de recursos,
para observar el estado de los recursos bajo el control del al
menos un gestor de recursos y para modificar el estado de los
recursos bajo el control del al menos un gestor de recursos.
12. Sistema según la reivindicación 1 en el que
durante el arbitraje, al menos un gestor de recursos se comunica
sobre el sistema de comunicaciones con otro gestor de recursos que
está asociado con al menos algunos programas de entre la pluralidad
de programas de control.
13. Sistema según la reivindicación 1 que
comprende que cada gestor de recursos arbitre el acceso a una
pluralidad de recursos siendo el acceso a la pluralidad de recursos
en un orden fijado; cada gestor de recursos realiza un seguimiento
de cada programa de control que solicita el control de los recursos
y en qué orden, y si un programa de control solicita el acceso a
por lo menos dos recursos fuera del orden fijado, se emite una
alerta que indica que es posible un bloqueo mutuo entre el programa
de control que solicita acceso a los por lo menos dos recursos y
otro programa de control.
\newpage
14. Sistema según la reivindicación 1 en el que
la pluralidad de gestores de recursos colaboran para determinar si
un conjunto de programas de control de máquinas que solicitan acceso
a un conjunto de recursos forman un bloqueo mutuo y a continuación
el estado de bloqueo mutuo es comunicado al usuario.
15. Sistema según la reivindicación 1 en el que
la pluralidad de máquinas son robots que usan una pluralidad de
sitios de trabajo que, al menos en parte, están situados dentro de
un sitio de trabajo común.
16. Sistema según la reivindicación 1 en el que
el programa de control incluye instrucciones programables por el
usuario para que la pluralidad de gestores de recursos controlen el
estado del al menos un recurso.
17. Sistema según la reivindicación 1 en el que
el sistema de comunicaciones es un sistema Ethernet inalámbrico.
18. Sistema según la reivindicación 1 en el que
los gestores de recursos implementan al menos un interbloqueo para
al menos un recurso, en el que cada interbloqueo proporciona el uso
mutuamente excluyente de al menos un recurso por uno de los
programa de control, estando controlado cada interbloqueo por
instrucciones programables desde el interior de uno de los
programas de control.
19. Sistema según la reivindicación 18 en el que
las instrucciones son instrucciones de usuario.
20. Sistema según una de las reivindicaciones
anteriores en el que el sistema de comunicaciones no tiene la
capacidad inherente de proporcionar el uso mutuamente excluyente
del al menos un recurso, en el que los controladores están
conectados operativamente a los respectivos controladores de una
pluralidad de máquinas o procesos, estando situados los
controladores con al menos uno de los nodos accesibles, en el que
los programas de control son operables para solicitar el uso del al
menos un recurso, en el que al menos uno de los programas de control
es operable para comandar uno de los controladores y en el que la
pluralidad de los gestores de recursos trabajan conjuntamente sobre
el sistema de comunicaciones para arbitrar qué programa de control
recibe el uso exclusivo del al menos un recurso durante la
ejecución del programa de control, en el que los programas de
control reciben el uso del al menos un recurso por un gestor de
recursos en un nodo accesible diferente del programa de control.
21. Sistema según la reivindicación 20 en el que
cada gestor de recursos es operable para arbitrar el acceso a una
pluralidad de recursos siendo el acceso a la pluralidad de recursos
en un orden fijado; y para hacer un seguimiento de cada programa de
control que solicita el control de los recursos y en qué orden; y
siendo operable el sistema para emitir una señal de alerta que
indica que es posible un bloqueo mutuo entre el programa de control
que solicita acceso a los por menos dos recursos y otro programa de
control, si un programa de control solicita acceso a por lo menos
dos recursos fuera del orden fijado.
22. Sistema según la reivindicación 20 ó 21 en
el que la pluralidad de gestores de recursos colaboran para
determinar si un conjunto de programas de control de máquinas que
solicitan el acceso a un conjunto de recursos se detecta que forma
un bloqueo mutuo y a continuación el estado de bloqueo mutuo es
comunicado al usuario.
23. Sistema según una de las reivindicaciones 21
a 22 en el que los controladores están conectados operablemente a
los controladores respectivos de una pluralidad de robots que usan
una pluralidad de sitios de trabajo que, al menos en parte, están
situados dentro de un sitio de trabajo común.
24. Sistema según una de las reivindicaciones 1
a 23 en el que la pluralidad de programas de control es un grupo de
programas de control y en el que los gestores de recursos
implementan al menos un interbloqueo para el al menos un recurso,
proporcionando cada interbloqueo el uso mutuamente excluyente del al
menos un recurso por uno de los programas de control, estando
controlado cada interbloqueo por instrucciones programables en uno
de los programas de control.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US993493 | 2001-11-27 | ||
US09/993,493 US7114157B2 (en) | 2001-11-27 | 2001-11-27 | System controlling exclusive access by control programs to system resources |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2309130T3 true ES2309130T3 (es) | 2008-12-16 |
Family
ID=25539614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02025293T Expired - Lifetime ES2309130T3 (es) | 2001-11-27 | 2002-11-13 | Sistema de control de acceso exclusivo de programas de control a los recursos del sistema. |
Country Status (5)
Country | Link |
---|---|
US (1) | US7114157B2 (es) |
EP (1) | EP1336909B1 (es) |
AT (1) | ATE400009T1 (es) |
DE (1) | DE60227339D1 (es) |
ES (1) | ES2309130T3 (es) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112975944A (zh) * | 2019-12-17 | 2021-06-18 | 沈阳新松机器人自动化股份有限公司 | 一种银行预填单服务机器人 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536688B2 (en) * | 2003-02-28 | 2009-05-19 | Azul Systems | Segmented virtual machine |
DE102004027944B4 (de) * | 2004-06-08 | 2012-02-16 | Kuka Laboratories Gmbh | Verfahren zum Schützen eines Roboters gegen Kollisionen |
US9390203B2 (en) | 2004-06-15 | 2016-07-12 | Abb Ab | Method and system for off-line programming of multiple interacting robots |
ATE392656T1 (de) * | 2004-06-15 | 2008-05-15 | Abb Ab | Verfahren und system zur off-line-programmierung von mehreren interagierenden robotern |
CA2573967A1 (fr) * | 2004-07-19 | 2006-02-23 | Societe De Materiel Industriel Et D'equipement-Smie | Procede et systeme d'evitement de collision pour engins mobiles |
JP3907649B2 (ja) * | 2004-09-02 | 2007-04-18 | ファナック株式会社 | ロボット間の干渉防止制御装置 |
US7680970B2 (en) * | 2004-10-22 | 2010-03-16 | Fisher-Rosemount Systems, Inc. | Method and system for batch process arbitration in a process control system |
US8108878B1 (en) * | 2004-12-08 | 2012-01-31 | Cadence Design Systems, Inc. | Method and apparatus for detecting indeterminate dependencies in a distributed computing environment |
US8244854B1 (en) | 2004-12-08 | 2012-08-14 | Cadence Design Systems, Inc. | Method and system for gathering and propagating statistical information in a distributed computing environment |
US7979870B1 (en) | 2004-12-08 | 2011-07-12 | Cadence Design Systems, Inc. | Method and system for locating objects in a distributed computing environment |
US8806490B1 (en) | 2004-12-08 | 2014-08-12 | Cadence Design Systems, Inc. | Method and apparatus for managing workflow failures by retrying child and parent elements |
US7735089B2 (en) * | 2005-03-08 | 2010-06-08 | Oracle International Corporation | Method and system for deadlock detection in a distributed environment |
US7480908B1 (en) * | 2005-06-24 | 2009-01-20 | Azul Systems, Inc. | Segmented virtual machine transport mechanism |
US20070101327A1 (en) * | 2005-10-27 | 2007-05-03 | Burdick Dean J | Method and system for providing a potential deadlock source code debugger warning |
US8117505B2 (en) * | 2005-11-07 | 2012-02-14 | Microsoft Corporation | Resource exhaustion prediction, detection, diagnosis and correction |
JP4544145B2 (ja) * | 2005-11-24 | 2010-09-15 | 株式会社デンソーウェーブ | ロボットの干渉回避方法およびロボット |
US8843234B2 (en) * | 2006-04-13 | 2014-09-23 | Fanuc America Corporation | Dynamic space check for multi-arm system moving on a rail |
US8356297B1 (en) | 2007-03-21 | 2013-01-15 | Azul Systems, Inc. | External data source redirection in segmented virtual machine |
KR101552188B1 (ko) * | 2007-09-07 | 2015-09-10 | 삼성전자 주식회사 | 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치 |
US20090089325A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Targeted resource allocation |
DE102008003440A1 (de) * | 2008-01-07 | 2009-07-09 | Kuka Roboter Gmbh | Verfahren zur Fehlererkennung in einem Steuerungssystem eines medizinischen Behandlungs- und/oder Diagnosegeräts |
US8473085B2 (en) * | 2008-04-30 | 2013-06-25 | Perkinelmer Las, Inc. | Mutex-mediated control of spatial access by appliances moveable over a common physical space |
US9144904B2 (en) | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US8315738B2 (en) * | 2008-05-21 | 2012-11-20 | Fanuc Robotics America, Inc. | Multi-arm robot system interference check via three dimensional automatic zones |
US20100011104A1 (en) * | 2008-06-20 | 2010-01-14 | Leostream Corp | Management layer method and apparatus for dynamic assignment of users to computer resources |
US8650272B2 (en) * | 2008-07-16 | 2014-02-11 | Hewlett-Packard Development Company, L.P. | Distributed transaction processing system having resource managers that collaborate to decide whether to commit or abort a transaction in response to failure of a transaction manager |
KR101647144B1 (ko) * | 2008-11-03 | 2016-08-23 | 삼성전자주식회사 | 원격 유저 인터페이스 서비스에서 리소스에 대한 제어 방법, 장치 및 그 저장 매체 |
US8127063B2 (en) * | 2009-01-20 | 2012-02-28 | Fisher-Rosemount Systems, Inc. | Distributed equipment arbitration in a process control system |
WO2011050740A1 (zh) * | 2009-10-30 | 2011-05-05 | 北京飞天诚信科技有限公司 | 多卡座读卡器的识别方法及其与主机的通信方法和系统 |
DE102012103830B4 (de) | 2011-05-05 | 2022-05-25 | Fanuc Robotics America Corp. | Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen |
US8977372B2 (en) * | 2011-05-12 | 2015-03-10 | General Electric Company | System and method for cycle time visualization |
US8639364B2 (en) * | 2011-07-13 | 2014-01-28 | KUKA Robotics Corporation | Uniform synchronizing robot control and deadlock detection in uniform synchronization |
US8881297B2 (en) * | 2012-09-06 | 2014-11-04 | Brooks Automation, Inc. | Access arbitration module and system for semiconductor fabrication equipment and methods for using and operating the same |
JP5456208B1 (ja) * | 2013-01-30 | 2014-03-26 | 三菱電機株式会社 | 数値制御装置 |
JP5761238B2 (ja) * | 2013-03-15 | 2015-08-12 | 株式会社安川電機 | ロボットシステム及び被作業物の製造方法 |
US9396007B2 (en) * | 2013-03-22 | 2016-07-19 | Facebook, Inc. | Cache management in a multi-threaded environment |
DE102014000701A1 (de) * | 2014-01-23 | 2015-07-23 | Sig Technology Ag | Verfahren zur Steuerung einer Verpackungsmaschine sowie eine Verpackungsmaschine |
CN107206590B (zh) | 2015-02-13 | 2021-02-05 | Abb瑞士股份有限公司 | 用于避免两个机器人之间的碰撞的方法 |
KR101627519B1 (ko) | 2015-05-04 | 2016-06-08 | 재단법인대구경북과학기술원 | 로봇 원격 제어 장치 및 그 방법 |
JP6434434B2 (ja) * | 2016-02-09 | 2018-12-05 | ファナック株式会社 | 加工装置をロボットに接続して加工を行う加工ロボットシステム |
JP6392817B2 (ja) * | 2016-08-04 | 2018-09-19 | ファナック株式会社 | シミュレーション装置 |
US10131053B1 (en) * | 2016-09-14 | 2018-11-20 | X Development Llc | Real time robot collision avoidance |
US10792813B1 (en) | 2018-04-26 | 2020-10-06 | X Development Llc | Managing robot resources |
DE102018005488A1 (de) * | 2018-07-12 | 2020-01-16 | MZ motion design GmbH | Software, welche die Programmierung und Nutzung eines Roboters ermöglicht |
CN109116847B (zh) * | 2018-08-29 | 2021-12-07 | 广州安商智能科技有限公司 | 路径调度方法、装置、后台服务端及存储介质 |
JP7255210B2 (ja) * | 2019-01-31 | 2023-04-11 | セイコーエプソン株式会社 | 制御装置、ロボットシステム、及び表示方法 |
US11526823B1 (en) | 2019-12-27 | 2022-12-13 | Intrinsic Innovation Llc | Scheduling resource-constrained actions |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4890241A (en) | 1987-10-26 | 1989-12-26 | Megamation Incorporated | Robotic system |
US5204942A (en) | 1989-01-10 | 1993-04-20 | Kabushiki Kaisha Kobe Seiko Sho | Robot control system for controlling a set of industrial robots for cooperative operation |
US5150452A (en) | 1989-07-28 | 1992-09-22 | Megamation Incorporated | Method and apparatus for anti-collision and collision protection for multiple robot system |
US5150026A (en) | 1990-11-19 | 1992-09-22 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Obstacle avoidance for redundant robots using configuration control |
US5247608A (en) | 1991-04-01 | 1993-09-21 | At&T Bell Laboratories | Method and apparatus for achieving dynamic path control of multiple robots |
JPH0553634A (ja) | 1991-08-29 | 1993-03-05 | Matsushita Electric Ind Co Ltd | 複腕干渉回避システム |
JP2895672B2 (ja) | 1992-01-28 | 1999-05-24 | ファナック株式会社 | 複数ロボット制御方法 |
US5347459A (en) | 1993-03-17 | 1994-09-13 | National Research Council Of Canada | Real time collision detection |
JP2761454B2 (ja) | 1993-12-09 | 1998-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 自律移動機械の誘導方法 |
US5774731A (en) * | 1995-03-22 | 1998-06-30 | Hitachi, Ltd. | Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an event flag into a shared main storage |
US5798627A (en) | 1995-01-04 | 1998-08-25 | Gilliland; Malcolm T. | Method for simultaneous operation of robot welders |
JPH09244730A (ja) | 1996-03-11 | 1997-09-19 | Komatsu Ltd | ロボットシステムおよびロボットの制御装置 |
JPH103308A (ja) | 1996-06-18 | 1998-01-06 | Fanuc Ltd | 産業用ロボットの干渉回避方法 |
US6004016A (en) | 1996-08-06 | 1999-12-21 | Trw Inc. | Motion planning and control for systems with multiple mobile objects |
US5953229A (en) * | 1996-09-24 | 1999-09-14 | Environmental Research Institute Of Michigan | Density-based emergent scheduling system |
US5999881A (en) | 1997-05-05 | 1999-12-07 | General Electric Company | Automated path planning |
AU735024B2 (en) * | 1997-07-25 | 2001-06-28 | British Telecommunications Public Limited Company | Scheduler for a software system |
US6199181B1 (en) * | 1997-09-09 | 2001-03-06 | Perfecto Technologies Ltd. | Method and system for maintaining restricted operating environments for application programs or operating systems |
US6983253B1 (en) * | 1997-11-04 | 2006-01-03 | Maul Joseph J | Process for providing a printed automobile adjustment estimate |
US6049756A (en) | 1997-11-12 | 2000-04-11 | Lockheed Martin Corporation | System and method for avoiding collision between vector and solid objects |
US6327668B1 (en) * | 1998-06-30 | 2001-12-04 | Sun Microsystems, Inc. | Determinism in a multiprocessor computer system and monitor and processor therefor |
US6353846B1 (en) * | 1998-11-02 | 2002-03-05 | Harris Corporation | Property based resource manager system |
US6961763B1 (en) * | 1999-08-17 | 2005-11-01 | Microsoft Corporation | Automation system for controlling and monitoring devices and sensors |
US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US6742015B1 (en) * | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
US6549961B1 (en) * | 1999-10-27 | 2003-04-15 | Infineon Technologies North America Corporation | Semaphore access in a multiprocessor system |
US6823472B1 (en) * | 2000-05-11 | 2004-11-23 | Lsi Logic Corporation | Shared resource manager for multiprocessor computer system |
US6938253B2 (en) * | 2001-05-02 | 2005-08-30 | Portalplayer, Inc. | Multiprocessor communication system and method |
-
2001
- 2001-11-27 US US09/993,493 patent/US7114157B2/en not_active Expired - Lifetime
-
2002
- 2002-11-13 EP EP02025293A patent/EP1336909B1/en not_active Expired - Lifetime
- 2002-11-13 DE DE60227339T patent/DE60227339D1/de not_active Expired - Lifetime
- 2002-11-13 ES ES02025293T patent/ES2309130T3/es not_active Expired - Lifetime
- 2002-11-13 AT AT02025293T patent/ATE400009T1/de not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112975944A (zh) * | 2019-12-17 | 2021-06-18 | 沈阳新松机器人自动化股份有限公司 | 一种银行预填单服务机器人 |
Also Published As
Publication number | Publication date |
---|---|
DE60227339D1 (de) | 2008-08-14 |
EP1336909A2 (en) | 2003-08-20 |
EP1336909B1 (en) | 2008-07-02 |
ATE400009T1 (de) | 2008-07-15 |
EP1336909A3 (en) | 2006-05-10 |
US20030100957A1 (en) | 2003-05-29 |
US7114157B2 (en) | 2006-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2309130T3 (es) | Sistema de control de acceso exclusivo de programas de control a los recursos del sistema. | |
US11709502B2 (en) | Roadmap annotation for deadlock-free multi-agent navigation | |
US11262200B2 (en) | Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning | |
US10994418B2 (en) | Dynamically adjusting roadmaps for robots based on sensed environmental data | |
ES2827192T3 (es) | Sistema de gestión de tareas para una flota de robots móviles autónomos | |
Erdmann et al. | On multiple moving objects | |
US20200247611A1 (en) | Object handling coordination system and method of relocating a transporting vessel | |
US10260890B2 (en) | Aisle-based roadmap generation | |
Gauthier et al. | Interprocess communication for distributed robotics | |
JP2022501715A (ja) | コンテキスト拡張マップ・レイヤを与えるためのゾーン・エンジン | |
Sun et al. | Behavior-based multi-robot collision avoidance | |
López et al. | A simulation and control framework for AGV based transport systems | |
US11656625B2 (en) | System for evacuating one or more mobile robots | |
CN109048909A (zh) | 枝节式路径调度方法、装置、后台服务端及第一机器人 | |
WO2015011661A9 (en) | Device and method for optimising the movement of automated-guided vehicles | |
US20190122157A1 (en) | Systems and methods for deploying groups of self-driving material-transport vehicles | |
Hauser et al. | Global redundancy resolution via continuous pseudoinversion of the forward kinematic map | |
WO2024072860A1 (en) | Shared resource management system and method | |
Weyns et al. | Exploiting a virtual environment in a real-world application | |
Čáp et al. | Complete decentralized method for on-line multi-robot trajectory planning in valid infrastructures | |
Salomons et al. | Human management of a robotic swarm | |
Narula et al. | Minimal Contact Optimal Routing across Connected Networks for Stochastically Arriving Agents: A Mixed Integer Linear Programming Framework | |
US20240066698A1 (en) | Real-time motion and path planner for robots | |
US20240184302A1 (en) | Visualization of physical space robot queuing areas as non-work locations for robotic operations | |
Anant et al. | Automated Guided Vehicle in an Industrial Environment |