Probier mal Sendebedingung nicht automatisch, Senden bei Impulseingang, der Ausgang geht dann auf Eingang 1
Ankündigung
Einklappen
Keine Ankündigung bisher.
MDT Logikmodul: wie einfachen Zähler realisieren?
Einklappen
X
-
Muss ich morgen nochmal schauen, mein ETS-Laptop habe ich erstmal weggepackt und nach mir nach den Schreck eine Marille gegönnt, in meinem Alter sind solche Überraschungen nicht gut
Senden nur bei Impuls hatte ich eingestellt - siehe Bild vorne "Senden bei Impulseingang - sende Ausgang bei "Ein"? Ich finde da keine Schleife. Die GA des Impulseingangs war während der ganzen Zeit nicht 1, da dürfte eigentlich gar nichts passieren. Ich vermute eher, dass da irgendwas beim Start undefiniert ist und es mit Rückführung der gleichen GA auf Ein- und Ausgang zusammenhängt.Zuletzt geändert von dreamy1; 16.08.2023, 21:13.
Kommentar
-
Warum sollte er, der hat sich doch aufgrund des fehlenden Impulses am Eingang doch gar nicht geändert? Ich stehe aufm Schlauch :-(
Beim Start ist der Ausgang = Eingang = 0 (bzw. noch undefiniert) und der Impulseingang = 0 (bzw. noch undefiniert). Erst wenn ein EIN auf dem Impulseingang kommt (Flankenwechsel), ändert sich da erstmalig der Ausgang von 0 auf 1 (falls das LM mit 0 am Ausgang startet). Und da er sich geändert hat, wird er einmalig gesendet. Dann müsste doch wieder solange Ruhe sein, bis das nächste EIN auf dem Impulseingang kommt und dann wird eine 2 gesendet weil sich der Ausgang wieder geändert hat usw...
Ich mache das bei allen Kanälen so, dass nur gesendet wird, wenn sich der Ausgang (also der interessante Wert) geändert hat. Das ist in der Regel ja der Wert, der weiterverarbeitet wird. Je nach Logik kann sich ja ein Eingang ändern, der Ausgang bleibt aber gleich - da würde ja sonst jedesmal eine unnötiges Telegramm folgen, wenn man bei jeder Eingangsänderung den Ausgang sendet.
So zumindest mein Verständnis. Wo liegt der Denkfehler?Zuletzt geändert von dreamy1; 16.08.2023, 21:54.
Kommentar
-
Zitat von dreamy1 Beitrag anzeigenIch mache das bei allen Kanälen so, dass nur gesendet wird, wenn sich der Ausgang (also der interessante Wert) geändert hat.
Du sendest ja über den Impulseingang.
Zitat von dreamy1 Beitrag anzeigenWo liegt der Denkfehler?
Die Sendebedingung macht auch das, was da steht: Die sendet bei Änderung - und das ist Dein Problem.
Gruß, Waldemar
Kommentar
-
Hallo Waldemar,
danke, ich raffe es leider nicht. Der Impulseingang war doch die ganze Zeit 0, also wurde weder addiert noch hat sich der Ausgang und damit der Eingang geändert.
Das mit dem TOR verstehe ich auch nicht. Ich dachte der Impulseingang ist der Auslöser für die einmalige Addition?Zuletzt geändert von dreamy1; 17.08.2023, 09:08.
Kommentar
-
Weil Du den Ausgang auf "Senden bei Änderung" stehen hast.
Mach doch mal einen Test, um das Grundverhalten vom Logikmodul zu verstehen (das weiß ich auch nicht auswendig, das weiß ich nur bei meinem Logikmodul):
Nimm die Rückkopplung vom Ausgang auf Eingang weg, lass sonst alles so wie es ist (also auch Senden bei Änderung) und schaue Dir im Gruppenmonitor an, was das Logikmodul nach einem Neustart sendet. Ich würde vermuten, dass es dann eine 0 oder eine 1 sendet. Das würde sofort erklären, warum es dann unendlich weiter geht, sobald die Rückkopplung da ist.
Dann machst Du das "Senden bei Änderung" auf "nicht automatisch" und schaust nochmal den Neustart. Es wird nichts passieren. Dann schickst Du einen Trigger EIN auf den Impulseingang und es wird eine 0 oder 1 gesendet. Beim erneuten Trigger wird wieder der gleiche Wert gesendet.
Wenn Du jetzt die Rückkopplung wieder zufügst, wird beim Trigger schön gezählt werden.
Gruß, Waldemar
Kommentar
-
Zitat von dreamy1 Beitrag anzeigenIch dachte der Impulseingang ist der Auslöser für die einmalige Addition?
Gruß, Waldemar
Kommentar
-
Ihr versteht mich nicht :-)
Schaut nochmal aufs Bild vorne:
- Sendebedingung: Änderung am Ausgang --> das Zählwert-KO wird gesendet, wenn es sich geändert hat (es wird aber nicht neu gerechnet, das wird ausschließlich über den Impuls angestoßen*)
- Sende bei Impulseingang - sende Ausgang bei Ein --> wenn ein Impuls kommt (EIN auf den IMPULSeingang, wird addiert und dann das neue Zählwert-KO des Ausgangs gesendet
Wenn das o.g. so richtig wiedergegeben ist, dann dürfte da auch mit der Rückkopplung der Zähler niemals loslaufen, ohne dass ein EIN auf den Impulseingang kommt.
hjk hatte das aber bestätigt, dass nur beim Impuls gerechnet wird. Der Impuls war aber nie da.
*: Das wäre der einzig für mich plausible Grund für eine Schleife - nämlich dann, wenn "Sendebedingung : Änderung am Ausgang" bedeutet, dass damit auch eine Berechnung ausgelöst wird (unabhängig vom Impulseingang). Dann wäre das aber grob missverständlich.
Zitat von mumpf Beitrag anzeigender Impulsausgang sendet einfach nur den Wert, der im KO steht.
Kommentar
-
Zitat von dreamy1 Beitrag anzeigenhjk hatte das aber bestätigt, dass nur beim Impuls gerechnet wird. Der Impuls war aber nie da.
Nimm die Einstellungen aus Post #16 und gut ist.
Hier nochmal:
Sendebedingung: "nicht automatisch"
Senden: "bei Impulseingang"
Kommentar
-
So, ich habe jetzt die Sendebedingung auf "nicht automatisch" gesetzt und alles läuft wie es soll. Danke mumpf und hjk für die Hilfe!
Das heisst jetzt aber:
Das Logikmdodul rechnet trotz Verwendung des Impulseingangs auch, wenn dieses keinen Impuls bekommt. Für mich ist das ein Bug oder zumindest sehr missverständlich formuliert, was die "Sendebedingung" angeht.
Unter "Sendebedingung: bei Änderung Ausgang" verstehe jedenfalls ich, dass hier lediglich ein Telegramm mit dem aktuellen Ausgangswert gesendet wird, wenn der sich eben geändert hat und nicht auch eine Berechnung auslöst, obwohl die Logik nur impulsgetriggert erscheint!Zuletzt geändert von dreamy1; 17.08.2023, 14:10.
Kommentar
Kommentar