Roboterprofis für Ihren Erfolg
Roboterprogrammierer auf Stundenbasis engagieren
jetzt Preise und verfügbare Roboterprogrammierer anfragen

Autor Thema:  Programm laden beim ABB Roboter  (Gelesen 6644 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline markus007ABB

  • Stammgast LV 4
  • *
  • Beiträge: 18
  • Bewertet: 0
Programm laden beim ABB Roboter
« am: 11. April 2005, 17:51:16 »
Mein Problem ist folgendes:
 Ich Programmiere einen ABB Roboter bei dem ich 54 Verschiedene Teile handhaben muss. Damit das ganze Funktioniert muss ich dafür 54 verschiedene Programme anlegen. Wenn man nun aber in die Auswahlliste der verschiedenen Prozeduren hineingeht sind das dann natürlich unzählig viele. Um das zu unterbinden möchte ich je nach Programmtype automatisch nur das Programm das ich benötige in den Arbeitsspeicher laden. Und das ganze wenn geht in Automatik. Das heisst: Die SPS gibt dem Roboter die Programmnummer vor, und der Roboter lädt sich dann das Benötigte in den Speicher. Hat von euch vielleicht schon mal jemand so eine Anwendung gehabt?? :danke:
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


ABB Robotertraining
günstig und verständlich mit Zertifikat
ABB Roboterschulung

Offline Hermann

  • Forum Legende LV 2
  • *
  • Beiträge: 1309
  • Bewertet: +45
Re: Programm laden beim ABB Roboter
« am: 14. April 2005, 08:28:48 »
Hallo,
 sieh mal im Handbuch unter den Befehlen 'Load' und 'Unload' nach.
 
 Sollte sich so ähnlich wie im folgenden geschildert machen lassen (nur mal so aus dem Gedächtnis hingeschrieben, also ohne Gewähr auf absolute Richtigkeit)
 
 Var string NewModname;
 Var num ii;
 ii:=2;  ! Hier Einlesen der Nummer von der SPS anstelle der 2
 NewModname:="Modul"+NumToStr(ii,0);
 Load "HOME:"\File:=NewModname+".MOD";
 ! Aufruf des Programms ueber Variable, damit ohne geladenes
 ! Modul kein Fehler auftritt
 %"Prog"+NumToStr(ii,0)%;
 ! Nach Programmende das Modul wieder rausschmeissen
 UnLoad "HOME:"\File:=NewModname+".MOD";
 
 Es müsste dann ein Modul Modul2.MOD im Home-Verzeichnis geben und in diesem Modul müsste eine Routine Prog2 existieren.
 
 Gruss Hermann
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline markus007ABB

  • Stammgast LV 4
  • *
  • Beiträge: 18
  • Bewertet: 0
Re: Programm laden beim ABB Roboter
« am: 14. April 2005, 15:38:31 »
Habs jetzt so gelöst - müsste Funktionieren.
 
  !=========================================================
  !======   Programmmodul in Arbeitsspeicher laden   =======
  !=========================================================
 PROC Programm_laden()
   ! String "Modulname" beschreiben
   ! Die Module heißen: "Programm_1 bis Programm_22"
   Modulname:="Programm_"+NumToStr(ProgNr,0);
   ! Wenn ein Programm angewählt ist dann zuerst speichern
   ! und dann abwählen
   IF Prog_Nr>=1 THEN
    Save "HOME:"\File:=Modulname+".MOD";
    UnLoad "HOME:"\File:=Modulname+".MOD";
   ENDIF
   Prog_Nr:=Prog_von_SPS;
   Load "HOME:"\File:=Modulname+".MOD";
 ENDPROC
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline markus007ABB

  • Stammgast LV 4
  • *
  • Beiträge: 18
  • Bewertet: 0
Re: Programm laden beim ABB Roboter
« am: 14. April 2005, 15:40:02 »
Hallo Hermann !
 
 Kannst du mir erklären bzw. schreiben wo folgender beschrieben steht:
 -->  %"Prog"+NumToStr(ii,0)%;
 Was bedeuten zb.: die %-Zeichen ????
 
 Vielen Dank !!!!
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Hermann

  • Forum Legende LV 2
  • *
  • Beiträge: 1309
  • Bewertet: +45
Re: Programm laden beim ABB Roboter
« am: 19. April 2005, 14:44:05 »
Hallo,
 ich hab es damals in dem Beispielprogramm im Modul base_mt.sys gefunden. In der Doku habe ich nur bei der Beschreibung des Befehls 'StartLoad' in der Datei 'System_Datentypen_Routinen.pdf' etwas darüber gefunden.
 
  PROC CallByVar(string Name,
                 num   Number)
   IF (Number-Trunc(Number) <> 0) OR (Number<0) THEN
    ErrWrite "CallByVar fault", "Argument Number is not an integer or"
             \RL2:= "is negative.";
    Stop;
    EXIT;
   ENDIF
   %Name+NumToStr(Number,0)%;
  ENDPROC
 
 
 Sinn der Sache ist, das man einen Unterprogrammaufruf programmieren kann, obwohl das aufgerufene Unterprogramm noch gar nicht im Speicher vorhanden ist.
 Normalerweise wird ja schon beim Laden des Programms überprüft, ob alle augerufenen Unterprogramme vorhanden sind. Über die % kann man ein sogenanntes 'late binding' erreichen, dann wird der Unterprogrammname erst bei der Abarbeitung der Zeile zusammengebaut und ausgewertet.
 
 Lange Rede kurzer Sinn:
 
 Wenn das Programm so aussieht, dann kann man es laden ohne Fehler, erst beim Ablauf ergibt es einen Fehler.
 
 Module testprog
 
 
 Proc main()
  %"programm_1"%;
  %"programm_2"%;
 endproc
 
 Proc programm_1 ()
  waittime 1;
 endproc
 endmodule
 
 Sieht die Sache folgendermassen aus, dann gibt es schon beim Laden des Programms einen Fehler, weil die Routine programm_2 fehlt:
 
 Module testprog
 
 Proc main()
  programm_1;
  programm_2;
 endproc
 
 Proc programm_1 ()
  waittime 1;
 endproc
 endmodule
 
 Hoffe das hilft über die Schwierigkeiten hinweg.
 
 Gruss aus dem Schwabenland
 Hermann
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Werner Hampel

  • Administrator
  • Forum Legende LV 3
  • *
  • Beiträge: 1583
    • ROBTEC GmbH - Roboter Systemhaus
  • Bewertet: +23
Re: Programm laden beim ABB Roboter
« am: 20. April 2005, 09:53:23 »
 Sauber, das könnte ab und zu helfen.
« Letzte Änderung: 26. Juni 2005, 10:37:08 von Werner Hampel »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Menschen brauchen Roboter, aber auch Roboter brauchen Menschen.
Roboter sichern die Arbeitsplätze und den Fortschritt der Industrieländer, da sie kostengünstig und qualitativ hochwertig produzieren.
Ohne Automatisierung mit Robotern werden unsere Produkte in Billiglohnländern hergestellt.

Bugatti

  • Gast
Re: Programm laden beim ABB Roboter
« am: 24. Juni 2005, 20:23:53 »
Hallo Markus

Das abarbeiten von 54 verschiedenen RoboterProgrammen kann man
auch lösen in dem man ein Hauptprogramm(Modul) schreibt und anschliessend die 54 einzelnen ProgrammModule über die SPS Programmnummer über den Modulnamen (Stringfunktion)                aufruft . das heisst ohne den Befehl Load / Unload
Nachteil bei der Load/Unload sache wenn man im einzelnen ProgrammModul Variablen programmiert hat und einen
Unload  macht das man einen Bindereferenzfehler bekommt bzw. man kann die Bindereferenz komplett deaktivieren aber man bekommt dann überhaupt keine Meldung mehr auch wenn sie richtig wäre

m.f.g.

bugatti

bij@bugattis.at

p.s.
Programm beispiel kann ich dir schicken.
Wenn ich euch weiter helfen kann meldet euch hab mich die letzten 5 Jahre bei ABB mit den Orangernen herumgeschlagen .
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline burlibua

  • Forum Mitglied LV 11
  • *
  • Beiträge: 110
  • Bewertet: 0
Re: Programm laden beim ABB Roboter
« am: 26. Juni 2005, 00:38:26 »
Hallo Markus

Interessant wäre ob die 54 verschiedenen Programme nur verschiedene Positionen besitzen oder ein komplett anderer Ablauf.  Wenn die Positionen getauscht werden müssen dann
ist es möglich in mehrere Module die gleichen Variablen zu benützen. Wie schon mein Freund
bugatti dir einige Tips gegeben hat mußt du wenn du die Positiionen wechselst des Binde referenz ausschalten. Da nach dem unload die Steuerung die Variable nicht mehr besitzt und
somit auf "Referenzfehler"anspricht. Nach dem Ausschalten der Binde Referenz wird die
Steuerung bis zur Programmzeile laufen in der eine Variable benützt wird die nicht geladen ist.
PS Wenn du Module lädst immer mit Befehl Load vom Programm da wenn das Modul unter Menüpunkt Laden Module nicht mit unload zu entfernen ist.

  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Programm laden beim ABB Roboter
« am: 14. Juli 2005, 11:15:29 »
Hallo Markus,
beim Verwenden von verschiedenen Typen ist es wie schon angedeutet auch möglich über gleiche Variablen vorher die benötigten richtigen Daten auch zuzuweisen. Hilfreich sind hierbei auch immer die Datenfelder. Sollten sich die Typen gleichen würde die Sorgen mit Load und Unload Geschichte sein. Denn das Problem hierbei ist das von Hand geladene bzw. gelöschete Module Schwierigkeiten machen.
Das heißt Module welche von Hand geladen wurden können nicht automatisch wieder vom Programm gelöscht werden. Daher bin ich immer bestrebt diesem Problem aus dem Wege zu gehen.

Viel Spaß.
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline burlibua

  • Forum Mitglied LV 11
  • *
  • Beiträge: 110
  • Bewertet: 0
Re: Programm laden beim ABB Roboter
« am: 25. Juli 2005, 04:30:21 »
Wenn man sich auf das automatische Laden von Modulen mit Load beschränkt gibt es auch keine Probleme.  Wenn Du nach Start von Haupt alle "Typenmodule" löscht  (Unload) und nach Typenabfrage dann das richtige Typenmodul mit Load lädst werden die Positionen im Programm automatisch korrigiert. Vorteil wenn du nach Positionskorrektur die Änderung speichern möchtest  brauchst du nur das Modul manuell speichern mit Ansicht-- Module--
Modul Auswählen-- Datei -- Modul  speichern. Willst du die Korrektur nur temporär dann wird nach dem nächsten Typenwechsel das Modul neu geladen und die Korrektur ist wieder weg.
mfG Burlibua
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


xx
Verschiedene Greifer: Über Programm laden oder Variablen-Definition?

Begonnen von Buschmann

6 Antworten
1983 Aufrufe
Letzter Beitrag 16. September 2009, 05:26:22
von Buschmann
exclamation
Sicherheit beim Roboter

Begonnen von Solid

4 Antworten
2322 Aufrufe
Letzter Beitrag 01. Dezember 2008, 14:35:50
von Solid
question
RS: Roboter verliert sein teil beim Transport

Begonnen von Marco1983

0 Antworten
159 Aufrufe
Letzter Beitrag 07. September 2017, 09:10:56
von Marco1983
xx
*.mod Laden und ersetzen

Begonnen von mischwarz

10 Antworten
2385 Aufrufe
Letzter Beitrag 30. November 2009, 09:44:17
von stromer
xx
S4 Programme in IRC5 laden

Begonnen von Bruce Banner

5 Antworten
1101 Aufrufe
Letzter Beitrag 25. Juli 2016, 11:02:49
von mischwarz
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap