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 habe da ein kleines Programm wo anhand eines Strom´s und einer Spannung 12 verschiedene Bit´s > > gesetzt werden! Leider rechnet mein Controller nicht so wie ich es haben möchte! Dass ausgegebene > > Bitmuster passt anfangs, weicht aber später von meinen selbst errechneten Werten ab! Könnte es sein > > dass ich etwas mit den Zahlentypen falsch mache?? Oder muss ich dort Kommastellen die zustande > > kommen anders berücksichtigen?? Hoffe einer von euch findet dort den Fehler! > > > > Kurz zum Programm! Ich habe eine Spannung die ich in 12 andere Spannungen aufteile, immer durch > > dass doppelte teile dass ich später auf jeden Wert kommen kann! (Nicht stören dass ich vorher > > nochmal teile, hängt mit der Formel zusammen! > > Und ich habe einen Strom (ebenfalls nicht stören, ich teile ihn vorher auch durch 10) > > > > Nun vergleicht der Controller den Stromwert mit dem höchsten Spannungswert, wenn der Spannungs- > > wert kleiner als der Stromwert ist wird der erste Ausgang gesetzt und gleichzeitig ein neuer Stromwert > > berechnet (alter - der Spannungswert der dort hineinpasste... > > > > Dann geht es zur nächsten Abfage, wenn eins gesetzt wurde wird der neue (sonst der alte)Spannungs- > > wert mit der nächsten U Spannung vergleichen usw. hört sich jetzt kompliziert an aber guckt euch dass > > Programm an, ist recht einfach! > > > > die Variable Spannung vorde vorher mit int deklariert... > > > Hallo, > > hier wird wohl ein Teil Deines Problems liegen. > Schau einfach hier mal nach: <a href="http://www.cc2net.de/FAQ/body_faq.html#long-float" target="_blank">FAQ</a> > > Deine Berechnung ist mir auch nicht ganz klar: > Wenn Du zuweist: > <code> > Spannung=1000; //seh ich hier aber nicht!! > </code> > > ist in ganzzahliger Berechnung > <code> > U2 = Spannung/2/8; > </code> > das Ergebnis 62. > > Gehe ich also recht in der Annahme, das Du 1000V=1000000 Digits zuweist? > > Gruß krassos > > > > > > Als Beispiel kommentiere ich mal den eine Spannung von 1000V und einen Strom von 250A! > > > > <code> > > { > > int I; > > long U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12; > > > > I=drehgeberi.wert /10; //250 / 10 = 25 > > U1 = Spannung/2/4; //1000 / 2 / 4 = 125 > > U2 = Spannung/2/8; //1000 / 2 / 8 = 62,5 > > U3 = Spannung/2/16; //=31,25 > > U4 = Spannung/2/32; //=15,625 > > U5 = Spannung/2/64; //=7,813 > > U6 = Spannung/2/128; //=3,906 > > U7 = Spannung/2/256; //1,953 > > U8 = Spannung/2/512; //0,977 > > U9 = Spannung/2/1024; //0,488 > > U10 = Spannung/2/2048; //0,244 > > U11 = Spannung/2/4096; //0,122 > > U12 = Spannung/2/8192; //0,061 > > > > if U1 < I //if 125 < 25 Ist nicht, also wird nichts gesetzt und gerechnet. Stimmt auch noch!! > > { > > pcf.set(modul1,0,1); > > I=I-U1; > > } > > > > if U2 < I //if 62,5 < 25 Ist nicht, also wird nichts gesetzt und gerechnet.Stimmt auch noch!! > > { > > pcf.set(modul1,1,1); > > I=I-U2; > > } > > > > if U3 < I //if 31,25 < 25 Ist nicht, also wird nichts gesetzt und gerechnet.Stimmt auch noch!! > > { > > pcf.set(modul1,2,1); > > I=I-U3; > > } > > > > if U4 < I //if 15,625< 25 Ist wahr, also wird der Ausgang gesetzt und gerechnet.Stimmt auch noch!! > > { > > pcf.set(modul1,3,1); > > I=I-U4; //25 - 15,625 = 9,375 > > } > > > > if U5 < I //if 7,813< 9,375 Ist wahr, also wird der Ausgang gesetzt und gerechnet.Stimmt auch noch!! > > { > > pcf.set(modul1,4,1); > > I=I-U5; //9,375 - 7,813 = 1,562 > > } > > > > if U6 < I //if 3,906< 1,562 Ist nicht, also wird nichts gesetzt und gerechnet.Stimmt als letztes noch!! > > { > > pcf.set(modul1,5,1); > > I=I-U6; > > } > > > > if U7 < I //if 1,953< 1,562 stimmt nicht, aber der Controller setzt mir da trotzdem den Ausgang! > > //Dieses Problem habe ich auch bei anderen Werten, immer zum Schluss ist dass Bitmuster falsch! > > //Dieses zieht sich jetzt auch bis zum Schluss durch, dass Bitmuster weicht immer vom errechneten > > //ab... Woran liegt es wohl??? > > > > { > > pcf.set(modul1,6,1); > > I=I-U7; > > } > > > > if U8 < I > > { > > pcf.set(modul1,7,1); > > I=I-U8; > > } > > > > if U9 < I > > { > > pcf.set(modul2,0,1); > > I=I-U9; > > } > > > > if U10 < I > > { > > pcf.set(modul2,1,1); > > I=I-U10; > > } > > > > if U11 < I > > { > > pcf.set(modul2,2,1); > > I=I-U11; > > } > > > > if U12 < I > > { > > pcf.set(modul2,3,1); > > } > > }</code> > > > > MfG Markus
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB