Aufrufstruktur

  • Hallo zusammen!


    Irgendwie stehe ich heute auf dem Schlauch... :kopfkratz:


    Es müsste doch eigentlich möglich sein, folgende Aufrufe mit einer IRC 5 zu realisieren:


    - Start der Steuerung
    - Programm (PGF) laden
    - PGF-Datei ruft MOD-Datei
    - dort kann der Bediener eine Auswahl treffen, wodurch wiederum eine entsprechende PGF-Datei aufgerufen wird
    - in dieser befinden sich dann die benötigten MOD-Dateien


    Es geht darum eine - eigentlich - ganz simple Auswahl für modellspezifische Programme zu erstellen


    ...und nicht, wie sonst üblich, beim Modellwechsel ein altes Backup per Restore einzuspielen :oops:


    Gruß
    Buschmann

  • ANZEIGE
  • Hallo Buschmann,


    sicherlich zu realisieren.


    Wie ist es mit folgenden Fragmenten:
    zum entladen ins Home Verzeichnis


    UnLoad "HOME:/XXXMod/"+stXXXModName+"0.MOD";
    FOR count FROM 19000 TO lastextension DO
    UnLoad "HOME:/XXXMod/"+stXXXModName+NumToStr(count,0)+".MOD";
    ENDFOR
    bXXXModIsLoaded:=FALSE;
    ERROR
    IF ERRNO = ERR_UNLOAD THEN
    bXXXModIsLoaded:=FALSE;
    TRYNEXT;
    ENDIF


    Und Laden


    IF bXXXModIsLoaded THEN
    UnLoad "HOME:/XXXMod/"+stCurLodXXXMod+".MOD";
    bXXXModIsLoaded:=FALSE;
    ENDIF
    Load "HOME:/XXXMod/"+stXXXModName+NumToStr(extension,0)+".MOD";
    stCurLodXXXMod:=stXXXModName + NumToStr(extension,0);
    bXXXModIsLoaded:=TRUE;

    Das ganze mit einer Abfrage mit Bedienermenü in der Schleife von deinem Hauptprogramm.


    MFG
    CSH

  • Hallo Buschmann,


    ich möchte dir kurz erläutern wie wir die Produktauswahl als Slave einer SPS programmieren.


    Jedes Produkt hat eine sogenannte Typnummer (Eine Zahl von 1 bis 9). Wenn der Roboter von "Main" gestartet wird, meldet er der SPS seine Bereitschaft, eine Typnummer zu empfangen. Daraufhin schickt die SPS ihm die aktuelle Typnummer (also das Produkt). Anhand der Typnummer ruft der Roboter das entsprechende Programm auf und spiegelt es an die Steuerung zurück. Wir erstellen für jedes Produkt ein separates Modul.
    Ich vermute, dass du keine übergeordnete SPS hast und die Programmauswahl soll über das Roboterpanel erfolgen. Folglich könntest du die Produktauswahl auch am Panel einlesen und über eine einzugebende Nummer das entsprechende Modul bzw. Programm aufrufen.


    Ich hoffe, ich habe dich nicht ganz falsch verstanden.


    Viele Grüße
    Harzi

  • Hallo,
    vieleicht in deinem Fall z.B. so (am Teach Pendant ohne übergeordnete Steuerung),


    VAR num nFK;


    TPErase;
    TPWrite "Programm auswaehlen";
    TPWrite "1: Anwenderprogramm 1";
    TPWrite "2: Anwenderprogramm 2";
    TPReadFK nFK,"Weiter mit 1 oder 2","","","1","","2";
    IF nFK=3 anwenderprogramm1;
    IF nFK=5 anwenderprogramm2;


    oder eine SWITCH CASE Geschichte, aber so in der Art sollte funzen, bis dann cu Christian!

  • Hallo!


    Die IRC 5 kommuniziert mit einer S7-Steuerung. Dort sind auch diverse Modelleigenschaften (Durchmesser, Höhe, usw.) hinterlegt. Dies funktioniert ja auch so weit.


    Mir geht es nur darum verschiedene Roboterprogramme (PGF-Dateien) zu laden, da es nur über verschiedene Module (MOD-Datei) zu unübersichtlich werden könnte:
    Modell abc von SPS -> lade Roboterprog abc.PGF
    Modell xyz von SPS -> lade Roboterprog xyz.PGF


    Anscheinend hänge ich beim LADEN irgendwo in der richtigen Adressierung (Pfadzuordnung) fest. Die verschiedenen Programme liegen nicht im HOME-Verzeichnis, sondern in einem Unterordner "Programme".


    Muss ich noch mal dran, wenn die Anlage steht.


    Gruß
    Buschmann

  • Hallo!


    Es geht irgendwie nicht richtig vorwärts... :bawling:


    Wie verschachtelt ihr eure Programme und Unterprogramme?


    Um etwas Ordnung zu halten, hatte ich mir folgendes vorgestellt:
    Im Ordner "Rapid"* liegt "Hauptprogramm.pgf"
    Im Ordner "Rapid\Programme\Teil1" befindet sich "Teil1.pgf".
    Auch die entsprechenden Module liegen teilbezogen im Unterordner.


    Irgendwo hakt es bei der richtigen Pfadeinstellung ("Datei nicht gefunden").


    Außerdem scheinen sich die PGF-Dateien eigene Ordnernamen zu erstellen?!


    Also, noch mal zur eigentlichen Frage:
    Wie sieht eure Ordnerstruktur aus?


    Gruß
    Buschmann


    *Den Ordner Rapid habe ich gewählt, um die ganzen Programme auch durch einBackup sichern zu können.

  • Hallo Buschmann,


    es wird nicht funktionieren wenn du die Endung *.prg nur durch *.pgf ersetzt. Die Endung .prg wurde bis zur S4C+ verwenden, ab der IRC5 lautet die Endung .pgf.
    Der Unterschied ist jedoch dass im *.prg alle Module zusammengefaßt und als eine Datei gespeichert wurden. Die *.pgf ist eine Art XML-Datei die nur noch die Verweise enthält.


    Wenn wir Programmteile laden gehen wir immer auf die Ebene der Module. Ein Modul für jedes Teil, dieses Modul enthält dann alle teilebezogenen Bewegungsroutinen, robtargets, evtl. speeddata´s usw.


    Viele Grüße
    Thilbi

  • Hallo!


    Ich habe jetzt ein Hauptmodul (mit der unten dargestellten PROC Main) erstellt, in dem die Abfrage erfolgt. Daraufhin soll das Teilemodul aus einem Unterverzeichnis geladen werden. Irgendwo hakt es aber noch.


    Erkennt da jemand einen Fehler?



    Buschmann


    ---------------------------------------
    PROC Main()
    !Hauptprogramm, Neustart von hier
    !Greiferanwahl eingeben
    TPErase;
    TPWrite "Greiferauswahlmenü";
    TPWrite "------------------";
    TPWrite "";
    TPWrite "1= 4-Punkt-Greifer";
    TPWrite "2= 3-Punkt-Greifer";
    TPWrite "";
    TPReadFK nFkey,Center("Bitte Nummer wählen"),"1","2","","Abbruch","";
    IF nFkey=1 THEN
    Load "HOME:/4-Punkt-Greifer/4-Punkt-Greifer.mod";
    %"4-Punkt-Greifer:main"%;
    UnLoad "HOME:/4-Punkt-Greifer/4-Punkt-Greifer.mod";
    ELSEIF nFkey=2 THEN
    Load "HOME:/3-Punkt-Greifer/3-Punkt-Greifer.mod";
    %"3-Punkt-Greifer:main"%;
    UnLoad "HOME:/3-Punkt-Greifer/3-Punkt-Greifer.mod";
    ELSE
    EXIT;
    ENDIF
    ENDPROC

  • Direkt beim Laden: "Datei nicht gefunden".


    Anscheinend werfe ich die Pfade durcheinander... Welches genau ist das HOME-Verzeichnis (hd0a oder ein Unterverzeicnis des Backups??


    Buschmann

  • Das HOME-Verzeichnis ist das Verzeichnis das den gleichen Namen hat wie dein System. I. d. R. ist das die Serienummer des Roboters. Sollte aber ein anderer Systemname eingetragen sein ist es am einfachsten herauszufinden wenn du nach dem BACKUP-Verzeichnis suchst.
    Das Verzeichnis, das auch das BACKUP enthält ist dein HOME.


    Ansonsten würde ich die Bindestriche draussen lassen und die Verzeichnis und Dateinamen nicht mit mehr als 16 Zeichen benennen.


    Gruß

  • Hallo,
    hier ein Beispiel,


    \\hd0a\16-52904\HOME\


    und wie schon von thilbi gesagt, die Bindestriche könnten auch nicht so gut sein!!!

  • Hallo zusammen!


    Ich werd´ noch wahnsinnig... :bawling: :kopfkratz::)


    Vorgehensweise:
    - Backup erstellt, um weitere Bearbeitung mit UltraEdit durchführen zu können
    - im Ordner "PROGMOD" weitere Ordner für die verschiedenen Teileprogramme erstellt
    - Ebenfalls im PROGMOD-Ordner befindet sich die "IRB_54771.mod". Diese verweist auf die MAIN-Prozedur der jeweiligen Teileprogramme (z.B. 4PG.mod):
    --------------------
    ...
    TPReadFK nFkey,Center("Bitte Nummer wählen"),"1","2","3","Abbruch","";
    IF nFkey=1 THEN
    Load "HOME:/4PG/4PG.mod";
    %"4PG:main"%;
    UnLoad "HOME:/4PG/4PG.mod";
    ...
    --------------------


    Wenn ich das Ganze über Restore wieder einspielen will, erhalte ich die Meldung, dass das "Backup unvollständig" ist.


    Hat jemand eine Idee, woran das liegen kann? Muss eventuell an den Pfaden noch was geändert werden?


    Buschmann

  • Hallo Buschmann,


    1. wenn im Progmod weitere Module od. Ordner erstellt werden und diese dann automatisch über Restore wieder eingespielt werden sollen müssen diese in die Datei "Backinfo\Backinfo.txt" eingetragen werden.
    Ich persönlich spiele neue Module mitteles eines FTP-Programmes direkt ein.
    2. Dein Programm verweist auf den Ordner "HOME", deine Unterordner liegen im Moment aber in PROGMOD. Als entweder musst du die Ordner verschieben oder dein Programm ändern auf 'Load "hd0a:/(Vezeichnisname? evtl. Seriennummer)/Progmod/4PG/4PG.mod";
    Auch hier ist ein FTP-Programm hilfreich, da du dessen Pfadangaben direkt in das Programm kopieren kannst.
    3. In dem Ordner "4PG" gibt es kein Modul das "4PG.mod" heißt, also könnte er auch gar keines laden.


    Hoffe ich konnte dir weiterhelfen


    Gruß
    Thilbi

  • Hallo,
    die Datei Backinfo.txt zu Fuß anzupassen kann voll nach hinten losgehen, wenn deine Ordner und Modul Struktur steht dann ein Backup ziehen, dann sollte das Restore passen, wenn nicht kannst du dich über die Backinfo.txt schlau machen was genau nicht geht!!!

  • Guten Morgen!


    Ich habe jetzt per FTP-Programm das notwendige Modul (4PG.mod) eingefügt. Dieses enthält auch die entsprechende Prozedur "Main".


    Dennoch erhalte ich eine Fehlermeldung.


    Was mich dabei irritiert, ist die Angabe "Programmreferenz: /IRB_54771/Main/Load/101"


    Hat da jemand eine Idee?


    Gruß
    Buschmann

  • Hallo Buschmann,


    die Fehlermeldung bezieht sich auf deine Load Instruktion in der Zeile 101 der main routine.


    Zitat


    Load "HOME:/4-Punkt-Greifer/4-Punkt-Greifer.mod";
    %"4-Punkt-Greifer:main"%;


    Versuche mal Deine Module und Routinen so umnzubenennen, dass diese nicht mit einer Zahl sondern mit einem Buchstaben beginnen.
    Außerdem sind Bindestriche in Modul- und Routinennamen nicht erlaubt.


    z.B.

    Code
    Load "HOME:/Pkt4_Greifer/Pkt4_Greifer.mod";
      %"Pkt4_Greifer:main"%;


    Weiterhin solltest Du darauf achten, dass die Main-Routine in dem Modul das Du lädst als lokal deklariert ist, da diese sonst zweimal vorhanden ist oder Du verwendest einen anderen Namen als main.


    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden