# Maximalzählwert Zähler S7-300 + maximale Zähler CPU



## DennisBerger (22 Juni 2007)

Hallo
hab leider in der suche nichts gefunden.
ist der maximalzählwert eines Zählers nun 999 (siemens Hilfe) oder zählt er bis 32768?
 
was mache ich wenn ich einen höheren wert habe?


nochwas:
muss eine Werkzeugzählerlliste programmieren mit ca 500 versch. Zählern,
Zählwert soll bis 10.000 sein!  
bei 10.000 soll eine alarmmeldung kommen.


die CPU 314 kann nur 256 Zähler, 
muss ich also die 317er /512 Zähler) oder gar 318er (2048) nehmen?

Tipps?

danke
dennis


----------



## MatMer (22 Juni 2007)

Hallo,

vielleicht ist mein Vorschlag nur ein "Schmierlösung", aber du kannst doch jedes beliebige Merkerword, oder Doppelword, in deinem Fall dann eher in einem Datenbaustein, als Zähler auslegen. Die sind ja aufjedenfall in der Lage bis 10.000 zu zählen.
Oder liege ich da falsch?


----------



## vladi (22 Juni 2007)

*Zähler*

Hi,
man kann auch ohne Step7 Zähler zählen... .

```
UN Flanke_Zählerbit
spb nzl
L MD 100
L 1
+D
T MD 100
nzl:set
```
Da kannst Du bis Milliarden zählen...
Und man schreibt sich(sicher gibt es schon hier im Forum oder im web)
eine FC dafür, und kann die dann 1000e male verwenden.

Gruss: Vladi


----------



## Andi F (22 Juni 2007)

Weshalb soviel Geld für eine 317 oder 318 ausgeben! Nimm doch die SFB Counter.

SFB0 Vorwärtszählen
SFB1 Rückwärtszählen
SFB2 Vor-/Rückwärtszählen

und die Zählen bis 32767

Gruss

Andi F


----------



## borromeus (22 Juni 2007)

Mach einen Baustein der einen INT- Wert in einem Datenbaustein bei Flanke erhöht.
Ich nehme an Du musst nur vorwärts zählen....

so ähnlich wie:

U #Bedingung
FP #HM //Hilfsmerker
SPBN EXIT
L INT-Wert
L 1
+I
T INT-Wert
EXIT: NOP 0

Ich würde das in einem FC schreiben, der als Parameter die Wortadresse des Zählwertes im DB enthält, bzw. noch einen Resetknopf vorsehen.


----------



## borromeus (22 Juni 2007)

Freunde, gehen wir lieber heim, wir haben eh nichts mehr zu tun wie es scheint....
;-)


----------



## MatMer (22 Juni 2007)

wir können uns ja unterbieten
wer hat am wenigstens Code, wer hat die wenigstens Variablen, welches ist am schnellsten ....


----------



## DennisBerger (22 Juni 2007)

danke euch,
man merkt eben wer nur programmiert oder wie ich nur ab und zu programmiert 

ich hätte das ganze jetzt mit den Zählern gemacht, also Z1 , Z2, Z3 usw..

bei 500 Zählern ganz schön heftig.  

folgendes sollen wir realieren:
eine maschine hat ca. 500 werkzeuge (fräser, bohrer usw),
diese sollen nach je 10.000 bearbeitungen (vorderer endstellung der einheit) (jedes werkzeug wird separat gezählt) gewechselt werden.

bei 10.000 soll eine alarmeldung kommen also ein ausgang setzen (kein problem)

mir geht es nur um die beste umsetzung der 500 vorwärtszähler.


muss gestehen ich hab keine erfahrung mit sfb0, usw.
awl ist für mich (noch) ein Graus, wir machen hier alles mit FUP *grins*

die werte werden auf jeden fall in DB geladen, weil ich ein Op17 programmiert habe, als anzeige der stückzähler.
also auch 500 DB DWs


----------



## Ralle (22 Juni 2007)

MatMer schrieb:


> wir können uns ja unterbieten
> wer hat am wenigstens Code, wer hat die wenigstens Variablen, welches ist am schnellsten ....



Das scheint in letzter Zeit ohnehin das neue Motto zu sein, warten bis einer was postet und dann *optimieren*. Wir werden wohl doch einen Programmierwettbewerb machen !


----------



## borromeus (22 Juni 2007)

@Ralle:
die kleinste 11-stellige Primzahl ist übrigens
101

dezimal wie binär.... irgendwie schon witzig

ich glaube ich gehe jetzt heim....ggg


----------



## vladi (22 Juni 2007)

*Zähler*

Hi,


> die werte werden auf jeden fall in DB geladen, weil ich ein Op17 programmiert habe, als anzeige der stückzähler.
> also auch 500 DB DWs


 
ich würde eine Platzhaltervariable für den OP nehmen(Zählwert), und eine
Indexvariable(Werkzeug 1....500). Am OP steht:
Werkzeug Nr: (Variable): verwendet(Zählwert) mal

Und je nach Inhalt der Indexvariable(1,2,3,4..., gibt der Bediener an) zeige
ich den passenden Zählerwert aus dem DB(Pointeradressierung).
Dann brauche ich keine 500 OP DWs zu machen.
Alles klar?

Gruss: Vladi


----------



## Ralle (22 Juni 2007)

borromeus schrieb:


> @Ralle:
> die kleinste 11-stellige Primzahl ist übrigens
> 101
> 
> ...



Das stimmt, so hab ich das noch gar nicht gesehen !


----------



## DennisBerger (22 Juni 2007)

hi vladi,
klar schon, aber die bediener sollen die werkzeuge direkt sehen,
also ohne eingabe der wrz nummer.

hab das bild weise gemacht,
pro bild sehen sie 6 wzg und dazu den zählerwert.
sie geben zur wzg nummer die vorwahlzahl an bei der der alarm kommen soll.

hört sich umständlich an, ist aber besser für den bediener.


im prinzip sind es 8 bilder (varianten) mit 36 werkzeugen (6 einheiten mit 6 werkzeugen),
es arbeitet immer nur eine variante (wären also nur 5 bilder durchzublättern)
*
mir geht es eigentlich nur um die programmierung der Zähler,

es wird immer ein eingang pro wzg den zähler hochsetzen.
insgesamt sind es eben 500 werkzeuge, bei denen die bearbeitungsanzahl gezählt wird.

wenn ich das richtig verstanden habe, soll ich keine zähler setzen, sondern immer nur den wert in enem DW um eines erhöhen. richtig?
*

siehe anhang protool screenshot


----------



## MatMer (22 Juni 2007)

Ralle schrieb:


> Das scheint in letzter Zeit ohnehin das neue Motto zu sein, warten bis einer was postet und dann *optimieren*. Wir werden wohl doch einen Programmierwettbewerb machen !



ist das echt so schlimm geworden, lese derzeit nur Freitags, weil ich den Rest der Woche versuche mein Studium zu beenden....

Ich meinte das aufjedenfall nur als Scherz


----------



## vladi (22 Juni 2007)

*Bildweise*

Hi,
ja, ok, ginge auch, das man auf die Bilder Werkzeug blabla schreibt
mehrmals; wenn dann die Bildnummer als Pointer umgerechnet wird,
könnte man auch viele OP Variablen sparen. War nur eine Idee, ich
bin sehr faul, was Variablenanlegen und Verknüpfen betrifft. 
OK, Im Protool geht das relativ flott, mit Symbolen. Ist das im
WinCC flexible auch so?

Gruss: Vladi


----------



## DennisBerger (2 Juli 2007)

noch jemand ne idee oder nen kleines beispiel prog als download?

danke euch


----------



## Ralle (2 Juli 2007)

DennisBerger schrieb:


> noch jemand ne idee oder nen kleines beispiel prog als download?
> 
> danke euch



Nochmal eine Nachfrage, immer ein Werkzeug wird benutzt?

Also ich würde die 500 Zählwerte in einem DB ablegen.
Ja nachdem, welches Werkzeug genutzt wird (könnten auch mehrere sein, ginge auch), holst du diesen Wert aus dem Datenbaustein (in SCL mit Index, AWL mit indirekter Adressierung) und zählst ihn hoch, danach wieder zurückschreiben. Die Vorwahl steht in einem 2. DB (oder auch in dem selben) und du vergleichst den Zählwert des aktuellen Werkzeugs, mit dem Vorwahlwert. Bei Größer/Gleich --> Alarm und bei Quittieren, dann eine Null in den Zählwert des Werkzeugs.


----------

