Submit Interpreter

  • Hallo Leute,


    ich hätte da mal eine Frage zum SUBMIT Interpreter. :kopfkratz:


    Mit CWRITE($CMD,STAT,MODE,“RUN/R1/SPS()“) kann man ja den SUBMIT Interpreter mit einem Programm starten! :D


    Gibt es auch eine Möglichkeit um ihn im Programm abzuwählen, also nicht Manuell. :-|


    Gruß
    Bruce

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,
    ja das ist kein Problem!


    CWRITE($CMD,STAT,MODE,"STOP /R1/SPS()") lässt den Submit stoppen!


    Ich bevorzuge aber die Variante das ganze mit einer Variable zu steuern. Die wird z.b. in der config.dat deklariert, heißt meinetwegen stop_sub oder so. Die kann ich dann nach belieben im Hauptprogramm TRUE und FALSE setzen wie ich will.
    Und im Submit frag ich die Variable einfach am Anfang des LOOPs mit einem WAIT FOR/ REPEAT UNTIL oder Ähnliches auf TRUE ab. Wenn sie dann wieder FALSE ist, dann gehts wieder weiter.


    Aber ist Geshmackssache denke ich mal!


    Grüße Heinz

    Einmal editiert, zuletzt von Heinz Merk ()

  • Hallo Heinz,


    Danke für deine Antwort!


    Das mit dem “STOP anstatt “RUN hatte ich schon probiert aber das stoppt ihn ja auch nur und deine restlichen Beispiele beziehen sich auch auf Submit Interpreter Stoppen.
    Was ich möchte, ist den Submit Interpreter abwählen um einen lokalen selber gebastelten Submit in einer *.src Datei anzuwählen.


    Ich kann meinen selber gebastelten aber nur anwählen, wenn zuvor der Globale Submit abgewählt wurde.
    Und durch anwählen meines selber gebastelten wird der Globale in der MADA/$custom.dat, $Pro_I_O[]=“/R1/SPS()“ leider nicht abgewählt/Überschrieben.


    Gruß
    Bruce

  • Dann versuch's halt mal mit 'CANCEL' statt 'STOP'.


    Allein den Sinn versteh' ich nicht.


    Es gibt einen Standard-SPS.SUB, in dem sind extra zwei Abschnitte markiert, in denen man den eigenen Code einbauen soll.
    Warum macht man das nicht so?? Dann funktioniert nämlich auch GripperTech und div. andere Techpakete, sowie weiteres Standard-Zeugs.


    Und bitte kein WAIT FOR / REPEAT UNTIL/ oder ähnliches :aufsmaul:, das Ding soll rund um die Uhr laufen, bis ihm schwindlig wird.
    Wenn man bestimmte Funktionen zu bestimmten Zeiten deaktivieren möchte, dann wird das mit IF 'irgendwas' THEN / ENDIF
    eingeklammert.

  • Dann hab ich das wohl falsch verstanden, aber da hast du recht ja
    wie Hermann schon sagte, am besten mal CANCEL ausprobieren und schauen was er dann macht.


    Hermann, brauchst mir nicht gleich drohen nur weil ich Beispiele genannt habe, wie man es umsetzen könnte ;)
    Ich selbst bevorzuge es auch immer den Submit komplett rennen zu lassen und wenn es irgendwo nötig ist, dann überspringt man eben n paar Zeilen/Befehle mit nehm IF


    Grüße
    Heinz

  • Hallo Heinz und Hermann,


    erst mal Danke für eure Anteilnahme


    Hermann:
    Sinn und Unsinn liegen oft nah beieinander ;)


    Deine Idee mit „CANCEL“ funktioniert leider auch nicht. :???:


    Ich habe mich jetzt doch dafür Entschieden mit Variablen und dem Standard-SPS.SUB zu arbeiten. :)


    Meine Ursprünglicher Gedanke wahr, da ich mit einem KUKA KR3 und einem ABB 2400 S4 Digitale Aus und Eingänge in mehreren verschiedenen Bewegungsprogrammen Informationen Austauschen muss, für jedes Bewegungsprogramm eine eigene *.sub zu basteln, die beim Programm starten Automatisch angewählt wird (und dazu müßte vorher die Standard-SPS.SUB abgewählt werden).


    Falls jetzt doch noch jemand eine Vorschlag hat, wie man die Standard-SPS.SUB über das Programm abwählen kann, würde mich das trotzdem noch Interresieren. :D


    Zum Beispiel CWRITE($CMD,STAT,MODE,“abwaehlen/R1/SPS()“) oder CWRITE($CMD,STAT,MODE,“schleich_dich/R1/SPS()“) oder CWRITE($CMD,STAT,MODE,“raus_hier/R1/SPS()“) ;)


    Mit besten Grüßen
    Bruce

  • Glaub doch den erfahrenen Leuten wie "Herrmann"!


    Du solltest den Roboter nicht ohne den Code der SPS.SUB laufen lassen.
    Diese durch eine eigene Datei ersetzen zu wollen ist WIRKLICH Unsinn.
    In der SPS.SUB sind je nach Roboteroptionen mehr oder weniger viele
    Programmzeilen enthalten die für den Betrieb des Roboters relevant sind.
    Ganz davon abgesehen ist es ja auch die SPS.SUB die nach dem Einschalten
    überhaupt erst mal ein Programm im Roboterinterpreter startet.


    Warum machst du es dir so schwer? Wenn du produktspezifisch & azyklisch
    zum Roboterprogramm verschiedene Daten mittels E/A Signalen austauschen
    willst, dann kannst du doch deine verschiedenen SUB Dateien realisieren, und
    diese in der SPS.SUB einfach mittels CASE-Selektor aufrufen. Und wie Hermann
    schon schrieb: In deinen Unterprogrammen keine WAIT und dergleichen!


    SPS.SUB (innerhalb von LOOP - ENDLOOP)
    SWITCH iProduktcode
    CASE 1
    DatenaustauschP1()
    CASE 2
    DatenaustauschP2()
    CASE 3
    DatenaustauschP3()
    etc.
    ENDSWITCH

    APT Techniques GmbH<br />Software-Entwicklung für Roboter &amp; SPS.

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