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

Re: Rechenfehler?? oder was ganz anderes... Kategorie: Programmierung (von Markus - 24.08.2005 16:20)
Als Antwort auf Re: Rechenfehler?? oder was ganz anderes... von krassos - 24.08.2005 15:28
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
Hallo krassos!
Ja, dass war nen sehr Guter Tip, es klappt nun bei mir! Habe einfach alles x1000 genommen!

vorher hat mein Controller bei dem unteren Beispiel geguckt ob

125 V < 25 Volt ist also 0 gesetzt
62V < 25 Volt ist, also 0
31V < 25V ist, also 0
15V < 25V ist, also 1 und 25-15 gerechnet, also 10 dann
7V < 10 also 1, und 10-7 gerechnet usw. Ich dachte halt dass er die Kommastellen mitrechnet...

nun macht er folgendes!

125000<25000 -->0
62500<25000 -->0
31250<25000 -->0
15625<25000 -->1 und 25000 - 15625 = 9375 dann
7812<9375 -->1und 9375-7812 =1563
3906<1563 -->0 usw!

men sieht schon dass da völlig andere Ergebnisse zustande gekommen sind und je kleiner desto
ungenauer!
Ich lese übrings die Spannung per Drehgeber ein...
Besten Dank, markus







>
> > Hallo krassos!
> > Dass könnte schon dass Problem sein! Leider habe ich keine Ahnung was du jetzt mit Digits meinst!
> > Wenn der Controller mir natürlich bei 1000V/16  62 anstatt 62.5 ausgibt und dass bei den anderen
> > nachfolgenden Werten auch noch kann ich mir vorstellen dass die Ungenauigkeit daher kommt!
> > Aber wie löse ich dieses Problem??
> > wie setzte ich die 1000V auf 1000000digits??
> > Markus
>
> Hallo Markus,
>
> wie kommt denn der Spannungswert in den Controller? Misst Du die Spannung,
> oder liest Du sie aus einem anderen System aus oder gibst Du diese von Hand vor?
>
> Wenn Du einen Wert umskalieren möchtest, mu�t Du Ihn nur mit dem Skalierungs-faktor multiplizieren.
> In Deinem Beispiel also Skalierung 1000.
>
> 1000V x 1000 = 1000000 (Digits)
>
> Jetzt kannst Du auch korrekt dividieren:
>
> 1000000 : 2 = 500000
> 500000   : 16 = 31250
>
> Die Kommasetzung ist dann wohl kein Problem bei einer evtl. Anzeige.
>
> Alternativ kannst Du die Berechnung auch gleich in FLOAT erledigen.
> Dauert halt ein paar Mikrosekunden länger.
>
> GruÃ? krassos


    Antwort schreiben


Antworten: