Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Startimpuls

  1. #1
    Registriert seit
    12.12.2011
    Beiträge
    130
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte gerne einen Impuls erzeugen beim starten des SPS.

    Siehe bitte Anhang.

    Was mache ich das falsch?

    Danke.

    Gruß
    Maik
    Zitieren Zitieren Startimpuls  

  2. #2
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Servus,
    Dein TON.Q ist nach dem Start für eine Sekunde aus und nach Ablauf der einen Sekunde immer an, da der Eingang ja auch immer True ist.
    Entweder nimmst Du einen Timer, der einen Impuls erzeugt, oder wenn Dir der erste Zyklus als Impulslänge reicht:
    Code:
    VAR
    Start, Imuls : bool;
    END_VAR
    
    Start:=TRUE;
    Impuls:=Start;
    Start:=FALSE;

  3. #3
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Mit Deiner Zeit entsprechend:
    Code:
    VAR
    Start, Impuls : bool;
    TONInst: TON;
    END_VAR
    
    Start:=TRUE;
    Impuls:=Start;
    Start:=FALSE;
    TONInst(IN:=Start,PT:=T#1s);
    Dann macht TONInst.Q einen Impuls beim Hochlaufen für eine Sekunde.
    Timer die einen Impuls erzeugen ( so wie bei der S7 ) gibt es nur mit extra Bibliotheken...

    Grüße Tom

  4. #4
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.497
    Danke
    263
    Erhielt 246 Danke für 224 Beiträge

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von Tom... Beitrag anzeigen
    Code:
    Start:=TRUE;
    Impuls:=Start;
    Start:=FALSE;

    Impuls ist immer TRUE, da Start ja in jedem Zyklus wieder neu auf TRUE gesetzt wird! Und selbst wenn der Baustein nur einmalig aufgerufen wird, braucht's immer noch einen Stelle, an der "Impuls" wieder zurückgesetzt wird, damit er nur einen Startimpuls und nicht ein Dauersignal erhält.
    Start ist nur die wenigen µs zwischen den beiden Befehlszeilen TRUE. Das wird den Rest des Zyklus auch nichts nutzen.


    Zitat Zitat von Tom... Beitrag anzeigen
    Code:
    Start:=TRUE;
    Impuls:=Start;
    Start:=FALSE;
    TONInst(IN:=Start,PT:=T#1s);
    Dann macht TONInst.Q einen Impuls beim Hochlaufen für eine Sekunde.
    Timer die einen Impuls erzeugen ( so wie bei der S7 ) gibt es nur mit extra Bibliotheken...

    Warum sollte TONInst einen Impuls erzeugen, wenn Start immer FALSE ist (direkt in der Zeile davor!)?



    Zitat Zitat von Tom... Beitrag anzeigen
    Dein TON.Q ist nach dem Start für eine Sekunde aus und nach Ablauf der einen Sekunde immer an, da der Eingang ja auch immer True ist.
    Ist doch das, was der TE wollte! Nur den Startimpuls hat er daraus falsch erzeugt:
    Zitat Zitat von mfreye Beitrag anzeigen
    ich möchte gerne einen Impuls erzeugen beim starten des SPS.
    Was mache ich das falsch?
    Du erzeugst ein Signal ab dem Einschalten der Einschaltverzögerung. Du möchtest aber ein Signal bis die Einschaltverzögerung sich einschaltet. Das bedeutet, Du mußt TONInst.Q nicht auf gesetzt sondern auf NICHT gesetzt abfragen:
    Code:
    TONInst(IN:=TRUE,PT:=T#1s);
    Start:= NOT TONInst.Q;
    Somit ist Start solange aktiv, bis der TON aktiviert wird.


    Der Code muss aber so oder so in jedem Zyklus ausgeführt werden.
    Die Einstellung im ersten Bild (bin da nicht so firm) sieht aber aus, als ob er nur einmalig beim Start ausgeführt wird. Wenn dem so ist, wird der Timer wahrscheinlich nie auf TRUE gehen, da ja das Programm nicht mehr an die Stelle kommt, wo das abgefragt wird. Demzufolge würde bei einem einmaligen Ausführens des Bausteins auch der Startimpuls nicht mehr aus gehen.

    Wenn dies ein solcher Start-Baustein ist, kannst Du z.B. auch einfach in den Baustein
    Code:
    Start:= True;
    schreiben und dies dann im normalen Programmablauf an der gewünschten Stelle auf FALSE zurück setzen.
    Da der Baustein nur bei Neustart aufgerufen wird, wird das START-Flag auch dann erst wieder TRUE.

  6. #6
    Registriert seit
    19.10.2010
    Beiträge
    325
    Danke
    15
    Erhielt 36 Danke für 31 Beiträge

    Standard

    Ich würde mir einfach ein Bit mit sich selber nicht auf True setzen und dieses als Flanke aus ein Tof verknüpfen.

  7. #7
    mfreye ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.12.2011
    Beiträge
    130
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo und Danke für die Hilfen an alle.

    Ich mache es jetzt wie im Anhang.
    Den Start_Impuls_1s kann ich dann überall verwenden wo ich ihn brauche.

    @SPS-freak1
    Du hast in allen Punkten recht

    Gruß
    Maik
    Angehängte Grafiken Angehängte Grafiken

  8. #8
    Registriert seit
    19.10.2010
    Beiträge
    325
    Danke
    15
    Erhielt 36 Danke für 31 Beiträge

    Standard

    Im Endeffekt gleiche Funktion, nur aus dem TOF ein TON gemacht, ist Geschmack

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.716
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von mfreye Beitrag anzeigen
    @SPS-freak1
    Du hast in allen Punkten recht
    Ist mir was entgangen? Welche Punkte denn?

  10. #10
    Registriert seit
    19.10.2010
    Beiträge
    325
    Danke
    15
    Erhielt 36 Danke für 31 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab es so verstanden, das meine Variante funktioniert, er es nur nicht mehr so machen wollte.

    Andere Variante ist, das ich es zu schlampig beschrieben hab Startimpuls

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •