*.mod Laden und ersetzen

  • Hallo zusammen,
    stehe wieder vor einem Problem. Ich soll eine Möglichkeit schaffen Programmodule mit Bewegungsinstruktionen aus dem Hintergrund über ein Menue (welches nur im Einrichtbetrieb über einen externen Taster aufgerufen wird) in die Task T_ROB1 zu laden und das Aktuelle zu speichern. Also zu ersetzen.
    Ein Modul Laden hat kriege ich hin. Es aus dem Speicher zu löschen ebenfalls.Aber mit dem Speichern habe ich meine Probleme.
    ich habe bei Save... alle erdenklich möglichkeiten ausprobiert. Immer wieder sagter mir dass der Pfad nicht stimmt oder der Modulname oder der Pfad oder oder oder oder.
    Kann ich überhaupt aus einer Hintergrundtask ein Modul in die Vordergrundtask laden ???



    PROC ModulErsetzen()
    ! Anzeigen der Aktuellen Modulversion
    ZeigeDaten;
    ! Modulnummer für neues Teil eingeben
    TPReadNum reg6, "Teilenummer ???";
    ! neues modul laden
    Load "Home:"\File:="MODULE/LM_T"+ValToStr(reg6)+".mod";
    ! speichern des zu ersetzendes modul ( funktioniert nicht )
    Save "MODULE/LM_T"+ValToStr(nProgNr)+".mod";
    ! Aktuelles Modul entfernen
    UnLoad "Home:"\File:="MODULE/LM_T"+ValToStr(nProgNr)+".mod";
    nProgNr:=reg6;
    ! Routine zum Aktualisieren der parameter ausführen
    !Routinenaufruf mit später Bindung
    %"Param_T"+ValToStr(reg6)%;
    ENDPROC

  • ANZEIGE
  • Guten Morgen Buschmann.
    Nein, dass habe ich noch nicht,weil damit noch die Modulnummer angegeben wird die ich esetzen möchte.

  • Hallo Mischwarz,


    soweit ich weiß kann man Module nur taskintern laden und entladen, man kann ja beim laden auch nicht angeben, in welche Task es gehört. Bei Save kann man komischerweise eine TaskID angeben.
    Wenn ich bisher was geladen hab, dann nur in der Vordergrundtask.
    Beim Speichern habe ich auch immer den Pfad mit angegeben also Save Modaulname\FailePath:=Pfadname;
    Und ganz wichtig: man kann nur MOdule aus dem Speicher löschen wenn sie über Rapid geladen wurden. Wennsie von Hand reingeladen wurden dann meckert er.


    Gruß
    Stromer

  • Hallo stromer,
    das würde dann bedeuten, dass ich ein menue nicht im einrichtbetrieb aufrufen kann. zumindest nicht für diesen zweck.
    kann es sein, dass ich das verzeichnis "MODULE" welches in Home steht besonders deklarieren mus. ind den syspar oder so?

  • das mit save in unload habe ich, glaube ich zumindest, noch nicht probiert. wede ich am montag aber testen. wo ist eigentlich der unterschied zwischen statischem und dynamischen laden?

  • Das Menu zu öffnen ist erst mal nicht das Problem. Ich denke mal Du hattest das mit UIListBox vor?! Damit kannst Du aus unterschiedlichen Tasks Ausgaben auf dem Panel machen ohne dass sie sich gegenseitig überschreiben. Das Problem sehe ich im Laden, Speicher, und Löschen von Taskfremden Modulen.
    Brauchst Du die Module dann direkt im Handbetrieb oder erst wenn das Programm wieder läuft? Dann könntest Du das eigentliche Laden in der Hauptschleife der Haupttask machen und nur die Auswahl im Einrichtbetrieb.
    Alternativ wäre es auch denkbar, das ganze Menuezeug im Hauptprogramm auszuführen. Mit abfragen der Betriebsart usw., dann hast Du gleich die richtige Task zum laden/speichern.


    Gruß
    Stromer

  • mahlzeit,
    also UiListBox sagt mir jetzt erst einmal nichts. ich hatte vor das mit UiNumEntry zu machen. Aber das ist das kleinste problem.
    in diesem Fall sage ich , das das Modul laden zum Umrüsten der Anlage gehört. und darum würde ich das auch gerne im einrichtbetrieb machen. weil ich auch im Einr.betr. das ganze noch einmal teste.

  • Ich hab mir Deinen Prograamcode für das Speichern nochmal angeschaut und meiner Meinung nach fehlt da was.
    Du schreibst: Save "MODULE/LM_T"+ValToStr(nProgNr)+".mod";
    Damit sagst Du dem Robbi unter welchem Namen er ein Modul wo hin speichern soll, aber nicht welches MOdul.
    Versuchs mal so:
    Save ModulName\FilePath:="MODULE/LM_T"+ValToStr(nProgNr)+".mod";
    ModulName ist dabei der Name des Moduls, wie es auch in der Steuerung erscheint (kann unterschiedlich zum gespeicherten Namen sein).


    Gruß
    Stromer

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