NO841462L - Robotstyresystem - Google Patents
RobotstyresystemInfo
- Publication number
- NO841462L NO841462L NO841462A NO841462A NO841462L NO 841462 L NO841462 L NO 841462L NO 841462 A NO841462 A NO 841462A NO 841462 A NO841462 A NO 841462A NO 841462 L NO841462 L NO 841462L
- Authority
- NO
- Norway
- Prior art keywords
- robot
- arm position
- arm
- computer
- commands
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 338
- 230000008569 process Effects 0.000 claims description 336
- 230000006870 function Effects 0.000 claims description 56
- 230000004044 response Effects 0.000 claims description 28
- 239000012190 activator Substances 0.000 claims description 16
- 239000004020 conductor Substances 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 238000002405 diagnostic procedure Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 3
- 230000033001 locomotion Effects 0.000 description 36
- 239000003973 paint Substances 0.000 description 31
- 239000007921 spray Substances 0.000 description 28
- 238000010586 diagram Methods 0.000 description 16
- 238000007592 spray painting technique Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 239000011248 coating agent Substances 0.000 description 5
- 238000000576 coating method Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 210000000707 wrist Anatomy 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 238000005507 spraying Methods 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000002683 foot Anatomy 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000004233 talus Anatomy 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
- 210000003857 wrist joint Anatomy 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/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
- G05B19/427—Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, master-slave control
-
- 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/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4141—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by a controller or microprocessor per axis
-
- 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/41815—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 the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
- G05B19/4182—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 the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell manipulators and conveyor only
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33324—What to diagnose, whole system, test, simulate
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33337—For each axis a processor, microprocessor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33338—DNC distributed, decentralised nc, concurrent, multiprocessing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33342—Master slave, supervisor, front end and slave processor, hierarchical structure
-
- 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/34—Director, elements to supervisory
- G05B2219/34076—Shared, common or dual port memory, ram
-
- 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/34—Director, elements to supervisory
- G05B2219/34367—Interrupts, different tasks foreground, midground, background
-
- 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/34—Director, elements to supervisory
- G05B2219/34418—Scheduler for sequential control, task planning, control sequence
-
- 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/34—Director, elements to supervisory
- G05B2219/34466—Bad circuits, watchdog, alarm, indication
-
- 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/36—Nc in input of data, input key till input tape
- G05B2219/36107—Bubble memory
-
- 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/36—Nc in input of data, input key till input tape
- G05B2219/36511—Select by a detector
-
- 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/45—Nc applications
- G05B2219/45013—Spraying, coating, painting
-
- 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/45—Nc applications
- G05B2219/45083—Manipulators, robot
-
- 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/49—Nc machine tool, till multiple
- G05B2219/49302—Part, workpiece, code, tool identification
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Description
Oppfinnelsen angår generelt et styresystem for en arbeidsrobot og omfatter en styreinnretning for å drive i det minst ett forbundet robotledd ved lukket sløyfe-servostyring som respons på et lagret program av opptegnede armposisjonsinstruksjoner. Oppfinnelsen er spesielt beskrevet i forbindelse med en arbeidsrobot for sprøytemaling av et arbeidsstykke, hvorved styresystemet tjener til å bevege og drive en sprøytemalings-pistol på en leddforbundet robotarm. Oppfinnelsen angår mer spesielt - i forbindelse med et styresystem for slik arbeidsrobot - anordningen av flerlederdatamaskiner som kommuniserer på en felles databuss, idet styrefunksjonene for robotstyresystemet blir delt mellom de to lederdatamaskinene. Oppfinnelsen angår også med hensyn til et datamaskinbasert styresystem for en slik arbeidsrobot, den samtidige utførelsene av separate programmoduler under utførelsen av styrefunksjonene til robotstyresystemet.
En arbeidsutførende robot eller manipulator innbefatter vanligvis en flerhet av armer som er forbundet for å sørge for relativ bevegelse med en flerhet av frihetsgrader. Hver av armene er utstyrt med en signalstyrt aktivator for å drive de respektive leddene, såvel som en posisjonstransduktor for å sørge for et samtidssignal knyttet til den virkelige posisjonen av robotarmen. For å kunne bringe styresignaler til aktivatoren, er en sekvens av kommandoposisjoner for hver arm lagret i en passende minneinnretning og kommandoposisjonene blir periodisk fremtrukket og sammenlignet med de virkelige
armposisjonssignalene frembragt av armposisjonstransduktorene.
Som respons på sammenligningene blir armposisjonsfeilsignaler generert for hver . av armene og så innmatet i de forskjellige armaktivatorene. Derfor blir lukket sløyfe-servoteknikker brukt for å drive de forskjellige aktivatorene for å bevege armene til de ønskede kommandoposisjoner.
Det er mange anvendelser for arbeidsroboter, så som sveising
og påføring av forskjellige typer beleggmaterialer. Som et illustrerende eksempel kan en arbeidsutførende robot anvendes til sprøytemaling av spesielle artikler av forskjellig form.
Et program som omfatter sekvenser av kommandoposisjoner for robotarmene blir så laget for å sørge for bevegelsen av roboten for sprøytemalingen på slike artikler, og slike programmer tar hensyn til de spesifiserte dimensjoner og malingskrav til den bestemte artikkel.
En sprøytemalingsrobot omfatter vanligvis en sprøytemale-pistol på ytre enden av det siste leddet til en flerleddet arm. Pistolen blir styrt for å sprøytemale en artikkel, eller arbeidsstykke, anordnet på en arbeidsstasjon mens roboten utfører en forutopptegnet sekvens av robotarmposisjonskommandoer. For å kunne styre påføringen av maling av pistolen, omfatter sprøytepistolen en malingsstrømningsstyreventil. En på/av-bryter blir styrt av programmerte kommandoer for å regulere sprøytingen av maling fra pistolen. Pistolen reagerer på en av-kommando med å lukke malingsstrømningsstyre-ventilen og reagerer på en på-kommando ved å åpne malings-strømningsstyreventilen. Kommandoene for å styre strømmen av malin fra pistolen vil i det etterfølgende blir referert til som pistolkommandoer.
For å kunne styre bevegelsen av arbeidsroboten, er en sekvens av kommandoposisjoner for hver robotarm lagret i et robotprogramminne. Sekvensen av kommandoposisjoner for robotarmene, sett under ett, utgjør et komplett program for en bestemt bevegelsessekvens som skal utføres av roboten. Pistolkommandoene blir også lagret i robotprogramminnet, i hensiktsmessig tidsforhold i forhold til armposisjonskommandoene, slik at de etter tur kan fremtrekkes fra robotprogramminnet og sendes til sprøytepistolen for å styre malingssprøyteventilen. Siden både armposisjonskommandoene og pistolkommandoene blir behandlet samtidig, blir utsendelsen av sprøytemaling kombi-nert med bevegelsen av pistolen relativt arbeidsstykket.
Frembringelse av den forutopptegnede bevegelse og pistol-kommandosekvensen - kjent som robot-"trening" eller "innlæring" - kan utføres på adskillige måter. På en av måtene blir en lettvekts "lærerobot" eller simulator anvendt, hvil ken simulator, unntatt den reduserte massen og fraværet av aktivatorene for armene, er identisk i alle henseender med den vesentlig mer massive arbeidsroboten som skal programmeres. For å programmere arbeidsroboten gripes utgangselementet til simulatoren, sprøytepistolen, manuelt av operatøren som ut-fører programmeringen, og forflyttes gjennom en sekvens av bevegelser som det er ønskelig at arbeidsroboten skal utføre. Siden innlæringsroboten er lett av vekt kan den forflyttes manuelt av operatøren gjennom den ønskede sekvens av bevegelser, og posisjonstransduktorer ved sammenføyningspunktene for dens ledd frembringer elektriske leddposisjonssignaler som blir opptegnet for etterfølgende servosløyfe-styring av arbeidsroboten. Samtidig med simulatorbevegelsen blir pistolbryteren innstilt manuelt for å styre utsendelsen av sprøyte-maling fra pistolen. Tilstanden av pistolbryteren blir opptegnet synkront med opptegningen av leddposisjonstransduktor-utgangssignalene for etterfølgende tilbakespilling av pistolen og arbeidsroboten resp. Når så robotprogrammet senere blir oppspilt, vil den opptegnede sekvens av pistolkommandoer bli--sendt til sprøytepistolen synkront med sekvensen av robotposi-sjonskommandoer, og derved koordineres sprøytebeleggutsendelse med sprøytepistolposisjonen.
I en annen fremgangsmåte for robotprogrammering, blir aktivatorene til arbeidsroboten forbikoblet eller frakoblet og arbeidsroboten blir utbalansert slik at operatøren lett kan forflytte arbeidsroboten gjennom en ønsket bane under innlæringen. Utgangssignalene fra robotleddposisjonstransduktorene blir opptegnet under denne manuelle programmeringsfasen, og det blir også pistolkommandosignalene, slik at de senere kan spil-les for å drive eller styre henholdsvis roboten og pistolen.
Nok en måte å innlære en arbeidsrobot på innbefatter at arbeidsroboten utstyres med bevegelse eller kraftførende trans-duktorer. Når en operatør forsøker å bevege arbeidsroboten under manuell programmering, vil kraft eller bevegelses-sensorene detektere kraften eller bevegelsen påtrykt av ope-ratøren på roboten. Kraften eller bevegelsessensoren sender ut signaler som blir innmatet i aktivatorene for å bevege de individuelle arbeidsrobotarmene i samsvar med den manuelle kraften eller bevegelsen påtrykt av operatøren. Mens robotarmene beveger seg under innflytelse av hjelpekraft, blir utgangssignalene fra leddposisjonstransduktorene opptegnet sammen med pistoltilstandssignalene, for etterfølgende opp-spilling og drift av henholdsvis roboten og pistolen.
Under programmering eller innlæring av en robot - såsom ved bruk av en robotsimulator - styrer operatøren av simulatoren manuelt bevegelsen av simulatoren og driften av pistolbryteren. Simulatorbevegelsen og pistolbrytertilstanden blir opptegnet for å danne programmet for arbeidsroboten. Typisk vil sprøytemalingsimuleringen utført av operatøren være den virkelige sprøytemalingen av et arbeidsstykke under de samme vilkår som arbeidsroboten vil ha. Derfor vil ikke operatøren bare forflytte pistolen, men også anvende pistolbryteren for å styre sprøytingen av maling i et bestemt mønster på et arbeidsstykke. Under innlæringen påfører operatøren maling på arbeidsstykket på en slik måte at man oppnår et observerbart tilfredsstillende dekke av maling på arbeidsstykket.
Ved driften av en sprøytemalingsrobot vil ofte arbeidsstykkene som skal males bli forflyttet av en transportør forbi arbeidsrobotens arbeidsstasjon under sprøytemalingen. Under en innlæringsperiode blir et arbeidsstykke forflyttet i en bestemt hastighet forbi robotsimulatoren, mens simulator-operatøren manipulerer innlæringsarmen og pistolen for å frembringe leddposisjonskommandoer og pistolkommandoer for å danne malingsprogrammet for arbeidsstykket. I dette tilfelle blir ikke leddposisjonskommandoer frembragt i en bestemt hastighet i relasjon til tiden. I stedet blir komman-dosignaler frembragt i en hastighet som er synkronisert med hastigheten av bevegelsen av arbeidsstykket forbi arbeidsstasjonen .
Sekvensen av leddposisjonskommandoer og mellomliggende pistolkommandoer blir lagret i form av en sekvens av instruksjoner som utgjør et måleprogram for arbeidsroboten. Hver instruksjon inneholder et antall kommandoer. Hastigheten til opp-tegningsinstruksjonene blir synkronisert med hastigheten til utgangssignaler fra en arbeidsstykkeposisjonsteller, som frembringes f.eks. av en transportørakselkoder tilknyttet en trans-portør forflytter arbeidsstykket forbi arbeidsstasjonen.
Mens bevegelseshastigheten av arbeidsstykket forbi arbeidsstasjonen kan styres under innlæringen slik at den er en bestemt nominell hastighet, behøver arbeidsstykkehastigheten ikke å være den samme under sprøytemalingen utført av arbeidsroboten. Når arbeidsroboten utfører instruksjonene i sprøytemalingsprogrammet, blir instruksjonene frembragt med en hastighet som er synkronisert med den virkelige transpor-tørhastigheten under arbeidet. Hastigheten som instruksjonene til arbeidsroboten forsynes med kan derfor være noe høyere eller lavere enn hastigheten hvorved instruksjonene ble opptegnet under innlæringen.
Programmer med leddposisjonskommandoer og mellomliggende pistolkommandoer blir lagret i en masseminneinnretning, så som et bobleminne i robotstyresytemet. Robotstyresysternet eller styreinnretninger mottar kommandoene frembragt under inn-
læring og lagrer kommandoene i form av et program av instruksjoner i masseminneinnretningen. Under arbeid gjenkaller robotstyreinnretningen kommandoposisjonene som har blitt lagret i minneinnretningen for sammenligning med de virkelige leddposisjonssignalene som også blir koblet til styreinnretningen fra arbeidsroboten. Styreinnretningen frembringer i sin tur ledd-posis jonsfeilsignaler basert på sammenligningene, hvilke signaler styreinnretningen kobles til de passende leddaktivatorene. Under arbeidet styrer styreinnretningen også sprøytepistol-malingsstrømningsventilen som respons på pistolkommandoene som blir gjenkalt fra minneinnretningen sammen med leddposisjons-kommandoen.
Robotstyreinnretningen utfører et antall funksjoner i tillegg til å opptegne et program under en innlæring og utføring av et program under arbeid. For eksempel har styreinnretningen en tilhørende skjermfremviser og et tastatur i et styrekonsoll. En operatør kan kommunisere med styreinnretningen så som ved
å reagere på påminnelser fra styreinnretningen på skjermfrem-viseren, og entre kommandoer via tastaturet. For eksempel kan operatøren under redigering reagere på fremviserpåminnelser for å innmate ønskede endringer i programmer som allerede er lagret i datamaskinminneinnretningen.
I tilfellet med synkronisert drift mellom arbeidsroboten og en transportør som fører et arbeidsstykke forbi roboten, mottar styreinnretningen transportørposisjonspulser så som fra en kodeinnretning ved transportøren. Styreinnretningen anvender så transportørposisjonspulsene for å synkronisere anordningen av leddposisjonskommandoer og pistolkommandoer til arbeidsroboten med transportørhastigheten.
Et robotstyresystem kan ansees å ha et antall driftsmodi.
Når en simulator anvendes ved innlæringen for å frembringe et måleprogram av kommandoinstruksjoner, kan styreinnretningen ansees å være i en innlæringsmodus. Når styreinnretningen driver arbeidsroboten slik at denne automatisk sprøytemaler arbeidsstykker som respons på opptegnede måleprogrammer, er styresystemet i en automatisk modus. Styreinnretningen er i en dataoverføringsmodus, f.eks. når den skriver et lagret program av instruksjoner på et kassettbånd eller leser et malingsprogram fra et kassettbånd. Styreinnretningen er i en programrédigeringsmodus når en styreoperatør anvender styrekonsollet for å modifisere programmer allerede er lagret i minnet.
Når styreinnretningen arbeider i hvert av disse forskjellige modi,, er funksjonene som må utføres av styreinnretningen ofte svært forskjellige i nevnte forskjellige modi. Under arbeid f.eks. kan styreinnretningen også samvirke med hjelpeinngangs-signaler og utgangssignaler på arbeidsrobotens arbeidsstasjon. Slike hjelpeutgangssignaler kan omfatte f.eks. en servomotor for å vende et arbeidsstykke i relasjon til arbeidsroboten slik at forskjellige sider av arbeidsstykket kan males på riktig måte. Et hjelpeinngangssignal kan være en grensebryter for å indikere riktig vendig av arbeidsstykket.
Ofte vil et antall arbeidsroboter med tilhørende individuelle styreinnretninger utføre en rekke operasjoner på en enkelt transportlinje av arbeidsstykket. Det kan være ønskelig under arbeidet å overvåke driftsstatus av styreinnretningene ved en slik fler-robotoppstilling. Følgelig kan hver robotstyreinnretning også frembringe statussignaler som blir koblet til et sted som ligger noe unne, for å indikere forskjellige statusparametre i styreinnretningen. Slike statusparametre kan omfatte en indikasjon på at styreinnretningen i virkeligheten er i den automatiske modus (i arbeid) eller en indikasjon på at arbeidsroboten er i ferd med å sprøytemale et arbeidsstykke.
Utførelsen av arbeidsfunksjoner så som sprøytebelegging av et arbeidsstykke eller aktivering av hjelpeutgangsinnretninger er generelt ikke nødvendig under visse andre operasjonsmodi, så som dataoverføring eller programredigering. Andre funksjoner kan utføres svært ofte i en driftsmodus og bare svært sjelden i en annen driftsmodus. Som et eksempel kan en sprøytemalingsrobot i en bestemt fabrikasjon male et antall forskjellige typer arbeidsstykker som forflyttes langs en enkel transportør linje. Oppstrøm for arbeidsstasjonen frembringer en arbeidsstykkeidentifikasjonsstasjon et identifikasjonssignal for hvert arbeidsstykke som forflyttes forbi identifikasjonsstasjonen. Dette kan være adskillige arbeidsstykker som forflyttes med transportøren mellom iden-tif ikas jonsstas jonen og arbeidsstasjonen, og hvor arbeidsroboten i virkeligheten sprøytemaler hvert arbeidsstykke.
Styreinnretningen må lagre hvert arbeidsstykkeidentifikasjonssignal frembragt på arbeidsstykkeidentifikasjonsstasjonen. Disse identifikasjonssignaler blir vanligvis lagret i en kø. I det følgende gjenkaller styreinnretningen identifikasjonen av et arbeidsstykke fra køen, ettersom arbeids stykket nærmer seg arbeidsstasjonen. Gjenkallingen av arbeids-stykkeidentif ikas jonssignalet fra køen blir utført på en først inn-, først ut-basis. Styreinnretningen reagerer på gjenkallingen av hvert identifikasjonssignal ved å lese fra minnet og utføre det riktige sprøytemaleprogrammet for det identifiserte arbeidsstykket.
Dersom styreinnretningen er i en redigeringsmodus snarere enn den automatiske modusen, vil det være typisk at transportøren ikke forflytter arbeidsstykker inn i arbeidsstasjonen under slik redigering. Det er imidlertid mulig at transportøren kan fremføres slik at et antall arbeidsstykker blir forflyttet forbi arbeidsstykkeidentifikasjonsstasjonen, mens styreinn-retningsoperatøren redigerer et program. Arbeidsstykkeiden-tif ikas jonssignaler som blir frembragt under redigering må lagres i køen for anvendelse i et etterfølgende arbeid, slik at styreinnretningen vil være istand til å gjenkalle de riktige måleprogrammene på hvert av arbeidsstykkene som er blitt forflyttet, forbi identifikasjonsstasjonen. Hastigheten som styreinnretningen må anvende ved undersøkelse av identifikasjonssignaler er relativt høy under programutførelsen i den automatiske driftsmodusen. På den annen side vil under redigering - når bare noen få arbeidsstykker kan forventes å ha forflyttet seg forbi arbeidsstykkeidentifikasjonsstasjonen - hastigheten hvorved styreinnretningen må undersøke arbeids-stykkeidentif ikasjonssignalene være relativt lav.
Typiske robotstyreinnretninger er mikroprosessorbaserte
eller datamaskinbaserte, og de forskjellige styrefunksjonene utført av styreinnretningen blir tilveiebragt som respons på et datamaskinprogram. Normalt anvender styreinnretningen en enkel programmert datamaskin eller mikroprosessor som utfører et enkelt monolitisk program. I sin enkleste form omfatter et monolitisk program en enkel hovedprogramsløyfe med mange beslutnings- eller forgreningspunkter i sløyfen. Ved anvendelsen av et slikt program vil robotstyredatamaskinen forflytte seg gjennom den enkle sløyfen med instruksjoner for å utføre alle funksjonene til styreinnretningen. Etter behov
vil under forflytningen gjennom sløyfen datamaskinen kalle opp forskjellige underrutiner for å utføre noen av funksjonene, mens utførelsen av andre funksjoner skjer direkte i hoved-sløyfen.
Datamaskinen tillemper forskjellige operasjonsmodi til robotstyreinnretningen og forskjellige tilstander i hver driftsmodus ved hjelp av hensiktsmessig bruk av beslutningspunktene i programsløyfen. Hvert beslutningspunkt kan formuleres ut-trykt ved robotens styreinnretningsdriftsmodus, styresystemtilstander eller andre faktorer. F.e ks. kan programmet sørge for at det i et beslutningspunkt bestemmes hvorvidt a) styreinnretningen er i en redigeringsmodus og et sekund har utløpt siden siste gangen datamaskinen undersøkte et
arbeidsstykkeidentifikasjonssignal eller
b) dersom styreinnretningen er i den automatiske modusen og et tiendedel av et sekund har løpt siden datamaskinen sist
undersøkte et arbeidsstykkeidentifikasjonssignal.
Basert på resultatene av beslutningen i slike beslutningspunkter utfører datamaskinen forskjellige underrutiner eller grener til forskjellige deler av hovedstyresløyfen. For hver til-leggsdriftsmodus blir tilleggssløyfer og kompleksitetsnivåer introdusert i programmet. For å kunne tilpasse en tilleggs-driftsmodus for styreinnretningen må hvert beslutningspunkt i programmet som angår driftsmodi bli endret for å kunne reflektere tilleggsdriftsmodusen. I en monolitisk program-struktur er mange sløyfer, grener og "underrutiner i programmet tilgjengelige for et antall av andre deler av programmet. Hvert gang en av disse grenene eller underrutinene blir endret for å reflektere modifikasjonen til en styrefunksjon, må det taes i betraktning virkningen av denne endring på alle delene - av programmet.
Antallet funksjoner utført av robotstyreinnretningen kan være relativt stort. For eksempel kan en robotstyreinnretning for en malerobot kommunisere med et lokalt tastatur og skjermfremviser, kommunisere med et fjerntliggende tastatur og skjermfremviser, sende ut status informasjon til et fjernt sted, opptegne kommandoer under innlæring, sende ut kommandoer til en arbeidsrobot under arbeid, frembringe tilleggsutgangssig-naler og lesetilleggsinngangssignaler, overføre måleprogrammer fra masseminnet til bufferminnet, og overvåke en arbeidsstykke transportør . For slike store antall styrefunksjoner blir antallet grener og sammenknytninger i et monolitisk program ekstremt stort. Skriving og modifisering av et slikt monolitisk program er derfor ekstremt tidkrevende.
En noen adskilt betraktning med hensyn til tidligere kjente robotstyreinnretninger er maskinvaretilpasningen av de funksjonene som skal utføres av styreinnretningen. Det er teo-retisk mulig for en enkel mikroprosessor eller datamaskin å utføre alle funksjonene til robotstyreinnretningen mens den kommuniserer direkte med slike eksterne apparater så som robotsimulatoren, arbeidsroboten, et tastatur og skjermfremviser, og en arbeidsstykketransportør. Normalt blir imidlertid for å redusere antallet maskinvareoppgaver for robotsty-reinnretningsdatamaskinen, tilleggsmaskinvarekretser anvendt for å utføre deler av kommunikasjonsfunksjonene.
Således vil f.eks. noen av servosløyfeberegningene for å ut-lede feilsignalene for å drive aksene til arbeidsroboten kunne bli produsert ved anvendelse av maskinvarekretser koblet til arbeidsrobotaktivatorene og transduktorene som mottar de ønskede leddposisjonskommandoer fra styredatamaskinen. Som et annet eksempel, kan operatøren anvende innmatings/ut-gangsmaskinvarekretser for å kommunisere mellom skjermfremviser og tastatur i styrekonsollét og styredatamaskinen. Dette frigir styreinnretningsdatamaskinen fra å utføre slike funksjoner siden den kommuniserer direkte med tastaturet.
Tidligere har også mikroprosessorbaserte kretser blitt brukt for å kommunisere mellom en robotstyredatamaskin og ytre innretninger. De mikroprosessorbaserte kretsene tjener som "slave"-mikroprosessorer som bare svarer på henvendelser fra styredatamaskinen for å utføre ønskede styrefunksjoner. I virkeligheten vil disse mikroprosessorbaserte slavekretsene bare erstatte konvensjonelle maskinvarekretser i styreinnretningen. For eksempel kan en slavemikroprosessor utføre den lukkede sløyfens servostyrefunksjoner for en robotstyreinnretning som respons på de ønskede leddposisjonssignalene forsynt fra styredatamaskinen.
Siden slavemikroprosessorene bare utfører bestemte maskin-varefunksjoner, avlaster de ikke styredatamaskinen for dens høyere nivå beslutnings- og styrefunksjoner. Ettersom antallet av slike høyere nivåfunksjoner som skal utføres av styreinnretningen og antalle driftsmodi til styreinnretningen øker, vil beslutningsbyrden på den enkelte styredatamaskin øke sterkt. Denne byrde kan ikke avlastes ved å føye til slavemikroprosessorkretser eller tilleggsmaskinvare.
Den primære maskinvarebegrensning i en datamaskin anvendt i
en robotstyreinnretning er arbeidshastigheten til datamaskinen, som må være tilstrekkelig til å tillate utførelsen av alle nødvendige funksjoner ved en tilstrekkelig hastighet i alle modi til styreinnretningens drift. Allokering av visse bestemte oppgaver til perifere maskinvare- eller slavemikro-prosessorer kan redusere antallet funksjoner som må utføres av hovedstyredatamaskinen. Hoveddatamaskinen kan så utføre sine funksjoner med en adekvat hastighet, mens det totale styresystemet utfører flere funksjoner enn datamaskinen selv ville være istand til å utføre med tilstrekkelig hastighet.
Følgelig vil det med en enkel datamaskinrobotstyreinnretning, hvori datamaskinen utfører et enkelt monolitisk program,
være maskinvare og programvare begrensninger for utvidelsen av antallet funksjoner og operasjonsmodi til styreinnretningen. Ettersom programvaren utvides for en slik styreinnretning, vil man få større og større programkompleksitet, og programkostnadene øker og øker. Øking av programmerings-kapasiteten til styreinnretningsdatamaskinen for å utføre den mer komplekse programvaren med en adekvat hastighet krever anvendelse av større og mer kostbare datamaskiner, hvilket også resultere i større kostnader.
Det er derfor et generelt formål med oppfinnelsen ved et styresystem for en arbeidsrobot av den forutnevnte typen, å frembringe en styreinnretning som kan utvides uten vesentlig økning i programmeringskompleksiteten. Det er et relatert formål med oppfinnelsen å frembringe en slik styreinnretning som umiddelbart kan gis en økt beregningskapasitet.
Disse formål er oppnådd i samsvar med visse prinsipper for oppfinnelsen, ved å frembringe en robotstyreinnretning som omfatter to datamaskiner som tjener som databussledere koblet til en felles databuss. Begge lederdatamaskinene er istand til å starte kommunikasjoner på databussen. Databussen er i sin tur også koblet til andre kretser i styreinnretningen. Hver lederdatamaskin utfører en forskjellig del av funksjonene til robotstyreinnretningen, hovedsakelig uavhengig av den andre. En av kretsene som er koblet til databussen er et bufferminne, via hvilket de to lederdatamaskinene kommuniserer. Bufferminnet omfatter et første minneområde i hvilket opptegningen blir utført av den første lederdatamaskinen og lest av den andre lederdatamaskinen., Bufferminnet har også et andre minneområde, i hvilket opptegningen skjer av den andre lederdatamaskinen og blir lest av den første lederdatamaskinen.
De andre kretsene som er koblet til databussen er mikroprosessorbaserte kretser som tjener som funksjoner til å samvirke med en arbeidsstykketransportørstyreinnretning og ut-fører den lukkede sløyfeservostyringen av arbeidsrobotaksene. I tillegg til maskinvaredelen til beregningskapasiteten av styreinnretningen i de to lederdatamaskinene er programvare-strukturen til hver av datamaskinene i en modulær form som tillater samtidig behandling. Programvarerutinene for funksjonene som skal utføres av hver styreinnretningsdatamaskin danner et antall av et programs programvaremoduler som arbeider uavhengig av hverandre. Når tilstander opptrer i driften av styreinnretningen som krever at styreinnretningen utfører funksjoner, blir programmodulene som må utføres som respons på disse tilstandene aktivert av en fordelerrutine
for datamaskinen. Ingen enkel programsløyfe blir utført,
i stedet blir de uavhengige individuelle programmodulene oppkalt og utført av datamaskinprosessoren etter behov.
I den viste form av oppfinnelsen er noen av programmodulene bestemt å være prosessmoduler, som inneholder en prosessrutine som blir oppkalt av prosessoren via fordelerrutinen ettersom tilstandene gir fullmakt. Andre moduler er utformet som grensesnittmoduler og inneholder grensesnittrutiner som blir oppkalt av prosessoren via en eller flere av prosessene eller via andre grensesnittmoduler.
Hver prosess omfatter en programsløyfe som inkluderer ved
et punkt i denne en oppkalling av skjemarutinen for å avbryte driften av prosessen. Som respons på oppkallingen blir ut-førelsen av prosessen avbrutt og prosessoren utfører en for-deleravbruddsrutine. Ved å gjøre oppkallingen til fordeleren, sender prosessen til fordeleren en. indikasjon på tilstandene hvorved prosessen skal gjentildeles i fremtiden. Fordeleren anordner disse tilstandene i en prosessentre-tabell og fortsetter å bestemme hvilken prosess som skal utføres som den neste basert på de tilstedeværende styresystemtilstander.
I det foreliggende tilfelle anvender fordeleren en "rundt fuglen"-fordeling ("round robin scheduling"). Ved denne type fordeling forflytter fordelerrutinen seg etter tur gjennom prosessene og undersøker de løpende tilstander mot gjentildelingstilstandene for hver prosess. Når settet av løpende tilstander omfatter en eller flere av gjentildelingstilstandene for en prosess, blir den prosessen utført av prosessoren. I sin tur blir også grensesnittrutiner i grensesnittmodulene oppkalt av hver prosess også utført. Fordelingsmetoden er ikke uttømmende og ikke prioritert. Alle klar-prosesser blir gjennomløpt før en prosess gjennomløpes for andre gang. Fordeleren gir ingen ordre for prosessutførelse.
I henhold til et annet aspekt ved oppfinnelsen vil i robotens fordelingsrutine, dersom fordeleren undersøker hele sekvensen av prosessore i søk etter en gjentildelingstilstand, og ingen av prosessene blir utført, den siste prosessen i sekvensen blir utført. Denne siste, eller standardprosess, er en diag-nostisk rutine som kan anvendes for å undersøke deler av systemet hver gang det blir utført.
I samsvar med nok et formål med oppfinnelsen kan hver av leder datamaskinene søke for den fortsatte driften av den andre datamaskinen ved bruk av en "watchdog"-prosess. Hver data-maskinprosessor utfører vakthundprosessen periodisk for å frembringe et vakthundsignal som blir inntegnet i et hensiktsmessig minneområde i bufferminnet. Den andre lederdatamaskinen søker etter vakthundsignaler periodisk, og dersom signalet ikke. er blitt generert innen et bestemt tidsintervall, vil den andre lederdatamaskin gjenkjenne feiltilstanden.
Oppfinnelsen er nærmere definert i de etterfølgende patentkrav.
Andre formål og fordeler ved oppfinnelsen og utførelsen av denne vil bli klart av den etterfølgende beskrivelse med referanse til tegningene, i hvilke: fig. 1 viser i perspektiv og skjematisk en typisk arbeidsutførende robot, eller manipulator, og viser det generelle forhold mellom de relativt massive robotleddene/armene og deres respektive tilhørende aktivatorer og posisjonstransduktorer,
fig. 2 viser i perspektiv i skjematisk form en lettvekts, håndmanipulerbar simulator-robot, eller innlærings-arm, og viser det generelle forhold mellom simulatorleddene og tilhørende posisjonstransduktorer,
fig. 3 viser i blokkskjema et kretsdiagram over robotstyresysternet og tilhørende simulator og arbeidsrobot,
fig. 4 er et flytdiagram over en illustrerende robotinnlæringssekvens,
fig. 5 er et flytdiagram over en illustrerende robotprogramutførelsessekvens,
fig. 6 er et illustrerende programvaresystemoppbygningsdiagram for en datamaskin i styresystemet på fig. 3.,
fig. 7 viser en prosessentretabell for en datamaskin i styresystemet på fig. 3f
fig. 8 viser skjematisk en prosesstarttabell for en datamaskin i styresystemet på fig. 3,
fig. 9 er et flytdiagram av en fordelerstart-rutine for en datamaskin i styresystemet på fig. 3,
fig. 10 er et flytdiagram av en fordeleravbrudds-rutine for en datamaskin i styresystemet på fig. 3,
fig. 11 er et flytdiagram av en fordelersignalrutine for en datamaskin i styresystemet på fig. 3,
fig. 12 viser programvaresystemoppbygningsdiagram-met for en gruppe programvaremoduler for en datamaskin i styresystemet på fig. 3,
fig. 13 er et flytdiagram over en delidentifika-sjonprogramvareprosessmodul,
fig. 14 er et flytdiagram over en del av en sekvens programvareprosessmodul,
fig. 15 er et flytdiagram over en kø programvaregrensesnittmodul,
fig. 16 er et flytdiagram over en andre del av
en kø programvaregrensesnittmodul,
fig. 17 er et flytdiagram over en datamaskin vakt-hundprosessmodul, og
fig. 18 er et programvaresystemoppbygningsdiagram over en del av systemets oppbygning på fig. 6.
Mens oppfinnelsen kan underkastes forskjellige modifikasjoner og alternative utføringsformer, er en spesiell utførelse blitt vist som eksempel i tegningene og vil i det etterfølgende bli beskrevet i detalj. Det må imidlertid forstås at det er ikke hensikten å begrense oppfinnelsen til den spesielle viste formen, men tvert imot er hensikten å dekke alle modifikasjoner, ekvivalenter og alternativer som faller innenfor ånden og rammen av oppfinnelsen, slik den er definert i de etterfølgende patentkrav.
Oppfinnelsen skal beskrives i det etterfølgende i forbindelse med et styresystem for å lagre en sekvens av leddposisjons kommandoer og pistolkommandoer i form av en sekvens av instruksjoner for en arbeidsutførende robot som anvendes til sprøytemaling av et arbeidsstykke. Med referanse til fig. 1 omfatter en typisk arbeidsutførende robot, eller manipulator, en basis 10 som hviler på gulvet eller på et flyttbart bord (ikke vist) som kan innstilles i et antall posisjoner. Fra basisen 10 strekker det seg flere serieforbundne, langstrakte sammenbundne elementer eller ledd 12, 14, 16, 18, 20 og 22
som i den foretrukne utførelse gir roboten flere - i dette tilfelle 6 - frihetsgrader. I praksis utgjør armene 12, 14, 16, 18, 20 og 22 sammen en realtivt stor masse. For eksempel er armene 12, 14 og 16 hver omtrent 30-122 cm lange.(1-4 fot),
og veier typisk i størrelsesorden 4,5-182 kg (10-400 pund). Armene 18, 20 og 22 som på den arbeidsutførende robot vist på fig. 1 danner et håndledd, er vanligvis vesentlig mindre massive enn armene 12, 14 og 16, selvom dette nødvendigvis ikke er tilfelle.
Armen 12 er vertikalt anordnet og montert på basisen 10 ved hjelp av en hensiktsmessig kobling som tillater at armen kan dreies om sin langsgående akse, som sammenfaller med X-aksen. En aktivator 2 3 er tilordnet armen 12, og reagerer på et posisjonsfeilsignal frembragt av en konvensjonell robotstyreinnretning (ikke vist på fig. 1) for å utføre selektive, to-veis vinkelbevegelser til armen 12 i azimut-retningen rundt dens langsgående akse til den ønskede armposisjonen. Til armen 12 er det også tilordnet en posisjonstransduktor, eller resolver 24 som gir et elektrisk signal som angir den virkelige vinkel eller azimut-posisjon til armen 12 relativt til basisen 10.
Armen 14 er ved sin nedre ende forbundet med den øvre enden
av armen 12 ved hjelp av en hensiktsmessig kobling som tillater aksellageret hevebevegelse av armen 14 i et vertikal-plan om en horisontal akse 26 som er loddrett på X-aksen og parallell med Y-Z-planet. En aktivator 2 8 er tilordnet armen 14, hvilken aktivator reagerer på et posisjonfeilsignal fra robotstyreinnretningen og utfører selektive, i to ret-ninger stigende aksellagret bevegelse av armen 14 om horison-
talaksen 26 til den ønskede armposisjon. En posisjonstransduktor 30 er også tilordnet armen 14, hvilken transduktor- gir et elektrisk signal som angir den virkelige heveposisjonen av armen 14 i relasjon til armen 12.
På samme måte er leddene/armene 16, 18, 20 og 22 forbundet ved hjelp av hensiktsmessige koblinger og har tilhørende aktivatorer 33, 44, 48 og 52 resp. Hver av ledd/arm-aktivatorene reagerer på et posisjonfeilsignal fra robotstyreinnretningen og sørger for bevegelse av hver av armene til den ønskede armposisjonen. Til armene 16, 18, 20 og 22 er også tilordnet de respektive posisjonstranduktorer 34, 46, 50 og 54. Hver av disse posisjonstransduktorer gir et elektrisk signal som angir den virkelige posisjon til det tilhørende ledd/arm. De forbundne armene 18, 20 og 22 utgjør tilsammen et håndledd.
Armen 22 danner det mekaniske utgangselement til den arbeids-utf ørende roboten. Mens det mekaniske arbeidet.til roboten kan anvendes for å posisjonere en rekke innretninger, vil den arbeidsutførehde roboten i den viste form av oppfinnelsen anvendt til å posisjonere en sprøytemalingspistol 58 som har et løp 58a med et munnstykke 58b som sender ut beleggpartikler. Pistolhåndtaket 58c er montert på den øvre ende av håndleddets arm 22. Pistolhåndtaket 58c gir plass for en hensiktsmessig utløsermekanisme 58d, som når den blir aktivert av en dertil egnet signaldrevet innretning (ikke vist), fungerer slik at den påvirker en ventil for å styre utsendelsen av beleggpartikler fra munnstykket 58b til sprøytepistolen 58.
De langsgående rotasjonsaksene til håndleddsarmene 18, 20 og
22 er gjensidig perpendikulære og følgelig utgjør de tre frihetsgrader for roboten. Disse tre frihetsgrader koblet sammen med de tre frihetsgradene til leddene/armene 12, 14 og 16 gir tilsammen seks frihetsgrader for den arbeidsutførende robot.
I driften av den arbeidsutførende robot vist på fig. 1, blir
en serie av programmerte, dvs. ønskede ledd/arm-posisjons-
kommandosignaler som er lagret i form av instruksjoner i en robotprogrammasseminneinnretning i robotstyreinnretningen periodisk fremkalt og sammenlignet med de virkelige leddposisjonssignalene som frembringes av leddposisjonstransduktorene 24, 30, 34, 46, 50 og 54, og som respons på dette blir ledd-posis jonsfeilsignaler generert for hver av armene 12, 14, 16,
18, 20 og 22. Posisjonsfeilsignalene for de forskjellige leddene/armene 12, 14, 16, 18, 20 og 22 blir så matet inn i de forskjellige leddaktivatorene 23, 28, 33, 44, 48 og 52,
som vanligvis er av den servostyrte, elektrohydrauliske typen, for å forflytte leddene til de ønskede, eller programmerte kommandoposisjoner, hvilket i sin tur reduserer posisjonfeil-signalene til null. Således blir leddene til den arbeidsut-førende robot på fig. 1 drevet gjennom den programmerte sekvensen av ønskede bevegelser eller kommandoposisjoner under anvendelse av lukket sløyfe servoteknikk, ved periodisk å sammenligne ønskede posisjonskommandosignaler plukket frem fra minnet til robotstyreinnretningen med virkelige leddposisjonssignaler fra de tilhørende posisjonstransduktorer, og ved anvendelse av de resulterende posisjonsfeilsignalene tilknyttet de forskjellige leddene for å drive de forskjellige leddaktivatorene til de ønskede, eller programmerte kommandoposisjoner.
Under driften av den arbeidsutførende roboten blir pistolkommandoer som er interfoliert ved hensiktsmessige punkter i sekvensen av leddposisjonskommandoer koblet til sprøyteav-trekkerstyringen av pistolen 58. Som respons på disse pistolkommandoer blir malingsstrømningsventilen i pistolen drevet i et tidsbestemt forhold til pistolposisjonen etablert av leddposisjonskommandoene.
Siden robotaktivatorer, posisjonstransduktorer, lukket
sløyfe servostyreinnretninger og lignende for den arbeidsut-førende robot på fig. 1 er vel kjent og ikke danner noen del av denne oppfinnelse, blir ikke disse videre omtalt detaljert heretter, unntatt i den grad det er nødvendig for å forstå oppfinnelsen slik den er beskrevet.
Robotsimulatoren, eller innlæringsarmen, vist på fig. 2, som
er nyttig ved forbedredelsen av en programmert sekvens av bevegelser for innmating til arbeidsroboten for utøvelse av denne i relasjon til et arbeidsstykke, omfatter en tredelt basis 110 fra hvilken det strekker seg vertikalt en leddarm
112 som er forbundet med basisen for dreibar bevegelse rundt den vertikale akse ved hjelp av en dreibar kobling 123.
En posisjonstransduktor 124 tilknyttet leddet 112 og basisen 110 gir et elektrisk signal som angir den virkelige mikro-posisjonene til armen 112 relativt den stasjonære basisen. En arm J 114 er akselforbundet med den øvre enden av armen 112 ved hjelp av en dreibar kobling 128, og denne arm 114 kan dreies om en akse 126. En vinkelposisjonstransduktor 130 tilordnet koblingen 128 og armen 114 gir et elektrisk signal som angir den virkelige vinkelposisjon til armen 114 i forhold til armen 112. En arm 116 er forbundet med armen 114 via en dreibar kobling 133 som kan dreies om aksen 132. En vinkelposisjonstransduktor 134 tilordnet koblingen 133 og armen 116 gir et elektrisk signal som angir den virkelige vinkelposisjonen til armen 116 i forhold til armen 114.
Robotsimulatoren vist på fig. 2 innbefatter også leddarmer 118, 120 og 122 som er dreibart forbundet med armene 116, 118 og 120 resp. via dreiekoblinger 144, 148 og 152 resp. Vinkelposi-sjonstransduktorer 146, 150 og 154 tilordnet de respektive dreiekoblingene 144, 148 og 152, og leddarmene 118, 120 og 122 resp., gir elektriske signaler som angir den virkelige vinkelposisjon til leddene/armene 118, 120 og 122 i forhold til armene 116, 118 og 120 resp.
Lengden på armene 112, 114, 116, 118, 120 og 122 til sumulator-roboten på fig. 2 er identisk med lengdene til armene 12, 14, 16, 18, 20 og 22.resp. til den arbeidsutførende roboten vist på fig. 1. Selvfølgelig er massen til armene 112, 114, 116, 118, 120 og 122 til simulatorroboten på fig. 2 bare en liten del av massen til de tilsvarende armene 12, 14, 16, 18, 20 og 22 til den vesentlig mer massive arbeidsutførende roboten vist på fig. 1. På samme måte tillater koblingene 123, 128^..133 ^ 144, 148 og 152 til simulatorroboten den samme type dreiebevegelse mellom sine respektive tilknyttede armer 112, 114, 116, 118, 120 og 122, og man får det samme forhold vedrørende tilsvarende dreibare aktivatorer 23, 28, 33, 44, 48 og 52 og de respektive tilhørende armer 12, 14, 16, 18, 20 og 22 til den arbeidsut-førende robot.
De forbundne armene eller leddarmene 118, 120 og 122 utgjør tilsammen et håndleddrog armen 122 utgjør det mekaniske utgangselementet til simulatorroboten. I samsvar med arbeidsroboten på fig. 1 omfatter den mekaniske utgangen til sumula-toren en sprøytemalingspistol 158 som har et løp 158a med en munning 158b som sender ut beleggpartikler. Pistolhåndtaken 158c er montert på den øvre enden av håndleddsarmen 122. Pistolhåndtaken 158 gir plass for en hensiktsmessig ut-løser eller avtrekksmekanisme 158d som når den blir aktivert av simulatorens operatør, kontrollerer utsendelsen av beleggpartikler fra munningen 158b til sprøytepistolen 158.
Når sprøytepistolen 158 forflyttes manuelt av en operatør som griper håndtaket 158c.gjennom en sekvens av bevegelsen som er nødvendig for å sprøytemale et objekt, hvilket er mulig på grunn av lettvektskonstruksjonen av simulatoren, vil de forskjellige armene 112, 114, 116, 118, 120 og 122 til simulatorroboten forflytte seg gjennom en sekvens av bevegelser. Samtidig vil transduktorene 124, 130, 134, 146, 150 og 154 til simulatorroboten som er tilknyttet de forskjellige simulatorrobotarmene/leddene 112, 114, 116, 118, 120 og 122 frembringe elektriske utgangssignaler som korresponderer med de virkelige sekvensene av posisjoner, eller bevegelser - som simulatorrobotarmene beveger seg gjennom under den manuelle for-flytning av pistolen gjennom posisjoner som er nødvendig for å male objektet. Disse transduktorsignaler som korresponderer med de virkelige posisjonene til de forskjellige simulatorrobotarmene kan innmates direkte i robotstyreinnretningen eller bli opptegnet av hvilke som helst hensiktsmessige innretninger (ikke vist).
Sprøytepistolen 158 på simulatoren inneholder de samme elementer og styreinnretninger 158a-158d som de korresponderende elementene 58a-58d til pistolen 58 som anvendes av arbeidsroboten. Under forflytningen av pistolen 158 gjennom sekvensen av bevegelser som er nødvendig for å sprøytemale et arbeidsstykke, vil operatøren av simulatoren periodisk aktivere avtrekkeren 158d manuelt for å tillate at maling sprøytes fra pistolmunningen 158 b.
Ved å opptegne signaler som korresponderer med posisjonen til bryteren 158d i samvirke med opptegningen av posisjonssignalene frembragt av posisjonstransduktorene 124, 130, 134, 146, 150 og 154 til simulatorroboten for hele sekvensen av bevegelser av simulatorrobotarmene 112, 114, 116, li8, 120 og 122 som er frembragt ved manuell manipulering av operatøren av pistolen 158, kan en sekvens av koordinerte pistolbryterkommandosig-naler og ønskede robotarmposisjonssignaler bli-lagret.
Disse lagrede signaler (ledd/arm-posisjonskommandoer interfoliert med pistolkommandoer) blir opprettholdt i robotstyreinnretningen som et måleprogram i et bobleminne 202 (fig. 3). Deretter - når det erønskelig å drive arbeidsroboten under styring av lagrede program - blir de opptegnede ledd/arm-posis jonskommandoer innmatet i robotstyreinnretningen for anvendelse av den arbeidsutførende robot og blir sekvensvis fremtrukket og sammenlignet med signaler som angir arbeidsrobotens virkelige ledd/arm-posisjoner; og posisjonsfeilsignaler blir avledet for innmating i arbeidsrobotens ledd-aktivatorer for å forårsake at arbeidsrobotens ledd/armer reproduserer bevegelsen fra simulatorrobotarmene på måten som er beskrevet foran. I tillegg blir pistolkommandoer som er interfoliert med posisjonskommandoene fremtrukket, og pistolbryteren blir aktivert i det riktige tidsforhold i forhold til bevegelsen av robotledd/armene for å utføre sprøytemaling av arbeidsstykket.
I forbindelse med simulatorroboten og arbeidsroboten i henhold til en eksempelvis utførelse av oppfinnelsen er det formåls- tjenlig med en robotstyreinnretning 200, som omfatter et antall kretser som kommuniserer på en felles databuss 201. Styreinnretningen 20 0 omfatter et bobleminne 20 2 som tjener som et robotprogramminne for å lagre måleprogrammer av kommando-sekvenser for å drive de forskjellige armene/leddene 12, 14, 16, 18, 20 og 22 til arbeidsroboten. Styrefunksjonene til robotstyreinnretningen 20 0 blir utført av to lederdatamaskiner, en styredatamaskin 203 og en manipulatordatamaskin 205. Disse datamaskiner samvirker under en innlæringsperiode med en aksestyrekrets 206 for å opptegne måleprogrammer i bobleminnet 202. De to lederdatamaskinene 20 3 og 20 5 samvirker også under en arbeidsperiode for å koble et valgt arbeidsstykkemaleprogram fra bobleminnet 202 til aksestyrekretsen 206.
De ønskede posisjonskommandoene for arbeidsroboten - som blir koblet til aksestyrekretsen 206 - blir sammenlignet med virkelige robotposisjoner på bakgrunn av arbeidsrobotens posisjonstransduktorer 23, 28, 33, 44, 48 og 52 på ledninger 207. Som respons på disse sammenligninger blir posisjonsfeilsignaler for arbeidsroboten avledet av aksestyrekretsen 20 6 for innmating i armaktivatorene 24, 30, 34, 46, 50 og 54 på ledninger 210. Under programgenerering, i innlæringsperiode, blir signaler som angir de ønskede arbeidsrobotarmposisjoner fra simu-latorrobottransduktorene 124, 130, 134, 146, 150 og 154 innmatet i robotstyrekretsen 206 på ledninger 204. I robotstyre-bobleminnet 202 er også lagret som del av hvert måleprogram pistolkommandoer interfoliert med sekvensen av posisjonskommandoer. Pistolkommandoene omfatter kommandoer for å innstille den ønskede tilstanden til på/av-bryteren 58d til arbeidsroboten. Disse på/av-brytertilstandsignaler blir innmatet under programgenereringen til manipulatordatamaskinen 205 på linje 211 og blir utmatet under programutøvelsen til på/av-bryteren 58d til arbeidsroboten på ledning 212.
Under en innlæringsperiode blir arm/leddposisjonstransduktor-signalene koblet til aksestyrekretsen 206 på ledningen 204 om-dannet til digitale signaler og utvalgt ved en bestemt hastighet. De digitale armposisjonssignalene blir så koblet fra akse styrekretsen 206 til manipulatordatamaskinen 205. I tillegg blir tilstandene til på/av-bryteren 158d koblet direkte til manipulatordatamaskinen 205 på ledningen 211. Manipulatordatamaskinen redigerer kommandoene i instruksjonsinneholdende grupper av armposisjonskommandoer og pistolkommandoer. En fullstendig serie av disse instruksjonene fra en innlæringsperiode utgjør et måleprogram. Programmet med instruksjoner frembragt under en innlæringsperiode blir innlest i bobleminnet 202 for å lagres og senere utøves av arbeidsroboten.
I det viste styresystemet 200 blir armposisjonskommandoer og pistolkommandoer lagret i bobleminnet 20 2 i form av instruksjoner. Seks armposisjonskommandoer, en for hver av robotarmene og en plstolkommando omfatter en gruppe av kommandoer. Åtte grupper kommandoer omfatter en instruksjon. Instruksjonene blir lagret i bobleminnet i blokker, med et antall blokker av instruksjoner som utgjør et fullstendig måleprogram. Typisk inneholder bobleminnet 202 et antall av separate,identifiserte, forskjellige måleprogrammer som kan anvendes for å få arbeidsroboten til å male forskjellige typer arbeidsstykker.
Sees styreinnretningen 200 under ett, uten hensyn til de forskjellige kretser i denne, illustrerer fig. 4 rutinen for å opptegne et program under en innlæringsperiode. Under en innlæringsperiode vil styreinnretningen utvelge, omdanne og opptegne en første ønsket arbeidsrobotarmposisjon (301) fra en av armposisjonstransduktorledningene 204. Styreinnretningen avsøker så pistolbrytetilstanden (302) på ledningen 211. Etter opptegning av armposisjonskommandoer for hver av de seks armene til simulatorroboten (303) blir pistolbrytertilstanden opptegnet (304) sammen med en indikasjon av stedet under akse-kommandoopptegning at pistolen endrer tilstand, dersom den har endret tilstand. Styreinnretningen bestemmer så om åtte grupper av kommandoer er blitt opptegnet (305) og når åtte grupper av kommandoer er blitt opptegnet, dannes en instruksjon og det undersøkes for å fastslå om simulatoroperatøren har signalert slutten av innlæringsperioden (306). Styreinnretningen fortsetter å opptegne instruksjoner inntil slutten av
innlæringsperioden er blitt signalert av operatøren.
Fig. 5 er et flytdiagram over styrerutinen for en arbeidsperiode, ved hvilken arbeidsroboten drives under programsty-ring. I det viste flytdiagrammet blir driften av styreinnretningen sett som en helhet uten hensyn til de individuelle kretsene i denne. Styreinnretningen henter først pistolbry-tertilstandkommandoer fra styreminnet (311), som i sin tur blir overført til robotens på/av-bryter for å styre påfør-ingen av maling (312). Tidsinnpassingen av påføringen av en pistolkommando til pistolbryteren blir samordnet med den opptegnede indikasjon av punktet under aksekommandoopptegningen hvorvidt pistolbrytertilstanden var blitt endret. Styreinnretningen henter så den første armposisjonskommandoen i den første gruppen av kommandoer i instruksjonen (313). Den virkelige posisjonen til arbeidsrobotarmene det gjelder blir innmatet via sin respektive ledning 207 til robotstyreinnretningen (314) og de ønskede og de virkelige arbeidsrobots-armposisjoner blir så sammenlignet og en arbeidsrobotposisjons-feil for dette bestemte ledd eller arm blir utregnet av robotstyreinnretningen 315. Arbeidsrobotens posisjonsfeilsignaler blir utmatet via den respektive ledning 210 til den respektive arbeidsrobotleddaktivator (316). De foregående ledd/arm-posis jonerings trinn blir gjentatt for hvert ønsket arbeids-robotarmposisjonssignal, i dette tilfelle seks (317). Trinnene ved å behandle en gruppe signaler ble gjentatt for antallet grupper i en enkel instruksjon, i det foreliggende tilfelle åtte grupper av signaler (318). Etter at åtte grupper av signaler er blitt behandlet avgjør styreinnretningen om slutten av programmet er nådd (319), og hvis det er tilfelle, blir sprøytemalingsprogrammet avsluttet og arbeids-perioden er slutt. Dersom slutten av programmet ikke er nådd, fortsetter styreinnretningen å utføre instruksjoner for å drive arbeidsroboten.
I utførelsen av en arbeidsperiode av styreinnretningen 200 blir instruksjonsblokkene i måleprogrammet utført av arbeidsroboten, overført på en blokk for blokkbasis fra bobleminnet 202 til et bufferminne 227 på styredatabussen 201. Akse- kommandoer blir på en kommando for kommandobasis koblet fra bufferminnet 227 på databussen 201 til aksestyrekretsen 206. Aksestyrekretsen anvender armposisjonskommandoene for den
lukke sløyfe servostyreinnretningen til arbeidsroboten som tidligere beskrevet. Dersom styreinnretningen arbeider synkront med arbeidsstykketransportør som forflytter arbeidsstykket forbi arbeidsrobotens arbeidsstasjon blir hastigheten ved hvilken armposisjonskommandoene blir koblet til aksestyrekretsen 206 synkronisert med transportørbevegelsen. Aksestyrekretsen 206 utfører vanligvis servostyresløyfen med en hastighet som er høyere enn hastigheten, ved hvilken posisjonskommandoene blir matet til aksestyrekretsen 206.
Under en innlæringsperiode vil aksestyrekretsen 206 utvelge
fra armposisjonstransduktorene slik at disse frembringer en sekvens av arm/leddposisjonskommandoer som blir koblet til bufferminnet 227 på databussen 201 på en kommando for kom-mandomåte for å danne instruksjoner lagret i bufferminnet. Ettersom blokker med instruksjoner blir opplagret i bufferminnet 227, blir de overført til bobleminnet 202 for å bli lagret som et måleprogram utarbeidet under innlæringsperioden.
Pistolbryterkommandoer fra pistolbryteren 158d er interfoliert med akseposisjonskommandoene som kobles fra aksestyrekretsen 206 under innlæringer, hvilke pistolbryterkommandoer blir koblet direkte til manipulatordatamaskinen 205 i styreinnretningen. På samme måte blir pistolkommandoer som er interfoliert med armposisjonskommandoene utstedt til aksestyrekretsen 206 under en arbeidsperiode, koblet til arbeidsrobotens pistolbryter 58d fra manipulatordatamaskinen 20 5. Pistolkommandoene opprettholdes i riktig tidsforhold til armposisjonskommandoene ved hjelp av manipulatordatamaskinen.
Under innlærings-og arbeidsperioder samvirker styredatamaskinen 203 og manipulatordatamaskinen 205 med bobleminnet 202 for å opptegne..og gjenkalle for utførelse av sprøytemaleprogrammer. Den lukkede sløyfe servostyreinnretningen for arbeidsroboten og utvelgingen og konverteringen av simulatorrobotarmposisjoner blir utført av aksestyrekretsen 206. Styreinnretningen innbefatter også en operatørinnmatings/utmatingskrets 221 soia kommuniserer med en lokal skjermfremviser og tastatur, indi-kert felles med henvisningen 222, i et styrekonsoll. En kassettgrensesnittkrets 223 danner en kobling mellom databussen 201 og en kassettbåndenhet 224 for utveksling av data med styreinnretningen, så som for mating av programmer inn i bobleminnet 20 2 eller for å opptegne programmer på kassetter fra bobleminnet. En transportørgrensesnittkrets 225 sørger for kobling mellom transportørstyreelementer og databussen 201. Transportørstyreelementene, vist felles med henvisningen 226, innbefatter f.eks. en transportørkode som har en utgang i form av et pulstog som indikerer transportørens posisjon og som blir brukt til å synkronisere opptegningen av arm-posis jonskommandoer til aksestyrekretsen 206 med arbeidsstykke-bevegelsen på transportøren. Styreinnretningen 200 innbefatter videre bufferminnekretsen 227 som gir foreløpige lager-plasser for programinstruksjoner som overføres til og fra bobleminnet under innlæring og arbeidsperioder. Bufferminnet sørger også for innretninger for å kommunisere mellom styredatamaskinen 203 og manipulatordatamaskinen 205, som skal forklares mer detaljert i det etterfølgende.
I den foreliggende utformingen av oppfinnelsen er styredatamaskinen 203 og manipulatordatamaskinene 205 begge enkelt-kammerdatamaskiner, spesielt typen iSBC88/25 enkeltkammer-datamaskiner fremstilt av Intel Corporation of Santa Clara, California. Operatørens innmatings/utgangs-kretser 221 er basert på Intel i8279 tastaturstyreintegrerte kretser og Intel i8212 innmatings/utgangs-styreintegrerte kretser. Bobleminnet 202 er et Intel iSBC254 masse-minnesystem, og bufferminnet 227 er et RAM/ROM-minne så som en type 4602 integrert krets :£remstilt av Monolithic Systems. Aksestyrekretsen 206 innbefatter to aksestyreinnretninger (en styreinnretning pr. tre akser), og hver aksestyreinnretning er basert på en Intel i8741A mikroprosessor. Den samme mikroprosessoren danner basisen for kassettgrensesnittkretsen og transportørgrense-
snittkretsen.
Hver av kretsene i styreinnretningen 200 kommuniserer på den felles databussen 201. I det foreliggende tilfelle er databussen en IEEE standard 796-databuss, i samsvar med Intel Multibus (TM) Specification. Både styredatamaskinen 203 og manipulatordatamaskinen 20 5 er lederdatamaskiner som kan initiere kommunikasjoner på databussen 201. Lederdatamaskinene er benevnt "databussledere". Bobleminnekretsen 202 kan også fungere som en databussleder. Databussen innbefatter adresselinjer, datalinjer og styrelinjer. Blant styrelinjene er det innbefattet en leselinje og en skrivelinje som blir anvendt av databusslederene i samvirke med adresselinjene for å initiere en lesing eller en skriving fra eller til en bestemt adresse som er tilgjengelig på databussen 201. De andre mikroprosessorbaserte kretsene i styreinnretningen 20 0 er "slave"-mikroprosessorer, eller "databusslaver", og reagerer på databusslederene, når de blir adressert ved enten å skrive data på datalinjene til databussen, eller ved å lese data fra datalinjene på databussen.
Databussprioriteten i det foreliggende tilfelle er
1) bobleminnet
2) manipulatordatamaskinen og
3) styredatamaskinen.
Konflikter vedrørende adgang til databussen 201 blir løst
med maskinvare i samsvar med databussprioritetsprotokoller til databusspesifikasjonen.
I tillegg til å kommunisere med databussen 201 kommuniserer styredatamaskinen med styreinnganger og statusutganger 228. F.eks. kan statusen, eller driftsmodus, til styreinnretningen 20 0 bli forsynt til en fjernt sted som overvåker statusen til en eller flere robotstyreinnretninger 200. Manipulatordatamaskinen 205 kommuniserer også med hjelpeinnganger og ut-ganger 229, som typisk er lokalisert ved arbeidsrobotens arbeidsstasjon. F.eks. kan manipulatordatamaskinen utstede styrekommandoer til en servomotor for å rotere et arbeidsstykke som blir sprøytemalt eller til å aktivisere en utblåsnings-
vifte på arbeidsstasjonen.
I maskinvareutførelsen av styreinnretningen 200 vil anordningen av en styrelederdatamaskin og en mainupulatorlederdatamaskin for å dele styrefunksjonene til robotstyreinnretningen sam-svare med et aspekt ved oppfinnelsen. Den bestemte maskin-vareutf ørelse av styrekretsene i seg selv er ikke kritisk. F.eks. kan kassettgrensesnittkretsen 223 og transportørgrense-snittkretsen 225 kombineres i en enkelt krets. Eller en av de mikroprosessorbaserte kretsene kan erstattes av diskrete logiske kretser. I tillegg kan styrefunksjonene til styreinnretningen 200 utføres av en eller flere tilleggslederdata-maskiner som kommuniserer på databussen 201, ved anvendelsen av konvensjonell databussprioritetsteknikker avhengig av antallet databussledere i systemet. Følgelig skal ikke den spesielle maskinvareutførelsen av styreinnretningen 200 bli ytterligere diskutert her unntatt i den grad det er nødvendig for å forstå de forskjellige aspekter ved den foreliggende oppfinnelsen.
I samsvar med et ytterligere aspekt ved oppfinnelsen innbefatter programvareoppbygningen som anvendes for hver av lederdatamaskinene et antall uavhengige programmoduler som vist på fig. 6. Denne programvareoppbygning blir anvendt i hver av de to lederdatamaskinene, styredatamaskinen 20 3 og manipulatordatamaskinen 205, men den viste programvareoppbygning kan være fordelaktig å anvende med ethvert antall lederdatamaskiner som danner en robotstyreinnretning, heri inkludert en enkel lederdatamaskin.
En programvaremodul kan sees som en samling av rutiner eller prosedyrer som arbeider med et sett med data for å utføre en spesiell funksjon. Som det er utført i den foreliggende styreinnretningen, vil en typisk programvaremodul innbefatte et antall rutiner for å utføre forskjellige aspekter ved en enkel styrefunksjon. En programmodul kan inneholde en prosessrutine, som som det skal beskrives i det etterfølgende, blir utført som respons på tilstander i systemet som opp kaller denne prosessrutine. Andre rutiner i programmodulene er benevnt grensesnittrutiner, som kan oppkalles for utførelse av prosessrutinene eller andre grensesnittrutiner. En enkel programmodul kan inneholde både prosess- og grensesnittrutiner og enhver modul som inneholder en prosess blir benevnt en prosessmodul enten det er eller ei også grensesnittrutiner i modulen.
En programmodul innbefatter typisk en initialiseringsrutine som blir utført når styreinnretningen først blir energisert.
En programmodul kan også innbefatte en avbruddsrutine.
Avbrudd skal forklares i det følgende. Det felles element
for hver programmodul er at hver av rutinene til modulen arbeider med et felles datasett som vanligvis ikke er tilgjengelig for noen av de andre programvaremodulene.
Den viste programvaresystemoppbygning anvender prosessoren
i hver lederdatamaskin en fordelerrutine for å oppkalle prosessen i en gruppe av prosessmoduler nr. 1 til N og prosessoren utfører så de oppkalte prosesser. Et antall grensesnitt-programvaremoduler, benevnt med numrene 1 til M, inneholder rutiner som ikke blir oppkalt direkte av fordeleren, men blir anvendt av prosessen for å utføre forskjellige funksjoner. Prosessmoduler kan også inneholde grensesnittrutiner som ikke kan oppkalles direkte av fordeleren. Rutiner i en grensesnitt-modul kan oppkalles av flere enn en prosess, og grensesnittrutiner kan oppkalles av andre grensesnittrutiner.
Fordeleren er en"rundt fuglen-fordeler", som forflytter seg etter tur gjennom prosessene fra prosess nr. 1 til prosess nr. N og vender tilbake til prosessmodul nr. 1 for å forflytte seg gjennom sekvensen igjen. Ikke alle prosessene blir valgt av fordeleren til å bli utført, istedet har hver prosess ved ethvert gitt tidspunkt en tilhørende tilstand eller tilstander som - dersom de er riktige - vil resultere i at prosessen blir utført. Hver prosess er en programsløyfe som kan inneholde et antall grener. Ved ett eller flere programtrinn i prosessen opptrer "avbryte-oppkallinger" som oppkaller fordeler avbruddsrutinen for å avbryte utførelsen av prosessen. Når en prosess blir avbrutt, er det tilhørende gjentildelingstilstander som må tilfredsstilles for igjen å kunne utføre eller gjentildele prosessen. Prosessoren oppbevarer identifikasjonen av disse tilstandene for hver prosess i en tabell i datamaskinminnet. De løpende styresystemtilstander blir så sammenlignet med gjentildelingstilstandene for hver prosess under rundfordelingen utført av fordeleren.
Gjentildelingstilstandene for en bestemt prosess kan endres., hver gang prosessen blir utført. Ettersom fordeleren under-søker hver prosess, blir - dersom de løpende systemtilstan-dene ikke passer med de løpende gjentildelingstilstandene for prosessen - den prosessen ikke utført.
For riktig å kunne gjentildele hver prosess valgt av fordeleren innbefatter datamaskinen i minnet en prosessentre-tabell - som vist på fig. 7. Denne tabell er en dynamisk tabell lagret i datamaskinens RAM. Prosessentretabellen innbefatter fire informasjonsdeler for hver prosess. Før elementene til prosessentretabellen skal beskrives, er det nødvendig med en kort beskrivelse av en del av driften av mikroprosessoren i lederdatamaskinen. Når prosessoren ut-fører et monolitisk program, blir programmet lagret i datamaskinminnet og prosessoren skrider frem gjennom trinnene til programmet ved å lese trinnene fra datamaskinminnestedet og utføre programtrinnet som er inneholdt heri. Vanligvis er det tilhørende et program et visst område med minne-steder, i hvilke programmet blir lagret. Ved utførelsen av et monolitisk program opprettholder prosessoren også en "stack" eller "stabel" som er et sist inn/først ut-lager for informasjon utledet under utførelsen av programmet.
Den løpende adresselokalisering til toppen av stacken er opprettholdt i et register og blir referert til som "stack"-viser. I et monolitisk program er en kodelokalisering (minneadresse for programkoden) og en stack-viser (som iden-tifiserer lokaliseringen av toppen av programstacken) for å definere utførelsestilstanden til programmet.
I det foreliggende system utfører prosessoren samtidig et antall N prosessorer i adskilte prosessmoduler som er uavhengige av hverandre. Derfor må et kodeområde opprettholdes for hver av prosessene slik at programtrinnene eller koden kan lokaliseres i datamaskinminnet når prosessen skal utføres. Hver av prosessene har også sin egen tilhørende stack og derfor er hver prosess-stack i en forskjellig datamaskinminne-adresse. Følgelig må en stack-viser opprettholdes for hver prosess for å identifisere lokaliseringen av toppen av stacken for denne prosessen hver gang prosessen skal utføres.
Innholdet i prosessentretabellen skal nå beskrives i lys av
den foregående beskrivelse. Det første elementet til prosessentretabellen for hver prosess er stack-viseren for denne prosess. Når prosessen er gjentildelt av fordeleravbruddsrutinen, henter prosessoren stack-viseren fra prosessentretabellen. Stack-viseren inneholder adressen for toppen av stacken og i stacken for prosessen er adressen til prosesstrinnet (kodelokaliseringen), hvorved prosessen skal begynne utførelsen når den er blitt gjentildelt. De gjenværende elementer i prosessentretabellen .angår identifisering av systemtilstander som må tilfredsstilles for å gjentildele prosessen.
I det foreliggende tilfelle er det to typer tilstander som kan resultere i gjentildelingen av en prosess. Hver av disse to typer tilstander er vist som separate entringer i prosessentretabellen. For det første kan en gjentildelingstid bli entret for en prosess. Fordeleren vil når den undersøker hver prosess sammenligne gjentildelingstiden i prosessentretabellen med den løpende tiden opprettholdt i en intern klokke i datamaskinen. Dersom den løpende tiden overskrider gjentildelingstiden, blir prosessen gjentildelt. Dersom prosessen ikke har en tidsrelatert gjentildelingstilstand, er gjentildelingstiden i prosessentretabellen null.
Den andre typen gjentildelingstilstand er en gjentildelings-hendelse. I den foreliggende form vil gjentildelingshendelses-1 entring_i prosessentretabellen for hver|-prosess være et 16-bit ord. Hvert av de 16 bittene korresponderer til en forskjellig systemtilstand. Hver av de to datamaskinene i det foreliggende systemet har sitt eget begivenhets- eller hendelses-ord slik at opptil 32 hendelser kan signaliseres i systemet. Slike tilstander kan være f.eks. tilstedeværelsen av et arbeidsstykke på arbeidsrobotens arbeidsstasjon eller nedtryk-kingen av en tast på styrekonsollets tastatur. For hver prosess vil fordeleren sammenlignet gjentildelingshendelsesordet med et systemhendelsesord som blir lagret i et systemhendelses-minne i datamaskinen. Dersom noen av de løpende hendelser eller begivenheter i hendelsesminnet passer til en gjentil-delingshendelse for denne prosessen, blir prosessen utført.
Den fjerde delen med informasjon i prosessentretabellen for hver prosess er et tilbakestillingsord. Tilbakestillingstil-felle-ordet er representativt for gjentildelingstilfeller generert under utførelsen av en prosess, og tilbakestillingstilfelleordet blir anvendt for å klargjøre gjentildelings-tilf eller fra systemtilfellet eller hendelsesordet periodisk. Generelt vil fordeleren addere nye tilfelleindikasjoner til systemtilfelleordet etter at hver prosess er utført. De nye tilfeller forblir i systemtilfelleordet inntil fordeleren har gått gjennom alle prosessene en gang, slik at hver prosess har en mulighet til å reagere på et nytt systemtilfelle. Anvendelsen av tilbakestillingstilfelleordet skal beskrives mer fullstendig i det etterfølgende i forbindelse med et illustrerende flytdiagram for fordeleroperasjonen.
For å kunne stille opp prosessentretabellen hver gang datamaskinen blir aktivert, er en prosessinitialiseringstabell - som vist på fig. 8 - lagret som en statisk tabell i computerens rom. Denne tabell inneholder to informasjonsdeler for hver prosess. Først er en kodelokalisering lagret. Kodelokaliseringen er datamaskinens minneadresse for begynnelsen av koden, eller programtrinn for prosessen. Den andre informasjons-delen er en stack-lokalisering for prosessen.
Initialiseringen eller oppstartingen av programmodulene og fordeleren innbefatter etabléringen av prosessentretabellen og er vist i flytdiagrammet på fig. 9. Ved aktivering'.av datamaskinen blir et antall startrutiner utført (321). De nødven-dige instruksjoner for å utføre oppstartingen blir lagret i en oppstartings- eller initialiseringstabell i datamaskinens rom. Datamaskin-mikroprosessorene innstiller så en varierbar "tid"
lik den løpende klokketid (322), som fåes fra en intern klokke i datamaskinen. Prosessoren setter så en variabel "N" lik en (323).
Prosessoren sender prosess (N) kode-lokaliseringsadressen i prosess (N) stack-lokaliseringen som er oppnådd fra initialiseringstabellen (324). Prosessoren sender så prosess (N) stack-lokaliseringsadressen fra initialiseringstabellen i prosess (N) entretabell-stack-viserlokaliseringen (325). På
denne måten begynner prosessen - den første gangen hver pro-
sess blir utført - med kodelokaliseringsadressen lagret i prosessinitialiseringstabellen. Så - beskrives i det etter-følgende - blir hver gang en prosess blir avbrutt, stack-
viseren for denne prosessen lagret i prosessentretabellen.
Ved senere gjentildeling av prosessen, vil prosessoren få
frem stack-viserlokaliseringen for prosessen fra prosessentretabellen og får frem kodelokaliseringen, hvorved oppstartingen av utførelsen av prosessen fra stacken skal ta til.
Så i det neste trinnet (326) setter datamaskinen for prosessen
(N) gjentildelingstiden lik en verdi lavere enn den variable tiden som er blitt satt lik klokketiden. Denne entring i tabellen vil sikre av hver prosess blir utført under den første passering gjennom -prosessmodulene av fordeleren, siden den løpende tiden vil overskride gjentildelingstiden lagret i tabellen for. hver prosess. Prosessoren i dette trinnet (326) innstiller også gjentildelingstilfellet og tilbakestillings-tilfeller.ordene lik null.
Prosessoren øker N (327) og avgjør om den er ved slutten av prosessentretabellen (328) . Dersom den ikke er det gjentar prosessoren trinnene 324-327. Dersom prosessoren er ved slut ten av prosessentretabellen, innstiller den et signaltilfelleord og systemtilfelle-ordet (for sin datamaskin) lik null
(329). Som det skal forklares mer detaljert i det etter-følgende, er systemtilfelleordet et 16-bitt ord lagret i et RAM-minne i datamaskinen, hvilket ord indikerer generelt
alle gjentildelingstilfeller som har opptrådt siden siste gangen en prosess, som nå blir utsjekket eller undersøkt av fordeleren, sist ble utsjekket. Signaltilfelleordet for en datamaskin er i hovedsaken lik alle tilfeller signalert av enten datamaskinen under utførelsen av en prosess som nettopp er blitt utført. I det foreliggende systemet er det.to signaltilfelleord, ett for hver lededatamaskin. De to signaltilf elleordene blir lagret i bufferminnet (227). Hver datamaskin kan innskrive signaltilfeller til enten det ene eller det andre signaltilfelleordet i bufferminnet. Signaltilfelleordet som tilhører en bestemt datamaskin kan imidlertid bare bli tilbakestilt av den datamaskinen. Når det skrives et signaltilfelle til signaltilfelleordet,må det signalerte tilfellet derfor innbefatte en designering av en av de to datamaskinene for å kunne være fullstendig angitt.
Etter innstilling av signaltilf elle-h og systemtilf elleordene til null får prosessoren så den første prosess-stack-viser fra prosessentretabellen (330). Ved utførelsen av dette trinn blir stacklokaliseringen fra stack-viserentringen i prosessentretabellen anordnet i datamaskinstack-viserregistret og datamaskinen er satt istand til å utføre den første prosessen. Under utførelsen av hver prosess blir en oppkalling til en fordeler avbruddsrutine utført av prosessen. Ved ' dette punktet i utførelsen av prosessen blir prosessen avbrutt og fordeleravbruddsrutinen blir utført. Fordeleravbruddsrutinen oppdaterer systemtilfelleordet slik at dette omfatter tilfellene som er signalert under den nettopp avbrutte prosessen og avgjør -hvilken prosess som skal gjentildeles som den neste. Fordeleravbruddsrutinen er vist i flytdiagrammet på fig. 10.
Når det er en avbruddsoppkalling fra en prosess, vil data maskinen entre fordeleravbruddsrutinen fra den gamle prosessen. Når en prosess blir avbrutt og oppkaller fordeleravbruddsrutinen, blir stack-lokaliseringen som prosessen skal gjentildeles til og gjentildelingstilstandene for prosessen (tid og tilfeller) overført til fordeleravbruddsrutinen.
Disse informasjonsdeler fåes fra stacken til den avbrutte prosessen,
Ved entringen av fordeleravbruddsrutinen innstiller prosessoren en variabel "systemtid" lik den løpende klokketiden(336). Så blir et ord, "nytt-tilfelle", innstilt lik signaltilfelleordet for den angjeldende datamaskin. Dette signaltilfelleord inneholder en indikasjon på tilfellene som er blitt signalert under utførelsen av den gamle prosessen som nettopp var blitt avbrutt. Signaltilfelleordet kan også innbefatte tilfeller signalert fra den andre datamaskinen. Prosessoren innstiller så signaltilfelleordet for angjeldende datamaskin lik null (337). Prosessoren likestiller logisk det nye tilfelleordet med systemtilfelleordet (338). Dette oppdaterer systemtilfelleordet, slik at det omfatter tilfellene signalert under prosessen som nettopp var blitt avbrutt. Prosessoren innstiller så en variabel "N" lik 1 (339) og gjen-nomløper trinnene 340 til 342 for å modifisere prosessentretabellen, slik at tilfelleordet for hver prosess i tabellen tilbakestilles.
Som det vil sees blir tilbakestillingstilfelleordet anvendt for å fjerne tilfeller fra systemtilfelleordet. Dette blir gjort etter at hver prosess har hatt en mulighet til å "se"
at et tilfelle blir signalert av en prosess. F.eks. dersom prosess nummer 4 signalerer tilfellet nr. 1 (av de 16 tilfeller) og det er 8 prosesser (N lik 8), må dette signalerte tilfellet undersøkes mot gjentildelingstilfelleordet for prosessene 5-8 og 1-4. Etter at fordeleren har sammenlignet tilfelle nr. 1 med gjentildelingstilfelleordet til hver av prosessene, heri inkludert prosess nr. 4 som signalerte tilfellet, blir tilfellet fjernet fra systemtilfelleordet.
Grunnen for sløyfen med trinnene 340 til 342 er å sikre at dersom det samme tilfellet, så som tilfelle nr. 1 f.eks.,
blir signalert igjen av en etterfølgende prosess, vil det tilfellet ikke bli tilbakestilt av den første prosessen for å signalere tilfellet. I eksemplet vil - dersom etter prosess nr. 4 signalerer tilfelle nr. 1 - prosess nr. 8 også signalere tilfelle nr. 1, og prosessene 1-8 må bli gitt en mulighet til å"se" det signalerte tilfellet nr. 1. Derfor må det være [sørget for innretninger for å hindre at tilfelle nr. 1 blir tilbakestilt etter at fordeleren når prosess nr. 4, hvilket opprinnelig ville ha signalert tilfelle nr. 1. Med andre ord - hver gang et tilfelle blir signalert, må hver prosess i sekvensen som innbefatter signaleringsprosessen ha en mulighet til å "se" det signalerte tilfellet uansett om det har vært tidligere signalering av det samme tilfellet.
I sløyfen med trinnene 340-342 modifiserer datamaskinen til-bakestillingstilfellet for hver prosess ved å utføre den logiske funksjonen og ikke mellom hver til hvert tilbakestillings-tilfelleord og det nye tilfelleordet (som indikerer tilfellet som nettopp er signalert av den gamle prosessen). Ved denne operasjonen vil ethvert tilfelle i et prosesstilbakestillings-tilfelleord som korresponderer til et nytt tilfelle bli fjernet fra tilbakestillingstilfelleordet.
Etter klargjøring av prosessentretabelltilbakestillingstil-felleordene som beskrevet anordner prosessoren den løpende stack-viser i stack-viserlokaliseringen i prosessentretabellen for de gamle prosessene. Når denne prosessen etterpå blir gjentildelt, vil prosessoren bli rettet av prosessentretabell-stack-viserentringen til stacken for prosessen, som i sin tur inneholder kodelokaliseringen som angir hvor utførelsen av prosessen skal begynne.
Prosessoren innstiller så gjentildelingstilfelleordet for den gamle prosessen i prosessentretabellen for å gi tilbake gjen-tildelingstilf ellene utført over fra den gamle prosessen inn i fordeleravbruddsrutinen (344). Prosessoren innstiller en variabel "midlertidig" tid lik null (345) . Prosessoren under-søker så gjentildelingstiden over fra den gamle prosessen
(346). Dersom gjentildelingstiden er større enn null,hvilket indikerer at det er en gjentildelingstidstilstand for prosessen, innstiller prosessoren "midlertidig tid" lik systemtiden etablert ovenfor (i trinn 336) pluss intervallet med gjentildelingstid utført over fra den gamle prosessen (347). Dersom gjentildelingstiden ikke er større enn null, blir trinnet 34 7 forbipassert og "midlertidig tid" forblir lik null. Prosessoren entrer verdien av "midlertidig tid" under gjentildelingstiden for prosessen i prosessentretabellen (348). Til slutt anordner prosessoren det nye tilfelleordet (som indikerer tilfeller signalert under utførelsen av den gamle prosessen) under tilbakestillingstilfelleentringen i prosessentretabellen for den gamle prosessen (349). I trinnene 343-349 har prosessoren derfor spart på den gamle prosesstatusen og innstilt gjentildelingstilstandene for prosessen ved å skrive de nødvendige entringer i prosessentretabellen for den gamle prosessen.
Prosessoren innstiller så statusen til en variabel, "diagnos-tisk", lik en falsk tilstand (351) som begynner med delen av fordeleravbruddsrutinen som bestemmer den neste prosessen som skal gjentildeles. Prosessoren innstiller så en variabel, "tid-ute" for en falsk tilstand og et ord "tilbakevendingstilfelle" lik null (352) . Prosessoren øker prosessidentifikasjonen fra den gamle prosessidentifikasjonen til den neste prosessen i sekvensen (35 3) og avgjør om den har nådd slutten av prosessentretabellen (354). Dersom prosessoren ikke har nådd slutten av prosessentretabellen fortsetter den å under-søke gjentildelingstilstandene for den nye prosessen. Dersom prosessoren har nådd slutten av prosessentretabellen, undersøker den for å avgjøre om den variable"diagnose" er i en virkelig tilstand (355).
I den foreliggende sekvens av prosesser er den siste prosessen en diagnoserutine for å undersøke driften av datamaskinen eller andre deler av styreinnretningen. F.eks. kan diagnose rutinen undersøke om datamaskinminnet fungerer riktig. I den foretrukne driftsform for fordeleren blir diagnoseprosessen utført til enhver tid når fordeleren har gått frem gjennom hele prosessentretabellen uten å utføre noen annen prosess.
På denne måte - snarere enn ved å entre en tomgangsmodus eller bare å gjennomløpe prosessene i sekvensen - kan prosessoren utføre en diagnosefunksjon.
Formålet med sløyfen som omfatter trinnene 354 og 355 er å bestemme hvorvidt prosessoren har gått gjennom hele sekvensen av prosesser uten å utføre en prosess. Hver gang en prosess avbrytes, vil prosessoren fortsette gjennom trinnet 351 og innstille "diagnose"-variablen til en falsk tilstand. Derfor vil den første gangen diagnoserutinen blir registrert ved slutten av prosesstabellen denne diagnosevariablen ikke være sann. Dersom den ikke er sann, vil fordeleren vende tilbake til den første prosessen og innstille diagnosevariablen til en sann tilstand (356). Som det vil sees - dersom en ny prosess ikke blir utført - vil prosessoren vende tilbake til trinnet 352 og igjen gjennomløpe sløyfen. Hvis derfor prosessoren fullfører sløyfen for alle prosessene i tabellen og vender tilbake til diagnoseprosessen, vil diagnosevariablen så være i en sann tilstand når den er blitt innstilt i trinnet 356. Dersom på den annen side prosessoren før den har gjen-nomløpt hele sekvensen av prosesser har utført en prosess, blir trinnet 351 utført og tilbakestiller "diagnose"-variablen til en falsk tilstand, før trinnet 355 blir utført.
Ved å vende tilbake til trinnen 355 vil prosessoren, dersom diagnosevariablen er i en sann tilstand, innstille "tid-ute" variablen til en sann tilstand (357), som - som det vil sees i det etterfølgende - vil sørge for utførelsen av prosessen.
Prosessoren avgjør så i det neste trinn om gjentildelingstiden for den nye prosessen er a) ikke lik null og b) om den er mindre enn systemtiden (som ble innstilt lik klokketiden i trinnet 336). Dersom resultatet av denne avgjørelsen (358) er ja, vil datamaskinen innstille "tid-ute"-variablen til en sann tilstand (359), Dersom resultatet ikke er ja, vil prosessoren omgå trinnet 359.
Prosessoren avgjør så om et gjentildelingstilfelle har opptrådt (360) . Dette blir utført ved logisk OG-undersøkelse av systemtilfelleordet (hvilket indikerer de tilstedeværende aktive systemtilstander) med gjentildelingstilfelleordet for den nye prosessen i prosessentretabellen. En variabel,"tilbakevendingstilfelle" blir innstilt lik resultatet av denne OG-drift. Dersom ordet "tilbakevendingstilfelle" ikke er lik null, indikerer dette at et gjentildelingstilfelle har opptrådt, hvilket oppkaller utførelse av den nye prosessen.
Prosessoren utfører så en logisk OG IKKE-operasjon mellom systemtilfelleordet og tilbakestillingstilfelleordet for de nye prosessene i prosessentretabellen (361) . Denne OG IKKE-operas jon fjerner tilfellene i tilbakestillingstilfelleordet fra systemtilfelleordet. Prosessoren erstatter så tilbake-stillingstilf elleordet for den nye prosessen i prosessentretabellen med en verdi på null (362).
Derfor vil - når trinnet 361 blir utført - tilbakestillings-tilf elleordet være null, dersom fordeleren har undersøkt den nye prosessen en eller flere ganger tidligere uten å utføre prosessen. Dette er fordi tilbakestillingstilfelleordet for en ikke utført prosess er innstilt lik null i trinnet 362. Dersom - på den annen side - prosessoren siste gangen hadde undersøkt den nye prosessen og den nye prosessen var blitt utført, vil tilbakestillingstilfelleordet være lik tilfellene signalert under den tidligere utførelsen av den nye prosessen (det nye tilfelleordet fra trinnet 349).
Datamaskinen avgjør så om den variable "tid-ute" er i en sann tilstand eller om tilbakevendingstilfelleordet ikke er lik null (363). Dersom ingen av disse tilstandene tilfredsstilles, har hverken en gjentildelingstid eller et gjentildelingstilfelle blitt bestemt for den nye prosessen. Dersom den nye prosessen ikke skal gjentildeles, returnerer prosessoren til trinnet 352 og vender tilbake via sløyfen med trinnene 352-363.
Dersom en gjentildelingstilstand er tilfredsstilt, har prosessoren derfor avgjort at den nye prosessen skal gjentildeles. Prosessoren innstiller så stack-viseren til stack-lokaliseringen som er entret i prosessentretabellen for den nye prosessen (364) og utsender denne for å utføre den nye prosessen.
Når som helst under utførelsene av en prosess som prosessen ønsker å signalere et tilfelle, blir fordeleren oppkalt for
å utføre en fordelersignalrutine. Som vist på fig. 11 blir fordelersignalrutinen entret fra oppkallingsprosessen og til-felleparametret for det bestemte tilfelle som skal signaleres blir logisk eller stilt med signaltilfelleordet for datamaskinen som er designert av prosessen som utfører signalopp-kallingen (366) . Prosessoren kan ved utførelsen av forde-lingssignalrutinen innskrive et tilfelle til signaltilfelleordet for en hvilken som helst av datamaskinene. På denne måte kan tilfeller blir signalert fra en datamaskin til den andre. Dersom det signalerte tilfellet allerede er tilstede i signaltilfelleordet for den designerte datamaskin, vil signaltilfelleordet ikke endres. Dersom det signalerte tilfellet ikke er tilstede i signaltilfelleordet for den designerte datamaskinen, vil det signalerte tilfellet bli addert til signaltilfelleordet ved å endre det riktige bitt i ordet), og prosessoren går ut av fordelersignalrutinen og vender tilbake til prosessen som blir utført.
I eksemplets styreinnretning 200 vil styrefunksjonene være delt mellom styredatamaskinen 20 3 og manipulatordatamaskinen 205. Hver av de to lederdatamaskinene utfører et antall prosesser for å kunne gjøre de respektive datamaskinfunksjoner. Styredatamaskinen arbeider med å styre den totale konstoll-driften og operatørsamvirket. Styredatamaskinen oppdaterer status og skjermfremviserinformasjon og behandler inntastet informasjon fra det lokale tastatur. Styredatamaskinen utfører også en arbeidsstykkeidentifikasjonsprosess og gjenkjenner aktiveringen av en start-bryter ved arbeidsrobotens arbeidsstasjon. Som respons på aktiveringen av startbryteren, velger styredatamaskinen det riktige sprøytemalingsprogrammet fra bobleminnet basert på arbeidsstykkeidentifikasjon og forsyner programinstruksjonene til manipulatordatamaskinen.
Manipulatordatamaskinen utfører funksjoner som primært angår driften av arbeidsroboten og opptegning av kommandoer fra simulatorrotoben. Manipulatordatamaskinen mottar programinstruksjonene for det valgte programmet fra styredatamaskinen under en arbeidsperiode, og sender ut de ønskede posisjonskommandoer på en kommando for kommandobasis til arbeidsrobot-aksestyrekretsene. Manipulatordatamaskinen overvåker også status til arbeidsstykkematestyreinnretningen og status til arbeidsrobotens hydrauliske system.
Hver av datamaskinene - styredatamaskinene 20 3 og manipulatordatamaskinen 205 - utfører også en lignende diagnoserutine som slutt- eller uteblivelseprosessen til prosessene som utføres av hver datamaskin. Hver datamaskin 203-205 utfører også en vakthund-rutine for å overvåke den fortsatte drift av den andre datamaskinen. Denne vakthund-prosess skal beskrives i det følgende.
Hver gruppe med prosesser blir samtidig utført av sin respektive datamaskin som anvender fordelerenl beskrevet ovenfor. Grensesnittrutiner ble brukt for å utføre funksjoner som kan oppkalles av en eller flere av prosessene eller av en annen grensesnittrutine. De spesielle modulære underoppdelingene valgt ved utførelsen av hver av datamaskinene til styreinnretningen 200 er ikke kritiske. Et større eller mindre antall prosesser og/eller grensesnittrutiner kan anvendes avhengig av antallet funksjoner som skal utføres og graden av kompleksitet som er ønskelig for hver prosess eller grense-snittmodul i programvaren.
I den foreliggende utførelse av styreinnretningen 200 og lederdatamaskinene i denne blir et antall maskinvareavbrudds- innretninger anvendt for å utføre deler av visse av funksjonene til styreinnretningen. Som respons på et maskinvareavbrudd stopper prosessoren utførelsen av sin løpende prosess eller rutine og bevarer all informasjon så som registerverdien som er nødvendig for å gjenoppta prosessen. Prosessoren utfører så avbruddsrutinen og vender tilbake til prosessen. Alle de nødvendige registre og andre minnelokaliseringer|blir ajensatt til sin tidligere tilstand og resten av prosessen blir utført. Utførelsen av avbruddsrutiner er hovedsakelig transparente overfor prosessene som utføres av prosessoren.
Maskinvareavbrudd blir startet ved opptreden av ett tilfelle så som nedtrykning av en tast på tastaturet eller aktiveringen av en start-bryter eller lignende. Et maskinvareavbrudd kan også være tidsrelatert så som til periodisk oppdatering av en løpende tidsvariabel fra en virkelig tidsmaskinvareklokke.
I styredatamaskinen er det et maskinvareavbrudd når data-blokken er fullstendig utlest fra enten bobleminnet eller fra kassettenheten. Det er også et maskinvareavbrudd når en tast blir nedtrykt på tastaturet eller ved respons på innmating fra et fjernt tastatur. I tillegg blir sann tid tidsgiveren anvendt på en maskinvareavbruddsbasis. Manipulatordatamaskinen har også en tidsavbryter og en maskinvare-avbryter for en transportørtilstandsendring, så som aktiveringen av en start-bryter eller en stopp i transportbanen. Akseposisjonen som er oppdatert av manipulatordatamaskinen i form av forsyning av akseposisjonskommandoer til aksestyrekretsen 206, blir også behandlet på en maskinvareavbruddsbasis .
Hver avbruddsrutine som utføres som respons på et maskinvareavbrudd, er en del av en av programvaremodulene. Som sådann er data for denne modulen tilgjengelig for avbruddsrutinen på samme måte som de andre rutinene i modulen. Følgelig vil under utførelsen av en maskinvareavbruddsrutine visse data som anvendes av andre rutiner, eller en prosess i modulen kunne bli påvirket. Derfor er det nødvendig under visse deler av ikke-avbruddsrutiner å forhindre opptreden av et maskinvareavbrudd slik at data som blir lest under rutinen ikke blir endret under lesing av en avbruddsrutine. Følge-lig må maskinvareavbrudd unngås under utførelsen av kritiske deler av en rutine.
F. eks. vil i styredatamaskinen en lokal tastaturprosess trekke ut tastbruksidentifikasjonsinformasjon fra en tasta-turkø som skal sendes til den riktige programvaremodulen, avhengig av typen tast som er blitt aktivert. Den lokale tastaturprosessen kan oppkalle en hensiktsmessig grensesnittrutine for videre behandling av tastidentifikasjon, hvilket i sin tur kan signalere et bestemt tilfelle i systemtilfelle-ordet til å sørge for utførelsen av en riktig prosess for å behandle tastinformasjonen. Den lokale tastaturprosessen blir oppkalt ved aktiveringen av et riktig bitt i systemtilfelleordet. Denne bit blir innstilt av en tastaturavbrudds-rutine som i tur oppkalles på en maskinvareavbruddsbasis når en tast blir nedtrykt i det lokale tastaturet.
Nedtrykningen av en tast produserer et maskinvareavbrudd som oppkaller tastaturavbruddsrutinen. Tåstaturavbruddsrutinen foretar identifikasjon av den nedtrykte tasten og anordner den i tastaturkøen og signalerer også til den riktige bitten i systemtilfelleordet for å oppkalle den lokale tastaturprosessen.
Når den lokale tastaturprosessen arbeider, vil det være nød-vendig for å utta den aktiverte tastidentifikasjonsinforma-sjon fra tastaturkøen og hindre nok et tastaturavbrudd, hvilket kunne endre informasjonen i køen i tiden hvor køen virkelig blir lest av den lokale tastaturprosessen. Følgelig er maskin-vareavbruddene under denne tiden frakoblet av den lokale tastaturprosessen inntil informasjonen er fullstendig lest fra køen. Med referanse til fig. 12-16 skal utførelsen av styreprosessoren til [to prosesser i samvirke med en grensesnittrutine bli beskrevet. I styredatamaskinen vil en del-identifikasjonsprosess 371 undersøke arbeidsstykkeidentifi-kasjonsfotocellesignaler fra en matrise med fotoceller på en arbeidsstykkeidentifikasjonsstasjon for å kunne anordne identifikasjonen av gjenkjente arbeidsstykker i en kø. En sekvensprosess 372 trekker ut arbeidsstykkeidentifikasjoner fra køen, ettersom hvert arbeidsstykke nærmer seg arbeidsstasjonen for å tillate riktig valg av et måleprogram for det bestemte identifiserte arbeidsstykke.
Delidentifikasjonsprosessen er vist i forenklet form i flytdiagrammet på fig. 13. Når styreprosessoren begynnert ut-førelsen av prosessen, mottar den løpende fotocelletilstander
(401) fra fotocellene i matrisen på arbeidsstykkeidentifikasjonsstasjonen. Prosessoren undersøker så for å fastslå om en stroboskopisk puls er tilstede, så som den stigende flanken til et utgangssignal fra en stroboskopisk fotocelle, hvilket indikerer at arbeidsstykket er ved den nødvendige arbeidsstykkeidentifikeringsstasjon (402) . Dersom et stroboskopisk signal er tilstede, oppkaller prosessoren en Q-PUT~"!-rutine i en køgrensesnittmodul 373 (403) . Delidentifikasjonsprosessen vil ved å oppkalle kømodulen sende videre fotocelleidentifikasjonssignalene for arbeidsstykket. Etter oppkalling av Q-PUT-rutinen, eller etter forbipassering av dette trinnet dersom intet stroboskopisk signal er tilstede, oppkaller prosessoren så fordeleravbruddsrutinen på fig. 10. Delidentifikasjonen fortsetter på en gjentildelt tidstilstand til T og ikke gjentildelingstilfellet (404). Tiden T blir anordnet i prosessentretabellen, mens gjentildelingstiden for del-identifikasjonen behandles. Delidentifikasjonsprosessen vil så bli gjentildelt, etter utløp av tiden T, ved hjelp av fordeleren. Ved den tiden vil prosessen igjen undersøke fotocelleidentifikasjonssignalene og undersøke om det er tilstede et stroboskopisk signal.
Det vendes nå tilbake til delidentifikasjonsprosessen og dersom en oppkalling blir gjort til Q-PUT-rutinen i kømodulen, vil prosessoren utføre Q-PUT-rutinen vist på fig. 15. Køen er en matrise av minnelokaliseringer som omfatter to visere, en "inn-viser" og en "ut-viser". Når Q-PUT-rutinen blir oppkalt, anordner prosessoren arbeidsstykkefotocelleidentifika- sjonssignalene i form av et 8 bitt-ord i delidentifikasjons-køen ved viserlokaliseringen (406). Prosessoren øker så inn-viseren (407) og forlater rutinen.
En del av sekvensprosessen som er tilknyttet delidentifika-sjonsfunksjonen er vist på fig. 14. I den forenklede illu-strerte formen begynner sekvensprosessen med en oppkalling til fordeleravbruddsrutinen (408) . Gjentildelingstilstanden gitt til fordeleren er aktiveringen av en startbryter som indikerer at et arbeidsstykke nærmer seg arbeidsrobotens arbeidsstasjon. Det er ingen tidstilstand for sekvensprosessen, og derfor vil prosessen ikke bli gjentildelt før det neste arbeidsstykket når arbeidsstasjonen og aktiverer start-bryteren. Når derfor avbruddsprosessen blir gjentildelt, begynner utførelsen av trinnet etter oppkallingen til fordeleravbruddsrutinen i trinnet 408. Når sekvensprosessen blir gjentildelt, oppkaller den Q-GET-rutinen i køgrense-snittmodulen og spesifiserer en minnelokalisering anvendt av sekvensprosessen, i hvilken en arbeidsstykketilbakespillings-identifikasjon skal anordnes (407).
Prosessoren utfører så Q-GET-rutinen på fig. 16. Først anordner prosessoren delidentifikasjonsordet i køen som er tilordnet av ut-viseren inn i tilbakespillingsidentifikasjons-minnelokaliseringen spesifisert ved sekvensprosessen (411). Prosessoren øker så ut-viseren (411) og returnerer til sekvensprosessen. Prosessoren oppkaller så fordelersignalrutinen for å signalere ett tilfelle (41.0) . Tilfellet som er skrevet til styredatamaskinsignaltilfelleordet er en oppkalling for en automatisk tilbakespillingsprosess. Når den automatiske tilbakespillingsprosessen er gjentildelt av fordeleren, blir arbeidsstykkeidentifikasjonen trukket ut, slik at det korrekte måleprogrammet kan velges for å male arbeidsstykket .
Den prosess med spesiell god anvendbarhet med multilederdata-maskinanordningen i styreinnretningen 200 er vist på fig. 17. Denne prosessen er en vakthundprosess, hvor hver lederdata maskin overvåker den kontinuerlige drift av den andre datamaskinen. Hovedsakelig den samme prosessen blir utført av hver av de to lederdatamaskinene. Vakthundprosessen som ut-føres av hver prosessor begynner ved en oppkalling til fordeleravbruddsrutinen (421). Vakthundprosessen avbrytes i to tilstander: Passasjen av et tidsintervall T eller en vakt-hundoppkalling i systemtilfelleordet for prosessoren. Når prosessen blir gjentildelt, fastslår prosessoren om gjentildelingstilstanden er et tilfelle (422) . Dersom gjentildelingstilstanden ikke er et tilfelle, ble vakthundoppkallingen fra den andre datamaskinen ikke godtatt innen tidsintervallet T, og gjentildelingstilstanden er en tid ute av intervallet T. I et slikt tilfelle er det en alvorlig feiltilstand siden det ikke er noen kommunikasjon fra den andre datamaskinen. Denne feiltilstand kan så indikeres ved en dertil egnet alarm eller skjermfremviserbudskap eller på lignende måte.
Dersom det er et tilfelle som gjentildeler vakthundprosessen, vil vakthundoppkallingen mottatt fra den andre datamaskinen i tidsintervallet T være det tilfellet. Prosessoren oppkaller så fordelersignalrutinen og skriver en vakthundtilfelle-oppkalling til signaltilfelleordet til den andre datamaskinen.
(424) . Prosessoren gjør så en avbruddsoppkalling til fordeleren i trinnet 421. Signaltilfellet skrevet til signaltilfelleordet til den andre datamaskinen vil senere tjene som gjentildelingstilstanden for den andre datamaskinen. Så lenge som datamaskinene fortsetter å arbeide normalt under utveksling av vakthundoppkallinger, vil ingen feilindikasjo-ner frembringes.
Som et ytterligere eksempel på samvirket mellom prosesser
og grensesnittrutiner i driften av styreinnretningen 200,
er modulene som anvendes for å drive arbeidsroboten i samsvar med et lagret program vist på fig. 18. Som beskrevet ovenfor - med henvisning til fig. 12-16 - blir sekvensprosessen i en sekvensmodul 4 31 til styredatamaskinen gjentildelt ved opptreden av et start-brytertilfelle. Start-bryter-
tilfellet er et signal fra en start-bryter på arbeidsstasjonen som frembringes når et arbeidsstykke som skal males av arbeidsroboten nærmer seg arbeidsstasjonen.
Når sekvensprosessen gjentildeles, som tidligere beskrevet, får den identifikasjonen av arbeidsstykket fra delidentifika-sjonskøen. Sekvensprosessen signalerer også ett tilfelle, etter det har fått arbeidsstykkeidentifikasjonen, at start-bryteren er blitt aktivert, hvilket tilfelle er en gjentildelingstilstand for den automatiske tilbakespillingsprosessen i den automatiske tilbakespillingsmodulen 432.
Når den automatiske tilbakespillingsprosessen blir gjentildelt, oppkaller den en filordner ÅPNE-rutine i filordner-modulen 433, slik at denne forbereder en fil for måleprogrammet for det identifiserte arbeidsstykke. Den oppkalte fil-ordnerrutinen anvender i sin tur en masseminneleserutine i masseminneprogrammodulen 434 for å bestemme den fysiske adresse i masseminnet 20 2, hvor det ønskede programmet befinner seg. Filordner ÅPNE-rutinen utstyrer masseminnets lesrutine med en adresse i bobleminnefilen og deler av filoppstillingen blir skrevet til en filordnermodulminnelokalisering. Boble-minnets filordning er en tabell som inneholder programadresser i bobleminnet for måleprogrammene. Hver gang datamaskinen oppkaller at et bobleminne skal leses, avbrytes den automatiske tilbakespillingsprosessen på nivået til masseminnets leserutine og et gjentildelingstilfelle opptrer når bobleminnet har skrevet en datablokk til datamaskinen. Fullfør-ingen av masseminnelesingen blir signalert som et maskinvareavbrudd og den automatiske tilbakespillingsprosessen blir så gjentildelt. Filordnerens ÅPNE-rutine fortsetter å oppkalle deler av filen inntil programadressen for den identifiserte delen er frembragt.
Den automatiske tilbakestillingsprosessen oppkaller så en filordner leserutine slik at denne begynner å lese blokker av det ønskede programmet fra bobleminnet. Den første blokken med instruksjoner blir skrevet til en overføringsbuffer i bufferminnet. Prosessen avbrytes så. Når manipulatordatamaskinen signalerer tilfellet at blokken er blitt lest fra overføringsbufferen (og skrevet inn i en dekodingsbuffer i bufferminnet), blir den automatiske tilbakespillingsprosessen gjentildelt for å lese den neste instruksjonsblokken fra fil-ordnermodulen og skrive denne blokken inn i overføringsbufferen.
Den automatiske tilbakespillingsprosessen i den automatiske tilbakespillingsmodulen 4 35 i manipulatordatamaskinen blir signalert når en blokk med instruksjoner er blitt skrevet inn i overføringsbufferen i bufferminnet.227. Den automatiske tilbakespillingsprosessen i styredatamaskinen vil etter skriving av en fullstendig blokk med instruksjoner i bufferminnet 227, gjentildele den automatiske tilbakespillingsprosessen i manipulatordatamaskinen ved innstille de riktige tilfellebitt i manipulatordatamaskinsystemtilfelleordet i bufferminnet.
Den automatiske tilbakespillingsprosessen i manipulatordatamaskinen skriver blokken med instruksjoner til dekodebufferen i bufferminnet, signalerer til styredatamaskinen og oppkaller en dekode PUT-rutine i en dekodegrensesnittmodul 436. Når den automatiske tilbakespillingsprosessen oppkaller dekode PUT-rutinen, sender den til rutinen adressen til blokken med instruksjoner. Dekoke PUT-rutinen i dekodermodulen gjenformer blokken med instruksjoner og plasserer instruksjons-kommandoene i et dekodemodulminneområde i en form hvor de kan trekkes ut for anvendelse av aksestyrkretsen 206. Så avbrytes prosessen.
Robotstyreprosessen er blitt avbrutt på bakgrunn av et av-bruddstilfelle som blir signalert når den neste instruksjonen er nødvendig for å mate kommandoer til aksestyrekretsen. Når robotstyreprosessen er gjentildelt, oppkaller den dekode GET-rutinen for å få den neste instruksjonen i blokken av instruksjoner og igjen får man avbrudd. Mens hver instruksjon blir brukt av robotstyreprosessen, vil den automatiske tilbakespillingsprosessen dekode PUT-rutinen skrive nok en instruksjon som skal anvendes ved robotstyring. Når den fullstendige blokken med instruksjoner blir brukt, undersøker den automatiske tilbakespillingsprosessen overføringsbufferen for å fastslå om nok en blokk med instruksjoner er tilgjengelig.
Blokker med instruksjoner blir skrevet fra overf øringsbuf feren til dekodebufferen i bufferminnet av den automatiske tilbakespillingsprosessen ettersom de blir tilgjengelige fra styredatamaskinen .
Robotstyreprosessen lagrer instruksjonene som den har trukket ut fra dekodemodulen i minneområdene i robotstyremodulen. Robotstyreavbruddsrutinen leser disse instruksjoner for å utstede kommandoer, på en kommando for kommandobasis, til aksestyrekretsen 206, og også for å forsyne pistolkommandoer til arbeidsrobotens pistol.
Claims (12)
1. Robotstyresystem for samtidig utførelse av et antall robotstyrefunksjoner som omfatter å drive en arbeidsrobot som har et antall sammenbundne robotarmer/ledd under lukket sløyfe-servostyring som respons på en lagret sekvens av opptegnede armposisjonskommandoer, og hvor hvert robotledd/ arm har en tilhørende armaktivator og en armposisjonstilbakekoblingstransduktor som gir et tilbakekoblingssignal som angir armposisjonen, karakterisert ved :
en minneinnretning for å lagre en sekvens av opptegnede armposisjonskommandoer;
første innretning som omfatter en første datamaskin som sekvensvis kan trekke frem lagrede robotarmposisjonskommandoer for hver robotarm fra minneinnretningen, beregne et armposisjonsfeilsignal som respons på en fremtrukket armposisjonskommando og armposisjonstilbakekoblingssignalet innmatet fra en tilhørende armposisjonstilbakekoblingstransduktor, og sende ut armposisjonsfeilsighalet til den til-hørende armaktivator for å drive armen til en kommandoposisjon;
en andre datamaskin for å utføre styrefunksjoner i robotstyresysternet som ikke utføres av den første datamaskinen;
og en felles databuss koblet til minneinnretningen og til den første datamaskinen og den andre datamaskinen,
idet hver av nevnte datamaskiner er en databusslederdatamaskin som er istand til å initiere kommunikasjon på databussen.
2. Styresystem som angitt i krav 1, karakterisert ved at den første innretningen innbefatter en innretning for å beregne et armposisjonsfeilsignal som respons på en fremtrukket armposisjonskommando og det tilbakekoblede armposisjonssignalet innmatet fra den tilhørende arm-posis jonstilbakekoblingstransduktor og for å sende ut arm-posis jonfeilsignaler til den tilhørende armaktivator for å drive armen til en kommando <p> osisjon, og hvorved den første datamaskinen omfatter en innretning for sekvensvis å frem-trekke lagrede robotarmposisjonskommandoer for hver robotarm fra minneinnretningen på databussen og for å koble kommandoene til nevnte beregnings- og utmatingsinnretning.
3. Robotstyresystem for å utføre et antall robotstyrefunksjoner som omfatter å drive en arbeidsrobot som har et antall sammenbundne robotarmer under lukket sløyfe servostyring som respons på en lagret sekvens av opptegnede arm-posis jonskommandoer , i-,-'hvilken hver robotarm har en tilhø rende armaktivator og en armposisjontilbakekoblingstransduktor som gir et tilbakekoblet signal som angir armposisjonen, karakterisert ved at den omfatter:
en første datamaskin,
en andre datamaskin,
en felles databuss koblet til den første datamaskinen og .til den andre datamaskinen, idet hver datamaskin er en databussleder som er istand til å initiere kommunikasjon på databussen, og
en aksestyrekretsinnretning for å beregne et arm-posis jonsf eilsignal som respons på en fremtrukket armposisjonskommando og det tilbakekoblede armposisjonssignalet innmatet fra den tilhørende armposisjonstilbakekoblingstransduktor og for å sende ut armposisjonsfeilsignaler til den til-hørende armaktivator for å drive armen til kommandoposisjon, idet den første datamaskinen og den andre datamaskinen samvirker for å frembringe en innretning for sekvensvis fremtrekking av lagrede robotarmposisjonskommandoer for hver robotarm og for å koble nevnte kommandoer til aksestyreinnretningen.
4. Styresystem i henhold til krav 3,karakte risert ved at det omfatter en masseminneinnretning koblet til datab.lissen for å lagre sekvenser av opptegnede arm-posis jonskommandoer, og et bufferminne koblet til databussen, og hvorved den første datamaskinen er koblet til en styreinn-gang og reagerer på denne for å lese en sekvens av opptegnede armposisjonskommandoer fra masseminneinnretningen og å skrive nevnte sekvens av opptegnede armposisjonskommando til bufferminnet, og hvorved den andre datamaskinen arbeider for å koble sekvensen av opptegnede armposisjonskommandoer fra buffer minnet til aksestyrekretsinnretningen.
5. Fremgangsmåte for å drive en arbeidsrobot som har et antall forbundne robotarmer under lukket sløyfe servostyring som respons på en lagret sekvens av opptegnede armposisjonskommandoer, og hvor hver robotarm har en tilhørende armaktivator og en armposisjonstilbakekoblingstransduktor som gir et tilbakekoblet signal som angir armposisjonen, karakterisert ved følgende trinn:
lagring av en sekvens av armposisjonskommandoer i et kommandoprogramminne;
skriving av den lagrede sekvensen av armposisjonskommandoer fra programminnet til et bufferminne under anvendelse av en første datamaskin;
skriving av sekvensen av armposisjonskommandoer fra bufferminnet til en aksestyrekrets under anvendelse av en andre datamaskin; og
i aksestyreinnretningen beregnes et armposisjon-feilsignal som respons på en armposisjonkommando skrevet til aksestyreinnretningen og armposisjontilbakekoblingssignalet innmatet fra det tilhørende armposisjonstilbakekoblingstransduktor og sender ut armposisjonfeilsignalet til den tilhørende armaktivator for å drive armen til en kommandoposisjon.
6. Robotstyresystem for å utføre et antall robotstyrefunksjoner som omfatter å drive en arbeidsrobot som har ét antall sammenbundne robotarmer under lukket sløyfe servostyring som respons på en lagret sekvens av opptegnede arm-posis jonskommandoer og hvor hver robotarm har en tilhørende armaktivator og en armposisjonstilbakekoblingstransduktor som gir et tilbakekoblet signal som angir armposisjonen, karakterisert ved at den omfatter:
en minneinnretning for å lagre en sekvens av opptegnede armposisjonskommandoer;
et bufferminne;
en felles databuss koblet til minneinnretningen og til bufferminnet;
en styredatamaskininnretning koblet til databussen for å lese en lagret sekvens av opptegnede armposisjonskommandoer fra minneinnretningen for å skrive nevnte sekvens av opptegnede armposisjonskommandoer i bufferminnet;
en aksestyreinnretning koblet til databussen og til hver armposisjonstilbakekoblingstransduktor til arbeidsroboten for å beregne et armposisjonsfeilsignal som respons på en uttrukket armposisjonskommando og armposisjonstilbakekoblingssignalet innmatet fra den tilhørende armposisjonstilbakekoblingstransduktor , og for å sende armposisjonsfeilsignaler til den tilhørende armaktivator for å drive armen til en kommandoposisjon;
en manipulatordatamaskininnretning koblet til databussen for å trekke fra armposisjonskommandoer fra bufferminnet og for å koble nevnte armposisjonskommandoer til aksestyreinnretningen; og
hvor hver av nevnte datamaskiner omfatter en innretning for å skrive signaler i bufferminnet og hver av nevnte datamaskiner omfatter en innretning for å lese signa-lene skrevet i bufferminnet av den andre datamaskinen, slik at hver datamaskin kan overvåke den kontinuerlige driften av den andre datamaskinen.
7. Robotstyresystem for samtidig utførelse av et antall robotstyrefunksjoner som omfatter å drive en arbeidsrobot som har et antall sammenbundne robotarmer under lukket sløyfe servostyring som respons på en lagret sekvens av opptegnede armposisjonskommandoer, og hvor hver robotarm har en tilhørende armaktivator og en armposisjonstilbakekoblingstransduktor som gir et tilbakekoblet signal som mål for armposisjonen, karakterisert ved at den omfatter:
en innretning som omfatter en første datamaskin for sekvensvis fremtrekking av lagrede robotarmposisjonskommandoer for hver robotarm, beregning av et armposisjonsfeilsignal som respons på en fremtrukket armposisjonskommando og armposisjonstilbakekoblingssignalet innmatet fra den tilhø-rende armposisjonstilbakekoblingstransduktor, og sender ut armposisjonsfeilsignalet til den tilhørende armaktivator for å drive armen til en kommandoposisjon;
en innretning som omfatter en andre datamaskin for å utføre robotstyrefunksjoner;
en felles databuss koblet til en første datamaskin og til den andre datamaskinen, idet hver datamaskin er en databussleder som er istand til å initiere kommunikasjon på databussen; og
en råinneinnretning som omfatter en bestemt minnelokalisering, koblet til databussen, og den første datamaskinen omfatter en innretning for periodisk å skrive i nevnte minnelokalisering og den andre datamaskinen omfatter en innretning for periodisk å lese nevnte minnelokalisering og for å frembringe en indikasjon på en feiltilstand dersom den første datamaskinen unnlater å skrive i nevnte minnelokalisering, i det minste i en bestemt nominell hastighet.
8. Fremgangsmåte for å utføre et antall arbeidsrobots-styrefunksjoner som omfatter å drive en arbeidsrobot som har et antall sammenbundne robotarmer under lukket sløyfe servostyring som respons på en opptegnet sekvens av armposisjonskommandoer, ved hvilke rutiner i adskillige adskilte data-maskinprogramprosessmoduler blir utført, karakterisert ved trinnene:
a) utførelse av en programprosess i en prosessmodul for å utføre en arbeidsrobotstyrefunksjon til et programtrinn identifisert som en avbrudds-lokalisering i prosessen;
b) skriving av gjentildelingstilstander som et gjentildelingsord for prosessen inn i en prosessentretabell i en datamaskinminnelokalisering;
c) sammenligning av et systemtilfelleord som er representativt for de tilstedeværende tilstander med hvert gjentildelingsord for prosessene i prosessentretabellen;
d) utførelse av en prosess, hvis gjentildelingsord passer til systemtilfelleordet med hensyn til en eller flere tilstander;
e) gjentagelse av trinnene a-d for å utføre arbeidsrobotens styrefunksjoner.
9. Fremgangsmåte i henhold til krav 8, karakterisert ved at i, trinn c). blir systemtilfelle-ordet sammenlignet med et gjentildelingsord for hver prosess i en sekvens, slik at sammenligningen ikke blir gjort to ganger for en prosess før den er gjort en gang for enhver av de andre prosessene.
10. Fremgangsmåte i henhold til krav 9, karakterisert ved at etter trinn d) utføres følgende trinn:
dl) identifisering av en prosess i sekvensen av
prosesser som en diagnoseprosess; og d2) utføring av diagnoseprosessen dersom - siden
gjentildelingsordet til diagnoseprosessen sist ble sammenlignet med systemtilfelleordet - ingen andre prosesser har blitt utført.
11. Styresystem i henhold til ett av kravene 1-4, 6,7, karakterisert ved at det omfatter en arbeidsrobotaksestyrekrets, hvori en prosess utført av styresystemet er en prosess for å skrive armposisjonskommandoer i sekvensen av armposisjonskommandoer til aksestyrekretsen, og innretningen for å utføre en programprosess omfatter en innretning for å utføre programprosessen og skrive armposisjonskommandoer til aksestyrekretsen.
12. Styresystem som angitt i krav 11, karakterisert ved at styresystemet omfatter en arbeidsrobotaksestyrekrets og hvor en prosess utført av styresystemet er en prosess for å skrive armposisjonskommandoer i sekvensen av armposisjonskommandoer til aksestyrekretsen, og innretningen for å utføre en programprosess omfatter en innretning for å utføre programprosessen for å skrive armposisjonskommandoer til aksestyrekretsen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48458583A | 1983-04-13 | 1983-04-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
NO841462L true NO841462L (no) | 1984-10-15 |
Family
ID=23924748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO841462A NO841462L (no) | 1983-04-13 | 1984-04-12 | Robotstyresystem |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0125776A2 (no) |
NO (1) | NO841462L (no) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HU198345B (en) * | 1985-10-15 | 1989-09-28 | Numerik Karl Marx Veb | Hierarchical control system |
JPH085018B2 (ja) * | 1986-02-26 | 1996-01-24 | 株式会社日立製作所 | 遠隔マニピユレ−シヨン方法及び装置 |
JPH0829509B2 (ja) * | 1986-12-12 | 1996-03-27 | 株式会社日立製作所 | マニピユレ−タの制御装置 |
JPS63196388A (ja) * | 1987-02-06 | 1988-08-15 | 株式会社東芝 | 遠隔操作ロボツトの教示装置 |
FR2647564B1 (fr) * | 1989-05-24 | 1991-09-06 | Bouvry Jean Marie | Systeme d'acquisition de donnees permettant l'entree en memoire de differents parametres dans la memoire d'un automate programmable |
JP3433471B2 (ja) * | 1993-05-27 | 2003-08-04 | ソニー株式会社 | 光ディスク装置における信号処理方法 |
FR2818168B1 (fr) * | 2000-12-19 | 2003-09-19 | Eisenmann France Sarl | Procede de controle d'une installation de revetement de surface par pistolage |
CA2659209A1 (en) | 2006-05-22 | 2007-12-06 | Ideal Aerosmith, Inc. | Motion controllers and simulation systems including motion controllers |
US7702400B2 (en) | 2006-05-22 | 2010-04-20 | Ideal Aerosmith, Inc. | Motion controllers and simulation systems including motion controllers |
WO2015127247A2 (en) * | 2014-02-21 | 2015-08-27 | Israel Noah | Spray printing construction |
-
1984
- 1984-04-04 EP EP84302312A patent/EP0125776A2/en not_active Withdrawn
- 1984-04-12 NO NO841462A patent/NO841462L/no unknown
Also Published As
Publication number | Publication date |
---|---|
EP0125776A2 (en) | 1984-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4163183A (en) | Programmable automatic assembly system | |
EP0103714B1 (en) | Multi-processor axis control | |
US6453210B1 (en) | Autonomous control method and process for an investment casting shell | |
NO813608L (no) | Fremgangsmaate og innretning for analysering av muligheten for utfoerelse av en programmert bevegelsesekvens med en robot | |
US4543636A (en) | Numerically controlled machine tool system capable of setting up tools into tool magazine | |
CA1191235A (en) | Transitional command position modification for a controller | |
US20100153073A1 (en) | Simulation apparatus | |
JPS5946896B2 (ja) | 個別セクシヨン・ガラス製品成形機械用の電子制御システム | |
NO841462L (no) | Robotstyresystem | |
US5984499A (en) | Method and apparatus for a numerical control system for processing multiple job streams | |
JP7022260B1 (ja) | 数値制御システム | |
US20190247996A1 (en) | Control system, slave device control part, control method, and non-transitory computer readable medium | |
JPS58161004A (ja) | ロボツトの教示方法および教示装置 | |
EP0060039B1 (en) | Numerically controlled machine tool system | |
EP0377939B1 (en) | Robot control system for controlling a set of industrial robots | |
Ferrolho et al. | Intelligent control and integration software for flexible manufacturing cells | |
WO2022102578A1 (ja) | 数値制御装置、及び数値制御システム | |
JPH06175716A (ja) | マニピュレータの物体把持作業における位置・姿勢補正方法 | |
JPS60500443A (ja) | ガラス器成形機用プログラム可能制御システム | |
JPS641270B2 (no) | ||
US20190250576A1 (en) | Central control device, control method and non-transitory computer readable medium | |
JPH02213905A (ja) | 入出力制御方式 | |
JPS5851308A (ja) | 工業用ロボツトのプログラム修正制御方法 | |
US20050085936A1 (en) | Method for planning and/or configuring a project | |
JPS61123906A (ja) | ロボツトの干渉防止処理システム |