Jump to content
  • 0

Automatisch Lampe anschalten, wenn Tür offen ist


Dainara

Question

Also das mit dem IC versteh ich scheinbar nüberhaupt nicht,

hab mich mal entschieden eine ganz simple einfache Steuerung mit dem IC zu machen

Wenn die Tür offen ist sollen 2 Lampen angehen die mit einem BatchWriter verbunden sind. Aber ich bekomme das mal garnicht zum laufen

alias Tuer d0
alias Licht d1
alias Offen r0

start:
1 Offen Tuer Open

Lichtan:
brgt Offen 0 1
s Licht Setting 1

funktioniert nicht, hab mehree befehle versucht aber hab ständig eine 0 ?

 

Link to comment

3 answers to this question

Recommended Posts

  • 0

Hey,
ich hab den Beitrag mal in ein neues Thema verschoben, weil es ja ein neues Problem ist, das mit der Kühlung nichts mehr zu tun hat ?

Probier doch mal folgendes:
 

alias Door d0
alias Light d1
alias Status r0

start:
l Status Door Open

breqz Status 3
s Light Setting 1
j restart
s Light Setting 0

restart:
yield
j start

 

vor 22 Stunden schrieb Dainara:

1 Offen Tuer Open

Das sieht aus als ob du eine 1 ("Eins") geschrieben hättest. Richtig wäre ein kleines L für "Load". Wenn es wirklich eine 1 war, dann solltest du einen Fehler erhalten haben beim Starten von dem Programm.
Einen Batch Writer kannst du nicht direkt beschreiben. Du musst ein Memory Kit beschreiben (dafür die Setting-Variable) und dieses Memory Kit beim Batch Writer als "Input" auswählen. Der "Output" sind dann Geräte der Kategorie Lampe.

 

Jetzt zur Erklärung:

  • Wir benennen zunächst unsere beiden Geräte und die Status-Variable, in die wir den Status der Tür speichern
  • unter "start:" laden wir den aktuellen Wert der "Open" Variable der Tür in unsere Variable Status
  • Mit breqz prüfen wir den Status und springen dann relativ weiter (das r in den Befehlen steht in der Regel für "relative", sprich ausgehend von der aktuellen Zeile)
    • breqz heißt: Wenn a (hier "Status") gleich 0 ist dann springe zu b (hier 3 - relativ gesehen)
    • auf Deutsch: Wir springen 3 Zeilen weiter, wenn die Tür zu ist und kommen somit in der Zeile raus, die das Licht wieder ausschaltet
  • Schlägt die Überprüfung von breqz fehl, d.h. die Tür ist offen (1 ist nicht gleich 0) dann geht das Programm einfach in die nächste Zeile und dort wird das Licht eingeschaltet
  • Wurde das Licht angeschaltet springen wir zu "restart:" um das Ausschalten der Lampe zu umgehen. Dort wird 1/2 Sekunde gewartet (der Status der Tür kann sich sonst nicht aktualisieren) und dann geht das Spiel von vorne los

Grundsätzliches:

  • Bei den Befehlen wird immer in die nächste Zeile gesprungen, wenn die Überprüfung "Falsch" ergibt. Nur wenn die Überprüfung "Wahr" ergibt wird in die angegebene Zeile gesprungen (entweder absolut oder relativ).
  • In jedem Programm sollte irgendwo (idealerweise am Ende) ein yield stehen, um das Programm kurz zu pausieren. Ohne diese Pause kann der Status von Geräten nicht richtig ausgelesen bzw. beschrieben werden, weil er sich nicht korrekt aktualisieren kann (um den aktuellen Wert einlesen zu können muss man kurz Pause machen, dass der Wert auch Zeit hat sich zu aktualisieren)
Link to comment
  • 0

entweder ich bin zu blöd oder es geht nicht, der Mem Speicher wird stetig mit einer 1 beschrieben, das IC zeigt stetig eine 0 an  und es ist volkommen egal was die Tür macht

Alles klar, ich war definitiev zu blöd ?

jetzt geht es, man müsste auch wissen dass man das screipt mit dem export Button auf dem Bildschirm übertragen muss ^^

hab das zufällig irgendwo gelesen

vielen Dank, jetzt kann ich weiter experimentieren und weiteren 100000 tode sterben ^^ hihihi

Edited by Dainara
Link to comment
Der letzte Beitrag war vor 1199 Tagen. Überlege dir ob es vielleicht sinnvoller ist ein neues Thema zu starten.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Beachte auch unsere Privacy Policy.