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

Ergebnis 1 bis 4 von 4

Thema: Zähler Vorwärts und MW1

  1. #1
    Registriert seit
    28.04.2016
    Beiträge
    28
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich suche nach einer Erklärung über die Funktionsweise wie der Zähler auf das MW1 zählt.
    Der BCD 8421 wird auf Merker 2.0 – 2.3 geschrieben warum ausgerechnet dieser Merker Bereich und nicht Beispielsweise Merker 1.0 – 1.3?

    Zähler Vorwärts u MW1.png


    lg
    Frozen
    Zitieren Zitieren Gelöst: Zähler Vorwärts und MW1  

  2. "Weil bei S7 die Daten im Big Endian in den Speicher geschrieben werden.
    MW1 besteht aus MB1 und MB2, das High-Byte des Zählerstandes kommt zuerst - auf MB1, das Low-Byte kommt danach - auf MB2.

    Harald"


  3. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.308
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Weil bei S7 die Daten im Big Endian in den Speicher geschrieben werden.
    MW1 besteht aus MB1 und MB2, das High-Byte des Zählerstandes kommt zuerst - auf MB1, das Low-Byte kommt danach - auf MB2.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #3
    Frozen19 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.04.2016
    Beiträge
    28
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine Antwort Harald.

    Eine Frage habe ich noch zur Schnittstellen Parametrierung des MW1. Ist als Out Variabel und Datentyp WORD richtig? Die Merker 2.0 – 2.4 als STAT Variabel Datentyp BOOL? (der Zähler soll bis 16 Zählen und dann, wenn Merker 2.4 kommt Reseten)

    Vielen Dank

    Frozen

  5. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.308
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Frozen19 Beitrag anzeigen
    (der Zähler soll bis 16 Zählen und dann, wenn Merker 2.4 kommt Reseten)
    Das ist jetzt nicht ganz eindeutig formuliert. Willst Du wirklich daß vor dem Reset einen Zyklus lang der Zählerstand Z1 = 16 anstehen bleibt? Wenn man auf der rechten Seite des Zählers eine Variable anschließt und diese auf der linken Seite des Zählers auswertet, dann wirkt die Auswertung erst im nächsten Zyklus (Abarbeitungsreihenfolge! siehe mal die AWL-Ansicht).

    Üblicherweise prüft man auf Zählerstand > max zulässiger Zählerstand und resettet sofort, damit das Programm nach dem Zähler-Netzwerk den unzulässigen bzw. zu hohen Zählerstand gar nicht mitbekommt.
    Weiters würde ich nicht direkt das Bit M2.4 zum resetten nehmen (*), sondern einen Vergleicher, das ist universeller und besser lesbar. Da wirkt sich dann noch eine unangenehme Eigenart der Zähler aus, und zwar sind die Ausgänge DUAL und DEZ als WORD deklariert, >/< Vergleichen kann man aber keine WORDs und muß deshalb den Zählerstand erst noch auf ein INT umkopieren (MOVE). (Diese Typprüfung hat Siemens neuerdings mit den letzten Hotfixes für Step7 classic heimlich abgeschafft).

    (*) das funktioniert nur bei 0..15 so einfach und man muß genau wissen wie ein Word im Speicher abgelegt wird. Das neue TIA wird solche Adress-überschneidenden absoluten Zugriffe auch anmeckern. Und wenn man den Zählerstand auf eine OUT-Variable legt, dann kommt man nicht mehr so einfach an das Bit .4 heran.

    Noch ein Tip: lege besser keine Words auf ungerade Adressen, da holt man sich schnell unbeabsichtigte Adress-Überschneidungen, z.B. MW1 + MW2 überschneiden sich im MB2. MW0 + MW2 + MW4 dagegen sind OK.

    Code:
        +--------+
        |  MOVE  |
    ...-|EN      |
        |     OUT|-#temp_INT    +-------+
     Z1-|IN      |              |   &   |              Z1
        |     ENO|--------------|       |          +--------+
        +--------+              |       |          | Z_VORW |
                                |       |     E0.1-|ZV      |
                   +--------+   |       |          |        |
                   | CMP >I |   |       |      ...-|S   DUAL|-MW2
                   |        |   |       |          |        |
         #temp_INT-|IN1     |   |       |      ...-|ZW   DEZ|-...
                   |        |   |       |          |        |
                16-|IN2     |---|       |----------|R      Q|-
                   +--------+   +-------+          +--------+
    Zitat Zitat von Frozen19 Beitrag anzeigen
    Eine Frage habe ich noch zur Schnittstellen Parametrierung des MW1. Ist als Out Variabel und Datentyp WORD richtig? Die Merker 2.0 – 2.4 als STAT Variabel Datentyp BOOL?
    Das klingt, als ob Du den Zähler in einem FB verwenden willst und den Zählerstand zurückgeben willst. Da würde ich eine OUT-Variable als INT deklarieren und nach dem Zähler-Netzwerk den Zählerstand mit MOVE auf die OUT-Variable geben. Die Merker/Bits 2.0 - 2.4 brauchst Du nicht.

    Vorsicht: falls Du vorhast, den FB mehrfach aufzurufen, dann dürfen darin keine absoluten Adressen wie Z1, MW1 und E0.1 verwendet werden. Diese Operanden müssen auf die Bausteinschnittstelle oder STAT gelegt werden, damit sich die FB-Aufrufe nicht gegenseitig beeinflussen/stören.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Frozen19 (14.05.2016)

Ähnliche Themen

  1. TIA Zähler vorwärts/rückwärts
    Von Siggi89 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 25.03.2016, 20:14
  2. Zähler vorwärts unendlich
    Von gita07 im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 26.05.2011, 23:35
  3. Antworten: 16
    Letzter Beitrag: 26.10.2010, 08:57
  4. Antworten: 4
    Letzter Beitrag: 23.02.2009, 09:04
  5. Vorwärts / Rückwärts Verweise @S7
    Von Lockenfrosch im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.03.2007, 11:22

Lesezeichen

Berechtigungen

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