Messwertskalierung

Karli

Level-1
Beiträge
46
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
heute habe ich ein Problem mit der Messwertskalierung, und hoffe, dass mir jemand von Euch helfen kann.

Ich lese in meine Analogkarte der SPS eine Analoggröße ein, die aus 8bit incl. Vorzeichen im Bereich 0..5V besteht. Diese Größe kann nur positiv sein, es sind also nur noch 7bit einzulesen.
Die Analogbaugruppe selbst hat eine Auflösung von 12bit, im Bereich von 0 .. 5V (hier wären also 2,5V = 0Einheiten der Analoggröße).

Wie muß ich rechnen (bzw. vorgehen), um den Original-Wert der Analoggröße in der SPS anzeigen zu können?

Es grüßt
Karli
 
Dann schreib doch einfach erstmal was für Harware Du verwendest und was Du eigentlich machen willst...
Und was Du nicht verstanden hast!:rolleyes:
 
S7-300
Analogkarte: SM331 (7KF02-0AB0)

An die PEW's der Analogkarte wird ein Messsignal angelegt, welches aus den oben beschriebenen 8bit incl. Vorzeichen besteht, real sind es nur positive Messwerte.
1. Frage: Welches Datenformat sind diese Werte: real oder (...)?

Die Analogkarte hat eine Auflösung von 12 bit bei einer Spannung von 0..5V.
Ich möchte nun einfach nur umrechnen, damit ich die Original-Messwerte ausgeben kann.

Bisher habe ich folgendes:
L "Simodrive_Pw".H01_PW_MB1 // Analogwert einlesen

//Skalierung
ITD //Ganzzahl (16bit) in Ganzzahle 32bit wandeln
DTR // Wert in Gleitpunktzahl wandeln
L 1.280000e+002 // Lade den Wert, der dividiert werden soll: 128bit
*R // multipliziere

L 2.048000e+003 // lade den Wert, der dividiert werden soll: 2048bit
/R // subtrahiere
T "Simodrive_Pw".H01_Pw_MB1_SKAL // Transferieren in den dafür vorgesehenen Speicher

NOP 0

Leider funktioniert das so nicht, es werden nicht die richtigen Werte ausgegeben.

Es grüßt
Karli
 
Zuviel Werbung?
-> Hier kostenlos registrieren
S7-300
Analogkarte: SM331 (7KF02-0AB0)

An die PEW's der Analogkarte wird ein Messsignal angelegt, welches aus den oben beschriebenen 8bit incl. Vorzeichen besteht, real sind es nur positive Messwerte.
1. Frage: Welches Datenformat sind diese Werte: real oder (...)?

Die Analogkarte hat eine Auflösung von 12 bit bei einer Spannung von 0..5V.
Ich möchte nun einfach nur umrechnen, damit ich die Original-Messwerte ausgeben kann.

Bisher habe ich folgendes:
L "Simodrive_Pw".H01_PW_MB1 // Analogwert einlesen

//Skalierung
ITD //Ganzzahl (16bit) in Ganzzahle 32bit wandeln
DTR // Wert in Gleitpunktzahl wandeln
L 1.280000e+002 // Lade den Wert, der dividiert werden soll: 128bit
*R // multipliziere

L 2.048000e+003 // lade den Wert, der dividiert werden soll: 2048bit
/R // subtrahiere
T "Simodrive_Pw".H01_Pw_MB1_SKAL // Transferieren in den dafür vorgesehenen Speicher

NOP 0

Leider funktioniert das so nicht, es werden nicht die richtigen Werte ausgegeben.

Es grüßt
Karli

http://www.automation.siemens.com/fea/ftp/module/de/b02/b02_analog.pdf

Pylades
 
Um die Bit's musst Du Dir primär erstmal keine Gedanken machen.
Bei Spannungs- bzw. Stromeingängen gilt unabhängig von der Gesamtauflösung der Karte immer der Max.-wert von 27648

das heisst:
0V am Spannungseingang = Dezimal 0
10V am Spannungseingeng = Dezimal 27648

daraus folgt: 5V am Eingang = 13824

Mit der FC105 aus der Siemensbibliothek kannst Du das Ganze auch komfortabel ohne großartige Rumrechnerei skalieren.

Aber das hat vierlagig in der FAQ schon sehr ausführlich beschrieben.:D

[EDIT]
Die SM331 (7KF02-0AB0) kann in der HW-Konfig auch als +/-5V Spannungseingang parametriert werden.
Dann gilt natürlich:
-5V am Spannungseingang = Dezimal -27648
0V am Spannungseingang = Dezimal 0
+5V am Spannungseingeng = Dezimal 27648
[/EDIT]
 
Zuletzt bearbeitet:
Ich würde es auch mit den FC 105 lösen, so kannst du schön deine Scalierung machen, so wie du die brauchst. 0-100% oder halt anders.
 
Zurück
Oben