23. Mai 2019, 03:55:37
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] MultiMove Independent mit zwei Robotern und einem Controller


veryhot_post Autor Thema: [offen] MultiMove Independent mit zwei Robotern und einem Controller  (Gelesen 5223 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

23. April 2018, 14:17:45
Gelesen 5223 mal
Offline

irProgrammierer


Hallo,

ich bin neu in der ABB-Welt und muss nun mein erstes Projekt bearbeiten. Ein MultiMove System mit den Optionen Multitasking, MultiMove Independent.

In Robotstudio werden ja beide Roboter unter einer Steuerung angezeigt. Teilen sie sich sozusagen eine EA-Liste oder kann man irgendwo zwei von einander getrennte Listen anlegen? Wo oder wie kann ich jedem Roboter eine eigene IP verpassen?

Ebenso finde ich im RobotStudio diesen I/O Configurator nicht, wo man Excel-Listen in und exportieren kann. Laut Handbuch soll im Reiter RAPID, dann links wo Steuerung steht, noch ein zweter Reiter mit "Files" sein, wo ich z.B. die EIO.cfg bearbeiten kann. Ich sehe diesen Reiter aber nicht. Für Tipps wäre ich äußerst dankbar.

Ich benutze noch die unaktivierte Vollversion.
« Letzte Änderung: 23. April 2018, 14:21:26 von irProgrammierer »
  • gefällt mir    Danke

Heute um 03:55:37
Antwort #1

Werbung

Gast

23. April 2018, 14:57:13
Antwort #1
Offline

Programmiersklave


Eine Steuerung, EINE E/A-Liste, EINE IP. Es ist sozusagen EIN Roboter mit ZWEI Manipulatoren. 

Zu dem Anderen: in der Titelleiste (ganz oben) ist dieses Symbol mit dem Pfeil nach unten, das am weitesten rechte in der Sammlung links. Dort im Untermenü "Windows" gucken, ob "Dateien" angehakt ist. 

Grüße,
Michael

23. April 2018, 15:22:01
Antwort #2
Offline

irProgrammierer


Danke Programmiersklave. Wenn man weiß, wo es steht, dann funktioniert es auf einmal .. verblüffend. 
Ich muss dann also in der EA-Liste strikt nach Roboter trennen wegen Freigaben etc. Welche Sortierform/Aussehen muss denn die Excel-Tabelle haben, dass RoboStudio sie frisst? Ich benutze die Version 6.06.01.
  • gefällt mir    Danke

24. April 2018, 08:06:00
Antwort #3
Offline

Programmiersklave


Dazu kann ich Dir leider gar nichts sagen. Excel öffne ich nur, wenn mich einer unter Androhung lebensverkürzender Maßnahmen dazu zwingt  :evil1:

Grüße,
Michael
  • gefällt mir    Danke

24. April 2018, 08:40:09
Antwort #4
Offline

irProgrammierer


Das mit dem Format der Excel-Listen konnte ich mir selbst beantworten durch exportieren einer eio.cfg. 
Nächste Frage:
Es gibt ja Standard Variablen bei ABB, zB. diMotorOn etc. Kann man die Signale einfach duplizieren? Also zB. diMotorOn_R1 und diMotor_R2 oder geht sowas nicht bzw. kann man das den Robotern dann so nicht konkret zuweisen? Es geht hier konkret darum, dass man einen Roboter stoppen kann während der andere seine Jobs weiter abarbeitet. Gäbe es nur ein Signal, würden ja beide stoppen (Grundstellungsfahrt oder sowas).
  • gefällt mir    Danke

Heute um 03:55:37
Antwort #5

Werbung

Gast

24. April 2018, 13:46:09
Antwort #5
Offline

Programmiersklave


Hm, bin mir nicht ganz sicher, was Du mit Standardvariablen meinst. Es gibt sog. Systemsignale (Eingänge und Ausgänge), die mit physischen Signalen verbunden werden können, aber immer nur mit einem.
Und vieles davon gilt natürlich für das gesamte System. Andere kannst Du (bzw. musst Du) bei der Konfiguration mit einem Tasknamen ausstatten, für welche Task das Signal gilt.
Motoren ein und Start und Stop etc. gilt natürlich immer für das gesamte System. Wenn Du einzelne Roboter starten und anhalten willst, dann musst du das im Programm individuell regeln. 
Generell ist es nicht ohne weiteres möglich, nur einen Task zu starten. Wenn man auf Automatik umschaltet, aktiviert die Steuerung immer alle Tasks und weist auch explizit darauf hin. Dann lässt der Systemeingang für "Start" eben alle Programme laufen. Was man dann im Programm damit macht, ist eine andere Sache. 
Wie gesagt, betrachte das ganze als einen Roboter mit zwei Manipulatoren. Jeder hat eine eigene Programmtask und eigene Koordinatensysteme, aber nicht eigene Signale oder eigene Sicherheiten. Die nächstkleinere Hierarchietrennung unterhalb von "System" ist "Task". E/A und Parameter gelten systemweit, wobei viele Parameter sich auf einzelne Tasks beziehen können. CONST und VAR sind maximal taskweit, nur PERS können taskübergreifend sein. MODULE und alles darin sind schon die nächste Hierarchieebene unterhalb von TASK.

Grüße,
Michael
  • gefällt mir    Danke

24. April 2018, 14:16:17
Antwort #6
Offline

padostms



Hallo irProgrammierer!

Ich habe solche liste wenn du brauchst!
Ist es sehr einfach die einzige nachteil ist das es mit 32bit VBA erstellt wurde!

MFG

Tamas
  • gefällt mir    Danke

24. April 2018, 15:25:42
Antwort #7
Offline

irProgrammierer


@padostms du hast eine PN.
@Programmiersklave
Mit Standardsignale meine ich glaube ich die Systemsignale (zB diStart,diMotOnSTart,diStop,diSysReset etc ...).
Jeder Roboter hat einen eigenen Task, in dem meine Programme liegen werden. Ich habe unter I/O erstmal zwei virtuelle Units (Rob1 und Rob2) erstellt, das gleiche unter Unit Type, um erstmal arbeiten zu können, da die Roboter noch nicht da sind.
Dann bin ich gerade dabei eine eio.cfg zu erstellen. Da gibt man ja dann die Unit(Rob1/Rob2), UnitMap etc.ein,die dann den Signale zugewiesen werden sollen. 
So nun zu meinem Problem: Ich kann diese Systemsignale jeder Unit zuweisen (diStart_R1 und diStart_R2 als Beispiel). Klappt das so? Oder sind diese Systemsignale nur einmal "verwendbar"?
Ich hoffe du verstehst, was ich meine. Wie im ersten Post geschrieben, möchte ich, dass Roboter 1 stoppen kann während Roboter 2 seine Job weitermacht. Daher die Überlegung mit den getrennten Signalen!
  • gefällt mir    Danke

24. April 2018, 16:49:23
Antwort #8
Offline

Programmiersklave


Die Systemsignale sind nur einmal "verwendbar", solange sie nicht taskbezogen sind. Es gibt ja nur ein "System". Es kann nur das ganze System gestoppt werden auf diese Weise. Es gibt ein paar, die einer Task zugeordnet werden können, z. B. gibt es neuerdings was, womit man auslesen kann, dass eine Task läuft. Die gehen dann auch mehrfach. Aber start und stop gehören nicht dazu.
Die Unit bezeichnet nicht den Roboter, sondern die verwendete E/A-Karte. Da kannste ja mehrere haben, z.B. einen Buskoppler hier und einen dort, oder mehrere Device-Net Buskoppler und irgendwo noch eine Profibusanbindung, solche Szenarien. Das hat mit den Manipulatoren rein gar nichts zu tun. 
Du kannst dann ein Systemsignal mit einem echten Signal verknüpfen, welches irgendwo auf eine dieser Units gemapped ist. (Das muss man ebenfalls selbst konfigurieren.) Die Steuerung weiss dann beispielsweise: wenn auf dem Signal 42 auf der Unit DN_Board666 der Zustand von low nach high wechselt, dann bedeutet das, ich muss den Programmzeiger in allen Tasks auf "Main" setzen und starten. Das parametrierbare Systemsignal ist quasi nur ein definierter System-Interrupt. System! Nicht Task.

Wenn Du willst, dass einer der Roboter aufhört, während der andere weitermacht, dann geht das nur so, dass im Programm ein beliebiger (anderer) Eingang abgefragt wird, der die fraglichen Bewegungstask dann durch eine Warteschleife oder Selbstbeendigung einschläfert. Wobei die Selbstbeendigung vielleicht nur halb in Deinem Sinne wäre, denn starten lässt sich eine tote Task natürlich nicht so ohne weiteres. Die Task selbst ist ja tot, und das System lässt sich nicht starten, solange eine andere Bewegungstask noch läuft.
Du hast in dieser Konfiguration eine irre Menge an Möglichkeiten, die eigentlich jedes wünschenswerte Szenario abdeckt. Nur so, wie Du es Dir gerade vorstellst, geht es nicht. 

Wenn die Anlage weniger als ~100 Signale hat, würde ich außerdem empfehlen, die Konfiguration in RobotStudio selbst zu machen, statt mit einem Editor oder gar Excel EIO.CFGs zu generieren, denn letzteres erzeugt eine Menge Frust. 

Solange die Roboter noch nicht da sind, kann man sich mit einer virtuellen Steuerung in RobotStudio behelfen. Man muss dann nur (weil man den echten Schlüssel ja noch nicht hat) darauf achten, die gleichen Optionen anzuwählen, die beim System mitbestellt wurden. Übrigens: wenn die Roboter da sind, zuerst sofort ein Backup machen und gut verwahren!

Grüße,
Michael

  • gefällt mir    Danke

Heute um 03:55:37
Antwort #9

Werbung

Gast

30. April 2018, 08:32:52
Antwort #9
Offline

robnull


Hallo, ich habe ein ähnliches Problem mit Multimove indeependent und möchte mich deshalb hier ranhängen.
Zitat
Du hast in dieser Konfiguration eine irre Menge an Möglichkeiten, die eigentlich jedes wünschenswerte Szenario abdeckt. Nur so, wie Du es Dir gerade vorstellst, geht es nicht. 
Wäre folgendes auch möglich:
Roboter1 fährt Crash (normalerweise stoppt dann ja das Programm), Roboter2 zwei läuft ganz normal weiter, Programm von Roboter1 kann, ohne Roboter2 zu beeinflussen, neu gestartet werden? Wenn ja, wie? Danke 
  • gefällt mir    Danke

02. Mai 2018, 12:26:20
Antwort #10
Offline

Programmiersklave


Das ist kein Problem, das ist ein Feature. Wenn Du willst, dass die Roboter völlig unabhängig laufen, dann brauchst Du zwei separate Steuerungen. MultiMove ist dafür gedacht, dass mehrere Roboter ZUSAMMEN im Team arbeiten, wenn auch vielleicht mit unabhängigen Bewegungen und Programmabläufen. Teamarbeit bedeutet, dass es nur ein Start-Signal gibt, und dass das ganze Team stoppt, wenn einer im Team ein ernsthaftes Problem kriegt. Ein Crash ist ein ernsthaftes Problem.

Is' wie auf'm Sportplatz. Steht ein umgefallener Spieler sofort von selbst wieder auf und rennt weiter, ist alles gut. Muss er vom Platz getragen werden, wird das Spiel unterbrochen und muss explizit neu gestartet werden. Nicht zwangsläufig von vorne, aber doch auf Kommando des Schiedsrichters. Sollen zwei Spiele unabhängig laufen, brauchste zwei Sportplätze und zwei Schiedsrichter. 

Grüße,
Michael

03. Mai 2018, 08:12:41
Antwort #11
Offline

robnull


Danke, die Erklärung mit dem Sportplatz könnten sogar die Entscheider verstehen, die gerne mal die zweite Steuerung wegsparen.
  • gefällt mir    Danke

01. Juni 2018, 12:54:43
Antwort #12
Offline

irProgrammierer


Ein neues Problem ist aufgetaucht, weshalb ich wieder mal auf eure Schwarmintelligenz angewiesen bin. Es geht mir nochmal um die Systemsignale. Zu manchen System Outputs kann man ja Roboter zu ordnen(siehe Screenshot).  Da ich 2 Roboter in der Zelle habe, muss ich jetzt die 7 Ausgangssignale duplizieren, sodass jeder Roboter die jeweiligen Ausgangssignale besitzt?



  • gefällt mir    Danke

Heute um 03:55:37
Antwort #13

Werbung

Gast

05. Juni 2018, 09:01:12
Antwort #13
Offline

Programmiersklave


Ja.
Es müssen schon verschiedene Signale sein. Gibt drei Möglichkeiten:
1.) Du brauchst sie gar nicht - dann kannst Du sie weglassen.
2.) Du brauchst sie einzeln - dann brauchst Du einzelne Signale
3.) Du brauchst sie verODERt oder verUNDet - dann legst Du sie auf virtuelle Signale, die in der Konfiguration der CrossConnections dann mit einem phys. Singnal verknüpft werden.

Grüße,
Michael
  • gefällt mir    Danke

07. Juni 2018, 11:53:33
Antwort #14
Offline

irProgrammierer


  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH