# Stückzähler mit Siemens LOGO!



## Elazul (11 Januar 2011)

Hallo zusammen,

ich versuche schon seit ein paar tage einen stückzähler mit einer siemens logo steuerung zu programmieren und hab schon verschiedene lösungen probiert, krieg das aber nicht wirklich so hin wie ich will.

Kann mir jemand auf die sprünge helfen wie ich ein stückzähler programmiern kann der praktisch sofort reagiert?

ich stell mir das so vor:
dosen gehen durch die lichtschranke und alle 2 sekunden gibt es auf dem logo display einen refresh der die aktuelle stückzahl pro minute anzeigt aber nicht mit 10 sekunden messungen und dann auf einer minute hochgerechnet, es soll auch eine möglichkeit geben den abstand zwischen den dosen in zeit zu messen und das irgendwie hochrechnen eventuell auch mit einem durchschnittwert?

Leider bin ich hier am Anschlag fals mir jemand weiterhelfen kann wär ich sehr dankbar.


----------



## ebt'ler (11 Januar 2011)

Was willst du denn genau machen?
Am sinnvollsten ist sicher den Druchlauf der letzen Minute anzeigen zu lassen. Dazu nimmst du einnen Schellwertschalter (ja der heißt wirklich so) und legst "Fre" auf einen schnellen Eingang (fals vorhanden I3 bis I6) dann sind Messungen bis zu 2kHz möglich. 
Den Zeitintervall stellst du auf eine Minute. 
Oder meinetwegen auf 10Sekunden und multiplizierst es mit 6 auf.  Fertig und gut.

Eine Zeitmessung und Hochrechnung ist meiner Meinung nach zu ungenau, da die Zykluszeit mit rein spielt. 

Wenn dir die Lösung nicht gefällt brauche ich mehr Details wie du dir die Realisiuerung vorstellst.


----------



## Elazul (11 Januar 2011)

vielen dank für die antwort.
also wir haben ein gerät der dosen etikettiert zwischen 40 - 150 in der minute und stehen bleibt wenn der stauband voll ist, da wollen wir die stückzahl ermitteln +- 2 dosen.
jedes mal wenn eine dose die lichtschranke durchläuft wird ein impuls ausgelöst und der impuls will ich zum ermitteln der stückzahl pro minute verwenden.

das mit dem impulse zählen in 10 sekunden und auf einer minute hochrechnen hab ich schon probiert und es funktioniert auch aber es ist sehr ungenau.


----------



## lorenz2512 (11 Januar 2011)

hallo,
das problem ist 1 dose mehr oder weniger sind gleich 6 dosen mehr oder weniger, selbst bei kostant 40 dosen hättest  du eine anzeige von 36 bis 46 dosen.


----------



## Elazul (11 Januar 2011)

Genau das problem meinte ich damit, deshalb hab ich gehofft das man die stückzahl auch irgendwie mit der zeit zwischen 2 dosen ermitteln könnte, allerdings ist hier wie ebtler schon gesagt hat das problem mit der zykluszeit was warscheinlich auch daneben gehen würde. Gibt es denn beim logo so was ähnliches wie beim step 7 der OB35 für zeitkritische operationen?


----------



## PN/DP (12 Januar 2011)

Elazul schrieb:


> Gibt es denn beim logo so was ähnliches wie beim step 7 der OB35 für zeitkritische operationen?


Nein gibt es nicht.
Dein Problem ist nicht zeitkritisch, sondern es ist einfach eine blöde Frequenz 40 - 150 /Minute. Zum Frequenzmessen in kurzen Meßintervallen zu niedrig und zum Zeitmessen hat die Logo nicht die nötige Auflösung, ist zu ungenau und wahrscheinlich schwankt die Logo-Zykluszeit auch noch.

Für eine weniger schwankende Anzeige fällt mir da noch "gleitender Mittelwert" oder "Schachtelung mehrerer Meßintervalle ineinander" ein. Doch ich war noch nicht so verrückt, sowas mit einer Logo zu versuchen. Die hat dafür sehr wahrscheinlich zu wenig Programmblöcke.

Eventuell kann man für die Anzeige-Glättung auch den PI-Regler missbrauchen, falls das mal jemand durchrechnen will.

Harald


----------



## bimbo (13 Januar 2011)

*Oder so*

Bei der EASY800 (tja) kann man die Zykluszeit festlegen.

Für die grundsätzliche Vorgensweise hab ich auch noch was:

Den Abstand *mehrer *Dosen und dann rechnen!


----------



## Elazul (13 Januar 2011)

ich hatte noch die idee einen gleichmässigen impuls zu generieren und die impulse zwischen 2 dosen zu berechnen um die stückzahl pro minute zu ermitteln.
allerdings weiss ich nicht wie ich da vorgehen muss, hat jemand eine idee? ist das überhaupt realisierbar?


----------



## bimbo (13 Januar 2011)

Das machst Du ja, wenn Du den (Zeit-)Abstand zwischen zwei Dosen misst. Der gleichmäßige Puls ist der interne Zeittakt.


Aber nochmals: Wenn Du nicht die Zeit zwischen zwei sondern z.B. vier Dosen ermittelst und dann auf Stk./min umrechnest?


----------



## Elazul (13 Januar 2011)

ok ich werds gleich probieren aber da musst du mir unter die arme greifen 
was soll ich für bausteine benutzen und wie sieht die berechnung genau aus?


----------



## bimbo (14 Januar 2011)

Easy liegt mir besser.      Ich würde so vorgehen: 
1. Dose startet eine Zeit und aktiviert einen Zähler auf die Lichtschranke.

2. Wenn der Zählwert erreicht ist, wird die Zeit übernommen und mit  Punkt 1 der nächste Meßvorgang eingeleitet. 

3. Berechnen. Dazu erst mit dem Taschenrechner Proberechnungen durchführen und darauf achten, die Einheiten und Kommastellen so zu wählen, dass der Wertebereich der Steuerung möglichst ausgenutzt wird.

Die rechnerei mit der Logo halte ich für schwierig. Es fehlt die Möglichkeit einen Wert zu einem bestimmten Zeitpunkt irgendwohin zu speichern (zumindest hab ich es nicht gefunden) und Divisionen mit 15 Bit sind auch kritisch (wie schon erwähnt hast Du eine "unglückliche" Zählfrequenz).

So etwas würde ich mit einer EASY800 (persönliche Meinung) machen.


----------



## ebt'ler (14 Januar 2011)

Solche Sachen sind mit der Logo wirklich etwas umständlich, aber meiner Meinung nach ist sie dazur auch nicht gedacht. 

Speichern kann man z.B. über "Analoge Arithmetik". Diese besitzt die Einstellungsmöglichkeit "En=0, ist der Ausgang -> 0 || letzter Wert". 
Leider kann dort als Parameter kein Zeitwert angegeben werden, somit auch keine Zeit gespeichert werden. 
Dadurch wird ein weiterer Umweg über Zähler nötig, also müsste man mit möglichst kleinen Impulsen die den Zähler hochzählen einen Timer nachbilden. 
Eine weite Möglichkeit wäre es eine Analogrampe als Timerersatz zuverwenden, was sicherlich auch genauer als das zählen von Impulsen ist.
Egla wie die Zeit erfasst wird, bei einen kommenden Signal (über Flanke) müsste man also den Zeitwert/Zählwert/Rampenwert speichern und gleich danach den Zäher/Rampe zurücksetzen. Dazu könnte man den Rücksetzimpuls über einen Merker (hat immer den Wert des letzten Zyklus) verzögern oder eventuell die Bausteile so anordnen das der Impuls zuerst bei einer niedriegeren Bausteinnummer ankommt (müsste man testen, ich kann jetzt nicht garantieren wie die Hardware reagiert).

Wenn mehrere Werte gespeichert werden sollen müsste man über ein Schieberegister die Zuweisung organisieren.

Natürlich bringen die vielen Umwege auch Ungenauigkeiten mit sich (Analogbausteine erhöhen die Zykluszeit stark). 
Durch probieren könnte man das vielleicht hinbiegen, aber so aus der Ferne sieht das eher schlecht aus. :-(


----------



## Elazul (14 Januar 2011)

jo das mit den impulsen um einen zähler zu simulieren hatte ich schon probiert bevor ich den thread gestartet hab und es klappt auch aber eben wie du sagst die zykluszeit schiesst richtig hoch, zumindest sah es in der simulation so aus.

ich werde das aber nochmal probieren und hier dann nochmals bescheid geben wie es geklappt hat.

Das hab ich auf der Siemens Seite gefunden:

Die digitalen Eingänge der LOGO! werden vor jedem Zyklus nur einmal abgefragt. Um ein Impuls-Signal am digitalen Eingang sicher zu erkennen, muss es mindestens einen Zyklus lang anstehen. 

Zykluszeiten des LOGO!24 0BA3 - Basisgeräts: von ca. 7ms bis 57ms
Zykluszeiten des LOGO!24 0BA4 - Basisgeräts: von ca.0,6ms bis 8,0ms
 In Verbindung mit einem Schwellwertschalter für Frequenzen können die digitalen Eingänge I5 und I6 der LOGO! auch während eines Zyklus abgefragt werden.




das war auch die erste stunde "grundlagen automationstechnik" minimale reaktionszeit = zykluszeit + eingangsverzögerung maximale reaktionszeit = 2x zykluszeit eingangsverzögerung


----------



## ebt'ler (14 Januar 2011)

Du kannst die Zykluszeit ermitteln in dem du einen Merker über sein eigenen aber negierten Ausgang ansteuerst und dieses Signal mit einen Schwellwertschalter (Feq) der auf zwei Sekunden parametriert ist misst. Die Zykluszeit ist dann das Reziproke des angezeigeten Wertes in Sekunden.

Vielleicht kannst du diesen Wert dann per hand in deine Betrachtung reinrechnen. Man kann Ihn meines Wissens nach nicht direkt intern weiter verarbetien, nur das Schalten bei einen Schwellwert wäre denkbar.


----------



## Elazul (14 Januar 2011)

Ahh ja stimmt das ist echt eine gute idee, werde ich am montag gleich probieren.


----------

