PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simulation nur Fake ???



seadler123
09.07.2004, 21:35
Hi,
ich hoffe diese Frag wurde noch nicht gestellt, habe in der such nichts gefunden.

Also ich habe ein Programm geschrieben um meine Heizung zu steuern, in der Simulation läuft das auch sehr ordentlich, aber sobald ich es in die control Station übertrage und diese dan starte, macht die überhaupt nicht das was die Simulation macht.

Hoffe Ihr habt eine Lösung für mich, denn mein Warm-Wasser ist alle.

ES steuert eine Punpe und eine Gas-Therme entsprechen der messwerte aus dem Warmwasserspeicher und einem Pufferspeicher.

Hier das Programm:
' --- Definitionen ---

' die Tasten
define F1 port[9]
define F2 port[10]
define F3 port[11]
define F4 port[12]


' die LEDs
define LED1 port[13]
define LED2 port[14]
define LED3 port[15]
define LED4 port[16]

' Definition einer Byte-Variable
define mode byte
define egal byte

' zu beginn Stellung Sommerurlaub
mode = 1
egal = 1

' die Relais
define K1 port[7]
define K2 port[8]


' die Temperatursensor-Ports
define T1 ad[5]
define T2 ad[6]


' Variablen zur Speicherung der Temperatur
define temp1 word
define temp2 word


' symbolische Konstanten fuer die Schaltschwellwerte (zehnfache Temperaturwerte)
define PUFFER 650 ' = 65.0 C
define PUFFERHOCH 600 ' = 60.0 C
define WWS 480 ' = 70.0 C


' --- das Programm ---

' Initialisierung
K1 = OFF ' WW Kreislaufpumpe
K2 = OFF ' Gasheizung



LED1 = ON
LED2 = OFF
LED3 = OFF
LED4 = OFF



' Endlosschleife
#loop

' Tastenabfrage für die Sperrung/Freigabe der Gasheizung
if F1 then mode = 1
if F2 then mode = 2
if F3 then mode = 3
if F4 then mode = 4

' AD-Wandlerwert in Temperatur umrechnen
temp1 = 5 * T1 - 250
temp2 = 5 * T2 - 250



' Lampenschaltung
if Mode = 1 then LED1 = ON
if Mode = 1 then LED2 = OFF
if Mode = 1 then LED3 = OFF
if Mode = 1 then LED4 = OFF
if Mode = 2 then LED1 = OFF
if Mode = 2 then LED2 = ON
if Mode = 2 then LED3 = OFF
if Mode = 2 then LED4 = OFF
if Mode = 3 then LED1 = OFF
if Mode = 3 then LED2 = OFF
if Mode = 3 then LED3 = ON
if Mode = 3 then LED4 = OFF
if Mode = 4 then LED1 = OFF
if Mode = 4 then LED2 = OFF
if Mode = 4 then LED3 = OFF
if Mode = 4 then LED4 = ON





' Abfrage der Modi

if Mode = 1 then goto allesaus
if Mode = 2 then goto hochsommer
if Mode = 3 then goto uebergang
if Mode = 4 then goto nurpuffer


' Schleife alles aus
#allesaus
K1 = OFF
K2 = OFF
goto loop

#hochsommer
if temp1 < wws then goto test else goto allesaus

#test
if temp2 < Pufferhoch then goto gasein else goto pufferwarm
goto loop

#gasein
K1 = ON
K2 = ON
goto loop


#Pufferwarm
if temp1 < WWS then K1 = ON else K1 = OFF
K2 = OFF
loop

#nurwwswarm
if temp2 < pufferhoch then goto loop
K1 = ON
goto loop

#uebergang
if temp2 < puffer then K2 = ON else K2 = OFF
if temp1 < WWS then K1 = ON else K1 = Off
goto loop


#nurpuffer
K1 = OFF
if temp2 < puffer then K2 = ON else K2 = OFF
goto loop

recycle
10.07.2004, 02:03
Ein wesentlicher Unterschied zwischen Simulation und der reellen Schaltung ist, dass man an der Simulations normalerweise nichts falsch anschliessen kann.

Könnte es sein, dass du irgendwo einen Fehler in deiner Schaltung hast und es gar nicht am Programm liegt?

10.07.2004, 08:34
Möglich ist grunsätzlich alles, aber da sind ja nur die zwei Thermosensoren und die zwei schaltungen für die Gasheizung und die Pumpe.
Ich prüfe dass aber noch mal.

10.07.2004, 16:59
Habe das Programm jetzt auf die Option Hochsommer gekürzt,
damit läuft de C-Control einwadfrei, schaltet beide Relais je nach Temperaturzuständen.
Also besteht mein Problem darin im Prinzip 4 Programme je nach Taste laufen zu lassen.
Also ich drücke Taste F1 und programm 1 läuft bis ich eine andere Taste drücke, z.B. F2 dann läuft Programm 2 usw.
Wie gesagt in der Simulation läuft das auch einwandfrei.
Sobald ich das oben genannte Programm einspiele und starte leuchtet die LED4 und er Reagiert nur noch auf die Taste F4, solange ich F4 drücke Leuchtet die LED3 wenn ich loslasse wieder LED4.

Kann mir eine(r) Helfen ?????

Michael
10.07.2004, 19:27
Hallo Gast oder seadler123,
Das sieht nach einer falschen Schalterabfrage aus,
Beispiel:

if F1 then mode = 1
Meines Wissens kann der Schalterwert im Programm entweder null oder minus eins sein, die Bedingung, ob F1 true ist, wird also nie erfüllt. Sollte ich mich irren, bitte ich um eine Berichtigung, die C-Control-Zeiten sind halt schon so lange her.
Du solltes also dein Programm erstmal in kleinen Schritten bauen, z.B. wenn ein Taster gedrückt wird, leuchtet eine LED auf?
Vielleicht schaltet dein Taster auch auf Masse?
Das passt dann auch auf das beschriebene Verhalten ;)
Gruss, Michael

P.S.: Die End-Bedingung fehlt, das ist auch ein gern genommener Stolperstein...

seadler123
11.07.2004, 19:08
Hi,
danke an Michael.
Ich habe nochmal "klein" angefangen und festgestellt, das die Simulation genau das gegenteil macht wie die Controll Station.
Also in der Simulation muß es heißen:

if F1 then ...
und die Control Station will haben:
if not F1 then ....

danke an alle die mer helfen wollten.