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 Alex, > > > > > ich habe mir vor einiger Zeit eine C-Control II zugelegt, mir mit der Zeit ein Applicationboard drum herum gebaut > > > (alles was ich brauche) und scheiter nun leider so ein wenig an der Programmierung. > > > Oft komme ich mit lesen und fragen irgendwie weiter... aber nun bäuchte ich professionelle Hilfe :-) > > > Also, ich möchte eine Art Kennfeld erstellen, in dem eine Ausgangsvariable von 2 Eingangsvariablen > > > abhängt; ich messe z.B. Spannung 1 und Spannung 2, und mein Ausgabewert ist Spannung 3. Mit dem Stichwort Array > > > kam ich via Internetrecherche nur bedingt weiter, da C++ in dieser Hinsicht ja doch etwas anders > > > funktioniert und die C-Control laut Handbuch nur eindimensionale Arrays unterstützt. Also kurzum: Ich > > > komme als motivierter Laie mit dem Handbuch nur Mühsam zurecht. > > > Daher meine Bitte an Euch: Ich erwarte nicht daß mir hier einer ein Programm runterschreibt, aber > > > für eine Literaturempfehlung oder noch vielmehr ein BEISPIELPROGRAMM, das diese Problematik bearbeitet, > > > wäre ich sehr dankbar! > > > > Rudimentär gesehen kann die CC2 keine Mehrdimensionalen Arrays. > > Technisch gesehen jedoch schon. > > Die Frage ist nur, wie groß dieses Array sein muß. > > Als Variable kann man beispielsweise ein zweidimensionales Array in C2 folgendermaßen anlegen: > > <code> > > type meinArray > > { > > int y[64]; > > } > > > > meinArray x[64]; > > </code> > > Das wäre ein Beispiel für ein zweidimensionales Integer-Array mit 64 x 64 Feldern. > > Und so wird z.B. darauf zugegriffen: > > <code> > > x[0].y[1]=12345; > > x[5].y[4]=6789; > > </code> > Diese Lösung gefällt mir sehr, nur habe ich ja Spannungs- bzw. Frequenzsignale als Variablen, und > nicht [1], [2] oder [3].... > lese ich dann erst x als Spannungssignal ein und dann mein Y als Frequenz? Mein Ergebnis ist z.B. > nicht 12345 sondern ein Befehl der nen Digitalport schaltet, kann ich diesen direkt hinter das "="-Zeichen schreiben?? > > > Sei aber vorsichtig it der Größe. Die CC2 hat "nur" 64kB RAM. > > Schon einfache Mehrdimensionale Arrays können sehr groß werden. > > Das obige Array hat beispielsweise eine Größe 64 x 64 x 2 Byte= 8192Byte = 8kB > > Auf dieselbe Weise könnte man auch dreidimensionale Arrays aufbauen. > > Aber hier kommt man sehr schnell an die Grenzen des RAMs, so daß man > > dann eher große externe Speciher benötigt. > > (Ein dreidimensionales Integer-Array mit z.B. 64 x 64 x 64 Feldern würde 512kB benötigen.) > > > > Auch über Konstanten-Arrays könnte man mehrere Dimensionen verwirklichen. > > Dies jedoch nur über den mathematischen Umweg. > > D.h., Du benutzt ein eindimensionales Array als zweidimensionales. > > Der Vorteil hier wäre jedoch, daß 128kB für konstanten bereitstehen. Zusätzlich > > könnte man zwei komplette Flashsegmente (ebenfalls 128kB) dafür "mißbrauchen". > > Ein einfaches Bsp. für ein kleinesKonstanten-Array, das zweidimensional genutzt wird: > > (5x5 Felder) > > <code>const Array[]= 1, 2, 3, 4, 5, > > 11,12,13,14,15, > > 21,22,23,24,25, > > 31,32,33,34,35, > > 41,42,43,44,45; > > const Offset=5; > > > > function getArray(int x, int y) returns int > > { > > return Array[x+(y*Offset)]; > > } > > </code> > > Auf das Array wird dann einfach über die Funktion getArray() zugegriffen: > > <code> wert=getArray(0,4); //erste Spalte, fünfte Zeile > > </code> > > > Ist vom "Platz" bzw Speicher her interessanter.... > > > Die Frage ist aber, ob das das ganze überhaupt benötigst, oder, ob sich > > Deine Aufgabe evtl. auch rechnerisch löschen läßt. > > Beschreib' mal grob, für was Du vorhast, vielleicht gibt's eine ganz einfache Lösung > > unter Verwendung einer Formel. > > Ich bin ein sog. Ventilaffe und möchte ein Einspritzventil antakten. Das funktioniert super mittels den > Digitalausgängen. > Nun soll der Wert, der von Last (Spannungswert zw.0-5V) und Drehzahl abhängt (Frequenz), in einem > Kennfeld abgelegt werden, welches > vorher experimentell ermittelt wird. Mit meinen Informatikkenntnissen, die im Maschinenbaustudium > nicht gerade zu den Schwerpunkten zählen, wollte ich das echt schon mit lauter Schleifen lösen. > Das dies natürlich nicht die eleganteste und nicht die übersichtlichste Lösung ist, ist mir schnell klar geworden. > Was die Größe des Kennfeldes angeht denke ich dass je 30 Werte jeder Variablen genügen würden; ich > will nicht ausschließen das sich dieses Problem mittels einer Formel lösen läßt, mir erscheint die Kennfeldlösung > mittels Arrays sehr elegant, und sie reizt mich auch.... > > Was "taugt" denn das Buch "Messen steuern und Regeln mit C-Control"?? > > Also erstmal vielen vielen Dank für die ausführliche Antwort. Das hat mich schonmal weiter gebracht. > Werde gleich weiterprobieren, nur ist das mit dem Probieren so eine Sache... wenn man so gar keinen Erfolg sieht > verliert man schnell die Lust... ich bin aber Lernwillig und Ehrgeizig.... > > > > > Vielen Dank schonmal im Voraus! > > Gruß Alex
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB