Probleme mit Normierung

tymanis

Level-1
Beiträge
140
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich könnte mal wieder Hilfe gebrauchen.

Ich arbeite in einem Programm mit Werten, die alle als Integer eingelesen werden und als Integer auch wieder ausgegeben werden müssen. Eine Temperatur ist dann z.B. 185 (18,5°C)
Als erstes will ich im Programm die Werte normieren. Dann darf das Programm mit realistischen Werten arbeiten und für die Ausgabe würde ich das ganze dann wieder umnormieren.

Jetzt steh ich aber in 2 Punkten auf dem Schlauch.

Um die Daten richtig zu interpretieren gebe ich in der Variablentabelle alle EWs als INT an.
Muss ich jetzt zum Umwandeln Merker benutzen ? Die Bausteine in der Biblitothek zum Umwandeln würden anders wohl nicht funktionieren. Oder mach ich einen Fehler ?

Da ich von verschiedenen Bausteinen aus auf diese Werte zugreifen muss, habe ich sie schonmal in einem globalen-DB eingetragen. Wie sind die Variablen dann hier zu deklarieren ?

Hoffe es ist jetzt nicht zu einfach, ich kann heute irgendwie nicht mehr denken :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um die Daten richtig zu interpretieren gebe ich in der Variablentabelle alle EWs als INT an.
Muss ich jetzt zum Umwandeln Merker benutzen ? Die Bausteine in der Biblitothek zum Umwandeln würden anders wohl nicht funktionieren. Oder mach ich einen Fehler ?

Das war nicht mein Problem. Mein Problem ist doch der Datentyp.

Ich habe nur 16bit für die Eingänge zur Verfügung. Es kommt also ein EW10, EW12 und EW14.
Ich müsste das in Gleitpunkte umwandeln, aber der Platz für dann 32bit ist ja gar nicht da.

Ich finde ja überall die Infos dass es geht. Aber niemand sagt oder schreibt, wie ich zu deklarieren habe.

Vielleicht mag mir ja jemand helfen. Bin eben noch genauso Anfänger wie vor 4 Wochen ;)
 
meinst du so was?

L EW10
ITD //wandelt Integer in DoubleInteger
DTR //wandelt DoubleInteger in Real
T DBxy.DBDxx oder MD10 //legt das ganze irgendwo ab (DB oder Merker)
ab jetzt kannst du mit den abgelegten Werten rechnen


Beachte, daß dein neues Format nun 4 Byte braucht, also den nächsten Wert im MD14 ablegen
 
meinst du so was?

L EW10
ITD //wandelt Integer in DoubleInteger
DTR //wandelt DoubleInteger in Real
T DBxy.DBDxx oder MD10 //legt das ganze irgendwo ab (DB oder Merker)
ab jetzt kannst du mit den abgelegten Werten rechnen


Beachte, daß dein neues Format nun 4 Byte braucht, also den nächsten Wert im MD14 ablegen

Und nicht vergessen, daß des EW10 ja eine 185 zeigt statt 18,5. Deshalb noch nach DTR

L 10
/R
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sach mal, du bist doch so ein wannabe SCL-Freak, machs doch damit ...

rTemperatur := INT_TO_REAL(EW10) / 10.0 ;

... Fertig.

Natürlich kannst du EW10 auch durch den Symbolischen Namen der Variable / VAR_IN ... ersetzen.
 
Ich könnte mal wieder Hilfe gebrauchen.

Ich arbeite in einem Programm mit Werten, die alle als Integer eingelesen werden und als Integer auch wieder ausgegeben werden müssen. Eine Temperatur ist dann z.B. 185 (18,5°C)
Als erstes will ich im Programm die Werte normieren. Dann darf das Programm mit realistischen Werten arbeiten und für die Ausgabe würde ich das ganze dann wieder umnormieren.


was sind das denn alles für Werte? wenn es nur 10fache Temperaturwerte sind, brauchst du doch nix machen.
 
@MSB

danke, so hab ich es dann auch gemacht. hauptsächlich ging es mir darum, ob ich noch merker dabei einsetzen muss.
 
Zurück
Oben