# Hilfe bei der Programmierung einer LOGO 8.3



## SPSMichi (29 Dezember 2021)

Hallo liebe Kollegen/innen,

ich habe eine kleine Denkblockade und benötige eure Hilfe.
Ich möchte mit einer Logo8 ein  Paternoster-Regal steuern.
Nun möchte ich gerne auf einem Display die Regalspalte eingeben und mit einem weiteren Taster die Richtung vorgeben(hoch/runter). Das Paternoster soll dann dieses Regal selbstständig anfahren. Das habe ich auch soweit hinbekommen. Jetzt ist es aber so, dass wenn die letzte Regalspalte geöffnet ist und jemand die erste Regalspalte anfordert soll sich es natürlich nicht alle Regalspalten wieder zurück fahren sondern einfach eine Spalte weiter auf Spalte 1 fahren . Das gleiche ist wenn die Spalte 1 geöffnet ist und die letzte Spalte angefordert wird soll eine Spalte zurückgefahren werden. Das ganze habe ich mit Vor- und Rückwärtszählen und einer Analog-Komparator gelöst. Da sehe ich aktuell mein Problem, da diese nicht so springen wie ich es benötige.

Leider bekomme ich es nicht hin und bin mir auch nicht sicher ob es mit einer Logo machbar wäre.

Wäre super, wenn einer/eine einen Denkansatz hätte.
Vielen Dank für eure Mitarbeit


----------



## hucki (29 Dezember 2021)

Ist machbar und hab' ich auch schon auf verschiedene Arten umgesetzt.

Schau Dir z.B. diesen Thread mal an: https://www.sps-forum.de/threads/neue-steuerung-für-paternoster-siemens-logo.71215/


Ansonsten kannst ja hier auch noch selbst nach "Paternoster" und z.B. meinem Namen (ich glaub', Heinileini hat sich u.a. auch schon mit beschäftigt) suchen. Da sollten eigentlich noch mehr Threads auftauchen.


----------



## SPSMichi (29 Dezember 2021)

Super, genau das hat mir gefehlt 
Vielen danke und guten Rutsch


----------



## hucki (29 Dezember 2021)

Nutzt Du einen Zähler für die Regalreihe?


----------



## SPSMichi (29 Dezember 2021)

Ja genau, deshalb ist das zurück zählen in die hohen Regalreihen noch ein Problem.


----------



## Heinileini (29 Dezember 2021)

Ich habe nicht so ganz verstanden, wie der Zusammenhang zwischen den verschiedenen Positionen des Paternoster und den RegalSpalten ist.
Wahrscheinlich ist doch Dein Paternoster eine ModuloAchse, die endlos weiterdrehen könnte, ohne dass irgendwelche mechanischen Bergrenzungen zu Problemen führen würden? Falls die Achse wirklich endlos drehen kann/darf, dann frage ich mich allerdings, warum Du einen (oder zwei?) Taster benötigst, um eine Richtung vorzugeben. Wenn Du die aktuelle Position kennst (z.B. Dir gemerkt hast) und die neue ZielPosition per Eingabe vorgeben kannst, dann könnte doch die Software generell ermitteln, welche Richtung den kürzeren Verfahrweg hat und somit die Richtung immer selbst bestimmen.

Der ArithmetikBaustein der LOGO nimmt leider keine Rücksicht darauf, dass man gerne auch mal statt eines gerundeten DivisionsErgebnisses ein "abgeschnittenes" haben und man auch mal den Rest einer Division berechnen möchte. Das soll aber nicht bedeuten, dass die Aufgabe mit einer LOGO nicht lösbar ist.


----------



## hucki (29 Dezember 2021)

SPSMichi schrieb:


> Ja genau, deshalb ist das zurück zählen in die hohen Regalreihen noch ein Problem.


Nein, nicht wirklich.

1. Du stellst beim Zähler den Startwert auf die höchste Regalnummer.
2. ON = 1, OFF = höchste Nummer x 2
3. Den Q des Zählers über Merker negiert auf den Reset.
4. Den Zähler referenzierst Du auf eine Arithmetische Anweisung und ziehst dort von diesem Wert die höchste Regalreihe ab.
5. Ist der Zähler unter oder gleich der höchsten Reihe verwendest Du den Zähler direkt, sonst das Rechenergebnis (analoger Schwellwertschalter und Analog-Muxx).

So kannst Du in beide Richtungen in Runden zählen.


----------



## SPSMichi (29 Dezember 2021)

Zu Heinileini: Ja das stimmt. Die Taster für die Richtung entfallen in dem Fall. Ich hatte mich nur dafür entschieden, da ich mein Programm noch nicht soweit habe, dass es endscheiden kann ob hoch oder runter fahren soll.

Zu hucki: Das klingt doch gut. Ich werden es gleich mal ausprobieren.
Gruß


----------



## SPSMichi (29 Dezember 2021)

Kurze Rückmeldung.
Es funktioniert wunderbar. Das Paternoster sucht sich selbst den kürzesten Weg und auf dem Display wird egal wie rum es fährt immer das richtige Fach angezeigt.

Vielen Dank und schönen Abend noch


----------



## hucki (29 Dezember 2021)

Würdest Du (Teile) Deine(r) Lösung hier für andere Suchende zur Verfügung stellen?


----------



## SPSMichi (29 Dezember 2021)

Ja, ich werde es aber am Wochenende sauber beschriften. Dann findet sich auch jeder/jede zurecht


----------



## hucki (4 Januar 2022)

wollvieh schrieb:


> Unn, wie war nun die Lösung, verräts Du's?


----------



## SPSMichi (5 Januar 2022)

Moin, im Anhang mein Lösungsvorschlag.
Ich habe nur das Zählen mit den Befehlen Auf/Ab- Befehl hier eingestellt.


----------



## hucki (5 Januar 2022)

Wie sind denn die Sensoren genau bei Dir angeordnet?

Ich kenn' es bisher immer nur mit einem Sensorfeld je Fach (und ein zweites am letzten Fach als Referenz), da ja die Zählrichtung bereits durch die Motorrichtung bekannt ist.

Außerdem hat @Heinileini mal einen sehr wichtigen Hinweis zur Richtungsauswertung mit 2 Sensoren abgegeben, der sich mir seitdem ziemlich eingebrannt hat:


Heinileini schrieb:


> Deine beiden EingangsSignale verlaufen wie folgt:
> 
> ```
> Signal 1 : ____:=========:_________
> ...





Heinileini schrieb:


> Es ist egal, welche der vier Flanken 0, 1, 2 oder 3 Du auswertest, ABER bitte suche Dir eine davon aus und werte nur diese eine aus! ...
> Es ist schlicht und einfach ein logischer Fehler, nicht *dieselbe Flanke für beide ZählRichtungen* auszuwerten!
> ... lese das Diagramm von links nach rechts für die eine Richtung und von rechts nach links für die andere Richtung.


Sieht dann z.B. für die Flanke 1 so aus:





Und hast Du mal probiert, was passiert, wenn Du zwischen 2 Fächern anhältst (z.B. durch Not-Stop) und dann in die Gegenrichtung fährst?
Passt dann die Zählung noch?
Mit nur einem Sensor braucht's da etwas mehr, z.B. einen Zwischenzähler der auf jede Flanke des Sensors reagiert.


----------



## SPSMichi (7 Januar 2022)

Hallo hucki,

in meinem Programm was ich auf dem Paternoster verwende ist es auch so gelöst, sprich ein Sensor der je Laufrichtung zählt.
Das was ich da geschickt hatte war meine erste Annahme, wie die Steuerung zählen könnte. 

Gruß


----------



## Heinileini (7 Januar 2022)

SPSMichi schrieb:


> ... sprich ein Sensor der je Laufrichtung zählt. ...


 Wie meinst Du das? Je LaufRichtung 1 Sensor, also insgesamt 2 Sensoren?


----------



## SPSMichi (7 Januar 2022)

Nur ein  Sensor am Paternoster. Der Zählt aufwärts, wenn es hoch fährt und abwärts wenn es runter fährt.


----------



## Heinileini (7 Januar 2022)

SPSMichi schrieb:


> Nur ein Sensor am Paternoster. Der Zählt aufwärts, wenn es hoch fährt und abwärts wenn es runter fährt.


Klingt sehr einfach. Wenn Du damit klar kommst - umso besser. 
Falls wider Erwarten doch Probleme damit auftauchen (und Du bereit bist, einen 2. Sensor zu spendieren), darfst Du Dich hier gerne wieder melden ...


----------



## hucki (7 Januar 2022)

Heinileini schrieb:


> Klingt sehr einfach.


Nur im ersten Moment.
Ist es aber eher nicht, wenn der Sensor (wie meist) nur das/ein Fach erkennt.

Beispiel:
Aktuelles Fach x, Fahrt aufwärts, manueller Stop zwischen Fach x und x+1 (z.b. durch Auslösen der Lichtschranke).
Nach dem Reset wird dann nach unten gefahren, Sensor erkennt wieder ein Fach und es wird x-1 gerechnet, dabei ist man erst wieder bei x.


----------



## Heinileini (7 Januar 2022)

hucki schrieb:


> Nur im ersten Moment.
> Ist es aber eher nicht, wenn der Sensor (wie meist) nur das/ein Fach erkennt.


Stimmt, Mario, aber die Erfahrung muss man erst mal selbst machen ... das ist einfach "nachhaltiger" - wie man heutzutage so schön sagt.


----------



## mega_ohm (9 Januar 2022)

Hallo Forum,
meine Frage hilft zwar nicht bei der Lösung des Problems, aber anhand dieses Beispiels stellte sich mir die Frage:

Kann man den Startwert für einen Zähler (z.B. B060 ) festlegen und diesen irgendwie an den Zähler (B016 ) "übergeben" ?

Ich habe das für dieses Beispiel mal so dargestellt:
In der Text- Meldung ("Msg_Eingaben" [B013] )  stelle ich in "Max-Fach" den Startwert  für B060 ein. Der Startwert für B016 muss gleich
B060 sein.  Dann wäre es schon toll, nicht 2 Eingaben machen zu müssen (ist sehr fehleranfällig ), sondern den Startwert "einfach" an den
B016 zu übergeben / zu parametrieren oder sonst was.

Ich habe noch keinen Weg gefunden.

Mfg mega_ohm


----------



## hucki (9 Januar 2022)

mega_ohm schrieb:


> Kann man den Startwert für einen Zähler (z.B. B060 ) festlegen und diesen irgendwie an den Zähler (B016 ) "übergeben" ?


Andersrum:
1. den Startwert des Zählers im Meldetext editierbar machen
2. den Startwert des Zählers unter Extras->Parameter-VM-Zuordnung an ein DWord übertragen
3. das 2. WORD dieses D-Words mit einem analogen Netzwerkeingang und folgendem Analogverstärker für die anderen Bausteine referenzierbar machen

So kann man vom Startwert zumindest den positiven INT-Bereich bis 32.767 (bzw. nur bis 20.000, weil einige Parameter anderer Funktionen schon dort begrenzt sind) sinnvoll nutzen.
Man könnte dann natürlich das Ganze noch weiter treiben, um größere Eingaben abzufangen. Die Frage wie immer ist, wo man die Grenze zwischen Aufwand und Nutzen ziehen will.

PS @mega_ohm:
Sorry, hab' grad gesehen, dass Du genau das ja schon gemacht hast.
Du hast noch für die Referenz auf den Startwert des 2. Zählers vom 1. Zähler gefragt. Dafür hab' ich bis dato leider auch keine Lösung.
Nicht das direkte Weitergeben über analoge Netzwerk-Ein-/Ausgänge und nicht mal die Verwendung des gleichen VD für beide Startwerte hilft (zumindest nicht in der Sim).
Theoretisch sollte das Ändern des Startwertes über das VD von außen funktionieren. Keine Ahnung was da beim Verwenden eines externen HMI anders ist oder ob nur die Sim das nicht kann, real aber funktioniert.
/PS


Ich hab' so 'ne Paternostersteuerung ja schon anderweitig gepostet.
Hier wäre meine Fassung der Richtungsermittlung inkl. Referenzierung auf den Startwert des Istzählers (Sollfach wird einfach nur eingegeben):


----------



## hucki (9 Januar 2022)

hucki schrieb:


> ... Hier wäre meine Fassung ...


Falls sich da jemand was rauskopieren sollte/möchte:

Es gibt dabei bis dato einen Bug in LOGOSoft!
Aufgetrennte Referenzen funktionieren nach Copy/Paste nicht mehr (zumindest in der Sim, real hab' ich noch gar nicht getestet), obwohl sie korrekt angezeigt werden:




Man muss diese Auftrennung erst wieder verbinden lassen, um die Funktion wieder herzustellen.
Danach kann man sie bei Bedarf wieder auftrennen.


----------



## mega_ohm (9 Januar 2022)

hucki schrieb:


> PS @mega_ohm:
> Sorry, hab' grad gesehen, dass Du genau das ja schon gemacht hast.
> Du hast noch für die Referenz auf den Startwert des 2. Zählers vom 1. Zähler gefragt. Dafür hab' ich bis dato leider auch keine Lösung.
> Nicht das direkte Weitergeben über analoge Netzwerk-Ein-/Ausgänge und nicht mal die Verwendung des gleichen VD für beide Startwerte hilft (zumindest nicht in der Sim).
> ...


Hallo hucki,
ich danke Dir für Deine Antwort.
Schade, dass es scheinbar erstmal keinen Weg gibt.
Dann werde ich eben die Startwerte  über "arithmetische Anweisung"  [(B060) - (B016)]  und "Analogwert Überwachung" (Ein=0, Aus=0 )
vergleichen (Ergebnis= 0  --> Eingaben sind Ok, sonst Displaybeleuchtung = gelb oder so was )

Mfg mega_ohm


----------



## hucki (9 Januar 2022)

mega_ohm schrieb:


> Schade, dass es scheinbar erstmal keinen Weg gibt.


Naja, man könnte sich einen eigenen Ringzähler aus Analogbausteinen basteln, wo man dann die Referenzen nutzen kann (im Bild dann für B006 & B007), der dann allerdings auch den Analoggrenzen (die hier sicher ausreichen sollten) unterliegt:


(B008 kann man auch weglassen, wenn man keine Remanenz braucht.)

Für den Paternoster finde ich das aber Quatsch.
Man braucht eh' eine Anzeige, wofür sich ja nun mal das TDE anbietet, und da ist es IMHO einfacher, das Fach über 2 interne Tasten vom Display direkt einzugeben als über 2 externe Tasten einen Zähler endlos rotieren zu lassen.


----------



## hucki (10 Januar 2022)

hucki schrieb:


> ... nicht mal die Verwendung des gleichen VD für beide Startwerte hilft ...





mega_ohm schrieb:


> Schade, dass es scheinbar erstmal keinen Weg gibt.


Ich hab' heute mal ein kleines Test-Programm erstellt und auf eine reale LOGO V8.3 (6ED1052-1MD08-0BA1) geladen:





In der Sim agieren beide Zähler völlig unabhängig voneinander.
😞

Auf meiner realen LOGO passierte beim Verstellen des Startwertes von B001 (Z1) auch nix weiter, aber beim Verstellen des Startwertes von B002 (Z2) folgte dieser Änderung dann auch umgehend der Startwert von B001 (Z1).
😁

Wenn die Reihenfolge der beiden Startwerte in der Parameter-VM-Zuordnung getauscht wird, tauscht auch das Verhalten.
Der Parameter mit der höheren ID auf der gleichen Adresse scheint also der Dominante zu sein und nimmt den Sub mit.
Andersrum passiert nix. Man kann den Sub (nachträglich) unabhängig verstellen.





Noch ein weiterer Real-Test mit analogen Netzwerk-Ein-/-Ausgängen und separaten VM-Adressen:





Es erfolgte bei mir keinerlei Übertragung des Startwertes, egal in welcher Reihenfolge das Ganze im VM-Bereich eingetragen wurde.


----------



## mega_ohm (12 Januar 2022)

Hallo hucki,


> Auf meiner realen LOGO passierte beim Verstellen des Startwertes von B001 (Z1) auch nix weiter, aber beim Verstellen des Startwertes von B002 (Z2) folgte dieser Änderung dann auch umgehend der Startwert von B001 (Z1).
> 😁
> 
> Wenn die Reihenfolge der beiden Startwerte in der Parameter-VM-Zuordnung getauscht wird, tauscht auch das Verhalten.
> ...


Sehr interessant, zu wissen, was Du experimentell herausgefunden hast. Ich werde es mir merken.
Schade ist, dass Simu und Real-Logo! da irgendwie nicht das Gleiche meinen/anzeigen.

Mfg mega_ohm


----------



## hucki (12 Januar 2022)

mega_ohm schrieb:


> Schade ist, dass Simu und Real-Logo! da irgendwie nicht das Gleiche meinen/anzeigen.


Diese Art der Nutzung des VM-Bereichs ist von den Siemens-Programmieren vermutlich so nicht angedacht worden und daher auch nicht in der Simulation nachgestellt. Der VM-Bereich dient ja eigentlich vorrangig dem separaten Austausch der Werte mit HMIs u.ä..

Wenn Du auch eine reale Logo zum Testen hast, wäre es nett, wenn Du dieses Ergebnis mal verifizieren könntest.
 😁


----------



## hucki (12 Januar 2022)

hucki schrieb:


> Wenn die Reihenfolge der beiden Startwerte in der Parameter-VM-Zuordnung getauscht wird, tauscht auch das Verhalten.
> Der Parameter mit der höheren ID auf der gleichen Adresse scheint also der Dominante zu sein und nimmt den Sub mit.
> Andersrum passiert nix. Man kann den Sub (nachträglich) unabhängig verstellen.


Ich hab' mal interessehalber noch getestet, was bei mehrfachen Einträgen passiert:



Es wird trotzdem nur in eine Richtung übertragen.
Auch bei umgekehrter Richtung mit anderer VD.
Nur die höchste ID überträgt den Startwert.



Und dann auch mal noch mit 3 Zählern:



Nur der Zähler mit der *höchsten* ID überträgt den Startwert an die Zähler (also beide) mit den niederen IDs.
Eine Änderung des mittleren Zählers hatte auch keinen Einfluß auf den niedrigsten.


----------



## mega_ohm (24 Januar 2022)

*Das war mal eine sehr schöne Übung ... da konnte man sich mal richtig "ausspinnen" !

Vielen Dank an das Forum.

An* 


hucki schrieb:


> Naja, man könnte sich einen eigenen Ringzähler aus Analogbausteinen basteln, wo man dann die Referenzen nutzen kann (im Bild dann für B006 & B007), der dann allerdings auch den Analoggrenzen (die hier sicher ausreichen sollten) unterliegt:
> Anhang anzeigen 58475
> 
> (B008 kann man auch weglassen, wenn man keine Remanenz braucht.)
> ...


Erst wusste ich nicht, was ich mit Deinem Ringzähler anfangen soll - hatte mir es angeschaut, aber erstmal keine Verwendung dafür gesehen.
Gleichzeitig kämpfte ich mich aber an der "IST- Fach"- Anzeige (aktuelles, angefahrenes Fach ) relativ erfolglos ab.
Also betrachtete ich Deinen Ringzähler noch einmal genauer --> und genau DAS war die Lösung.

Dafür ganz vielen Dank.  So viele "Daumen hoch", wie ich senden wöllte, so viele Daumen gibt es gar nicht.

Mfg mega_ohm


----------



## hucki (24 Januar 2022)

mega_ohm schrieb:


> *Das war mal eine sehr schöne Übung ... da konnte man sich mal richtig "ausspinnen" !*


Würde ich mir wirklich gern mal anschauen.
Ist immer hochinteressant, wie andere solche Themen angehen.


----------



## mega_ohm (25 Januar 2022)

hucki schrieb:


> Würde ich mir wirklich gern mal anschauen.
> Ist immer hochinteressant, wie andere solche Themen angehen.


Hallo hucki,
Du bist aber heute neugierig   

Ich habe einfach immer noch eine Idee gehabt und einfach dazu programmiert. Deswegen ist sicher sehr viel dabei, was man ausmisten könnte.
Jetzt, wo ich so ungefähr weiß, an was man alles denken sollte, würde ich mir erst eine Struktur erarbeiten - und dann anfangen, zu proggen.
( Aber so hat es auch viel Spaß gemacht )

Natürlich müsste man nach der Referenzfahrt auch die beiden "Zähl- Ini's"  (die inzwischen repariert wurden ) noch abfragen und die Nachpositionierung  fahren (damit das Fach auch zugriff- fähig ist ) . Da die Referenzfahrt nur aufwärts funktioniert, ist das aber ein lösbares Problem.

Und ... eigentlich sollte nur das Display, an welchem Eingaben gemacht werden, irgendwie leuchten. Bei falscher Eingabe im Meldetext (Priorität=0 )
leuchtet sowohl das LOGO! als auch das TDE! . Aber auch das ist entweder lösbar oder man lebt damit.

Mfg
mega_ohm


----------

