LOGO Zähler vergleichen größer / kleiner gleich mit der Logo!

Sydney187

Level-2
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend zusammen,

ich habe mich jetzt eine Weile durch die Suche gewühlt, komme mit den verschiedenen Hilfen aus den Beiträgen nicht weiter.
Zu meinem Problem:

Ich zähle mit einem Sensor 20 Positionen auf einem Rundtisch.
Über einen Analogwert möchte ich nun eine bestimmte Position vorgeben, die angefahren werden soll.
z.B.: Position 5
Der Rundtisch steht jetzt aber bei Position 17.
Über einen "Vergleiche =</>=/==) möchte ich nun die Drehrichtung vorgeben und entsprechen des Ergebnisses Vor oder Zurück fahren.
Der Rundtisch taktet über ein anderes Programm, aber keine Dauerbewegung des Rundtisches.

Mit den Arithmetischen Anweisungen, kann ich "Vergleichen" aber ich bekomme es nicht hin, Ist-Wert +/- 1 zu erkennen und entsprechend die Ausgänge zu schalten.

Bei Siemens auf der Homepage habe ich das gefunden, aber auch hier ist der Schwellwert nicht klein genug.

Hat jemand von euch eine Idee wie ich es umsetzen kann, falls es überhaupt geht?
Ganz im Notfall, müsste ich die Werte an eine übergeordnete Steuerung geben. Das wäre aber mit Kanonen auf Spatzen geschossen :)

Vielen Dank schon mal.

Gruss Sydney187
 
so, ich habe es mir angesehen und auf meine Bedürfnisse abgespeckt. Leider ist mir die Funktionsweise nicht ganz schlüssig...
Es funktioniert eigentlich ganz gut, allerdings ist es so, das wenn ich bei Werten größer 10 stehe, ich keine Zahl kleiner 10 vorgeben kann. Der Zähler wird dann nicht auf z.B.: 3 runtergezählt, sondern auf 23.
Es ist mir schon fast peinlich, aber ich stehe da echt auf dem Schlauch 😅

Edit: Hat sich erledigt, der Knoten im Schlauch hat sich gelöst. 🤣 Ich hatte die Negativ und positiv Auswertung verdreht...
 
Zuletzt bearbeitet:
so, ich habe es mir angesehen und auf meine Bedürfnisse abgespeckt. Leider ist mir die Funktionsweise nicht ganz schlüssig...
Ja, merkt/sieht man.
;)

Da gab's eigentlich nichts Großartig zum Abspecken.
Lediglich das Anpassen der Werte des Ist-Zählers B016. Und eventuell die Handsteuerung auf der 2. (rechten) Seite.



Es funktioniert eigentlich ganz gut, allerdings ist es so, das wenn ich bei Werten größer 10 stehe, ich keine Zahl kleiner 10 vorgeben kann. Der Zähler wird dann nicht auf z.B.: 3 runtergezählt, sondern auf 23.
Es ist mir schon fast peinlich, aber ich stehe da echt auf dem Schlauch 😅
Basis des Ganzen ist ein Zähler, der Deinen Rundtisch in 2 Richtungen über einen "Nullpunkt" zählen kann.
Dieser virtuelle Nullpunkt ist die Anzahl der Stationen an Deinem Rundtisch:
1. Du stellst beim Zähler den Startwert auf die höchste Stationsnummer.
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 Stationsnummer ab.
5. Ist der Zähler unter oder gleich der höchsten Station verwendest Du den Zähler direkt, sonst das Rechenergebnis (analoger Schwellwertschalter und Analog-Muxx).

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

*Regalreihen durch Station ersetzt*
Dein B009 gibt (nur) das Sollfach vor.
Das Sollfach nutzt Du aber gleichzeitig als Grenze für Deinen IST-Zähler. Das ist schlicht falsch.
Der Istzähler soll beim Erreichen von 0 (Rückwärtsfahrt) oder beim Erreichen der doppelten Stationszahl (Vorwärtsfahrt) wieder auf den Startwert des Zählers (dem virtuellen Nullpunkt) springen. Nur so kann man auch z.B. von der 1. Station direkt rückwärts zur letzten Station fahren (= -1 Position).
Anhängend mal die Basisschaltung für diesen Ringzähler zum Rumprobieren.


Aus praktischen Gründen hat in meiner Paternoster-Vorlage der Hauptzähler B016 noch einen Zwischenzähler B014:
Beim Paternoster wird mit einem Ini das Fach erkannt/gezählt.
Wenn man aber vom Fach runter fährt, manuell stoppt (z.B. durch Not-Aus) und dann in die Gegenrichtung fährt, würde ohne diesen Zwischenzähler der Hauptzähler beim Erreichen des Inis eins weiter oder eins zurück zählen, obwohl er ja wieder beim gleichen Fach ist.
Keine Ahnung, wie an Deinem Rundtisch die Stationen (wieviele eigentlich?) erkannt werden.
Ich bin mal von ähnlichen Bedingungen ausgegangen.

Wofür ist eigentlich der Taktgeber B002?
Erkennst Du die einzelnen Stationen etwa nur rein über eine Zeitvorgabe für's Drehen? Was passiert dann bei irgendeinem Ausfall während der Drehung, wenn die Zeit dann nicht mehr passt?
Oder dient der Taktgeber nur der Simulation der Drehung?

Je genauer Du über die Funktionsweise Deines Rundtisches berichtest, desto besser kann man dann auch helfen.
(Ich z.B. kenn' so'n Rundtisch nur vom Hörensagen.)




Noch was zur LOGO!Soft:

1. Alles kann markiert und an Haltepunkten verschoben werden. Es sollten niemals! Verbindungslinien übereinander liegen, die keine Verbindung miteinander haben. Auch den Verlauf von Verbindungen durch andere Funktionsblöcke oder deren Parameteranzeige darunter sollte man tunlichst vermeiden.
Ansonsten kann man das Programm nicht wirklich vernünftig lesen. Insbesondere mit etwas zeitlichem Abstand, wenn man nicht mehr weiß, was man sich beim Programmieren gedacht hatte.

2. Wenn der Platz nicht ausreicht - in der Iconleiste das 7. Symbol von rechts (mit den Zahlen 1-4) ermöglicht es Dir, weitere Seiten in das Programm einzufügen. Bis max. 100 Seiten sind so möglich.

3. Kommentare, Kommentare, Kommentare!
Auch bei mir sind das oft noch zu wenig, aber vermutlich hab' ich etwas mehr Übung beim Lesen eines Programms.

4. Wenn aufgetrennte Verbindungen ewig weit von ihrem Funktionsblöcken weg sind, macht das die auch nicht lesbarer.
Ggf. wieder verbinden und neu auftrennen.
Dann höchstens das Ende der Auftrennung zusammen mit einem anderen Funktionsblock markieren (STRG beim Markieren drücken), dann kann man diesen Funktionsblock (und damit das Verbindungsende) um Rasterpunkte nur so weit kontrolliert verschieben, dass die Texte wieder gut lesbar sind.


Versuch' einfach mal Programme zu lesen, die Du letzte Woche, letzten Monat, letztes Jahr... erstellt hast, dann weißt Du wie wichtig all diese Punkte sind.
 

Anhänge

Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo hucki,

danke für die Antwort. Ich versinke im Boden 🙈
Wäre das ganze in ST, kein Problem. ich programmiere sonst nur in ST, ganz selten mal in FUP oder KOP. Daher ist für mich der Zusammenhang mit den Bausteinen und der begrenzten Möglichkeit irgendwie eine Hürde, die ich erst lernen muss zu überwinden.

da es sich nur um ein Testprogramm handelt und nicht um ein fertiges Programm für die Produktion, sind bisher keine Kommentare oder so vergeben. Das das bei einer Vernünftigen Programmierung immer als erstes passieren sollte, weiß ich und setze es für meine anderen Projekte auch um. Erst Deklarieren, dann Programmieren :)

Der Tipp mir den Linien die sich nicht kreuzen sollten ist gut und wichtig! ich werde es mir angewöhnen (y)

Zu dem Taktmerker, den habe ich nur eingefügt um mir die Werte besser ansehen zu können und nicht für jede Station Vor- / oder Rückwärts zu drücken. Wie oben geschrieben, werden die einzelnen Stationen über einen Sensor erfasst und gezählt.
Wo ist auch gleich zum nächsten Tipp von dir komme, der zweite Zähler. Den werde ich auch noch einbauen, um genau die Situation zu vermeiden, beim Start nach einem Stopp nicht zu wissen wo der Rundtisch steht.

Der Rundtischfährt nicht über die Nullposition, er kann nur von 1 bis 20 fahren. 0 und 21 sind nicht zulässig wegen dem Aufbau auf dem Rundtisch.
Bei dem Sollfach als Grenze muss mir ein Fehler unterlaufen sein. Das dies nicht funktionieren kann ist logisch!

Das mit den Seiten kenne ich bereits, aber es hat ja alles auf eine Seite gepasst :)

Ich habe gestern noch ein bisschen angepasst und bin nun mit der Funktion zufrieden.
die zwei Änderungen mache ich noch, dann sollte es soweit passen.

Ich danke dir vielmals für deine Ausführlichen Beschreibungen, das hat dich Zeit gekostet und ist nicht selbstverständlich. (y)
Für mich ein holpriger aber schöner Einstieg in dieses Forum.

Beste Grüße

Sydney
 
Der Tipp mir den Linien die sich nicht kreuzen sollten ist gut und wichtig! ich werde es mir angewöhnen (y)
Das Kreuzen der Linien ist nicht wirklich ein Problem. Natürlich kann es nicht schaden, durch eine andere LinienFührung Kreuzungen zu vermeiden.
Problematisch ist das "Übereinanderliegen" verschiedener Leitungen, die nichts miteinander zu tun haben. Dann hat man zumindest optisch Kurzschlüsse, die in Wirklichkeit nicht vorhanden sind.
 
Noch was zur LOGO!Soft:

1. Alles kann markiert und an Haltepunkten verschoben werden. Es sollten niemals! Verbindungslinien übereinander liegen, die keine Verbindung miteinander haben. Auch den Verlauf von Verbindungen durch andere Funktionsblöcke oder deren Parameteranzeige darunter sollte man tunlichst vermeiden.
Ansonsten kann man das Programm nicht wirklich vernünftig lesen. Insbesondere mit etwas zeitlichem Abstand, wenn man nicht mehr weiß, was man sich beim Programmieren gedacht hatte.

2. Wenn der Platz nicht ausreicht - in der Iconleiste das 7. Symbol von rechts (mit den Zahlen 1-4) ermöglicht es Dir, weitere Seiten in das Programm einzufügen. Bis max. 100 Seiten sind so möglich.

3. Kommentare, Kommentare, Kommentare!
Auch bei mir sind das oft noch zu wenig, aber vermutlich hab' ich etwas mehr Übung beim Lesen eines Programms.

4. Wenn aufgetrennte Verbindungen ewig weit von ihrem Funktionsblöcken weg sind, macht das die auch nicht lesbarer.
Ggf. wieder verbinden und neu auftrennen.
Dann höchstens das Ende der Auftrennung zusammen mit einem anderen Funktionsblock markieren (STRG beim Markieren drücken), dann kann man diesen Funktionsblock (und damit das Verbindungsende) um Rasterpunkte nur so weit kontrolliert verschieben, dass die Texte wieder gut lesbar sind.


Versuch' einfach mal Programme zu lesen, die Du letzte Woche, letzten Monat, letztes Jahr... erstellt hast, dann weißt Du wie wichtig all diese Punkte sind.
Danke Hucki, ich nehme es mir zu Herzen.(y)(y)(y):love:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Alles, was einen Schaltplan lesbarer macht, ist von Vorteil:

Z.B. IMHO fördern zuviele aufgetrennte Leitungen auch nicht gerade die Lesbarkeit.
Ich trenne meist nur Rekursionen und/oder solche Verbindungen, die zu lang sind, um sie mit einem Blick zu erfassen (z.B. zw. verschiedenen Seiten), auf. Referenzen (hellgrau) neigen oft dazu, durch andere Blöcke oder insbesondere deren Parameteranzeigen zu verlaufen. Dann trenne ich diese auch lieber auf.
Nur wenn dann noch zu viele verschiedene Verbindungen "auf einem Haufen" sind, schaue ich, ob es durch weitere Auftrennung vlt. lesbarer wird.

Weiterhin gibt es zwei Button zum horizontalen und vertikalen Ausrichten von Blöcken.
Ich empfinde ausgerichtete Blöcke deutlich lesbarer als wild auf der Seite verteilte.

Dann versuche ich bestimmte Funktionsteile zu "gruppieren" und von anderen etwas räumlich zu trennen (im Paternoster-Beispiel z.B. Erfassen der Istposition, Vergleich Ist/Soll, Handsteuerung). Auch das hilft mir, den Schaltplan später wieder zu verstehen.
Solche Gruppen verlaufen dann normalerweise auch nicht über Seitenumbrüche, was beim Ausdrucken des Plans (pdf) unvorteilhaft wäre.
 
Der Rundtischfährt nicht über die Nullposition, er kann nur von 1 bis 20 fahren. 0 und 21 sind nicht zulässig wegen dem Aufbau auf dem Rundtisch.
Dann lässt sich das vermutlich auch etwas einfacher als beim Paternoster lösen, da es ja vom Ist zum Soll nur eine möglich Fahrrichtung gibt und nicht erst entschieden werden muss, in welche Richtung der Weg kürzer ist.

Am Anfang des oben verlinkten Threads ist ein Link zu einem weiteren Thread, der die ursprüngliche Berechnung des Weges enthält.
Dort im Post #18 ist die Basis dieser Vergleiche als LOGO-Beispiel aufgezeigt.
Vielleicht macht es das Vorgehen dann für Dich noch verständlicher.


Warum darf eigentlich nur von 1 bis 20 gezählt werden und nicht von 0 bis 19? Wegen der späteren Anzeige?
Die Zähler haben bei 0 eine eingebaute untere Grenze, die den Aufwand, nicht unter diese Grenze zu kommen, erheblich vereinfacht.
Dann bleibt nur noch der Aufwand für die obere Grenze.
Der Zähler muss zum Vergleichen von Ist/Soll eh' auf Analogbausteine referenziert werden. Dort kann man dann viel einfacher einen zusätzlichen Offset einbringen, um aus 0 - 19 die 1 - 20 für die Anzeige oder den Vergleich zu machen.
 
Zurück
Oben