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 !  

> Liebe Leute! > > Ich benutze die CC2 um per Druckluft Proben von einem Punkt A zu einem Punkt B zu schießen und wieder > zurück. Die Relais der C-Control steuern dabei die Druckluft. Die Zeit, wie lange die Proben in Punkt B > verweilen, kann über die Station eingegeben werden. Wenn die Probe von Punkt B wieder zurückgeschossen > wird, dann erhalte ich eine Anzeige, die mir die Uhrzeit des Ausschusszeitpunkts und die Verweildauer in > Punkt B angibt. Wichtig ist für mich, dass die Verweildauer (<code>akzeit</code>) exakt eingehalten wird > und zusätzlich möchte ich erreichen, dass der Ausschuss zu einer vollen Minute erfolgt. Das Problem ist > nun, dass obwohl der Einschuss richtig erfolgt, die Ausschusszeit laut Anzeige nicht genau auf eine volle > Minute fällt. Mit dem systeminternen Timer messe ich die Verweildauer (<code>deltat</code>) und die > stimmt auch bis auf einige wenige Millisekunden. Warum stimmt die Anzeige des Ausschusszeitpunkts > nicht? > Ich würde mich sehr über eure Hilfe freuen. > Stefan > > Hier noch der gekürzte Quellcode: > > <code>// Variablen zur Zeitmessung werden definiert > type ZeitPunkt > { > system.TIME zeit; > long punkt; > } > > // Funktion zum Einschießen > function EinSchuss(ZeitPunkt Ein) > { > lcdext.clear(); > lcdext.print("Einschuss..."); > stports.setRel(1,1); // Relais 1 wird geschaltet > Ein.punkt=system.timer(); // Systeminterner Timer wird ausgelesen > system.gettime(Ein.zeit); // Zeit wird ausgelesen > sleep einzeit; > stports.setRel(1,0); > } > > // Funktion zum Ausschießen > function AusSchuss(ZeitPunkt Aus, int auszeit) > { > stports.setRel(2,1); > Aus.punkt=system.timer(); > system.gettime(Aus.zeit); > lcdext.clear(); > lcdext.print("Ausschuss..."); > sleep auszeit; > stports.setRel(2,0); > } > > thread main > { > long akzeit; > long deltat; > long test; > ZeitPunkt EinZeit,AusZeit; > > akzeit=AktZeit(akzeit); // hier wird Verweildauer eingelesen > > // Modulodivision, damit Einschuss erst startet, wenn die Ausschusszeit > // auf eine volle Minute fällt > while((system.second()+akzeit) % 60 != 0); > EinSchuss(EinZeit); > test=EinZeit.punkt+akzeit*1000; > stkeyb.waitReleased(); > while(test>system.timer())&(stkeyb.get()==255); > AusSchuss(AusZeit,auszeit); > stkeyb.waitReleased(); > deltat=AusZeit.punkt-EinZeit.punkt; > AusAnzeige(AusZeit.zeit,deltat); // Zeitanzeige > }</code> > > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB