PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnisfrage: Logik: Funktion BS-Speere



Benutzer
18.05.06, 14:50
Hi!
Hab einen Verständnisfrage zum LogikBaustein: Sperre
Hier der original Code:


5001|9008|2|1|0|0|0
5002|9008|1|1 # Eingang Sperre (1=offen, 0=gesperrt)
5002|9008|2|0 # Eingang Signal
5004|9008|1|0|0|1
5012|9008|0|"EC[2] and EN[1]"|"EN[2]"|""|1|0|0|0


Wenn ich das richtig sehe, dann wird nur ein Signal weitergesendet, wenn Eingang 1 EIN und sich Eingang 2 ändert?

Hintergrund: ich will mehrmals täglich ein EIN-Telegramm ("Signal") senden, und dies halt je nach Betriebsart freigeben oder eben nicht.

Heisst das nun, dass dies so nur im ersten durchlauf funktioniert, und dann die Sperre nix mehr macht?

Sitz ich nun auf dem Schlauch, oder muss ich wegen so ner Lapalie den Baustein umschreiben?
Vorschlag:

5012|9008|0|"EN[1]"|"EN[2]"|""|1|0|0|0

...die Telegrammlogik kann einem ganz schön auf den Geist gehen...

Gruß
Ralf
...der viel lieber SPSst oder linear programmiert...da weis man was amn hat und wo man ist...

Matthias Schmidt
18.05.06, 15:10
Der BS bedeutet:

Wenn EN1=1, also freigegeben, dann wird bei Eintreffen eines Wertes an EN2 (EC2) der Wert von EN2 auf den Ausgang 1 gesendet.

Also genau das, was man von einem Sperrgatter erwarten sollte ;) !

Benutzer
18.05.06, 15:11
soweit war ich bisher schon, aber was passiert, wenn zweimal hintereinander bzw. xmal hintereinander am Signal Werte mit dem gleichen Wert ankommen?

Matthias Schmidt
18.05.06, 15:13
Dann geht das auch auf den Ausgang, werde ich gleich mal auf meinem Demo-HS simulieren.

Benutzer
18.05.06, 15:16
Laut Doku heist EC[2]: " Der Wert am Eingang 2 hat sich geändert"

heist das nun, dass ein Zustandswechsel da war, oder heisst das, dass einfach ein neues Telegramm angekommen ist, also auch wenn es den gleichen zustand hat?

Matthias Schmidt
18.05.06, 15:19
Gute Frage, gleich wissen wir es, HS startet schon....

Matthias Schmidt
18.05.06, 15:25
Versuch macht kluch....

18.05.2006 15:22:44112/99112/0/99SET1sperrausgang
18.05.2006 15:22:49121/45121/0/45SET0freigabe1
18.05.2006 15:22:52121/45121/0/45SET1freigabe1
18.05.2006 15:22:53112/99112/0/99SET1sperrausgang
18.05.2006 15:23:03112/99112/0/99SET1sperrausgang
18.05.2006 15:23:09121/45121/0/45SET0freigabe1
18.05.2006 15:23:11121/45121/0/45SET1freigabe1
18.05.2006 15:23:13112/99112/0/99SET1sperrausgang
18.05.2006 15:23:17121/45121/0/45SET0freigabe1

Demzufolge ist die Doku etwas unglücklich, es ist nicht notwendig, dass sich der Eingang wertmäßig ändert - wie zu erwarten.

Benutzer
18.05.06, 15:37
Danke mal fürs testen! Nen Demo-HS sollt man haben :rolleyes:

hab allerdings noch meine Probleme mit deiner Auswertung.
-->Die Freigabe bleibt immer auf 1, soweit klar.
Warum kommt da zweimal dein Sperrausgang?

Was ist jetzt da was:bahnhof:
SET1freigabe1

Steh voll auf em Schlauch...

Matthias Schmidt
18.05.06, 15:43
http://schmidt213.de:1555/hslist?lst=eibmon1h&user=gast&pw=gast

Schau mal da rein. Ich habe einen Telegrammgenerator gebaut, der sendet alle 10 Sekunden eine 1 an "sperreingang". Wenn ich die Freigabe setze ("Taste Schlafen gehen" in meiner Visu), dann kommt sofort nach sperreingang immer sperrausgang=1 ...

Also genau das, was du wolltest. Einser werden weitergeleitet oder blockiert.

Ok?

Benutzer
18.05.06, 15:54
Jetzt hat es der Ralf kappiert.....:D

Nun, dann ist die Frage geklärt. DANKE!

:o Allerdings mein Programm drum rum macht das noch nicht so richtig.
..Denk noch mal drüber nach, sonst mach ich nen neuen Thread auf mit dem Hauptproblem.

Wichtig war erst mal, dass die EC - Sache geklärt ist, das steckt nämlich auch im RS-Flipflop drin.

Dank und Gruß
Ralf

Gaston
18.05.06, 16:54
EC[2] bedeutet nur dass ein Wert am Eingang eingegangen ist, will man eine Bedingung schreiben die nur "wahr" ist wenn sich der Wert ändert dann lautet die "EN[2] != EA[2]".

Ein Wert geht im Eingang ein wenn ein Wert vom vorherigen Baustein gesendet wurde. Ja ja, ich weiss....logischhhh :D Ist der Ausgang, ein Ausgang eines Moduls dann wird ein Wert gesendet wenn das Modul "gerechnet" wurde intern diesem Ausgang intern ein Wert zugewiesen wurde (natüprlich bei SBC Ausgängen nur wenn der Wert verschieden ist, sprich (AA[x] != AN[x]). Gerechnet wird ein Baustein wenn mindestens ein Eingangssignal eingeht.

Z.Zt ist es wohl leider (leider für mich ;) ), dass jedes Modul pro Eingangssignal berechnet wird. Das heisst wenn innerhalb eines Logikblattes ein Modul ist das durch Berechnung 2 anderer Module 2 Einganbgssignale erhält (1 von jedem Modul) dann wird dieses Modul zwei mal berechnet. Ich hab noch nicht probiert was passiert wenn die 2 Signale von einem Modul kommen. Wenn dann nur einmal berechnet wird, das wäre gut weil dann wäre4 das ein Argument es Grundsätzlich zu ändern.

Der Hintergrund der Anderung ist es dass es füre einen "Gruppieren" Baustein von mir besser wäre wenn in jedem Blatt, jedes Modul nur einmal berechnet würde. Das es keine Schleifen gibt wäre das auch möglich. Der Gruppieren Baustein soll dazu dienen Signale die auf verschiedene EIB Adressen gehen, die jedoch auch alle zuisammen in einer Gruppe sind zu testen. Wenn Auf alle Geräte ein und der gleiche Wert gesendet wurde dann wird nur an die Gruppe gesendet.

intergrund hierfür ist wieder mein Rollladenbaustein wo man für jedes Fenster einen Baustein verwendet. Wird es nun Dunkel geht ein Rolladen nach dem anderen runter (kurz aber merklich), mit dem Baustein könnte man das verhindern.

Gruss,
Gaston