Temperatur_Sollwertvorgabe

Airen

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!

Ich habe folgende Aufgabenstellung:

Es soll ein Temperatursollwert über ein Drehpoti vorgegeben werden.

Das Poti hat eine TempSkala von +50°C bis 250°C und gibt sie in Form einer
Spannung von 0 bis 10V an den Eingangskanal 3, Steckplatz 5.

Die Auflösung der Temperatur soll in 1/10°C an das MW 10 geschrieben werden.

Meine Lösung ist:

Eingangskanal 3, Steckplatz 5 bedeutet EW 277. (ist das richtig?)

Temp.Differenz ist: 200°C bei einer 1/10°C Auflösung nehme ich den Zahlenwert 2000 an.

0...2000 entspricht meiner Spannung 0...10V und 0...27648.
Mein TemperaturOffset von 50°C ist: 500

Die Normierungsvorschrift:

1/10 * (2000/27648 * EW 277 + 500) = MW 10

Das SPS-Programm:

L 2000
L 27648
/D
L EW 277
*D
L 500
+D
L 10
/D
T MW 10

----

Wird die Berechnung vom Programm richtig verarbeitet? Wenn ich z.B. 2000
durch 27648 teile. Rundet der Rechner auf (Integer) oder kann er Komma-rechnen?
Ist die Berechnung der Solltemp. insgesamt richtig? Oder habe ich es irgedwo verbockt?

Besten Dank für die Hilfe

Airen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wird die Berechnung vom Programm richtig verarbeitet? Wenn ich z.B. 2000
durch 27648 teile. Rundet der Rechner auf (Integer) oder kann er Komma-rechnen?

Er kann Komma-rechnen - dafür nimmt man dann aber die REAL's und nicht die DINT. In einem REAL könntest du dir die Temperartur auch korrekt in °C darstellen und nicht in 1/10°. Das sähe dann so aus :
Code:
L [COLOR=red][B]200.0[/B][/COLOR]
L [B][COLOR=red]27648.0
[/COLOR][/B]/[B][COLOR=red]R[/COLOR][/B]
L EW [B][COLOR=red]277     // <--- ?????? siehe auch Beitrag von Bike[/COLOR][/B]
[B][COLOR=red]ITD[/COLOR][/B]
[B][COLOR=red]DTR
[/COLOR][/B]*[B][COLOR=red]R[/COLOR][/B]
L [COLOR=red][B]50.0[/B][/COLOR]
+[COLOR=red][B]R[/B][/COLOR]
T [B][COLOR=red]MD 10[/COLOR][/B]
 
Also ich denke mal, dass ein Wort auf gerader Adresse beginnen sollte.


Zu Analogverarbeitung gibt doch hier:
http://www.sps-forum.de/showthread.php?t=19311

eine echt gute Beschreibung


bike

@bike
Was für dich so offensichtlich ist, ist es nicht für jedermann. Und bevor ich mir etwas genau anschaue, muss ich wissen, dass ich es falsch gemacht habe. Deswegen auch meine Frage dahinter.
Du hast aber recht! Ich habe mich um eins verzählt. Es soll EW 278 heißen.

Trotzdem danke für den Hinweis.
Airen
 
@Airen:
Dein Programm wird so nicht funktionieren.
Die erste Division (weil DINT-Division ergibt als Ergebnis "0") :
Code:
L 2000
L 27648
/D               // hier ist es dann Null - und alles andere dann auch.
L EW 277
*D
L 500
+D
L 10
/D
T MW 10
Vielleicht solltest du dir mit dem Code von Lupo etwas Schickes bauen ...

Gruß
LL

Nachtrag: ich hatte natürlich den Offset vergessen. Dadurch hast du dann wenigsten (unabhängig von deinem Analog-Eingang) immer 50 im MW stehen ...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@Lupo

wenn ich das Programm folgendermaßen schreibe:

L 2000
L EW 278
*D
L 27648
/D
L 500
+D
T MW 10

d.h. erst multipliziere und anschließend durch 27648 dividiere, sollte ich auch
auf ein relativ genaues Ergebnis kommen, ohne mit R rechnen zu müssen.

Die Angabe in 1/10 °C ist eine Vorgabe vom Prof.

gruß
 
Man kann ja ruhig mit DINT rechnen, aber erst die Multiplikation, dann die Division durchführen!

Code:
L L#2000
L PEW 277
ITD         //ok, das muß nicht sein, wenn EW277 nur positive Zahlen bringt!
*D
L L#27648
/D
L L+500
+D
L L#10
/D         //das schneidet dann natürlich die Kommastelle ienfach ab!
T MW 10
Besser ohne

L L#10
/D

und in WinCCFlex wie auch ProTool kann man DINT-werte als Kommawerte darstellen, indem man die Anzahl der Kommata einfach angibt.

PS: Ah, er hat es schon selbst erkannt, prima!! :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

ich frag mich immer wieso die Leute sich immer Gedanken um die Skalierung machen!

Wenn es sich um eine CPU (300´ter, 400´ter) von Siemens handelt werden von Step7 schon Skalierbausteine mitgeliefert, die Bausteine liegen im Verzeichnis Standart Library\TI-S7 Converting Blocks

FC105 zum Skalieren von AI´s
FC106 zum Skalieren von AO´s

Der einzigste grund von diesen Bausteinen abzuweichen wäre

ein nicht lineares Signal (AI)
Eine CPU die die Bausteine nicht unterstützt
oder die Zykluszeit

Gruß
 
Zurück
Oben