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 Horst, > > > 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. > > anhand des geposteten Ausschnittes ist es recht schwer zu beurteilen. Könnte es sein, dass Du > mit den Captures in einen Deadlock läufst - also bei gesetztem global.pf nochmals in einer der > aufgerufenen Unterfunktionen versuchst das Flag zu capturen? > > Hast Du die Möglichkeit z.B. über die serielle Schnittstelle und ein Terminalprogramm Testausgaben > anzuzeigen? Wenn ja, würde ich versuchen an den kritischen Stellen (capture, release, Funktionseintritt > und Funktionsende) Debug-Ausgaben einzubauen. > > <code> > int debugLevel; // 0 = keine Debug-Ausgabe 9 = max. DebugAusgabe > ... > debugLevel = 3; > .... > function Modemstatus() returns int > { > if debugLevel > 2 doDebugMsg ("Modemstatus: Enter"); > long erg; > if debugLevel doDebugMsg ("Modestatus: capture global.pf"); > capture global.pf; > twb.init(); > erg = twbs.rw_frame(0, allg.Modem_Adresse, 0, 0, 0); > if debugLevel doDebugMsg ("Modestatus: release"); > release; > if debugLevel > 2 doDebugMsg ("Modestatus: Leave"); > return (erg); > } > .... > </code> > > Den debugLevel könntest Du dann zur Laufzeit durch einfache Zeichencodes (an der Stelle an der auch > das Einleiten des Hostmode geprüft wird) über das Terminalprogramm steuern. > > <code> > thread rControl { > byte c; > loop { > wait hwcom.rxd(); > c = hwcom.get(); > if debugLevel > 5{ > string s; > s = "RS232 RCV: "; > str.putint (s, c); > doDebugMsg (s); > } > > if c == 254 { > wait hwcom.rxd(); > if hwcom.get()==254 quit 1;// Hostmode einleiten > } else > if c == 48 { > // debugLevel 0 > debugLevel = 0; > s = "Set debugLevel to: 0"; > doDebugMsg (s); > } else > if c == 49 { > // debugLevel 1 > debugLevel = 1; > s = "Set debugLevel to: 1"; > doDebugMsg (s); > } else > if c == 50 { > // debugLevel 2 > debugLevel = 2; > s = "Set debugLevel to: 2"; > doDebugMsg (s); > } else > if c == 51 { > // debugLevel 3 > debugLevel = 3; > s = "Set debugLevel to: 3"; > doDebugMsg (s); > } else > if c == 52{ > // debugLevel 4 > debugLevel = 4; > s = "Set debugLevel to: 4"; > doDebugMsg (s); > }; > hwcom.flush(); > } > } > </code> > > Die Funktion doDebugMsg sollte dann noch die Systemzeit mit ausgeben. > <code> > function doDebugMsg (string s){ > system.TIME time; > string debugString; > > if (debugLevel){ > system.gettime (time); > debugString=""; > str.putintf(debugString, time.hour, 2); > debugString = debugString + ":"; > str.putintf(debugString, time.minute, 2); > debugString = debugString + ":"; > str.putintf(debugString, time.second, 2); > debugString = debugString + " ["; > str.putlong(debugString, system.timer()); > debugString = debugString + "] : "; > hwcom.print(debugString); > debugString = s; > hwcom.print (debugString); > hwcom.ret(); > } > } > </code> > > > Ich hoffe die Anregung ist für Dich nützlich und Du kannst den Fehler so lokalisieren. Ich selbst habe > damit sehr gute Erfahrung gemacht. > > Beste Grüße > Thomas > > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB