*neuaufnahme*Automatische Programmanwahl V5.5.14

  • Code
    IF $T1 AND ($PRO_STATE1==#P_FREE) AND IS_KEY_PRESSED(11) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/MAIN( )")
    ENDIF


    läuft auch!

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Schritt für Schritt zum Roboterprofi!
  • ... dann ist alles gut, den Fehler jetzt zu finden sollte nicht mehr allzu schwer sein,


    Code
    IF $EXT AND ($PRO_STATE1==#P_FREE) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/MAIN( )")
    
    ENDIF


    wenn kein Programm angewählt sollte es dann jetzt mit dem umschalten auf extern kommen!

  • da sind wir wieder am anfang des freds^^ es läuft so nicht!
    ich wollte nähmlich grad folgendes schreiben:


    wenn ich nun:

    Code
    IF $MODE_OP==$EX THEN
      CWRITE($CMD,STAT,MODE,"RUN/R1/main ()")
    ENDIF


    schreibe, müsste doch das prog bei umdrehen des schlüsselschalters angewählt werden. tut es aber nicht. das programm müsste doch auch unabhängig von der "autext" schnittstelle angewählt werden, oder etwa nicht?


    edith sagt: ich muss jetzt das werk verlassen, hier wird drauf geachtet nicht mehr als 10h zu wuppen... in ca 1h bin ich zu hause am rechner um hier weiterzulesen/-machen!

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

    Einmal editiert, zuletzt von AtoK09 ()

  • ... ah, daimler??? Die Abfrage ($PRO_STATE1==#P_FREE) nimm mit dabei sonst haust du die Anwahl non stop raus!


    Das sollte gehen,


    Code
    IF $EXT AND ($PRO_STATE1==#P_FREE) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/MAIN( )")
    
    ENDIF


    muss gehen wenn alles andere funzt, ansonsten mal damit spielen, irgendwie wird es dann schon :kopfkratz::denk::kopfkratz: !!!


  • ...
    Anwählen geht unabhängig von der Schnittstelle.
    ...


    danke für die info!
    aber ich bekomme auch das cell nicht automatisch angewählt. die beiden versuchscodes vom titan mit is_key_pressed liefen mit cell-anwahl und mit der anwahl meines mains, bzw mit programm abwahl.
    wenn ich dann

    Code
    IF $EXT AND ($PRO_STATE1==#P_FREE) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/MAIN( )")
    ENDIF


    schreibe steht wieder alles still. ich hatte das nach titans post von 15.50 uhr so versucht. das einzige was ich noch nicht gemacht habe, war/ist ein kaltstart. das mussich dann morgen früh als erstes mal machen!

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Ist deine Auto extern Betriebsart auch als $EXT deklariert oder wurde das aus Versehen in irgendwas anderes geändert z.B. $EX ist eigentlich die einzige möglichkeit weshalb er bei den anderen Betriebarten alles macht und im ext Betrieb nicht?
    Bitte auch noch abklären ob die Bedingung nicht durch ext Betrieb übersprungen wird.
    :zwink:

    Mit freundlichen Grüßen / best regards

  • tja, das weiß ich nicht. werde ich aber morgen nach dem kaltstart cheggen, sollte aber so sein, denn der rob ist frisch und neu gewesen.
    deine zweite anregung versteh' ich nicht? meinst du ob die anweisung im sps.sub übersprungen wird?

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Bist du sicher, dass dein Programm Main() im R1 zur Verfügung steht? Ich mache das ständig so, dass wenn der Schlüsselschalter auf Extern gestellt wird auch das passende programm angewählt wird, falls keins vorhanden.


    Das habe ich gerade frisch vom Robi kopiert und es funktioniert (nur automatik gegen main tauschen):


    Code
    IF ($MODE_OP==#EX) and ($pro_state1==#p_free) THEN
     CWRITE($CMD,STAT,MODE,"RUN /R1/Automatik()")
    ENDIF


    Probier bitte auch mal im Submit einen Merker aus deiner Bedingung zu machen. Z.B.:

    Code
    $FLAG[99]=($MODE_OP==#EX) and ($pro_state1==#p_free)


    Dann mal schauen, ob $FLAG[99] auch TRUE ist.


    Ansonsten fällt mir auch noch die tm_bib.src ein, dort werden auch ähnliche Dinge abgefragt, ausgelöst etc. Aber die ist ja eigentlich nicht aktiv, wenn kein Programm gestartet ist. :kopfkratz:


    Sonst poste mal ein Archiv.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • tja liebe leute, in der sps.sub gibt es ja den fold autoext ini im ini fold^^ wenn ich die bedingungen da reinsetze geschieht nix(!). schreibe ich es aber dann in den loop läuft es.
    spricht was dagegen es so zu lassen? :denk:

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • ... oh je, du solltest es unbedingt so lassen, alles was nicht im LOOP ist wird nur einmal nach dem starten bearbeitet, da hätte ich auch eher nach fragen können, nun ja, hau es oder lass es im LOOP und alles wird gut. Die EXT INIT ist nur zum einmaligen Aufruf von CELL.SRC nach dem starten in Automaik extern!!!

  • versteh' ich dich richtig, dass es ok so ist.
    das prog wird zwar angewählt aber rennen "tut" es noch nicht... :huh:

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • lag am extstart signal, ist jetzt ok! danke euch.
    :merci:
    und jetzt für euch alle :heildir:

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • hallo liebe leute,


    nachdem nun das automatische anstarten geglückt ist, will der kunde ein anderes sowie ein zweites startverhalten.
    aktuell drehe ich den schlüsselschalter auf aut ext, die sps beginnt den startvorgang.
    sps.sub:

    Code
    IF #EXT and ($pro_state1==#p_free) THEN
     CWRITE($CMD,STAT,MODE,"RUN /R1/Automatik()")
    ENDIF


    jetzt ist es so gewollt, dass die startbedingungen der sps IMMER anstehen und nur durch drehen des schlüsselschalters das programm rennt. das schaff' ich nicht, meinermeinung nach weil ich keine $ext_start flanke bekomme. wie ist das zu realisieren?


    zweitens soll die geschichte auch nur im aut modus anstarten (bei anstehenden startbedingungen durch die sps).
    für jede idee bin ich offen. ;)

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Hinweis zum automatischen Anstarten:


    Man sollte in der übergeordneten Steuerung auf ($ON_PATH oder $IN_HOME) überprüfen bevor man $EXT_START schickt.
    Sonst kann der Anwender folgenden "lustigen" Crash fabrizieren:
    - Mitten im Ext Ablauf auf T1 schalten
    - Den Roboter verfahren auf eine Position wo es auf dirketem Weg zur Position im Programm zum crash kommt.
    - Wieder auf EXT schalten
    - Programm das noch angewählt ist wird gestartet und der Roboter fährt mit vollem Tempo auf die letzte Position (keine SAK im EXT)



    Bin mir nicht sicher, aber ich glaub das könnte auch passieren wenn man das Programm zwar abgewählt hat (automatisch zb), aber nicht das cell.src verwendet und ein Programm anwählt, welches kein "Check Home" drin hat.



    Zu Deiner Frage:
    Bin mir sicher ob ich Dich richtig verstehe, aber Du kannst ja mit der übergeordnenten Steuerung den Startvorgang automatisch durchfüren sobald der Ausgang $EXT des Roboters ansteht.
    Also: Umschalten auf EXT:
    - Programm wird automatisch angewählt (wie hier im Thread besprochen im sps.sub)
    - Der Ausgang $EXT steht an und übergeordnete Steuerung startet automatisch an (CONF_MESS DRIVES_ON EXT_START, ...)

  • Zu der Crash-Gefahr:
    Man kann ja auch beim Umschalten auf EXT im SPS.SUB explizit das gerade angewählte Programm abwählen,
    und dann das richtige Programm anwählen. In diesem Programm wird dann eine vernünftige Grundstellungsfahrt
    gemacht, oder wie im CELL.src ein check auf home.


    Ansonsten:
    Im Automatik geht's gar nicht.
    Im Ext liegt's wie schon richtig bemerkt an der fehlenden Flanke am ext_start.
    Kann man doch in der SPS mit einem Federstrich beheben (wie oben schon beschrieben).
    Ist das eher ein akademisches Problem, oder ist der SPS-Programmierer zu faul?
    Auf dem Roboter alleine geht es ohne Hilfe der SPS nicht. Man könnte höchstens
    einen Ausgang am Roboter durch die SPS wieder auf den Eingang ext_start zurückschleifen.
    Aber was soll der Krampf? Da bastelt man im Roboter rum, am Ende blickt keiner mehr durch
    und dabei ist es sehr einfach in der SPS zu lösen.

  • deinen sicherheitseinwand muss ich mir nochmal durch den kopf gehen lassen! danke. jedoch ist es hier so, dass ich beim anstarten des programms über die achswerte überprüfe wo ich stehe um auf einer programmierten/geteachten bahn in eine sichere(home) position zu fahren. erst dann kann das programm abgearbeitet werden!


    wir lesen ab sofort die stellung des schlüsselschalters aus im #ex werden nach einer wartezeit die startbedingungen abgearbeitet, ebenso im #aut


    im t1/t2 (kein programm wird, bzw ist angewählt) werden die startbedingungen nicht abgearbeitet aber $move_enable wird gesendet, damit jmd ohne eingrif in die schnittstelle den robi verfahren kann.


    programm wird angewählt im #ex und #aut und kann abgearbeitet werden. wird der schlüsselschalter auf t1/t2 gestellt wird das programm abgewählt. so dass ich auf jeden fall bei handeingriff über den schlüsselschalter mit der überprüfung der achsstellung und der heimfahrt beginne!


    Hermann wir sind nicht zu faul, uns fehlte der zündende gedanke, den wir dann hoffentlich mit dem schlüsselschalter check gehabt haben.


    gibt es dazu einwände?

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

    Einmal editiert, zuletzt von AtoK09 ()

  • Bezüglich $MOVE_ENABLE
    Wir haben das immer auf 1 ($IN[1025]) gebügelt (ebenso $DRIVES_OFF)
    Dazu muss man $CHCK_MOVENA = FALSE einstellen. Habs nicht im Kopf, ist aber glaub ich der STEU/MADA/option.dat


    Bezüglich "überprüfung der achsstellung und der heimfahrt"
    Kannst das vielleicht etwas ausführlicher darlegen? Würd mich interessieren, was Du da genau machst.

  • Sorry für das zu faul, hat sich halt irgendwie so angehört, als ob da alles auf den Roboter abgeschoben werden soll.
    Manchmal denkt man nicht daran, dass andere das Allernaheliegendste nicht eh schon wissen und eben mal kurz auf dem Schlauch stehen.

  • Mal ne Frage zwischendurch: du wählst bei jedem Umschalten auf T1 oder T2 dein Programm ab? Stelle ich mir unpraktisch vor,wenn mal der Greifer klemmt oder schnell mal was nachgeteacht werden soll. Aber sicher Ansichtssache...

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