zeitabhängige Meldung programmieren

  • Wie kann ich beim KUKA Roboter ohne externe SPS also nur mit externen Ein/Ausgängen eine zeitabhängige Meldung konstruieren? Meldungen auszugeben usw. sind kein Problem. Aber wie schreibe ich eine Anweisung die mir z.B. nach Ansteuerung eines Ausganges nach z.B. 1 Sekunde eine Meldung bringt, wenn bis dahin nicht ein bestimmter Eingang gekommen ist ohne dass das Programm im Ablauf durch die Zeit angehalten wird. Beispiel Zylinder ausfahren, nach 1 Sekunde kommt der Eingang des INI Ausgefahren nicht, Meldung Endlage nicht erreicht.

    Das größte Problem eines Computers ist der, der davor sitzt.

  • Schritt für Schritt zum Roboterprofi!
  • Möglichkeit 1:


    Zylinder ausfahren
    Warte auf Eingang oder Timer
    Wenn Timer, dann Meldung


    Möglichkeit 2:
    Interrupt einschalten
    Zylinder ausfahren
    Im Interrupt eine Wartezeit und EIngang auswerten,dann Meldung ausgeben

  • Wenn im Submit, dann Timer!


    Ungefähr so:


    Bitte dementsprechend anpassen, ausschmücken usw.


    Und nicht vergessen: KEIN WAITFOR / KEIN WAIT SEC im Submit.

    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.

  • ok, erstmal danke. Muss ich nun die Timer oder den Timer Flag irgendwo declarieren oder unterscheidet das Orogramm durch die Nummer (1)


    Passt jetzt nicht ganz aber wenn ich schon einen Spezialisten am Rohr habe wie programmiere ich am besten eine positive Flanke, oder soll ich neues Thema starten
    Danke

    Das größte Problem eines Computers ist der, der davor sitzt.

    Einmal editiert, zuletzt von Servernexus ()

  • wie programmiere ich am besten eine positive Flanke,


    x : signal von dem die flanke detektiert werden soll
    a : hilfsvariable


    if (x and not a) then
    ; hier kommt man nur bei positiver flanke rein
    a=true
    endif


    if (not x) then
    a=false
    endif


    a könnte man auch "flanke_steht_an_wurde_aber_bereits_verabreitet" nennen...


  • Muss ich nun die Timer oder den Timer Flag irgendwo declarieren


    Es handelt sich um Systemvariablen. Sind also vom System deklariert. Angesprochen über den Index in den eckigen Klammern. 10 Timer.
    $TIMER[n] - aktueller Wert (ms) INT
    $TIMER_FLAG[n] - wird ausgelöst wenn der Wert in $TIMER[n] in den positiven Bereich wechselt. BOOL
    $TIMER_STOP[n] - TRUE stoppt den Timer, FALSE lässt den Timer weiterlaufen BOOL


    Zum Flankenthema:
    Interessante Diskussion, auch wenn's einige Meinungsverschiedenheiten gab. :mrgreen:
    http://www.roboterforum.de/rob….0.html;msg41921#msg41921

    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 ()

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