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

Ergebnis 1 bis 4 von 4

Thema: Zähler beim überlauf eines anderen Zählers setzen

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ihr Programmierer!

    Ich sitze grad an einem Problem mit der S5-115U. Bisher wird da unter anderem eine Menge gezählt und im DB gespeichert. Dieser Wert wird am PC angezeigt. Keine Ahnung wie der jetzige Zähler funktioniert, aber er geht nur bis 65535 und dann läuft er über und beginnt bei 0.
    Meine Aufgabe ist es einen eigenen Zähler dazu zu basteln, der bei jedem Überlauf inkrementiert wird. Dann ist es mir auch möglich am PC die beiden Zählerwerte zu einer Gesamtmenge zusammenzufassen.

    Leider bin ich völlig Ahnungslos wie ich das machen könnte...

    Bitte helft mir!

    gruß mclear
    Zitieren Zitieren Gelöst: Zähler beim überlauf eines anderen Zählers setzen  

  2. "Hallo mclear,

    ich will mal erklären wie ich dieses Problem lösen würde.

    Bei deinem Zähler handelt es sich nicht um einen normalen S5-Zähler
    der nur bis 999 zählen würde, sondern um ein Datenwort welches zum zählen gebraucht wird.
    Ein Datenwort springt von 65535 auf 0 wenn 1 addiert wird.

    Den bestehenden Zähler würde ich immer nur bis 1000 zählen lassen.
    Dann würde ich einen zweiten Zähler hinzufügen der die 1000er zählt.
    Dw 0 zählt von 0 bis 999 und springt bei erreichen von 1000 zurück auf 0.
    Der zweite Zähler DW 1 muss dann um 1 erhöht werden und zählt
    somit die "Tausender" deiner Stückzahl.
    Dadurch wird es nachher einfacher die Gesamt-Stückzahl auf dem PC darzustellen.
    Gesamtstückzahl = (DW 1 X 1000) + DW 0

    Beispiel wenn der Zähler um "1" inkrementiert wird.
    Code:
    	:L DW 0		
    	:LKF +1
    	:+F
    	:T DW 0
    	:
    	:LKF +1000
    	&#58;<F
    	&#58;SPB =M00
    	&#58;
    	&#58;LKF +0
    	&#58;T DW 0
    	&#58;
    	&#58;L DW 1
    	&#58;LKF +1
    	&#58;+F
    	&#58;T DW 1
    	&#58;
    M00&#58;NOP 0
    	&#58;
    	&#58;***
    Beispiel wenn der Zähler um "X" inkrementiert wird.
    Code:
    	&#58;L DW 0
    	&#58;L MW 0	//In MW 0 steht der Wert der hinzu addiert wird.
    	&#58;+F
    	&#58;T DW 0
    	
    	&#58;LKF +1000
    	&#58;<F
    	&#58;SPB =M00
    	&#58;
    	&#58;L DW 0
    	&#58;LKF +1000
    	&#58;-F
    	&#58;T DW 0
    	&#58;
    	&#58;L DW 1
    	&#58;LKF +1
    	&#58;+F
    	&#58;T DW 1
    	&#58;
    M00&#58;NOP 0
    	&#58;
    	&#58;***
    In den Beispielen sind DW 0 der bestehende Zähler, den du schon im Program hast
    und DW 1 wäre der neue Zähler der die "1000er" zählt.

    Auf diese Art kann dein Zähler bis (65535 X 1000)+999 = 65.535.999 !! zählen bis er wieder bei "0" ankommt.
    Und das düfte ja ein Weilchen dauern ...

    Gruss
    Guido"


  3. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Code:
    L     Z      1
    L     C#0
    ==I   
    U     E      1.0
    ZV    Z      2
    Z1 ==> Dein Zähler
    E1.0 ==> Bedingung zum vorwärtszählen deines Zählers
    Z2 ==> Zweiter Zähler
    Zitieren Zitieren Sp könnts gehe...  

  4. #3
    Registriert seit
    21.07.2003
    Ort
    Bangkok / Thailand
    Beiträge
    98
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo mclear,

    ich will mal erklären wie ich dieses Problem lösen würde.

    Bei deinem Zähler handelt es sich nicht um einen normalen S5-Zähler
    der nur bis 999 zählen würde, sondern um ein Datenwort welches zum zählen gebraucht wird.
    Ein Datenwort springt von 65535 auf 0 wenn 1 addiert wird.

    Den bestehenden Zähler würde ich immer nur bis 1000 zählen lassen.
    Dann würde ich einen zweiten Zähler hinzufügen der die 1000er zählt.
    Dw 0 zählt von 0 bis 999 und springt bei erreichen von 1000 zurück auf 0.
    Der zweite Zähler DW 1 muss dann um 1 erhöht werden und zählt
    somit die "Tausender" deiner Stückzahl.
    Dadurch wird es nachher einfacher die Gesamt-Stückzahl auf dem PC darzustellen.
    Gesamtstückzahl = (DW 1 X 1000) + DW 0

    Beispiel wenn der Zähler um "1" inkrementiert wird.
    Code:
    	&#58;L DW 0		
    	&#58;LKF +1
    	&#58;+F
    	&#58;T DW 0
    	&#58;
    	&#58;LKF +1000
    	&#58;<F
    	&#58;SPB =M00
    	&#58;
    	&#58;LKF +0
    	&#58;T DW 0
    	&#58;
    	&#58;L DW 1
    	&#58;LKF +1
    	&#58;+F
    	&#58;T DW 1
    	&#58;
    M00&#58;NOP 0
    	&#58;
    	&#58;***
    Beispiel wenn der Zähler um "X" inkrementiert wird.
    Code:
    	&#58;L DW 0
    	&#58;L MW 0	//In MW 0 steht der Wert der hinzu addiert wird.
    	&#58;+F
    	&#58;T DW 0
    	
    	&#58;LKF +1000
    	&#58;<F
    	&#58;SPB =M00
    	&#58;
    	&#58;L DW 0
    	&#58;LKF +1000
    	&#58;-F
    	&#58;T DW 0
    	&#58;
    	&#58;L DW 1
    	&#58;LKF +1
    	&#58;+F
    	&#58;T DW 1
    	&#58;
    M00&#58;NOP 0
    	&#58;
    	&#58;***
    In den Beispielen sind DW 0 der bestehende Zähler, den du schon im Program hast
    und DW 1 wäre der neue Zähler der die "1000er" zählt.

    Auf diese Art kann dein Zähler bis (65535 X 1000)+999 = 65.535.999 !! zählen bis er wieder bei "0" ankommt.
    Und das düfte ja ein Weilchen dauern ...

    Gruss
    Guido

  5. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    UN Z1
    U M1.0
    ZV Z2

    Wenn Zähler ein 0 ist und m1.0 kommt (sollte die Zählbeding deines ersten Zählers sein!) dann soll er um 1 weiterzählen. später musst du noch 1 abziehen da er auch schon nach dem ersten durchlauf eine 1 enthalten wird!
    Zitieren Zitieren Noch einfacher...  

Ähnliche Themen

  1. Zähler Überlauf überwachen
    Von Poldi007 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 28.04.2010, 10:55
  2. Antworten: 14
    Letzter Beitrag: 06.08.2008, 21:48
  3. Zähler mit Überlauf
    Von MSB im Forum Programmierstrategien
    Antworten: 18
    Letzter Beitrag: 03.09.2007, 16:45
  4. Abfragen eines Zählers mit AGLink (S7 224)
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 30.12.2004, 15:21
  5. Antworten: 6
    Letzter Beitrag: 11.10.2004, 01:55

Lesezeichen

Berechtigungen

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