Jump to content

Recommended Posts

Hier stelle ich euch die Programme ein, die wir in den Tutorials oder den Let's Plays verwendet haben. Sollten Fragen, Wünsche oder Anregungen zu einem Programme auftreten könnt ihr gerne ein Thema aufmachen. Schreibt dann bitte dazu um welches Programm es geht.

Das Thema hier ist geschlossen, um eine gute Übersicht über die Programme zu haben, ohne sich durch viele Kommentare wühlen zum müssen, um bis zum nächsten Programm zu kommen.

Link to comment

Automatische Filterung + Anzeige des Filterstatus

Mit dem untenstehenden Programm können zwei Filteranlagen gleichzeitig ausgewertet und gesteuert werden. Es wird zunächst geprüft, ob das eingestellte Gas in der Zuleitung ist und abhängig davon wird die richtige Filteranlage gestartet. Zeitgleich wird der Verbrauch der Filter auf einem Dioden Slider dynamisch angezeigt.

Das Programm beschreibt die Schrauben mit einem Hilfetext, so dass man einfach erkennen kann wo welches Gerät anzuschließen ist. Die Filtereinheiten und Dioden sind mit A und B bezeichnet. Man muss nur darauf achten, dass A zu A und B zu B passt, sonst werden womöglich die Dioden mit dem falschen Status beschrieben und man hat verfälschte Werte.
Im Configbereich (nach den alias-Statements) kann man das zu filternde Gas bei RatioA und RatioB einstellen. Hat man nur eine Filteranlage angeschlossen kann man RatioB unverändert lassen, da es nicht ausgewertet wird.

alias FilterAnl d0
alias FilterA d1
alias FilterB d2
alias DiodeA d3
alias DiodeB d4
alias RatioA r0
alias RatioB r1
alias FilterA.Slot1Q r2
alias FilterA.Slot2Q r3
alias FilterA.SlotGQ r4
alias FilterB.Slot1Q r5
alias FilterB.Slot2Q r6
alias FilterB.SlotGQ r7
alias FilterA.Slot1O r8
alias FilterA.Slot2O r9
alias FilterA.SlotGO r10
alias FilterB.Slot1O r11
alias FilterB.Slot2O r12
alias FilterB.SlotGO r13

start:
bdnsal FilterAnl restart
# edit this for FilterA
l RatioA FilterAnl RatioPollutant
# edit this for FilterB
l RatioB FilterAnl RatioVolatiles
################################
##### do not edit below ########
################################
bdnsal FilterA FilterB # do we have Filter A?
ls FilterA.Slot1Q FilterA 0 Quantity
ls FilterA.Slot2Q FilterA 1 Quantity
ls FilterA.Slot1O FilterA 0 Occupied
ls FilterA.Slot2O FilterA 1 Occupied

# check if filter A needs to be started
brgtz RatioA 3
s FilterA On 0
jr 3
s FilterA On 1
# check status for Filter A
add FilterA.SlotGQ FilterA.Slot1Q FilterA.Slot2Q
and FilterA.SlotGO FilterA.Slot1O FilterA.Slot2O
breq FilterA.SlotGO 0 2
div FilterA.SlotGQ FilterA.SlotGQ 2
div FilterA.SlotGQ FilterA.SlotGQ 100
s DiodeA Setting FilterA.SlotGQ

# check if filter B needs to be started
filterB:
bdnsal FilterB restart
ls FilterB.Slot1Q FilterB 0 Quantity
ls FilterB.Slot2Q FilterB 1 Quantity
ls FilterB.Slot1O FilterB 0 Occupied
ls FilterB.Slot2O FilterB 1 Occupied

brgtz RatioB 3
s FilterB On 0
jr 3
s FilterB On 1
#check status for filter B
add FilterB.SlotGQ FilterB.Slot1Q FilterB.Slot2Q
and FilterB.SlotGO FilterB.Slot1O FilterB.Slot2O
breq FilterB.SlotGO 0 2
div FilterB.SlotGQ FilterB.SlotGQ 2
div FilterB.SlotGQ FilterB.SlotGQ 100
s DiodeB Setting FilterB.SlotGQ

restart:
yield
j start

YouTube Video:

Der Code wurde überarbeitet und stimmt nicht mehr zu 100% mit dem im Video gezeigten überein. Veränderungen beziehen sich auf Codeverbesserungen und Fehlerbereinigung. Zusätzliche Funktionen wurden nicht eingeführt.

Credits:
FinFanFinn (YT): Bug - Sprungmarke falsch platziert

  • Like 2
Link to comment
  • 1 month later...

Temperaturausgleichsraum + automatische Temperaturregelung in Tanks

Im ersten Programm wird der automatische Ausgleich der Temperatur im gewünschten Raum reguliert. Die Schrauben werden mit den benötigten Bauteilen beschriftet und es wird nur 1 Bausatz für die Programmierung benötigt (1x Housing, 1x programmierbarer Chip).
Ansonsten werden benötigt:

  • 2x Gas Sensor
  • 2x Logic Memory Kit
  • 2x Logic I/O (Batch Writer)

Die Batchwriter müssen so eingestellt werden, dass sie die Werte der entsprechenden Memory Kits an die Wall Heater (MemoryA) bzw. Wall Cooler (MemoryB) übergeben. Die Gassensoren müssen jeweils an einer Schraube eingestellt werden (um die Durchschnittstemperatur zu errechnen). Die Sensoren sollten an gegenüberliegenden Enden des Raumes verbaut werden.

An die Wall Cooler muss natürlich noch ein entsprechendes Rohr mit Verbindung nach Außen angeschlossen werden um die aufgeheizten Kühlgase wieder abkühlen zu können.

alias Gas.Sensor1 d0
alias Gas.Sensor2 d1
alias MemoryA d2
alias MemoryB d3
alias RegTemp1 r0
alias RegTemp2 r1
alias Temp.Switch r2
alias Temp.Target r3
alias Mem.Status r4


move Temp.Target  298
start:
l RegTemp1 Gas.Sensor1 Temperature
l RegTemp2 Gas.Sensor2 Temperature
add RegTemp1 RegTemp1 RegTemp2
div RegTemp1 RegTemp1 2

heat:
l Mem.Status MemoryA Setting
sub Temp.Switch Temp.Target 10
sle Temp.Switch RegTemp1 Temp.Switch
or Temp.Switch Temp.Switch Mem.Status
s MemoryA Setting Temp.Switch
sle Temp.Switch RegTemp1 Temp.Target
beq Temp.Switch 1 cool
s MemoryA Setting 0

cool:
l Mem.Status MemoryB Setting
add Temp.Switch Temp.Target 10
sge Temp.Switch RegTemp1 Temp.Switch
or Temp.Switch Temp.Switch Mem.Status
s MemoryB Setting Temp.Switch
sge Temp.Switch RegTemp1 Temp.Target
beq Temp.Switch 1 restart
s MemoryB Setting 0

restart:
yield
j start

 

Das folgende Programm macht nur in Verbindung mit dem obigen Programm sind und steuert die Temperatur in den Tanks. Es wird immer eine Zieltemperatur von ~ 25 Grad Celsius angestrebt. Für den Ausgleich der Temperatur (Kühlen oder Heizen) wird die Temperatur im Raum mit in Betracht gezogen und der Ausgleich nur dann gestartet, wenn der Raum sich in einem Rahmen von ~ 15 Grad Celsius bis ~ 35 Grad Celsius bewegt.
Für jeden Tank wird 1 Bausatz zur Programmierung benötigt (1x Housing und 1x programmierbarer Chip).
Was wird zusätzlich benötigt:

  • 3x Volumenpumpen
  • 1x Pipe Analyzer
  • 1x Gas Sensor (sollte im Raum schon vorhanden sein aus dem obigen Programm)
alias Tank d0
alias Pump.Start d1
alias Pump.Mid d2
alias Pump.End d3
alias Sensor1 d4
alias Analyser d5
alias Tank.Temp r0
alias Sensor1.Temp r1
alias Analyser.Press r2
start:
l Tank.Temp Tank Temperature
l Sensor1.Temp Sensor1 Temperature
l Analyser.Press Analyser Pressure

ble Sensor1.Temp 283 off
bge Sensor1.Temp 308 off
ble Tank.Temp 283 temperature
bge Tank.Temp 308 temperature
j off

temperature:
s Pump.Start On 1
s Pump.Mid On 1
s Pump.End On 1
j restart

off:
s Pump.Start On 0
s Pump.Mid On 0
brgtz Analyser.Press 2
s Pump.End On 0

restart:
yield
j start

 

Link to comment
  • 2 weeks later...

Tank Befüllung steuern

alias VentilEin d0
alias VentilAus d1
alias Tank d2
alias Regulator d3
alias Analyser d4
alias Generator d5
alias Tank.Pressure r0
alias Pipe.Pressure r1
alias Ventil.Status r2
alias Gen.Status r3

define Tank.Min 500
define Tank.Max 10000

start:
bdnsal VentilEin restart
bdnsal VentilAus restart
bdnsal Tank restart
bdnsal Regulator restart
bdnsal Analyser restart

l Tank.Pressure Tank Pressure
l Pipe.Pressure Analyser Pressure
l Ventil.Status VentilEin On
l Gen.Status Generator On

brnez Gen.Status 3
s VentilAus On 0
jr 2
s VentilAus On 1

# check for correct Tank Pressure
brge Tank.Pressure Tank.Min 3
s VentilEin On 1
jr 3
brle Tank.Pressure Tank.Max 2
s VentilEin On 0

sgtz Pipe.Pressure Pipe.Pressure
seqz Ventil.Status Ventil.Status
and Ventil.Status Ventil.Status Pipe.Pressure
brgtz Ventil.Status 3
s Regulator On 0
jr 2
s Regulator On 1

restart:
yield
j start
Link to comment
Der letzte Beitrag war vor 1549 Tagen. Überlege dir ob es vielleicht sinnvoller ist ein neues Thema zu starten.
Guest
This topic is now closed to further replies.
  • 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.