2 Ausgänge gleichzeitig True schalten & Zeitversetzt auf False ???

  • Hi,


    wie oben schon beschrieben möchte ich gerne 2 Ausgänge gleichteitig auf True schalten und Zeitversetzt wieder auf False. Leider stehe ich mit den Prob irgendwie zur Zeit auf dem Schlauch. Würde mich freuen wenn ihr mir weiterhelfen könntet ^^.



    Hätte da noch eine Frage an die Experten.


    Und zwar möchte ich einen Eingang abfragen ob er "True" ist wenn er True ist soll der Roboter im Programm weiter machen. Sollte er "False" sein soll der Roboter versuchen ihn True zu schalten sollte es nicht gehen dann soll er stehen bleiben und eine bestimmte Fehlermeldung ausgeben.



    Würde mich sehr freuen wenn ihr mir hier weiterhelfen könntet ^^



    mfg
    BigHorses

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,


    das erste ist ganz leicht:


    $OUT[1] = TRUE
    $OUT[2] = TRUE
    WAIT SEC 1 ; 1 Sekunde warten
    $OUT[1] = FALSE
    $OUT[2] = FALSE


    bei dem Zweiten verstehe ich nicht ganz was du machen willst.
    Also der Roboter kann nicht seine eigenen Eingänge schalten.
    Das macht auch keinen Sinn.
    Du kannst einen Ausgang setzten und irgendwo auf eine Reaktion warten.
    So z.B.


    $OUT[1] = TRUE ;Bin an Position
    WAIT FOR $IN[1] ;Warte auf Eingang um weiter zu machen


    Eine Meldung kommt dann automatisch.
    -> Warte auf $IN[1]
    Wenn du mit Signalen arbeitest, dann wird das ganze auch noch aussagekräftig.


    Gruß

  • Hallo,


    die Ausgänge kannst Du auch mit dem Trigger-Befehl schalten. Wenn zwei Ausgänge gleichzeitig geschaltet werden sollen fallen mir zwei Lösungen ein.
    1. Zwei Trigger-Befehle hintereinander mit den gleichen Parametern und Argumenten, z. B.:
    TRIGGER WHEN DISTANCE=1 DELAY=-200 DO $OUT[1]
    TRIGGER WHEN DISTANCE=1 DELAY=-200 DO $OUT[2]
    Das Rücksetzen geht dann mit unterschiedlichen Argumenten.
    2. Wenn die Ausgänge hinteranderliegen in der $config.dat mit dem SIGNAL-Befehl eine Gruppe bilden und die Gruppe dann im Programm setzen und zum zurücksetzen die Ausgänge wieder einzeln behandeln. Z. B:
    $config.dat
    SIGNAL goGruppe $OUT[1] TO $OUT[2]
    Im Programm:
    doGruppe = 3 ;setzt beide Ausgänge
    $OUT[1] = FALSE ;rücksezen von einem Ausgang



    Was die zweite Frage betrifft kann ich mich nur RobAutomation anschließen.



    Gruß
    Thilbi

  • Hallo,
    du kannst die Ausgänge auch pulsen,
    PULSE ($OUT[1],TRUE,0.5)

  • Vielen dank für eure Antworten. Leider ist das nicht was ich brauche. Denn die Ausgänge bei meinem 1 Prob ist, sie müssen gleichteitig auf True und Zeitversetzt auf False.


    z.B. $OUT[10]=true
    $OUT[40]=true


    Ausgang 10 muss 4 sec True bleiben
    Ausgang 40 muss 3 sec True bleiben

  • Hallo was hast du denn gegen




    Gruß Loipe

  • Hallo Loipe,
    ich denke auch, dass Deine Lösung die einfachste ist.
    Ein Hinderungsgrund könnte aber ein alter SW-Stand vor V4.0 (z.B. 2.x) sein, hier waren die Impulslängen beim PULSE-Befehl auf 3 Sekunden begrenzt.
    Gruß Hinky

  • Hallo noch mal,
    alternativ kannst du die Ausgänge im Anwenderprogramm setzen und in sps.sub über $TIMER zurücksetzen!!!

  • Guten Morgen zusammen


    wenn die begrenzung der Pulse Zeit ein Problem wäre und man nicht den SUB nehmen möchte kann man auch sowas hier machen.


    INTERRUPT DECL XY WHEN $Timer_Flag[xy] DO RUECKSETZEN()


    $Timer[xy]=-4000
    $OUT[10]=TRUE
    INTERRUPT ON xy
    $TIMER_STOP[xy] = False


    DEF RUECKSETZEN
    $OUT[10] = False
    INTERRUPT OFF xy
    END

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