Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> > Hallo ich benutze die Control II für die Heizungsteuerung. Die Anzeige auf dem externen LCD, die > > eigentliche Steuerung, die Zeitverwaltung, Datenspeicherung auf 4 Mbit und die Temperaturabfrage der > > 8 Temperaturmodule über den TWBus laufen in verschiedene Treads. > > > > Die Steuerung läuft tadellos bis auf die Tatsache dass nach einiger Zeit sich die Steuerung aufhängt. > > Sobald der Thread für die Temperaturerfassung nicht gestartet wird läuft die Steuerung. Wird der > > Temperaturthread gestartet steht die Steuerung ab und zu nach einigen Minuten jedoch spätestestens > > einigen Stunden. > > > > Hat jemand hierfür eine Erklärung oder ähnliche Probleme? Ich würde mich freuen wenn jemand eine > > Lösung für dieses Problem hat. Bin etwas verzweifelt da´ich schon seit ein paar Woche versuche den > > Fehler zu finden. Kann es zu Timingproblemen kommen wenn da das externe LCD auch über die Ports > > P1 gesteuert wird???? > > > > > > Hier habe ich ein Teil des Temperturthreads abgebildet. > > > > //******************************************** > > function Modemstatus() returns int > > { > > long erg; > > capture global.pf; > > twb.init(); > > erg = twbs.rw_frame(0, allg.Modem_Adresse, 0, 0, 0); > > release; > > return (erg); > > } > > > > function twb_temp(byte adr) returns int > > { > > int Temp; > > string s; > > byte i; > > > > //Temperatur über TWB abfragen > > for i = 1 ... 3 > > { > > capture global.pf; > > Temp = twbs.stemp(adr); > > release; > > if (Temp < 2000) > > break; > > } > > //Temperatur oder Fehler zurück melden > > return(Temp); > > > > } > > > > //**************************************** > > // Temperatur Thread > > //**************************************** > > thread Temperaturen > > { > > int Temp; > > byte i; > > string s1, s2; > > > > //TWB-Bus initialisieren > > Temp = sensor_prog.Modemstatus(); > > allg.anz1 = "Modemstatus:"; > > s1 = "Modemstatus:"; > > if Temp < 2000 > > { > > allg.Einst.Zustand = allg.setBit(allg.Einst.Zustand, allg.z_Twb, allg.OFF); > > allg.anz2 = " OK"; > > s2 = " OK"; > > //anzeige.ausgebenl(s1, s2); > > } > > else > > { > > allg.Einst.Zustand = allg.setBit(allg.Einst.Zustand, allg.z_Twb, allg.ON); > > //Fehlermeldung anzeigen > > allg.anz2 = sensor_prog.ERR[Temp - 2001]; > > s2 = sensor_prog.ERR[Temp - 2001]; > > allg.anz_func = 1; > > } > > > > run 1000; > > > > loop > > { > > if allg.getBit(allg.Einst.Zustand, allg.z_Simu) > > { > > //Temparaturen aus Temperaturvektor nehmen > > // nicht neu setzen > > continue; > > } > > > > if allg.getBit(allg.Einst.Zustand, allg.z_Twb) > > { > > //Temparaturen aus Temperaturvektor nehmen > > // nicht neu setzen > > continue; > > } > > > > //Hier werden die Temperaturen abgefragt und in die Globalen Variablen > > //geschrieben > > > > //Brenner abfragen > > Temp = twb_temp(allg.t_Brenner + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Brenner] = Temp + allg.Einst.Tkorr_Brenner; > > > > //Vorlauf abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Vorlauf + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Vorlauf] = Temp + allg.Einst.Tkorr_Vorlauf; > > > > //Aussentemperatur abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Aussen + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Aussen] = Temp + allg.Einst.Tkorr_Aussen; > > > > //Brauchwasser abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Brauchw + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Brauchw] = Temp + allg.Einst.Tkorr_Brauchw; > > > > //Solar abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Solar_u + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Solar_u] = Temp + allg.Einst.Tkorr_Solar_u; > > //twb.init(); > > Temp = twb_temp(allg.t_Solar_o + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Solar_o] = Temp + allg.Einst.Tkorr_Solar_o; > > > > //Kaminofen abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Kamin + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Kamin] = Temp + allg.Einst.Tkorr_Kamin; > > > > //Heizkreis abfragen > > //twb.init(); > > Temp = twb_temp(allg.t_Heiz + 1); > > if Temp < 2000 > > allg.Temp[allg.t_Heiz] = Temp + allg.Einst.Tkorr_Heiz; > > > > > > sleep 1000; > > } > > //************************************************************ > > > Hallo Horst, > > das kann meiner Meinung eigentlich nur am capture liegen. > Ich würde da mal suchen, evtl. mal weglassen. > Man kann nicht "um Systemfunktionen herum" capturen da diese selbst capture/release benutzen. > > Grüße > Günni
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB