-> Hier kostenlos registrieren
Hallo und Guten Morgen!
Ich habe natürlich das Forum schon durchsucht, die FAQ durchgelesen, die Siemens-Ausbildungsunterlagen & das Internet durchforstet und keine verständliche Erklärung gefunden.
Mein Problem bezieht sich auf die Skalierung von Analogwerten.
Ich lese das Signal eines Sensors ein. 4mA entspricht 0%, 20mA 100%.
Meine Frage: Wo und an welcher Stelle wird der "Offset" 4mA abgezogen?
Ich hänge mal meinen AWL-Code rein, damit Ihr seht, was ich schon habe. Ist das so ok, oder muß es noch einmal korrigert werden?
(Ich habe leider keine Möglichkeit, das hier auszuprobieren & an den Werten zu sehen, ob das paßt).
L PEW 368 //eingelesener Wert in mA
ITD //wandeln in DINT (von 16bit auf 32bit)
DTR //wandeln in Real (Gleitkommazahl)
L 4.000000e+000 // Offset 4mA von eingelesener Zahl abziehen
-R
L 2.764800e+004 //SPS-Messbereichsendwert laden
/R // Werte dividieren: Im Akku steht nun das Verhältnis
L 1.000000e+002 //0...100 %
*R // Im Akku steht nun % vom Maximalwert
T DB24.dbd0 //Abspeichern im DB24 (Wert X)
In der Doku des Sensors steht seine Auflösung mit 15bit incl. Vorzeichen. An welcher Stelle muß die Geberauflösung von 2^15 einbezogen werden?
Danke im Voraus!
Ich habe natürlich das Forum schon durchsucht, die FAQ durchgelesen, die Siemens-Ausbildungsunterlagen & das Internet durchforstet und keine verständliche Erklärung gefunden.
Mein Problem bezieht sich auf die Skalierung von Analogwerten.
Ich lese das Signal eines Sensors ein. 4mA entspricht 0%, 20mA 100%.
Meine Frage: Wo und an welcher Stelle wird der "Offset" 4mA abgezogen?
Ich hänge mal meinen AWL-Code rein, damit Ihr seht, was ich schon habe. Ist das so ok, oder muß es noch einmal korrigert werden?
(Ich habe leider keine Möglichkeit, das hier auszuprobieren & an den Werten zu sehen, ob das paßt).
L PEW 368 //eingelesener Wert in mA
ITD //wandeln in DINT (von 16bit auf 32bit)
DTR //wandeln in Real (Gleitkommazahl)
L 4.000000e+000 // Offset 4mA von eingelesener Zahl abziehen
-R
L 2.764800e+004 //SPS-Messbereichsendwert laden
/R // Werte dividieren: Im Akku steht nun das Verhältnis
L 1.000000e+002 //0...100 %
*R // Im Akku steht nun % vom Maximalwert
T DB24.dbd0 //Abspeichern im DB24 (Wert X)
In der Doku des Sensors steht seine Auflösung mit 15bit incl. Vorzeichen. An welcher Stelle muß die Geberauflösung von 2^15 einbezogen werden?
Danke im Voraus!
Zuletzt bearbeitet: