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

Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 60

Thema: Zähler in SCL

  1. #11
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, der Doppelpost kam zustande, weil ich dir antworten wollte und gleichzeitig noch eine Frage an Manuel offen war...

    Offensichtlich gibt es aber doch einen Unterschied, ob ich TAKT als IN- oder Statische- Variable deklariere. Denn als IN-Variable funktioniert es... sieht Post #1.

    Den Eingang habe ich nicht direkt auf den Zähler gelegt, weil ich sowas (in SCL) konstruieren wollte:

    U Eingang
    FP M10.0
    = TAKT

    Und TAKT soll dann mehrmals im Programm Verwendung finden, um auf eine Flanke zu reagieren...
    LG
    spirit

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.780
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Du hast aber gelesen, dass das mit dem Flankenmerker bei einem Counter nicht wirklich Sinn machen würde ... ?

    In SCL-Code sähe das dann z.B. so aus :
    Code:
    TAKT := Eingang and not FM ;
    FM := Eingang ;
    // TAKT kann hier ein TEMP sein
    // FM muss hier ein STAT sein
    Gruß
    Larry

  3. #13
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Immer wenn der Baustein im Zyklus durchlaufen wird, wird die Eingangsvariable wieder eingelesen, liegt also außen eine Variable an, die 0 ist, ist Takt auch wieder 0. Du kannst zwar intern Takt beschreiben, aber das wird natürlich nicht nach "außen" weitergereicht, denn darum ist es ja eine INPUT.
    Lieben Dank Ralle,

    ist echt etwas kompliziert das Ganze! Ich habe doch die Variable TAKT im Baustein (versehentlich) dauerhaft auf 1 gesetzt, wenn die Bedinung einmalig erfüllt war. Insofern ist TAKT doch auch beim nächsten Zyklusdurchlauf immer noch 1 oder nicht mehr?
    LG
    spirit

  4. #14
    Registriert seit
    06.03.2008
    Ort
    Neustadt/Wstr.
    Beiträge
    276
    Danke
    35
    Erhielt 42 Danke für 39 Beiträge

    Standard

    Wenn TAKT allerdings eine INPUT-Variable ist, wird Sie im nächsten Zyklus wieder mit dem Wert der Eingangsvariable überschrieben. Wenn die Variable IN-OUT wäre würdest du Takt auserhalb des FB speichern und dann würde es nicht mehr funktionieren.

    Gruß
    FF
    Lebe so als sei jeder Tag dein letzter -
    eines Tages wirst Du recht haben

  5. #15
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Du hast aber gelesen, dass das mit dem Flankenmerker bei einem Counter nicht wirklich Sinn machen würde ... ?

    In SCL-Code sähe das dann z.B. so aus :
    Code:
    TAKT := Eingang and not FM ;
    FM := Eingang ;
    // TAKT kann hier ein TEMP sein
    // FM muss hier ein STAT sein
    Gruß
    Larry
    Ja Larry, habe es gelesen; Manuel hat ja geschrieben: b) Für einen S5-Zähler wie du ihn hier verwendest, bräuchtest du überhaupt keine Flanke, das mach der Zähler schon selbst.

    Aber ich wollte ja auf eine negative Flanke reagieren und das macht der Zähler ja nicht selbst.

    Darf TAKT hier Temp sein, weil er den Zustand ja eh immer nur für einen Zyklus behält?

    Vielen Dank und ich weiß, ich nerve...
    LG
    spirit

  6. #16
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    naja, Möglichkeiten gibt es viele... in nen FB in SCL nen externen Zählerbaustein zu verwenden macht m.M. nach wenig Sinn. Da kannst Du einfach eine Variable hochzählen und gut:

    Code:
    IF Eingang AND NOT Eingang_old THEN
        Zaehler:=Zaehler+1;
    END_IF;
    Eingang_old:= Eingang;
    Gruß.

  7. #17
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    naja, Möglichkeiten gibt es viele... in nen FB in SCL nen externen Zählerbaustein zu verwenden macht m.M. nach wenig Sinn. Da kannst Du einfach eine Variable hochzählen und gut:

    Code:
    IF Eingang AND NOT Eingang_old THEN
        Zaehler:=Zaehler+1;
    END_IF;
    Eingang_old:= Eingang;
    Gruß.
    und hier noch für negative Flanke:

    Code:
    IF NOT Eingang AND Eingang_old THEN
        Zaehler:=Zaehler+1;
    END_IF;
    Eingang_old:= Eingang;
    PS: Eingang ist ne Eingangsvariable BOOL
    Eingang_old ist ne statische Variable BOOL
    Zaehler ist ne statische Variable DINT
    Geändert von ducati (16.07.2013 um 15:14 Uhr)

  8. #18
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Full Flavor Beitrag anzeigen
    Wenn TAKT allerdings eine INPUT-Variable ist, wird Sie im nächsten Zyklus wieder mit dem Wert der Eingangsvariable überschrieben. Wenn die Variable IN-OUT wäre würdest du Takt auserhalb des FB speichern und dann würde es nicht mehr funktionieren.

    Gruß
    FF
    Danke FF; nur was heißt... wird sie im nächsten Zyklus wieder mit dem Wert der Eingangsvariablen überschrieben? TAKT ist doch schon die Eingangsvaraible und sie wurde von mir versehentlich dauerhaft auf 1 gesetzt. Also ist sie doch im nächsten Zyklus automatisch wieder 1, oder nicht?
    LG
    spirit

  9. #19
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.255
    Danke
    537
    Erhielt 2.705 Danke für 1.954 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Danke FF; nur was heißt... wird sie im nächsten Zyklus wieder mit dem Wert der Eingangsvariablen überschrieben? TAKT ist doch schon die Eingangsvaraible und sie wurde von mir versehentlich dauerhaft auf 1 gesetzt. Also ist sie doch im nächsten Zyklus automatisch wieder 1, oder nicht?
    Du kannst keine Eingangsvariable dauerhaft auf 1 setzen.
    Eine SPS durchläuft ihr Programm zyklisch. Ist sie am Ende angekommen, beginnt sie wieder am Anfang.
    Dein Baustein wird also abgearbeitet, der Eingang wird eingelesen (hier 0), du wertest ihn aus, setzt ihn auf 1, dein Baustein wird verlassen.
    Das Programm arbeitet, falls vorhanden, weitere Bausteine ab, kommt an sein Ende und beginnt wieder vorn.
    Wenn dein Baustein dran ist, wird der Eingang eingelesen, der ist immer noch 0, denn du hast ihn zwar intern auf 1 geschrieben, aber das wird nicht nach Außen an die wirkliche Eingangsvariable witergegeben, denn die Schnittstelle ist als INPUT definiert und die funktioniert nur in eine Richtung, REIN, nicht RAUS.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #20
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und ausserdem ist die Diskussion "was passiert, wenn ich eine Eingangsvariable beschreibe" sinnlos, da man sowas besser bleiben lässt.

    Gruß.

    PS: Ausnahmen bestätigen die Regel

Ähnliche Themen

  1. SCL Zähler/Timerproblem
    Von bayernburn im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 14.06.2012, 08:18
  2. Betriebsstunden Zähler / max. Zähler Anzahl.
    Von superkato im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.12.2010, 16:38
  3. SCL Zähler...ewiges problem^^
    Von Chris_the_new im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.10.2009, 09:59
  4. Zähler in SCL
    Von Felse im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 09.03.2009, 16:49
  5. Maximalzählwert Zähler S7-300 + maximale Zähler CPU
    Von DennisBerger im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 02.07.2007, 10:54

Lesezeichen

Berechtigungen

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