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 PDF

Info

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
Application number
ES02025293T
Other languages
English (en)
Inventor
Michael C. Chaffee
Edward Volcic
Kenneth A. Stoddard
R. William Ii Kneifel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Roboter GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Roboter GmbH filed Critical KUKA Roboter GmbH
Application granted granted Critical
Publication of ES2309130T3 publication Critical patent/ES2309130T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total 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/41865Total 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32239Avoid deadlock, lockup
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32328Dynamic scheduling, resource allocation, multi agent negotiation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35283Plausibility check for function, program, inhibit dangerous, unallowed program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39135For multiple manipulators operating at same time, avoid collision
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management 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.
Antecedentes de la invención Campo de la invención
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.
Descripción de la técnica anterior
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.
Resumen de la invención
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.
Breve descripción de los dibujos
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.
Descripción de las formas de realización preferentes
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.
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
Uso del recurso por un programa en segundo plano y un programa de control)
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
Reserva automática de recursos basada en tarea de cálculo de automatización o sensor
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
Referencias citadas en la descripción
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.
Documentos de patente citados en la descripción
\bullet US 6212444 B [0005] [0006]
\bullet US 0433522 A1 [0007]
\bullet US 5204942 A [0008]
\bullet US 5825981 A [0009]
Documentos (no patentes) citados en la descripción
\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.
ES02025293T 2001-11-27 2002-11-13 Sistema de control de acceso exclusivo de programas de control a los recursos del sistema. Expired - Lifetime ES2309130T3 (es)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112975944A (zh) * 2019-12-17 2021-06-18 沈阳新松机器人自动化股份有限公司 一种银行预填单服务机器人

Families Citing this family (47)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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