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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 41

Thema: Kleines Programm für eine S7-200 CPU 212

  1. #21
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Tompson Beitrag anzeigen
    ...
    In der 1-Stundenfibel. die bei der SPS dabei war, steht drin, dass man eine Programmendanweisung braucht. Und in AWL heißt die "MEND"! Daher schreib ich die. Brauche ich die nicht?
    Hab' ich noch bei keinem meiner Programme gesehen und mein MicroWin kennt den Befehl auch nicht und meckert, wenn ich das eingebe.
    Kannst Du Dir also komplett sparen.


    Jetzt kommt das 1. Feintuning:
    Du wolltest die Ausgänge A0.0 bis A0.2 in den ersten 40 Sekunden und A0.3 bis A0.5 in den folgenden 15s!

  2. #22
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habs mir anders überlegt. Bringt ja nicht viel, wenn die alle gleichzeitig rumschalten.
    Daher Hab ich mir überlegt, sie jeweils mit einem Eingang zu koppeln. Klappt das so wie ich mir das vorstelle? Wenn ich den E0.0 auf EIN setze, dann schalten nur die beiden 1. Ausgänge?

    Code:
    //
    
    NETWORK 1
    LD     SM0.5                //Taktmerker für 1s
    LD     Z0                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z0, +55
    
    NETWORK 2
    LDW<=  Z0, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.1
    
    NETWORK 3
    LD     M10.1                //Ausgang 1 für 40s gesetzt
    U E0.0
    =      A0.0
    
    NETWORK 4
    LDN    M10.1                //Ausgang 1 für 15s gesetzt
    U E0.0
    =      A0.1
    
    NETWORK 5
    LD     SM0.5                //Taktmerker für 1s
    LD     Z1                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z1, +55
    
    NETWORK 6
    LDW<=  Z1, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.2
    
    NETWORK 7
    LD     M10.2                //Ausgang 1 für 40s gesetzt
    U E0.1
    =      A0.2
    
    NETWORK 8
    LDN    M10.2                //Ausgang 1 für 15s gesetzt
    U E0.1
    =      A0.3
    
    NETWORK 9
    LD     SM0.5                //Taktmerker für 1s
    LD     Z2                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z3, +55
    
    NETWORK 10
    LDW<=  Z3, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.3
    
    NETWORK 11
    LD     M10.3                //Ausgang 1 für 40s gesetzt
    U E0.2
    =      A0.4
    
    NETWORK 12
    LDN    M10.3                //Ausgang 1 für 15s gesetzt
    U E0.2
    =      A0.5

  3. #23
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Im Netzwerk 9/10 kommt irgendwie Dein Zähler durcheinander.

    Frage: Warum benutzt Du für die eigentlich gleiche Zeit-/Zählerfunktion getrennte Zähler, anstatt immer Z0 abzufragen?


    Außerdem hätte ich noch etwas Feintuning, bevor Du die Ausgänge erweiterst, können wir aber auch danach machen.

  4. #24
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Stimmt habe ich auch gesehen, das ich da Z3 verwendet habe. Das ich immer den gleichen Zähler nehmen kann, war mir nicht so klar. Jetzt aber schon.

    Wenn ich also das Programm einfach auf die CPU übertrage, läuft das. Sonst muss ich da nichts machen.

    Code:
    //
    //KOMMENTARE ZUM PROGRAMMTITEL
    //
    //Mit F1 rufen Sie die Hilfe und ein Beispielprogramm auf.
    //
    
    NETWORK 1
    LD     SM0.5                //Taktmerker für 1s
    LD     Z0                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z0, +55
    
    NETWORK 2
    LDW<=  Z0, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.1
    
    NETWORK 3
    LD     M10.1                //Ausgang 1 für 40s gesetzt
    U      E0.0
    =      A0.0
    
    NETWORK 4
    LDN    M10.1                //Ausgang 1 für 15s gesetzt
    U      E0.0
    =      A0.1
    
    NETWORK 5
    LD     SM0.5                //Taktmerker für 1s
    LD     Z0                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z0, +55
    
    NETWORK 6
    LDW<=  Z0, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.2
    
    NETWORK 7
    LD     M10.2                //Ausgang 1 für 40s gesetzt
    U      E0.1
    =      A0.2
    
    NETWORK 8
    LDN    M10.2                //Ausgang 1 für 15s gesetzt
    U      E0.1
    =      A0.3
    
    NETWORK 9
    LD     SM0.5                //Taktmerker für 1s
    LD     Z0                //Rücksetzen, wenn 55 erreicht ist
    ZV     Z0, +55
    
    NETWORK 10
    LDW<=  Z0, +40            //wenn der Zählerwert größer als 40s ist, wird der Merker gesetzt
    =      M10.3
    
    NETWORK 11
    LD     M10.3                //Ausgang 1 für 40s gesetzt
    U      E0.2
    =      A0.4
    
    NETWORK 12
    LDN    M10.3                //Ausgang 1 für 15s gesetzt
    U      E0.2
    =      A0.5

  5. #25
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Das mit den Zählern funktioniert so nicht.
    Versuche noch einmal nachzuvollziehen, was die SPS macht. Die arbeitet den Code "von oben nach unten" durch. Jetzt steht dort in NW1 + NW4, dass der Zähler hochgezählt werden soll wenn SM0.5 kommt. Was wird also passieren?
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  6. #26
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Jetzt läßt Du im Netzwerk 1, 5 und 9 dreimal den gleichen Zähler zählen und rücksetzen!
    Entweder Du nimmst in 5 und 9 separate Zähler, weil Du vlt. zu anderen Werten zählen willst, oder Du verzichtst auf die beiden Netzwerke, denn Z0 zählt doch schon im Netzwerk 1, oder?

  7. #27
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Dann kommen wir gleich mal noch zum nächsten Feintuning:

    Du hast Deine Vorgaben 40s und 15s. Die verwendest Du mehrfach im Programm, zum Teil auch nur indirekt als 55. Wenn Du diese Werte ändern willst, mußt Du dein gesamtes Programm durchsuchen!

    Also würde ich im ersten Netzwerk (vor Deinem jetzigen Programm einfügen) die 40 und 15 mit dem MOVW-Befehl z.B. an die Variablen VW0 und VW2 übertragen. MOVW brauchst Du, weil es sich beim Vorgabe- und Zählerwert jeweils um einen INTegerwert handelt.
    Dabei mußt Du festlegen, wann diese Übertragung stattfinden soll. Normalerweise reicht das im ersten Zyklus, den man durch den gesetzten Sondermerker SM0.1 ermitteln kann.

    Die beiden so angelegten Variablen (VW0 & 2) sollten dann im nächsten Netzwerk addiert werden (zb. ins VW4), um so den Vorgabewert für den Zähler zu ermitteln. Auch dies reicht im ersten Zyklus aus.

    Die Vorgaben bzw. Vergleiche führst Du dann nicht mit den konkreten Zahlen sondern mit den Variablen durch.
    Geändert von hucki (15.01.2012 um 13:07 Uhr)

  8. #28
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also kann ich die NW 5 und 6 und 9 10 einfach löschen und frage im NW 7 und 8 und 11 und 12 immer nur den Merker 10.1 ab, oder?

  9. #29
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Richtig kombiniert!
    Und warum?

  10. #30
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Weil die Merker alle die gleiche Funktion haben und durch die gleiche Bedingung gesetzt werden?

Ähnliche Themen

  1. Neu mit S7-200 CPU 212
    Von DANrulz81 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.03.2010, 06:12
  2. Zeitmessung mit S7-200 CPU 212
    Von HTL im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.02.2009, 13:41
  3. [verkaufe] s7 200 cpu 212
    Von veritas im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 17.01.2009, 19:54
  4. S7 200 (cpu 212) PC /PG Kabel
    Von RMR im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 14.09.2008, 19:35
  5. S7-200 CPU 212 SF-Anzeige
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 01.07.2004, 19:13

Lesezeichen

Berechtigungen

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