Analogwertverarbeitung....???

*Oli*

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe da ein Problem. Ich sitze hier gerade in der Firma und die Aufgabenstellung ist wie folgt. Eine Temperatur einlesen. Das funktioniert auch alles. Nun kommt aber das Problem.



Ich lese den Wert ein....
Dann wird die Ganzzahl von 16 auf 32 Bit erweitert per (ITD).
Dann wird die Ganzzahl 32 Bit auf eine Gleitpunktzahl umgewandelt (DTR)
Dann wird ein neuer Wert geladen..... Aber wie bekomme ich den WERT??? Das ist meine Frage.... Bitte um schnelle Hilfe


Edit:

Ich habe hier grade noch etwas in einem anderem Programm gefunden:
Code:
L     PEW  320                    // Lade PEW 320
      ITD                               // wandelt 16Bit auf 32Bit um (Ganzzahl)
      DTR                               // Ganzzahl (32Bit) in Gleitpunktzahl (32Bit) umwandeln
      L     2.720823e+000               // Lade 2,720823 e+000
      *R                                // multiplizieren mit der Gleitpunktzahl 2720,823
      T     MD    20                    // Ergebniss in Merkerdoppelwort 20
wie komme ich auf die zahl 2,720823e+000?
 
Zuletzt bearbeitet:
Da wird eine konstante Zahl geladen. Wahrscheinlich ist das der Normierungsfaktor, um den eingelesenen Wert zu einem anzeigbaren Temperaturwert zu machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke

aber ich soll meinem Meister erklären, wie man auf diesen Wert gekommen ist....

normalerweise: 2.764800e+00 ist einer von Siemens feststgelegter Wert!!!

das ist was, was man bei Siemens nachlesen kann.... Aber mein Wert ist da anders.....
 
Die 2,720823 ist der Normierungsfaktor. Er hängt mit dem Werteberich deines Sensors zusammen.

Berechnung: Endwert des Sensors in °C entspricht 10V oder 20 mA Der Endwert der Karte ist normalerweise 27648

Normierfaktor =( Endwert in °C oder 0,1°C /27648(Endwert der Karte)
In MD 20 steht bei dir der normierte Wert.
 
Hallo

Kannst Du ein bisschen genauer erklären, was jetzt konkret Dein Problem ist.
Ich gehe davon aus, dass Du direkt vom PEW einen Wert einliest.
Das ist aber nur ein Zahl zwischen 0 bis 27648, S7 wandelt einen Signalwert z.B. 0-10V, 0-20mA, oder 4-20mA so um.
Wenn Du also z.B. einen Temperaturfühler 0-100°C an einen 4-20mA anschliesst, so gibt die Analogkarte den Wert 13824 bei 50°C zurück, es handelt sich also um eine lineare Umrechnung.

war Dir das eine Hilfe?

Gruss
spongebob
 
Zuviel Werbung?
-> Hier kostenlos registrieren
aber ich soll meinem Meister erklären, wie man auf diesen Wert gekommen ist....

normalerweise: 2.764800e+00 ist einer von Siemens feststgelegter Wert!!!

das ist was, was man bei Siemens nachlesen kann.... Aber mein Wert ist da anders.....

Dann solltest du dir mal das PEW ansehen und den tatsächlichen Temperaturwert. Was genau der Programmierer an der Anzeige ausgeben wollte kann ja niemand wissen, aber wahrscheinlich ist, daß er einen Wert ausgeben will, der den tatsächlichen Bedingungen entspricht.

Bsp.:
Wenn also das PEW vom Sensor (bzw. nat. der Analogeingangskarte) einen Wert von 500 bei 100°C bekommen würde, dann könnte man den Wert mit 2 Multiplizieren, also 1000 und hätte die Temperaturanzeige in 10-tel Grad.
 
guten morgen

also das Programm war fertig.... Ist auch schon was älter (Dez. 2007) und der Programmierer hat vergessen, wie der auf den besagten Wert kam. Und das muss ich jetzt heraus finden..... Nur ich komme überhaupt nicht weiter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also das Programm war fertig.... Ist auch schon was älter (Dez. 2007)

Naja, so alt kann es ja nicht sein :)

Aber gib mal ein paar mehr Infos, welcher Temperaturfühler, welche Eingangskarte, direkt angeschlossen oder über einen 4-20 mA (oder 0-10V) Wandler usw.
Vielleicht kommt man ja dann auf den Faktor.

Die analogen Eingangskarten von siemens haben alle einen Grundfehler, vielleicht ist der mit diesem Faktor rausgerechnet.
Ich hatte vor kurzem noch eine Anlage, wo die Temperatur eine Abweichung von 1 Grad bei einer Temperatur von -70 Grad bis 5 Grad bei einer Temperatur von 100 Grad hatte.
 
Md20

im MD 20 steht bei mir: L#38 als dezimal angezeigt. (angabe bei 100ohm)

Normierfaktor berechnung wie gesagt.... Endwert in °C/Endwert der Karte

mein Endwert in °C ist 999°C
mein Endwert der Karte lautet 32.767

laut berechnung: 999°C/32.767 = 0,0304879909665211....... usw.

aber das hat doch nix mit dem angegebenen Normierwert zu tun? oder? ich bin verwirrt.... Helft mir....

Gruß
*Oli*
 
Also, irgendwie is das alles sehr suspekt,, wie wird denn das Ergebnis weiterverarbeitet?
MD 20 kann j so noch kein Temperaturwert sein, da hättest du dan Temperaturen bis 100.000°C - bisschen arg viel :rolleyes:
 
Zurück
Oben