Blinker

  • Hallo zusammen,


    sollte eine Ampel in nach verschiedenen Situationen blinken oder leuchten lassen.
    Dies werde ich im Submit Interpreter machen.
    Gibt es schon eine Funktion die das Blinken ermöglicht oder muss ich über 2 Timer das selber basteln?


    Eingang 10 = blinken
    Eingang 11 = leuchten.


    Im Voraus Besten Dank!!! :merci:

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,
    machst du so,


    in sps.sub


    ;===================================================
    ;BLINKERMERKER
    IF $TIMER[1]>=0 THEN
    $TIMER_STOP[1]=TRUE
    $TIMER[1]=-500 ;0,5

    M_BLINKER=NOT M_BLINKER

    $TIMER_STOP[1]=FALSE

    ENDIF


    IF Eingang10 THEN
    A_AMPEL=M_BLINKER


    ENDIF


    IF Eingang11 THEN
    A_AMPEL=TRUE


    ENDIF


    IF NOT Eingang10 AND NOT Eingang11 THEN
    A_AMPEL=FALSE


    ENDIF


    als Beispiel auf rasch, bis dann Christian ... .

  • und im init noch,


    ;FOLD USER INIT
    ; Please insert user defined initialization commands
    $TIMER_STOP[1]=TRUE
    $TIMER[1]=500

    ;ENDFOLD (USER INIT)

  • noch besser wäre,


    A_AMPEL=(EINGANG10 AND M_BLINKER) OR EINGANG11

  • Hallo,


    prinzipiell hab ich es bissher auf immer so aehnlich geloesst, wie Christian vorgeschlagen hat.
    Habe in meinem Programmen auch immer ziemlich viele Timer verwendet - irgendwann verliert da jeder den Ueberblick.


    Ich kann mir auch sowas vorstellen:



    Gruss Stefan

  • ... auch nicht schlecht, wenn ich mal verschiedene takte brauche, gefällt :ylsuper: !

  • @ stefanM: Ich kann dir in kürze berichten wie und ob es funzt!

  • Da waren jede Menge Fehler drin - so sollte es tun.


  • Hallo,
    ich habe den Blinker mal ausprobiert ( den ersten der vorgeschlagen wurde). Er funktioniert super.
    Aber nun steh ich gerade völlig auf dem Schlauch.
    Für was ist die -500 bei $TIMER[1]=-500 ;0,5?
    Die 0,5 ist ja die Ablaufzeit wenn ich das richtig sehe.



    Danke für euer Verständnis für die Blöde Frage.


    Gruß Friedrich

  • Der Timer startet bei -500ms. Sobald er in den positiven Bereich wechselt geht $TIMER_FLAG auf True.
    Soll heißen:


    Code
    $TIMER[1] = - 500
    IF $TIMER_FLAG[1] THEN 
    ;mach alle 500ms was tolles 
    $TIMER[1] = - 500
    ENDIF


    Im Prinzip ist es das gleiche wie:


    Code
    $TIMER[1] = 0
    IF $TIMER[1]>500 THEN 
    ;mach alle 500ms was tolles 
    $TIMER[1] = 0
    ENDIF


    Timer_Flag ist aber irgendwie schöner zu verarbeiten...

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

  • Übrigens ist der einfachste Blinker im Submit IMO immer noch der:
    bBlinker wird als boolsche Variable deklariert
    In der Submit Schleife:


    Code
    $TIMER_STOP[1]=FALSE
    IF $TIMER_FLAG[1] THEN
      $TIMER[1]=-500
     bBlinker=NOT bBlinker
    ENDIF

    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.

  • Danke Irrer Polterer für die gute Erklärung.
    Dann habe ich das mit dem Timer glaube ich wirklich falsch verstanden. Ich nun benötige ich glaube auch noch eine Erörterung für was die 0,5 steht.
    Ich dachte ja das nach Ablauf der 0,5 das "Tu was" kommt. Nun hab ich eben einfach mal mit dem wert 0,5 gespielt und konnte aber keine Veränderung feststellen.
    Hast du eventuell auch einen Tipp wo ich so was nachlesen kann bevor ich jedes Mal so fragen stellen muss?


    Gruß Friedrich



    Vergesst einfach meine frage hier..... Wer lesen kann ist klar im Vorteil :uglyhammer_2: ....
    Ich hab das Semikolon überlesen ... nun hab ich´s mit den 0,5 auch verstanden...

    Einmal editiert, zuletzt von Friedrich ()

  • nuja, alle 0,5 Sekunden wechselt das BOOL bBlinker seinen Zustand: Wenns aus ist, gehts an und wenns an ist, gehts aus...
    mithin ist es ein Blinker, der eine halbe Sekunde aus ist und dann für ne halbe Sekunde an.
    Änderst Du die "-500" auf "-750", dann wird die Impulszeit und die Pausenzeit jeweils ne dreiviertelsekunde sein.
    Um den Blinker auf ne Lampe durchzusteuern könntest Du in die sps.sub z.B. sowas wie "$out[22] = bBlinker" reinschreiben.
    Das bewirkt, dass dein konfigurierter Ausgang 22 (wo die Lampe anzuschliessen wäre) blinkt....

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • ...hi,
    von wegen mit den 0,5 gespielt und keine veränderung, hoffe ja mal nicht wirklich mit dem wert 0,5 der ist ja nur ein kommentar das mit -500 0,5 sek. gemeint ist ';0,5'!! ...irgendwie kommt das so rüber!?

  • Ja genauso war es titan 72.
    Deswegen sagte ich ja das ihr die frage lieber schnell vergessen solltet [emoji51].
    Ich frage sicher gelegentlich komisches zeug aber da hab ich mich selbst übertroffen.

  • ...aha, ok, sowas kommt vor, manchmal sieht man den wald vor lauter bäumen nicht!!

  • Ich hab da mal noch ein Anliegen.


    Nach dem wir die Lichterorgel nun erfolgreich eingebunden haben ist uns nun folgendes aufgefallen:
    -Zelle Steht in Automatik (Roboter AUT, Programm angehalten)
    -Nun wird der Roboter am Wochenende ausgeschaltet (bis jetzt Kaltstart)
    Nach wieder einschalten fährt der Submitinterpreter nicht hoch.
    Nach dem ich den Roboter mit der Orginal SPS im Automatikbetrieb einen Zyklus laufen lassen habe, kann man die Orginal SPS abwählen und die Bearbeitete wieder anwählen.
    Dann läuft die SPS auch bis zum nächsten Neustart.


    Was kann das für Fehlerursachen haben?


    Und mal noch was anderes.... Habe vorhin von einem Multisubmit gelesen. Hat das jemand von euch?


    Gruß Friedrich

  • hi,


    was bitte ist bei dir original sps, wenn deine 'bearbeitete' sps wie du sie nennst ein anderes *.sub modul ist sollte dieses auch aufgerufen werden sonst wird es nicht laufen!

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