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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: SCL Zähler?

  1. #11
    SEAL ist offline Benutzer
    Themenstarter
    Registriert seit
    05.09.2008
    Ort
    Bern
    Beiträge
    80
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    den HM habe ich an ein DBbit gebunden. Der "M x 1.0s" ist einTaktmerker von der SPS.
    Mit den Untenstehenden Cod zählt er zwar langsammer aber immer noch mehr als eins.
    Auch klappt das nicht wenn der Wert gösser al 100 ist das der den Zähler auf 1 zurücksetzt.
    Code:
    IF #"Motor läuft" >= 100 THEN
            #"Motor läuft" := 1;

    Code:
    IF #Motor_Freigeben AND "M x 1.0s" AND NOT #HM THEN
        #"Motor läuft" := #"Motor läuft" + 1;
        IF  #"Motor läuft" = 100 THEN
            #"Motor läuft" := 1;
        END_IF;
    END_IF;
    #HM := #Motor_Freigeben AND "M x 1.0s";

  2. #12
    Registriert seit
    09.08.2006
    Beiträge
    3.641
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Aber auch das sind FBs
    Jo, und dabei kann man so schön übersichtlich programmieren mit FBs und stat. Variablen und Multiinstanzen... aber das krigt man in die Köpfe nicht reingeprügelt...

    Ich wär einfach zu faul, Ordnung in den ganzen Merkerbereichen und GlobalDB-Bereichen zu halten...

    Gruß.

  3. #13
    SEAL ist offline Benutzer
    Themenstarter
    Registriert seit
    05.09.2008
    Ort
    Bern
    Beiträge
    80
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also wenn ich den Taktmerker aus dem Code nehme und ihn an den Eingang des Bausteins hänge dann zählt er um 1 hoch, so wie ich es will. bleibt nur noch das Problem warum er nicht bei >= 100 den zähler auf 1 setzt und gar nicht mehr zählt. Zudem ist auch noch die Frage warum ich den Taktmerker nicht in den Baustein einbauen kann , ist das ein zyklisches Problem?

  4. #14
    Registriert seit
    09.08.2006
    Beiträge
    3.641
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Zitat Zitat von SEAL Beitrag anzeigen
    den HM habe ich an ein DBbit gebunden. Der "M x 1.0s" ist einTaktmerker von der SPS.
    Mit den Untenstehenden Cod zählt er zwar langsammer aber immer noch mehr als eins.
    Auch klappt das nicht wenn der Wert gösser al 100 ist das der den Zähler auf 1 zurücksetzt.

    Code:
    IF #Motor_Freigeben AND "M x 1.0s" AND NOT #HM THEN
        #"Motor läuft" := #"Motor läuft" + 1;
        IF  #"Motor läuft" = 100 THEN
            #"Motor läuft" := 1;
        END_IF;
    END_IF;
    #HM := #Motor_Freigeben AND "M x 1.0s";
    Es macht genau das, was Du programmiert hast:

    bei jeder Flanke vom Taktmerker wird der Zähler eins hochgezählt, vorausgesetzt #Motor_Freigeben ist true.

    zurückgesetzt wird nur, wenn Zähler=100 und auch nur wenn die äussere Bedingung erfüllt ist.

    Gruß.

  5. #15
    SEAL ist offline Benutzer
    Themenstarter
    Registriert seit
    05.09.2008
    Ort
    Bern
    Beiträge
    80
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    der Grund warum ich FCs nehme ist hier das ich nicht für jeden FB einen DB aufrufen möchte sondern alles in einem DB haben möchte, bei meiner Aufgabe habe ich zb. 12 motoren, für jeden Motor gibts ein UDT mit Status und steuerwerten, das UDT rufe ich 12 mal in einem DB. Die jeweilige IO Bits hänge ich dann einfach an meinen FC.

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

    Standard

    Zitat Zitat von SEAL Beitrag anzeigen
    der Grund warum ich FCs nehme ist hier das ich nicht für jeden FB einen DB aufrufen möchte sondern alles in einem DB haben möchte, bei meiner Aufgabe habe ich zb. 12 motoren, für jeden Motor gibts ein UDT mit Status und steuerwerten, das UDT rufe ich 12 mal in einem DB. Die jeweilige IO Bits hänge ich dann einfach an meinen FC.
    dafür gibt es Multiinstanzen...

    zu Deinem Code: #"Motor läuft" muss auch INOUT sein.

    Gruß.

  7. #17
    SEAL ist offline Benutzer
    Themenstarter
    Registriert seit
    05.09.2008
    Ort
    Bern
    Beiträge
    80
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Es macht genau das, was Du programmiert hast:

    bei jeder Flanke vom Taktmerker wird der Zähler eins hochgezählt, vorausgesetzt #Motor_Freigeben ist true.

    zurückgesetzt wird nur, wenn Zähler=100 und auch nur wenn die äussere Bedingung erfüllt ist.

    Gruß.
    Leider eben nicht der Zähler springt um 50 oder mehr (ist unregelmässigt) hoch und nicht um +1.

  8. #18
    SEAL ist offline Benutzer
    Themenstarter
    Registriert seit
    05.09.2008
    Ort
    Bern
    Beiträge
    80
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    dafür gibt es Multiinstanzen...

    zu Deinem Code: #"Motor läuft" muss auch INOUT sein.

    Gruß.
    Das war es nu funktioniert es , wie ich es brauche.

    Dank euch für die Hilfe

  9. #19
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.647
    Danke
    788
    Erhielt 654 Danke für 497 Beiträge

    Standard

    Zitat Zitat von SEAL Beitrag anzeigen
    Leider eben nicht der Zähler springt um 50 oder mehr (ist unregelmässigt) hoch und nicht um +1.
    Dann ist #HM nicht mit einem Bit verknüpft dass ganz für sich alleine steht. Grundsätzlich funktioniert dass so (ducatis einwurf beachten!).

    Und ja das wäre eine aufgabe für einen FB (als Multiinstanz also nicht mit eigenem DB), denn Flankenmerker an der Schnittstelle sind bäh.

    mfG René

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vollmi Beitrag anzeigen
    denn Flankenmerker an der Schnittstelle sind bäh.
    sind ja nicht nur die Flankenmerker... alles was in dem FC von einem zum nächsten Zyklus gerettet werden soll, muss über einen INOUT irgendwo extern gespeichert werden... da hätte ich keine Lust dazu... und manchmal vergisst man es eben auch, so wie hier im Falle vom #"Motor läuft"...

    also nochmal an den TE: höre auf uns und nehme einen FB mit Multiinstanz! Tu einfach Dir und Deinen Kollegen und uns und Frau Merkel den Gefallen.

    Gruß.
    Geändert von ducati (23.04.2014 um 12:44 Uhr)

Ähnliche Themen

  1. Step 7 Zähler will nicht hochzählen in SCL!
    Von Tommy843 im Forum Simatic
    Antworten: 41
    Letzter Beitrag: 13.08.2013, 09:20
  2. Step 7 Zähler in SCL
    Von spirit im Forum Simatic
    Antworten: 59
    Letzter Beitrag: 19.07.2013, 07:17
  3. SCL Zähler/Timerproblem
    Von bayernburn im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 14.06.2012, 08:18
  4. SCL Zähler...ewiges problem^^
    Von Chris_the_new im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.10.2009, 09:59
  5. Zähler in SCL
    Von Felse im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 09.03.2009, 16:49

Lesezeichen

Berechtigungen

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