s5 Zähler bis 1000000

Geisti

Level-1
Beiträge
23
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
[FONT=&quot]Hallo habe gerade angefangen mir S5 anzutun. Will da ein altes Programm überarbeiten aber leider weiß ich nicht wie ich genau in S5 einen Zähler erstelle der bis zu 1.000.000 zählen kann.

Da meine SPS nur auf der Basis von 16Bit arbeitet brauche ich ja ein LOW und ein High Word.

Der Zähler soll die Funktion haben das ich ihm eine Sollzahl vorgebe (per LOW und High Word) und er mir die Istanzahl auch immer ausgibt (auch per LOW und High Word) und am Ende wenn Ist = Soll ist, dann soll er mir einen Ausgang setzen und sich auch löschen lassen bei bedarf.

Hat da jemand was fertiges?[/FONT]
 
Hallo Geisti,

welche CPU benutzt Du denn? Ich hab' meistens mit 948er oder 945er zu tun, die können auch 32 Bit-Ganzzahlen addieren.
Dann sieht so ein Zähler so aus:

Code:
U M 0.0    // Zählflanke
SPBN WEIT
L MD 2 // Zähler
L KF +1
+D
T MD 2
WEIT:

Grüße
Gebs
 
Wir haben früher bei der S5 immer Zähler kaskadiert.
Besser sind aber 2 MW. Das 1. MW zählt von 1-10000. Ist es bei 10000, wird das 2. MW um 1 erhöht, das 1. MW wieder auf 0 gesetzt. So hat man dann im 2. MW die 10-Tausender stehen. Für Vergleiche muß man dann immer 2 Vergleicher bauen.
 
genau so habe ich mir das auch gedacht aber ich komme einfach nicht darauf wie ich ihn programmieren soll, da sitzt mir voll einer auf der Leitung ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich nehme mal den Code von Gebs:

Code:
U M 0.0    // Zählflanke
SPBN WEIT

L MW 2 // Zähler 0-10000
L KF +1
+F
T MW 2
L KF +10000
>=F // Vergleich auf größer oder gleich, war das bei S5 so??? hab grad kein S5 zu Hand
SPBN WEIT

//hier wird der 10-tausender hochgezählt und MW 2 wieder auf Null gesetzt
L MW 4 //Zähler 10-tausender
L KF + 1
+F
T MW 4

L 0
T MW 2

WEIT:
 
Hi,

also man möge mich hauen falls es nicht stimmt (hab leider gerade keine S5 zum testen da und die Zeiten von S5 sind bei mir schon ne ganze Weile vorbei)

Code:
U M 0.0    // Zählflanke
SPBN WEIT
L MW 2 // Zähler
L KF +1
+F
T MW 2
WEIT:
L MW2
L KF +10000
==F
SPBN NEXT
L MW4
L KF +1
+F
T MW4
L 0
T MW2
NEXT:
L MW 4
L KF +100
==F
= M0.1 //Hat ne 1 wenn dein Zähler auf 1.000.000 gezählt hat

Gruß

PhilippL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mist jetzt ist mir aufgefallen das ich ja garkeine Festvorgabe von 1.000.000 haben möchte sondern es soll 1.000.000 nur möglich sein.
Demzufolge muß ich ja auch eine variable SOllwertvorgabe mit einflegen was die sache sehr kompliziert.
 
Hi,

ist doch auch kein Problem, dann brauchst du eben 2 Vergleicher.
Einmal MW2 vergleichen auf den einen Wert und dann eben das MW4 vergleichen auf den richtigen Multiplikator und schon ist dein Problem erledigt.

BTW: Wie wärs einfach mal damit du postest mal wo genau dein Problem liegt...

Gruß

PhilippL
 
Hallo,
Selbstverständlich hat Ralle recht..
aber ..kleine Änderungen...

U M 0.0
SPBN WEIT <--- Befehl in S7
besser wäre:
UN M 0.0
SPB =WEIT <--- Befehl in S5

L 0 <--- S7
besser wäre:
L KF0 <--- S5

Das Programm muss Du in irgendeinem FB schreiben.
 
Zitat von Gebs
Hallo Taddy,

den Fehler hat Ralle von mir übernommen.
Müsste heissen SPN=WEIT. Ist das gleiche wie SPBN in S7.

Grüße
Gebs

SPN in S5 = Sprung bei Ergebnis ungleig "0" wird nur ausgefurt wenn:
ANZ 1 = 0 UND ANZ 0 = 1 oder
ANZ 1 = 1 UND ANZ 0 = 0 oder
ANZ 1 = 1 UND ANZ 0 = 1
dieser instuction wurde nur ausgefurt nach eine vergeleichung oder nach eine rechenkundige intruction.

Und SPBN in S7 wird ausgefuhrt wenn das VKE 0 ist.
 
Zurück
Oben