# Kleine Steuerung mit Siemens Logo realisieren



## Priskau (27 April 2013)

Hallo Leute.

Erstamal die Frage: Bin ich mit dem Thread in der richtigen Untergruppe?
(Falls ich hier falsch bin, bitte verschiebt mich)

Nun zu meinem Problem. Ich habe eine Siemens Logo 0AB6 und möchte damit eine kleine Regelung umsetzten.

Funktionsbeschreibung: Ich habe einen Tisch, welcher in der Höhe verfahrbar ist durch einen kleinen 24VDC Motor.
Der Motor wird über die Logo hoch und runter gefahren. 2 Initiatoren dienen als Endlagenschalter, welche aber beim normalen Betrieb nicht von bedeutung sind.
Über dem Tisch ist ein Sensor ( momentan einer mit analogausgang 0-10V, welcher mit einem Laser die aktuelle Entfernung zum Tisch misst).
Auf den Tisch werden Stapel mit Papier abgelegt ( von einem Bediener).
Die Aufgabe der Regelung ist, dass das Nievau des Tisches mit und ohne Papier im gleich ist.
Als Beispiel: Der Abstand von Tischplatte zum Sensor beträgt 300mm---> nun legt der Bediener einen Stapel von 100mm auf den Tisch---> der Tisch soll nun um 100mm herunterfahren um das Niveau wieder auszugleichen---> der Abstand von Papierstapel zu Sensor beträgt nun auch 300mm---> Der Bediener nimmt nun im Verlauf seiner anderen Tätigkeiten immer wieder Papier vom Stapel oder legt wieder Papier auf den Stapel---> die Regelung sollte den Abstand von Papierstapeloberkante zum Sensor immer auf 300mm regeln.

Ist das mit einer logo und den paar Analogbausteinen, die einem in der Logosoftware zur Verfügung stehen überhaupt machbar?

Nach einem Tag tüfteln bin ich noch zu keiner Lösung gekommen. Bei mir pendelt der Tisch momentan einfach nur zwischen 0V und 10V hoch und runter ohne unterbrechung.^^ Verwendet habe ich einen Schwellwertschalter. 

Kann mir jemand helfen? 

Danke und Grüße


----------



## hucki (27 April 2013)

Ich sag jetzt mal: ja, das ist machbar.

Gibt ja noch mehr als den Schwellwertschalter. Poste mal Deine Ansätze, dann wird Dir sicher weiter geholfen.


----------



## Priskau (28 April 2013)

Hallo.

Ich habe die Logo-Software nur auf dem Firmenlaptop. Hier kann ich nichts posten.

Ich bin für jede Idee offen. Ein PI-Regler steht einem in der Logo-Software ja zur verfügung. Kann man den evtl. verwenden?

Im Gunde brauche ich einen Baustein, der ein analoges Eingangssignal bekommt; in den Parametern müsste mein Wert 300mm ( z.B. 5V/5000) als Sollwert stehen;
er müsste 2 Ausgänge haben für das auf-und abfahren, jenachdem ob der Istwert über oder unter 300mm ist.
Da es so einen Baustein nicht gibt will ich ihn selbst machen, aber wie?

Hilfe!


----------



## hucki (28 April 2013)

Priskau schrieb:


> Über dem Tisch ist ein Sensor ( momentan einer mit analogausgang 0-10V, welcher mit einem Laser die aktuelle Entfernung zum Tisch misst).


Welche Abstände entsprechen denn 0 bzw. 10V?


----------



## hucki (28 April 2013)

Priskau schrieb:


> er müsste 2 Ausgänge haben für das auf-und abfahren, jenachdem ob der Istwert über oder unter 300mm ist.
> Da es so einen Baustein nicht gibt will ich ihn selbst machen, aber wie?


Warum muss alles in einem Baustein sein? Das was Du vor hast, ist ein Programm. 
Deshalb mal "Meine Gedankenspiele zum Sonntag":

Für den Anfang funktioniert es (zumindest in der Simulation) auch mit den Schwellwertschaltern ->
Den Lasersensor skalieren, in zwei Schwellwertschaltern vergleichen, die beiden Ergebnisse sicherheitshalber gegeneinander verriegeln, in die Verriegelung gleich noch die Endschalter einbinden und schon kommt in etwa sowas raus:





Allerdings find' ich es so ziemlich blöd, das Grundniveau mal zu verändern, da man dies jetzt an 3 Stellen machen muß. Besser ist es m.M.n, wenn das nur an einer Stelle geschieht, z.B. so (gibt auch andere, vlt. einfachere Möglichkeiten, aber Du willst ja was lernen ):





Dann hab' ich mir überlegt, ob nicht im Annäherungsbereich 'ne einfache Taktung ganz nett wäre, um langsamer zu werden:





Wenn man da schon mal ist, kann man die Taktung ja auch gleich komplett von der Annäherung abhängig machen:





Aber ich mache ungern Sachen doppelt, denn dann muss man bei Veränderungen auch alles doppelt machen. Deshalb nur noch einmal Pulsebreite und -pause berechnen, dann ist die Berechnung garantiert immer gleich:





Wie allerdings die echte Logo auf diese Gedanken (und die teilweise negativen Werte) reagiert - keine Ahnung.
Zum Schluß bleibt ja noch der PI-Regler, aber damit habe ich noch nicht 'rum experimentiert. Vlt. wird's mal Zeit. 


Alles zum Rumexperimentieren im angehängten Archiv.
Achja, bei allen Varianten muss die Skalierung in B001 noch eingestellt werden (hatte noch keine Antwort auf meinen vorigen Post), um aus den 0-10V den realen Abstand zu machen!
Viel Spaß!


----------



## Priskau (28 April 2013)

Hallo.

Danke erstmal für die kreativen Ideen.
Als ich heute  morgen noch im Bett lag, kam mir auch die simple, aber vermutlich  effektive Idee einfach 2 Schwellwertschalter zu benutzen. Und jetzt sehe  ich eine ähnliche Idee bei dir im ersten Bild.
Schon witzig.^^

Die  0V-10V entsprechen nicht wie oben von mir geschrieben 300mm, sondern  400mm. Die maximale Stapelhöhe, die der Bediener auf den Tisch legt ist  200mm. Der oberste Punkt sollte quasi immer beim analogwert 5V sein, das  ist die Grundstellung. 

Beispiel. Der Tisch ist in  Grundstellung, der analogwert betraägt 5V. Ein Bediener legt einen  Stapel ab, der analogwert beträgt und 0V. Der eine Schwellwertschalter  spricht nun an und gibt solage "1" raus bis der Analogwert wieder 5V  beträgt. 
Nimmt nun ein bediener den 200mm Stapel wieder vom Tisch,  beträgt der Analogwert 10V und der zweite Schwellwertschalter spricht an  und gibt "1" aus bis wieder 5V anliegen.

In der Realität nehme   die Bediener natürlich keine 200mm Stapel auf einmal weg oder legen sie  drauf, sonder immer unterschiedliche kleine Stapel.

Die Schwellwertschalter werde ích nun auf 0-500 (0-5V) und den zweiten auf 500-1000 ( 5-10V) parametrieren. 

Die Idee mit dem langsam annähern ist super, aber mit dem Tischantrieb nicht realisierbar. 
Es ist ein 24V DC Motor, welcher einen extrem hohen Einschaltstrom hat. Eine Taktung ist da Gift für die trägen Feinsicherugen.
Der Motor hat auch ein integriertes Getriebe, sodass der Tisch sowieso sehr langsam verfährt.

Ich  muss sogar eine Ausschaltverzögerung einbauen, damit gewährleistet ist  der der Motor immer mindestens 0,5 Sek. angesteuert wird.  

Wenn die Regelung nämlich "flackert", würden die Sicherungen sofort durchbrennen.

Ich  befürchte sowieso, das der Bereich um die 5V kritisch ist, da das  Signal vom Laser um kleinste Einheiten schwankt, sodas der Tisch nie in  der Grundstellung zur Ruhe kommt, sondern immer minimal hoch bzw.  runterfährt.

Das Problem könnte ich doch einfach lösen indem ich  eine kleine Ruhezone mit reinmache. Das würde heißen, dass das  Runterfahren bei 0-490 und hochfahren bei 510-1000 wäre.  Dann würden  Sensorschwankungen beim 500er Bereich nicht zu ständigem Ansteuern  hoch/runter des Tisches führen.

Das werde ich am Montag mal probieren.

Ich finde euer Forum klasse und werde mich weiterhin hier mit Preoblem und Problemlösungen beteiligen.:razz:

Grüße


----------



## hucki (28 April 2013)

Priskau schrieb:


> Der oberste Punkt sollte quasi immer beim analogwert 5V sein, das  ist die Grundstellung.
> 
> Beispiel. Der Tisch ist in  Grundstellung, der analogwert betraägt 5V. Ein Bediener legt einen  Stapel ab, der analogwert beträgt und 0V. Der eine Schwellwertschalter  spricht nun an und gibt solage "1" raus bis der Analogwert wieder 5V  beträgt.
> Nimmt nun ein bediener den 200mm Stapel wieder vom Tisch,  beträgt der Analogwert 10V und der zweite Schwellwertschalter spricht an  und gibt "1" aus bis wieder 5V anliegen.
> ...


Ich würde nicht anfangen die Abstände in Volt zu rechnen, auch wenn das auf dem ersten Blick einfacher realisierbar ist. Nach Deinen Angaben würde ich die 2. Variante bevorzugen. So kann man am Display das Grundniveau als Abstand zum Sensor einblenden und vor allem für den Bediener anpassbar machen. 





Priskau schrieb:


> Die Idee mit dem langsam annähern ist super, aber mit dem Tischantrieb nicht realisierbar.
> Es ist ein 24V DC Motor, welcher einen extrem hohen Einschaltstrom hat. Eine Taktung ist da Gift für die trägen Feinsicherugen.
> Der Motor hat auch ein integriertes Getriebe, sodass der Tisch sowieso sehr langsam verfährt.
> 
> ...


Wenn dem so ist, ist die Taktung wirklich überflüssig. Dann brauchst Du aber auch in keinster Weise über den PI-Regler nachdenken. 





Priskau schrieb:


> Ich  befürchte sowieso, das der Bereich um die 5V kritisch ist, da das  Signal vom Laser um kleinste Einheiten schwankt, sodas der Tisch nie in  der Grundstellung zur Ruhe kommt, sondern immer minimal hoch bzw.  runterfährt.
> 
> Das Problem könnte ich doch einfach lösen indem ich  eine kleine Ruhezone mit reinmache. Das würde heißen, dass das  Runterfahren bei 0-490 und hochfahren bei 510-1000 wäre.  Dann würden  Sensorschwankungen beim 500er Bereich nicht zu ständigem Ansteuern  hoch/runter des Tisches führen.


Auch das würde bei mir die 2. Variante in den Vordergrund spielen, da Du dort die Schwellwerte einfach auf die gewünschten 10 einstellst. Dafür einen Analog-Mux verwendet und wieder hast Du nur einen einzigen Wert zum Anpassen.


----------



## hucki (28 April 2013)

Das wäre demnach mein Ergebnis:





Die 3 Analog-Mux B002, B007 und B012 sind dann die 3 Einstellwerte, die immer für beide Richtungen gelten. Der Rest wird für den Benutzer gesperrt.
Und wie gesagt, ich würde mit dem B001 auf den echten Abstand in mm skalieren, im Augenblick gibt er einfach die Volt weiter.


----------



## Priskau (28 April 2013)

Das "oder" vor den beiden Ausgängen Q1 und Q2 ist nicht notwendig. Es reicht eine Verbindung von den 2 "Und´s" (B005/B006) auf die Ausschaltverzögerung und dann auf die Ausgänge Q1/Q2.

Da ich hier gerade keine Logo Software zum probieren haben, könntest du mir den Funktionsablauf von B001, B002, B003 und B004 erklären, sowie die Bausteinbezeichnung nennen?
Hast du 2 Differenzschwellwertschalter eingebaut? Welche Paramter würdest du einstellen?

Was für eine Funktion haben B007-AM1 und B012-AM2? Ich habe noch nie mit diesen Analog Mux gearbeitet.


----------



## hucki (28 April 2013)

Priskau schrieb:


> Das "oder" vor den beiden Ausgängen Q1 und Q2 ist nicht notwendig. Es reicht eine Verbindung von den 2 "Und´s" (B005/B006) auf die Ausschaltverzögerung und dann auf die Ausgänge Q1/Q2.


B008 und B009 sind keine Ausschaltverzögerung! Ich persönlich find' das doof, den Ausgang noch nachlaufen zu lassen, wenn er schon lang genug an war. Deshalb sorgen die beiden flankengesteuerten Impulse nur dafür, das der jeweilige Ausgang für eine Mindestzeit an ist. Ist der Ausgang des Freigabe-UNDs jedoch länger an, wirkt der Impuls nicht mehr. Deshalb das ODER. Ich denke mal, so kann man sich mit den Hysteresebereich mehr an das Grundniveau annähern. Ist aber alles nur theoretischer Natur, vlt. funktioniert es auch mit dem einfachen Nachlauf besser.





Priskau schrieb:


> Da ich hier gerade keine Logo Software zum probieren haben, könntest du mir den Funktionsablauf von B001, B002, B003 und B004 erklären, sowie die Bausteinbezeichnung nennen?
> Hast du 2 Differenzschwellwertschalter eingebaut? Welche Paramter würdest du einstellen?
> 
> Was für eine Funktion haben B007-AM1 und B012-AM2? Ich habe noch nie mit diesen Analog Mux gearbeitet.


Mit B001 wird das Eingangssignal AI1 so skaliert, das sich als Ergebnis der gemessene Abstand ergibt. Nach Deinen Angaben oben wird dort also ein 0-10V-Sensor, ein Gain von 0,4 und kein Offset oder für die letzten beiden Sachen alternativ das Minimum (=0V) von 0(mm) und ein Maximum (=10V) von 400(mm) eingestellt. Man könnte auch einen Offset von -200 einstellen, dann wäre das Grundniveau +-0 und man würde Abstände von -200mm bis +200mm messen.

B002 gibt einfach das Grundniveau in mm wieder und dient dem Vergleich mit dem vom Sensor gelieferten und mit B001 skalierten Wert. Wenn man bei B001 kein Offset angibt, wären das 200(mm). Arbeitet man mit Offset, bleibt es einfach bei 0.
Der dafür verwendete Analog-Mux ist ein Baustein, bei dem man mittels der 2 Eingänge zwischen 4 verschiedenen Analogwerten auswählen kann. Ist der EN-Eingang deaktiviert, hat man sogar noch einen 5.Wert, nämlich 0.
Ich benutze diesen Baustein gerne, um z.B. zwischen Einstellungen für den Normal- und dem Testbetrieb umzuschalten und so z.B. verkürzte Timerzeiten zu haben. Vor allem benutze ich den Baustein, um einen Referenzwert anzugeben, der dann von mehreren Bausteinen als Parameter verwendet wird. Man braucht so nur einen einzelnen Wert verändern, um alle relevanten Bausteine einzustellen. Also vergleichbar mit Konstanten in PC-Programmen. So werden im Programm auch B007 und B012 genutzt. 
Die Analogmerker AM1 und AM2 dienen als Abschluß der Analogausgänge der beiden Analog-Mux-Bausteine. In der realen Logo dürfen wohl keine Bausteinausgänge (weder digital noch analog) unbeschaltet bleiben, da die Logo sonst auf Störung geht. Der Simulation sind unbeschaltetet Ausgänge dagegen egal.

B003 und B004 sind Analogkomperatoren, also Vergleicher zweier Analogwerte. Durch das Vertauschen der Eingänge wird das Ergebnis negiert und ich kann beide Vergleicher, im Gegensatz zum normalen Schwellwertschalter, im gleichen positiven Bereich aktivieren. Ich kann also für beide Komperatoren die gleichen Einstellungen benutzen, die ich mit dem Analog-Mux B007 zur Verfügung stelle. Dadurch, das für den Ein- und Ausschaltpunkt bei den Komperatoren der gleiche Wert angegeben ist, wird oberhalb dieses Wertes ein- und mit dem Zurückschalten auf diesen Wert wieder abgeschalten und man ist unabhängig von den Endbereichen/-werten des Sensors. Hier ist so ein klassischer Einsatz für eine Konstante, die an 4 Stellen eingesetzt wird.
Beim unteren Beispiel wäre dieser Bereich also von -2mm bis +2mm, alles angegeben mit dem Wert 2 in B007.

Der Rest dürfte dann klar sein, oder?


Obiges Beispiel mit eingestellter Skalierung des Messwertes auf -200mm bis +200mm:






Zum Downloaden und Simulieren/Ausprobieren hängt hier das Programm vom Bild als Zip-Archiv dran:


----------



## Priskau (28 April 2013)

Ich habe die Regelung nur teilweise verstanden. Ich fürchte die Erklärung ist für meinen Wissensstand nicht umfassend genug.
-Was für Bausteine sind die AM1 und AM2? 
-Den Sinn des -2 und +2 habe ich nicht verstanden.
-Warum steht beim B012 -V1 der Wert +500?
-Warum steht beim B003/B004 jeweils bei on/off das B7 drin?

Ich bevorzuge diese Variante:
"Man könnte auch einen Offset von -200 einstellen, dann wäre das  Grundniveau +-0 und man würde Abstände von -200mm bis +200mm messen."

Könnest du mir deine Parameterwerte mit dieser Variante(-200 bis + 200) erklären?

Danke schonmal.


----------



## hucki (28 April 2013)

Priskau schrieb:


> -Was für Bausteine sind die AM1 und AM2?


OK, hab' ich im vorigen Post erst nachgetragen, deshalb nochmal (übrigens keine Bausteine!):


hucki schrieb:


> Die Analogmerker AM1 und AM2 dienen als Abschluß der Analogausgänge der beiden Analog-Mux-Bausteine. In der realen Logo dürfen wohl keine Bausteinausgänge (weder digital noch analog) unbeschaltet bleiben, da die Logo sonst auf Störung geht. Der Simulation sind unbeschaltetet Ausgänge dagegen egal.







Priskau schrieb:


> -Den Sinn des -2 und +2 habe ich nicht verstanden.


 Das ist die Abweichung (=Hysterese) um die Dein Grundniveau schwanken darf. Bei den normalen Schwellwertschaltern würdest Du also einstellen -> beim 1. Schwellwertschalter Ein:-200 und Aus: -2 und bei dem 2. Ein: +3 Aus: +200 (oder beim 2. beides auf 2)
Mit dem Analogkomperator berechnet man ja die Differenz zw. beiden Werten. Wie gesagt, negiert man das Ergebnis durch das Vertauschen der Eingänge. Dadurch kann ich bei beiden Komperatoren sowohl Ein- als auch Ausschaltwert auf 2 einstellen und hab' das gleiche Ausgabe-Ergebnis.





Priskau schrieb:


> -Warum steht beim B012 -V1 der Wert +500?


B012 dient als Zeitangabe für die Impulsausgaben B010 und B011. Diese beiden Bausteine verweisen in ihren Parametern auf den Baustein B012 und geben an, das die Zeitbasis für den dort angegebenen Wert Millisekunden sind. Die Impulse dauern also 500ms und somit sind die Ausgänge Q1 bzw. Q2 min. eine halbe Sekunde auf Ein.


Priskau schrieb:


> damit gewährleistet ist der der Motor immer mindestens 0,5 Sek. angesteuert wird.







Priskau schrieb:


> -Warum steht beim B003/B004 jeweils bei on/off das B7 drin?


Wie oben gesagt, dient also der Ausgabewert von B007 als Parameter für B003 und B004. Wenn Ein- und Ausschaltwert gleich sind, wird bei Überschreiten ein- und bei Wiederzurückgehen auf diesen Wert wieder ausgeschaltet.





Priskau schrieb:


> Ich bevorzuge diese Variante:
> "Man könnte auch einen Offset von -200 einstellen, dann wäre das  Grundniveau +-0 und man würde Abstände von -200mm bis +200mm messen."


So sind obiges Bild und das gezippte Programm im Anhang eingestellt. 





Priskau schrieb:


> Könnest du mir deine Parameterwerte mit dieser Variante(-200 bis + 200) erklären?


Ich hoffe, die jetzigen Erklärungen helfen Dir weiter. Wenn Du das Programm morgen auf Arbeit simulierst, wird sicher auch noch mal einiges klarer.
Zusätzlich kannst Du die einzelnen Bausteine anklicken und die Hilfe dazu aufrufen, um Näheres zu erfahren.





Priskau schrieb:


> Danke schonmal.


Dafür gibt's den Danke-Button rechts unter den Posts. Einfach bei den für Dich hilfreichen Posts draufklicken:


----------



## hucki (28 April 2013)

Hab noch mal ein wenig überlegt, das es vlt. doch besser ist, immer bis zum Nullpunkt zu fahren und deshalb die Ausschaltschwellen der Analogkomperatoren auf Null gelegt und die Hysterese auf +/-5mm erhöht. Der Motor beginnt also bei einer Abweichung von 5mm vom Grundniveau zu laufen und wird am Nullpunkt wieder abgeschalten (läuft aber immer min. 0,5s):






Jetzt solltest Du genügend Varianten zum Vergleichen haben, um für Dich das Optimale daraus zusammen zu basteln.
Ich hoffe, Du stellst dann Dein Ergebnis hier für andere Suchende auch zur Verfügung?!


----------



## PN/DP (29 April 2013)

hucki schrieb:


> Hab noch mal ein wenig überlegt, das es vlt. doch besser ist, immer bis zum Nullpunkt zu fahren


Kommt drauf an, wieviel Nachlauf der Motor bis zum Stillstand hat.

Harald

PS: hucki for next user of the year!


----------



## Priskau (29 April 2013)

Hallo.

Ich habe es heute getestet und es hat auf anhieb funktioniert.:s12:

Ich habe allerdings den B007 weggelassen und stattdessen Werte in die Parameter der B003 und B004 eingetragen.
Ich meine das es 200-395 und 405-600 war.
Mit dem Puffer von 396-404 kann ich den Nachlaufzeit des Motors ideal kompensieren.l

Posten brauche das das ja nicht mehr. Die Tischregelung war auch nur ein Teile der Maschine, der Rest ist allerdings ohne Analogwerte. 


Danke an euch und vorallem Hucki.:TOOL:


----------

