LOGO Siemens LOGO! Vor/Rückwärtszähler zählt nicht richtig

Burndi

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe für meine LOGO! 8.FS4 ein kleines Programm geschrieben, welches Impulse zählen soll. Ich habe dafür einen Vor/Rückwärtszähler verwendet, doch es scheint, dass dieser zwei verschiedene Zählvariablen (oder Parameter) hat. Das beigefügte Bild ist ein Screenshot von einem Online-Test (in der Simulation funktioniert alles perfekt) in dem ein Counter richtig zählt (der Wert der "11" anzeigt) und einer bei dem Startwert bleibt, egal wie oft ich ein Signal sende. In der Logo selbst kann ich auch nur den richtigen Wert auslesen. Ich brauche dringend Hilfe, da ich nicht weiß wie ich diesen Fehler behebe.

LG Burndivorrückwärtszähler.png
 
Mit dem minimalistischen Programmausschnitt kann man dir wohl nicht helfen.

Abhilfe würde schaffen das Programm hier hochzuladen (und die Dateiendung auf PDF zu ändern vorher) oder eben den Fehler näher zu beschreiben.

Was geht auf den Zähler, wie schnell kommen die Impulse real an, in der simulation ist es ja immer alles eher gediegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort! Ich habe im Anhang die verlangte PDF-Datei verlinkt. Zur Erklärung: Ich habe die Schaltung auf das wichtigste heruntergeschnitten, also nur auf dass, was mit dem Zähler zu tun hat. Der Zähler soll bei den Eingängen von I1 bis I5 eine bestimmte Zahl an Impulsen zählen und diese werden alle mit OR-Gates zum Zähler weitergeleitet. Es ist auch anzumerken, dass dieses Programm schon einmal funktioniert hat, aber von einem Moment auf den anderen hatte ich dann diesen Bug... (btw.: verlängern der Impulse beim Impulsgeber nutzt nichts)

Download der PDF: https://cdn.discordapp.com/attachments/483975024596746240/602267295586320384/Impulszahler.pdf
 

Anhänge

  • Impulszähler.pdf
    17 KB · Aufrufe: 25
Äh, könnte es daran liegen, dass Dein UND-Baustein nur einen Eingang hat, damit die UND-Bedingung nie erfüllt ist und so nie etwas am Zähler ankommt?
Laut Handbuch soll zwar jeder nicht genutzte Eingang 1/TRUE sein, aber gilt das schon ab nur einem belegten Eingang oder erst ab zwei.

Von irgendwas mit Internetzugang gesendet.
 
Zuletzt bearbeitet:
Äh, könnte es daran liegen, dass Dein UND-Baustein nur einen Eingang hat, damit die UND-Bedingung nie erfüllt ist und so nie etwas am Zähler ankommt?
Laut Handbuch soll zwar jeder nicht genutzte Eingang 1/TRUE sein, aber gilt das schon ab nur einem belegten Eingang oder erst ab zwei.

Von irgendwas mit Internetzugang gesendet.

Nicht benutzte "Eingänge" eines AND-Blocks werden immer so ausgewertet als wenn sie 1-Signal führen. Wenn z.B. nur ein "Eingang" beschaltet ist, zählt für das Verknüpfungsergebnis eben nur dieser eine "Eingang".
Im Anhang eine Statusanzeige. Blaue Linien bedeuten 0-Signal, rote Linien 1-Signal.
 

Anhänge

  • Unbenannt-1.jpg
    Unbenannt-1.jpg
    41,5 KB · Aufrufe: 16
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort! Ich habe im Anhang die verlangte PDF-Datei verlinkt. Zur Erklärung: Ich habe die Schaltung auf das wichtigste heruntergeschnitten, also nur auf dass, was mit dem Zähler zu tun hat. Der Zähler soll bei den Eingängen von I1 bis I5 eine bestimmte Zahl an Impulsen zählen und diese werden alle mit OR-Gates zum Zähler weitergeleitet. Es ist auch anzumerken, dass dieses Programm schon einmal funktioniert hat, aber von einem Moment auf den anderen hatte ich dann diesen Bug... (btw.: verlängern der Impulse beim Impulsgeber nutzt nichts)

Download der PDF: https://cdn.discordapp.com/attachments/483975024596746240/602267295586320384/Impulszahler.pdf

Ein Ausdruck eines Teilprogramms ist nicht sehr hilfreich. Lade mal bitte das komplette LOGO!-Programm hoch.
 
Ich habe die Schaltung nachprogrammiert.
Der Zähler zählt einwandfrei, wenn die Vorrausetzungen erfüllt sind. Wenn aber die Eingänge I1-I5 aber gleichzeitig 0-Signal haben, wird der Zählerstand aber nur um 1 erhöht.

Das liegt daran, dass I1 ohne weitere Verknüpfung negiert am OR-Block verschaltet ist. Ist also I1 z.B. immer auf 0-Signal, kann der Zähler nicht zählen, da durch das Negieren von I1 über den OR-Block ständiges 1-Signal am Zähleingang des Zählers ansteht und dadurch keine Flanken zum Zählen durchkommen.

Was ist denn die Funktion und Hintergrund dieser Schaltung?
 

Anhänge

  • Simulation.zip
    2,1 MB · Aufrufe: 10
Ich habe dafür einen Vor/Rückwärtszähler verwendet, doch es scheint, dass dieser zwei verschiedene Zählvariablen (oder Parameter) hat.
Das beigefügte Bild ist ein Screenshot von einem Online-Test (in der Simulation funktioniert alles perfekt) in dem ein Counter richtig zählt (der Wert der "11" anzeigt) und einer bei dem Startwert bleibt, egal wie oft ich ein Signal sende. In der Logo selbst kann ich auch nur den richtigen Wert auslesen. Ich brauche dringend Hilfe, da ich nicht weiß wie ich diesen Fehler behebe.

Anhang anzeigen 46495
Wenn Du online auf die LOGO zugreifst, werden die Online-Werte mit einem x dahinter zusätzlich dargestellt.
Das funktioniert "richtig", wie Du auch selbst festgestellt hast.

Der Wert in der Parameter-Tabelle hinter "Cnt:" ist für die Simulation. Da Du aber gerade nicht simulierst, funktioniert dieser also auch "nicht richtig" (nicht dem Online-Geschehen entsprechend).
;)

Deine Logo und Anzeigen sind also völlig in Ordnung.
Du musst halt nur die x-Werte betrachten, solange Du online bist.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn aber die Eingänge I1-I5 aber gleichzeitig 0-Signal haben, wird der Zählerstand aber nur um 1 erhöht.
Erschwerend kommt noch die ImpulsVervielfachung hinzu: bis zu 20 Impulse pro Betätigung, die sich über etliche Zyklen verteilen, so dass das ODER ohnehin noch "belegt" sein kann, wenn ein anderer Eingang betätigt wird.
@Burndi:
Hast Du einen HubDrehWähler gefunden, für den Du jetzt eine passende Ansteuerung bauen willst? ;)
Ich würde pro Eingang einen MUX ansteuern, der die entsprechende Zahl liefert und die Zahlen addieren.
Musst Du die selbst erzeugten Impulse wirklich alle zählen? Wozu?

Nachtrag:
Sooo … ungefähr hatte ich das gemeint mit den MUXen und der Addiererei:

Anhang anzeigen ImpulsZähler.lsc.pdf <===<<< nach dem Herunterladen ' .pdf ' entfernen!

ImpulsZählerFBD.jpg
ImpulsZählerDsp.jpg
Habe mir erlaubt 2 Eingänge hinzuzufügen:
I6:
- AUS: Anzahl laut Taste 1 .. 5 wird hinzu addiert
- EIN : Anzahl laut Taste 1 .. 5 wird subtrahiert
I7:
- löscht komplett

Zu I1 .. I5:
Von diesen Eingängen dürfen mehrere im selben Zyklus "kommen".

PS:
Das war doch ein Bisschen aufwändiger als ich es mir vorgestellt hatte.

PPS:
Die Schaltung enthält etliche "offene" Ausgänge von AnalogBlocks - beim Simulieren stört das nicht, aber im OnlineBetrieb vllt. - kenne mich damit nicht aus.:sad:

PPPS:
Die AnalogVerstärker sehen nach einem unnötigen Umweg aus - ich habe damit die Überprüfung auf Rekursion ausgehebelt … und verstehe nicht, warum sie sich auf diesem Wege aushebeln lässt und trotzdem korrekt simuliert wird.:ROFLMAO:
 
Zuletzt bearbeitet:
PPS:
Die Schaltung enthält etliche "offene" Ausgänge von AnalogBlocks - beim Simulieren stört das nicht, aber im OnlineBetrieb vllt. - kenne mich damit nicht aus.:sad:
Ja, stört.
Ein Hochladen in die LOGO ist nur möglich, wenn alle Bausteine durch Merker oder Ausgänge (oder bei digitalen Baustein noch offene Klemmen) abgeschlossen sind.

PS:
Wenn bei älteren LOGOs die Merker/Ausgänge noch knapp sind, kann man auch 2 Analog-Ausgänge auf einen Dummy-Komperator und/oder 4 digitale Ausgänge auf eine Dummy-Verknüpfung (z.B. AND) zusammenführen und so notwendige Abschlüsse einsparen.
/PS


PPPS:
Die AnalogVerstärker sehen nach einem unnötigen Umweg aus - ich habe damit die Überprüfung auf Rekursion ausgehebelt … und verstehe nicht, warum sie sich auf diesem Wege aushebeln lässt und trotzdem korrekt simuliert wird.:ROFLMAO:
Weil bei dieser Rekursion der neue Wert erst im nächsten Zyklus beachtet wird.
Auch Merker und Ausgänge verzögern Ihre Ausgabe und damit eventuelle Rekursionen um einen Zyklus.
 
Zuletzt bearbeitet:
Weil bei dieser Rekursion der neue Wert erst im nächsten Zyklus beachtet wird.
Auch Merker und Ausgänge verzögern Ihre Ausgabe und damit eventuelle Rekursionen um einen Zyklus.
Moin hucki,
Merker und Ausgänge waren mir bekannt - LOGO weist ja brav auf diese beiden Möglichkeiten hin.
Der "Trick", vom Ausgang des ArithmetikBausteins via AnalogVerstärker auf einen der 4 Parameter des ArithmetikBausteins rückzukoppeln, wird von der LOGO nur für die Parameter P2 .. P4 zugelassen, aber bei P1 als Rekursion erkannt!?!?!
Irgendwie vermute ich da eher ein Loch in der Erkennung der Rekursion als einen "guten Grund", nur die Rückkopplung auf P1 zu bemeckern?

Gruss, Heinileini
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der "Trick", vom Ausgang des ArithmetikBausteins via AnalogVerstärker auf einen der 4 Parameter des ArithmetikBausteins rückzukoppeln, wird von der LOGO nur für die Parameter P2 .. P4 zugelassen, aber bei P1 als Rekursion erkannt!?!?!
Irgendwie vermute ich da eher ein Loch in der Erkennung der Rekursion als einen "guten Grund", nur die Rückkopplung auf P1 zu bemeckern?
Normalerweise sind Rekursionen, die aus einem Mix von Verdrahtung und Verweis bestehen, durch besagte Zyklusverzögerung auch ohne Merker/Ausgang zulässig.

Unzulässig sind direkte Rekursionen nur aus Verdrahtung oder nur aus Verweisen (außer obig genannten).
(Bis zur 0BA7 wurden die Verweise übrigens noch direkt angegeben und nicht mit Linien gezogen.)

Die Rekursion auf P1 ist möglich, wenn erst der Verweis und dann die Verdrahtung angelegt wird.
Manchmal kommt's einfach nur auf die Reihenfolge beim Anlegen an.
Das betrifft z.B. auch die Abarbeitung von parallelen Bausteinen.
Hab' da schon mehrfach unterschiedliches Verhalten (besonders beim Anlegen von analogen FIFOs) festgestellt.
Allerdings leider ohne die wirkliche Ursache im Detail dann anschließend genau reproduzieren zu können. :(
 
Zuletzt bearbeitet:
Zurück
Oben