TIA Temperaturmessung mit SB1231 für die Siemens S7-1200

dwurmitzer

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal,
ich hätte da eine Frage zur Programmierung der Bausteine wenn ich mit dem signalboard sb1231 zur Temperaturmessung nehme?
also ich habe die Anweißungen NORMX und SCALEX eingefügt weiß aber leider nicht welche Werte ich eintragen muss ?
Ich habe mir gedacht das ich einfach einen PT100 im 4 Leiter System anschließe, aber welcher Wert dann an den Analogeingang gelangt ist für mich auch ein Rätsel ? - Spannung 0-10V
- Strom 4-20mA

http://www.tpautomation.de/shop/Datenblatt/SIEMENS/6ES7231-5PA30-0XB0.pdf - Datenblatt Signalboard

Ich hoffe ihr könnt mir irgendwie weiterhelfen ;)
 
Kenne nur die Baugruppen der 300er, da wird der PEW als Int mit dem Faktor 100 (oder waren es 10) Multipliziert ausgegeben.

Also 12,3° kommen entweder als 123 oder als 1230 als Int an. Man kann also nach real wandeln und durch den Faktor dividieren und fertig.

Wird wohl bei der 1200 auch so sein. Einfach mal das PEW beobachten und 1. mal schauen ob sich bei Tempänderung was tut und 2. den Wert mal versuchen zu interpretieren.

Was kannst du denn bei der HW-Config für die Baugruppe alles einstellen? Wie groß ist der Eingangsbereich der Karte?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also in der HW-config kann ich nur die Messart und das Thermoelement einstellen.. und die E/A Adressen

Eingangsbereich müssten ja die 15bit/+Vorzeichen sein ?
UND WAS IST PEW?

Bitte dringend um Hilfe ......
 
PEW = Pheriferie Eingangs Wort So wird in 300, 400 auf die Eingänge zugegriffen.

zB.: dein Kanal ist Wort 20 Im Programm kannst du dann zB.: L PEW 20 (in AWL) schreiben oder eben an zB. Scale am Eingang PEW 20 hinschreiben.

Bei den Analogkarten kommt das Wort als INT.

Probiere doch einfach mal folgendes:

Irgend eine Verknüpfung (zB.: Move) die INT am Eingang hat, daran deine Eingangsadresse (also EW## oder PEW##). Das dann in ein MW das als INT deklariert ist. Jetzt das auf die SPS geladen und das MW mit Variablen Beobachten anschauen. (möglichst Darstellung auf Dezimal stellen). Was siehst du jetzt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann man den int wert der rein kommt nicht mit nem normierungsbaustein in einer real variabelen speichern und diese über einen scale in die gewünschte scalierung bringen? Normx und scalex bausteine...


Gesendet von meinem iPad mit Tapatalk
 
Hi

Kann man den int wert der rein kommt nicht mit nem normierungsbaustein in einer real variabelen speichern und diese über einen scale in die gewünschte scalierung bringen? Normx und scalex bausteine...


Man kann und genau dafür sind sie auch da. Aber eigentlich macht die Baugruppe das ja schon (fast :rolleyes:).
Du hast eine passendes Signalbaugruppe (z.B. SIGNAL BOARD SB 1231 RTD). In der Hardwarekonfiguration siehst du die Adresse (Z.B. EW256) und kannst sie auch ändern. Dort stellst du das Thermoelement ein und ob du Celsius oder Fahrenheit haben willst. Und soweit ich mich erinnere gibt es da auch Filter um Störungen zu unterdrücken.

Bei Temperaturmessung wird der Messwert in Grad, multipliziert mit zehn, ausgegeben (Beispiel: 11,1 Grad werden als Dezimalwert 111 dargestellt).

Also holst du dir mit %EW256 den Wert in den Akku -- achso KOP/FUP -- egal. Direkter Zugriff auf die Peripherie ist bei 1200 und 1500 nicht nötig, sogar eher schädlich. Wenn dich jetzt das mit den Zehntelgraden stört, dann schlägt jetzt die Stunde von NORM_X und SCALE_X.

NORM_X bringt einen Wert zwischen MIN und MAX nach 0.0 bis 1.0. UND SCALE_X macht aus 0.0 bis 1.0 etwas zwischen MIN und MAX. Der Witz an der Sache ist, dass die beiden auch tun, wenn der Wert außerhalb von MIN und MAX ist. Also reicht dir ein NORM_X um glücklich zu sein.

Code:
#real_temperatur := SCALE_X_INT_REAL( MIN := 0, VALUE := %EW256, MAX := 10 );

Der Grundgedanke ist, dass dem Wert 0 die Temperatur 0.0 entspricht und dem Wert 10 die Temperatur 1.0. Damit liegen deine Werte zwar meist außerhalb von MIN und MAX, das stört aber die Formel die dahinter steckt nicht. Siehe http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW nach SCALE_X suchen! (VALUE - MIN) / (MAX - MIN). Und wenn der VALUE grad mal 111 ist, dann ist INT_TO_REAL(111-0)/INT_TO_REAL(10-0) eben 11.1.

Du kannst dir das Gehampel auch sparen und INT_TO_REAL(%EW256)/10.0 schreiben.

HB
 
Zuletzt bearbeitet:
@winnman
Wie Du unschwer erkennen kannst geht es beim TE um S7-1200
Bitte verwirre den TE nicht mit unpassenden Informationen zur S7-300/400


@Alle
Statt fruchtlos rumzurätseln steckt mal Eure Nasen in das S7-1200 Systemhandbuch. :cool:
A.10.5.1 Technische Daten des SB 1231 1 Analogeingang RTD schrieb:
Das analoge Thermoelement-Signalboard SM 1231 RTD misst den Wert des an die
Signalboardeingänge angeschlossenen Widerstands. Als Messart kann entweder
"Widerstand" oder "Thermischer Widerstand" ausgewählt werden.
● "Widerstand": Der Messbereichsendwert im Nennbereich beträgt 27648 dezimal.
● "Thermischer Widerstand": Der Messwert wird in Grad, multipliziert mit zehn, ausgegeben
(Beispiel: 25,3 Grad werden als Dezimalwert 253 dargestellt).

Das Signalboard SB 1231 RTD unterstützt Messungen über 2-Leiter-, 3-Leiter- und 4-Leiter-
Anschlüsse zum Geberwiderstand.
Tabelle A- 204 Schaltplan des SB 1231 AI 1 x 16 Bit RTD
[...]
Hinweis: Die Steckverbinder müssen vergoldet sein. Im Anhang C, Ersatzteile, finden Sie die
Bestellnummer.
Tabelle A- 205 Anschlussbelegungen für das SB 1231 AI 1 x 16 Bit RTD (6ES7 231-5PA30-0XB0)
Tabelle A- 206 Bereiche und Genauigkeit für die verschiedenen Geber, die von den RTD-Modulen unterstützt werden
[...]
ACHTUNG
Nach dem Einschalten führt das Modul die interne Kalibrierung für den A/D-Wandler durch.
In diesem Zeitraum meldet das Modul auf jedem Kanal den Wert 32767, bis für den
jeweiligen Kanal gültige Daten vorliegen. Diese Initialisierungszeit muss im
Anwenderprogramm ggf. berücksichtigt werden.
mit "Grad" meint Siemens °C


PT100 --> "Thermischer Widerstand" --> -200°C .. +850°C --> Meßwert -2000 .. +8500

Das Einlesen der Temperatur müßte etwa so aussehen:
Code:
         +-----------+
         |   CONV    |
         |Int to Real|                      +---------+
"Immer1"-|EN         |                      |   DIV   |
         |        OUT|-#tempReal            |   Real  |
 %EW82:P-|IN      ENO|----------------------|EN       |
         +-----------+                      |         |
                                  #tempReal-|IN1   OUT|-"Temperatur1"
                                       10.0-|IN2   ENO|-
                                            +---------+
Der Anhang :p kennzeichnet den Zugriff direkt auf die Peripherieadresse außerhalb vom Prozessabbild

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mit "Grad" meint Siemens °C

Der Anhang :p kennzeichnet den Zugriff direkt auf die Peripherieadresse außerhalb vom Prozessabbild
Harald

Die 1200 kann auch Fahrenheit
Und :p sollte nicht nötig sein -- Bei der 1200 ist doch alles im Abbild (oder verwechsel ich das mit der 1500 -- ist schon spät)


HB
 
Grad, °C, °F, ... Tja, ist schon spät.
Ich habe fast überhaupt keine Erfahrung mit S7-1200 und TIA (außer mal 'ne IP-Adresse geändert) - kann aber lesen. ;)

Harald
 
S7-1200 Systemhandbuch - 4.1 Ausführung des Anwenderprogramms schrieb:
Bei der Standardkonfiguration werden alle lokalen digitalen und analogen Ein- und
Ausgänge synchron zum Zyklus mit einem internen Speicherbereich, dem so genannten
Prozessabbild, aktualisiert.
Die Eingänge der SB sind lokal.
Der Zugriff auf die Peripherieadresse mittels :p ist in der Standardkonfiguration also tatsächlich nicht nötig. %EW234 tut es auch.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Informationen... ich habe es genau so gemacht: mit conv in einen realwert gewandelt und dann mit div durch 10 dividiert und es FUNKTIONIERT :)

Aber jetzt müsste ich diesen Wert noch speichern ... mit DataLog oder?
Und wenn ja welches muss i zuerst nehmen (create,newfile) ? wo liegt der unterschied ?

lg. der anfänger
 
Zurück
Oben