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

Results 1 to 4 of 4

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

  1. #1
    Anonymous Gast

    Default


    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
    Reply With Quote Reply With Quote Answered: 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
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default

    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
    Reply With Quote Reply With Quote Sp könnts gehe...  

  4. #3
    Join Date
    21.07.2003
    Location
    Bangkok / Thailand
    Posts
    104
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Default

    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
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default


    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!
    Reply With Quote Reply With Quote Noch einfacher...  

Similar Threads

  1. Bildung eines Zählers aus Analogsignal
    By shrek23 in forum CODESYS und IEC61131
    Replies: 1
    Last Post: 12.10.2014, 13:21
  2. Replies: 11
    Last Post: 14.01.2013, 17:47
  3. Replies: 11
    Last Post: 24.04.2012, 12:57
  4. Zähler Überlauf überwachen
    By Poldi007 in forum Simatic
    Replies: 11
    Last Post: 28.04.2010, 10:55
  5. Zähler mit Überlauf
    By MSB in forum Programmierstrategien
    Replies: 18
    Last Post: 03.09.2007, 16:45

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •