Step 7: Spannungswerte in Temperatur zurückrechnen

Guten Morgen liebe leut,

ich habe mich mal etwas schlau gemacht und habe folgenden Code, welcher funktioniert. Allerdings bin ich mir nicht über alle Programmschritte ganz im Klaren.

[FONT=&quot] O( [/FONT]
[FONT=&quot] L #IN2[/FONT]
[FONT=&quot] L 27648[/FONT]
[FONT=&quot] >I [/FONT]
[FONT=&quot] ) [/FONT]
[FONT=&quot] O( [/FONT]
[FONT=&quot] L #IN2[/FONT]
[FONT=&quot] L 0[/FONT]
[FONT=&quot] <I [/FONT]
[FONT=&quot] ) [/FONT]
[FONT=&quot] = #TEMP6[/FONT]




L #IN2
ITD
DTR
T #TEMP4

L #IN0
L #IN1
-R
L #TEMP4
*R
L 2.764800e+004
/R
L #IN1
+R
T #OUT3
AN #TEMP6
SAVE


Das erste Codefragment macht nix anderes als eine Überprüfung der des Eingangssignals (IN2), ob es innerhalb der zulässigen Messspannung von 0..10V liegt. Das zweite Fragment wandelt die 16bit Ganzzahl in eine 32bit Gleitkommazahl um belegt eine Variable damit. Innerhalb des 3. Fragments kommt es wohl zu einer Normierung. IN0 hat den Wert 2.000000 e+002
IN1 hat den Wert 0.000000 e+000. Warum wird die Differenz davon mit meiner Gleitkommazahl multipliziert um es anschließend durch 27648 Digits zu teilen. Und was macht der Offset? Warum wird da nochmal 0 hinzuaddiert. Das is mir nicht geläufig. Hab auch nicht gefunden was das AN bedeutet. Sicher irgendnen Prüfbefehl?

Ich blick da einfach nicht durch...

Ps.: welche Tag muss ich verwenden um Code zu zitieren?

:(

Mit der Normierung hast du wohl Recht, Sie Analogbaugruppen von Siemens bringen den Wert 27648 bei Vollausteuerung des Eingangs, also bei 10V eines 0-10V-Analogeinganges.

Die Formel oben sollte lauten:

(IN0-IN1)
--------- * Temp4 + IN1 = #Out3
27648

IN0 ist wohl der Maxwert der Skalierung,
IN1 der Minwert und damit gleichzeitig der Offset.

Also, wenn dein Analogeingang als Wert 10000 bringt, sind das bei max. 200 für 27648 ca. 72,338 Eier/Apfel/Birnen, was auch immer ;).
 
Zuletzt bearbeitet:
Zurück
Oben