Analogwertverarbeitung

Begonnen von bytebold, 19. November 2007, 09:23:38

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

bytebold

Hallo,

ich habe Werte von einer PT100- Klemme in einen Baustein AIN eingelesen,
das funktioniert, auch negative Werte werden dargestellt.
Nun möchte ich die Werte als String in eine Datei schreiben.
Real_To_StrF bringt aber einen Stringüberlauf bei negativen Werten.
Hat jemand eine Idee oder Lösung ?

Gruß, bytebold

hugo

den fehler kann ich bei mir nicht nachvollziehen.
welche werte hast du beim überlauf an den eingängen und welchen strin bekommst du raus?

hugo

welches N benutzt du und wie lange ist dein string definiert?

bytebold

Hallo,

nachdem ich alle Bausteine gelöscht hatte und nochmals neu eingegeben habe,
kann ich den Fehler auch nicht mehr produzieren.
Ich habe aber immer noch Probleme mit den Werten von den PT100- Klemmen.
Der Meßbereich reicht von -200 bis 850 Grad, das entspricht -2000 bis 8500 dezimal.
Wie muß ich den Baustein AIN parametrieren, damit die Werte stimmen ?
Theoretisch sollte bit 15 ( bei Zählweise bit 0- 15 ) negative Werte kennzeichnen.

Gruß, bytebold

bytebold

Hallo,

nachdem ich den Überlauf wieder hatte und ich ihn hier eingestellt habe,
ist mir nun auch die Ursache klar geworden.
Der String war nur als 4 Zeichen langer String deklariert. Eine Nachkommastelle,
Dezimalpunkt und 2 Vorkommastellen sind schon 4. Bei einer negativen Zahl waren
es dann 5 Stellen, also Überlauf.

Danke, Gruß bytebold 

hugo

die parametrisierung vom AIN hängt von den daten deiner klemme ab.
welche klemme benutzt du
wieviel bits auflösung hat der ad wandler? gibt es ein sign bit?

Bits : BYTE;             dieser wert ist z.B. 12 bei einem 12 bit ad wandler
sign : BYTE := 255;   dieser wert legt fest wo das sign bit ist z.b. 15 oder 255 wenn es kein sign bit gibt.
low : REAL := 0;       unterer wert des messbereichs  in deinem fall -200
high : REAL := 10;     oberer wert des messbereichs   in deinem fall +850

ich würde mal folgende werte testen:
bits = 16
sign = 255
low = -200
high = +850

normalerweise wird das sign bit nicht benutzt