Einschaltverzpgerung für FB blink(util.lib)

bleri

Level-1
Beiträge
42
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bin gerade dabei einen Wassereinlauf zu programmieren. Für den Wassereinlauf sollen Impulse an die Steuerung gesendet werden, dass habe ich auch mit blink aus der util bib hinbekommen. Ich möchte allerdings auch eine EInschaltverzögerung einbauen um Fehler zu simulieren.

Habe den Baustein TON verwendet aber irgendwie macht er nicht was er soll.

Kann mir da einer von euch helfen? Vielen Dank
 
Also so wie ich es jetzt gemacht habe, hat die Verzögerung kein Effekt.

Und wie meinst du das, dass der "impulseingang" langer als die TON Zeit true sein muss?

Bin seit einer Woche mit der Programmierung von SPS dabei und deshalb noch nicht soviel Erfahrung. Brauche das fur meine Bachelorarbeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
2-3 Bemerkungen:
1. Bist du dir bewusst, dass du in einem FB (Funktionsbaustein) arbeitest? - Ich würde dir empfehlen, zuerst die ganze Sache in einem Programm zu machen, und erst danach die Implementation in einen FB.
2. Am Ausgang ET vom TON kannst du die abgelaufene Zeit anschauen. Ist für Debugging noch so praktisch!
Code:
    ET    : TIME;    (* elapsed time *)
3. Den Eingang (impulseingang) muss während der ganzen Zeit T#5s TRUE sein.
 
Ja das ist mir bewußt. Ich nutze den Baustein in einem weiteren Programm. Also der Eingang wird von einer Steuerung angeschaltet und bleibt deshalb auch an. Sollte ich den TON in meinem PrOgramm reinnehmen, also bevor ich auf den FB Impulse zugreife?
 
nimm mal Zeiten, die du von Auge sehen kannst (2-3 Sekunden) und wenn du online bist, versuche die Signale zu verfolgen. Verwende dazu die diversen Tools von TwinCAT. Nimm mal die Ablaufkontrolle oder setzen BreakPoints. Wenn nichts hilft, gehst du halt mit Einzelschritten daran.
P.S. Versuch dir mit den zur Verfügung stehenden Mittel möglichst selbst zu helfen, sonst wird deine BA-Arbeit ziemlich mühsam. Und versuche die Probleme viel genauer zu beschreiben. (So als Tipp unter Studenten ;-))
 
Ja werd das morgen mal weiter ausprobieren.

Problem:
Ich möchte Fehler simulieren bei einem Wassereinlauf. Ein Fehler kann unteranderem durch die Einschaltverögerung simuliert werden, dabei soll der Nutzer den Wert für PT später selber festlegen. Es funktioniert soweit alles nur halt diese Einschaltverzögerung.

Ich werd morgen mal kurz Posten ob ich es geschafft habe. Danke erstmal...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also so wie ich es jetzt gemacht habe, hat die Verzögerung kein Effekt.

Und wie meinst du das, dass der "impulseingang" langer als die TON Zeit true sein muss?
Der von Dir gewählte Bezeichner "impulseingang" suggeriert, daß an diesem FB-Eingang Impulse anliegen.
Tatsächlich ist es aber ein Freigabesignal für die Impulsausgabe.

Was Du programmiert hast, das funktioniert so:
Wenn der Eingang KL1702_DI_230V_14 5 Sekunden lang ununterbrochen true ist, dann beginnt der BLINK-Baustein "test" mit der Impulserzeugung mit den vorgegebenen Puls-/Pause-Zeiten T_1 und T_0. (30ms sind heftig kurz, ist das tatsächlich so gewollt?)
Sobald KL1702_DI_230V_14 false wird, stoppt die Impulsausgabe. Für eine erneute Impulsausgabe muß KL1702_DI_230V_14 wieder 5 Sekunden ununterbrochen true sein.

Ist das genau das, was Du willst?
Wenn Du etwas anderes willst, dann beschreibe die von Dir gewünschte Funktion genauer.

Eventuell ist es sogar so, daß der Impulsausgang, während KL1702_DI_230V_14 false ist, so bleibt, wie er zuletzt war und nicht unbedingt auf false wechselt (TwinCAT kenne ich nicht und mein Codesys ist ziemlich lange her).

Ansonsten kann ich mich nur den Tips von gloeru anschließen und empfehlen, das Programm mit sichtbar langen Zeiten zu simulieren und zu beobachten.

Wie kurz sind eigentlich die Impulse Deiner Wasser-Zähler? Können die Zählimpulse sicher mit den Klemmen erfasst und im Programm verarbeitet werden?

Harald
 
Er soll nur zu Beginn 5 s warten bis er die Impulse erzeugt und nicht später wiederholen wenn der Eingang auf False war.

Der Impulsausgang bleibt nicht so wie er zuletzt war, dass habe ich mit AND nach dem Blink abgefangen, das funktioniert auch so wie ich es haben will.

Also das mit der Impulsdauer ist schon richtig der soll mir 1400 Impulse in einer recht kurzen Zeit erzeugen. Ich habe 5 V klemmen verwendet und das funktioniert wunderbar.

Ich mochte halt zu Beginn der Impulse einmal eine Verzögerung einbauen, um ein Fehler zu simulieren. Der Impulseingang geht dabei auch wieder im False Zustand nur soll er dann nicht wieder 5 s warten, dass wäre nicht nötig.

Ich hoffe ihr habt mich jetzt besser verstanden.
 
Sehe ich das richtig, dass dein Problem ist, dass die Zeitverzögerung TON nur einmalig gestartet werden soll, und der Rest funktioniert?
 
Dann brauchst Du eben noch eine Hilfsvariable (BOOL), die sich merkt, ob es "das erste mal" oder die folgenden Male sind.
Irgendwann muß die Hilfsvariable dann auch wieder rückgesetzt werden, wenn es ein nächstes "erstes mal" geben soll.
Code:
                                      +---+         test
                        impulseingang-|   |     +-----------+
                 verz                 | & |     |   BLINK   |
              +-------+     enable    |   |-----|ENABLE  OUT|----impulsausgang
              |  TON  |     +----+    |   | T_0-|TIMELOW    |
impulseingang-|IN    Q|-----|S  Q|----|   | T_1-|TIMEHIGH   |
         T#5s-|PT   ET|-    |    |    +---+     +-----------+
              +-------+     |    |
                            |    |
                        ???-|R   |
                            +----+
Oder mit einem zusätzlichen FB-Input "erstes_mal":
Code:
                                      +---+         test
                        impulseingang-|   |     +-----------+
                 verz                 | & |     |   BLINK   |
              +-------+               |   |-----|ENABLE  OUT|----impulsausgang
              |  TON  |     +----+    |   | T_0-|TIMELOW    |
impulseingang-|IN    Q|-----|    |----|   | T_1-|TIMEHIGH   |
         T#5s-|PT   ET|-    | >1 |    +---+     +-----------+
              +-------+     | =  |
                            |    |
                 erstes_mal-o    |
                            +----+

Harald
 
Danke Harald, kann es leider gerade nicht ausprobieren weil meine SPS spinnt. Ich kann mich mit ihr nicht mehr verbinden. Die fährt normal hoch und dann blinken auf einmal viele Klemmen. Kein Plan womit das zusammen hängt, werd morgen mal bei Beckhoff anrufen.
 
Hallo Harald,

ich hab es etwas anders gemacht. Hab den RS Baustin vor dem TON eingefügt um mit der Hilfsvariable(danke für den TIPP) die Verzögerung mehrmals zu starten, also damit setzt ich ET wieder zurück.

Vielen Dank nochmal.
 

Anhänge

  • Impulse_.JPG
    Impulse_.JPG
    107,7 KB · Aufrufe: 15
Zurück
Oben