# Temperaturmessung mit Siemens S7



## Markus (1 April 2005)

hallo,

ich will mehrere Temperaturen in einem gebäude mit einer siemens sps messen.

ich habe die 8fach analogeingabe die auch thermoelemente direkt einlesen kann. oder eben pt100 als wiederstand.

bei den meisten tmeperaturen handelt es sich um raumteperaturen oder heizung die zwischen -20 und +100 grad liegen.

dann wäre da noch die abgastemperatur von einem ofen, die ist maximal 1000 grad.


was für sensoren soll ich nehemen? pt100? termoelemete? was anderes?

mit was messe ich die 1000 grad? 

was kosten die dinger?


danke!


----------



## mikel (1 April 2005)

@Markus

Was für eine analog Karte??

PT100 sind im allgemeinen teurer als Thermoelemente, Richtpreis ca. 50,00 EUR je nachdem welche Bauform und welcher Hersteller.

Für deine 1000°C wirst Du auf jeden Fall ein Thermoelement benötigen, die genauen Daten bekommst Du aber nur aus dem Datenblatt für deine Karte heraus.

Gruß Michael


----------



## PeterEF (1 April 2005)

Hallo,

Thermoelement Typ K geht bis 1300°C und hat mich neulich ca. 40 Euro gekostet (1,5 mm Durchmesser mit 1 m Leitung dran). 
Das Problem bei Messungen in einem Gebäude ist eher die Leitungslänge: Thermoelemente brauchen eine passende Ausgleichsleitung zur Übertragung (wegen der Materialpaarung) - die ist dann schnell teurer als der Fühler und PT100 sind selbst in Vierleiterschaltung bei großen Entfernungen kritisch. Evt. ist es günstiger, gleich vor Ort in 4-20mA zu wandeln, dafür reichen dann je zwei Adern Klingeldraht....

Info zur Temperaturmessung z.B. hier: www.omega.de
 oder hier:http://www.tcgmbh.de (gutes Handbuch anforderbar, Preise teils online)

Peter


----------



## Anonymous (1 April 2005)

*Geheimtipp*

Hallo Markus,

günstige Fühler in allen Formen und deren Preise findest du im Katalog bei S+S REGELTECHNIK. Die angebotenen PT100-Rauchgastemperaturfühler gehen bis maximal 750°C, falls das ausreicht? Thermoelemente sind in der Haustechnik meines Wissens eher unüblich.


Gruß


----------



## Anonymous (1 April 2005)

*Geheimtipp*

das mit dem link üben wir noch mal :roll: :

http://www.spluss-regeltechnik.de/Produkte/Temperatur/temperatur.html


----------



## benvontschirnhaus (2 April 2005)

Wo wir schonmal beim Thema sind:
Kann mir jemand einen Converter von RTD (PT-100) auf Stromstaerke (4-20mA) mit gutem Preis-Leistungs Verhaeltnis empfehlen ?


----------



## Anonymous (2 April 2005)

Na klar,

im Preis-Leistungs-Verhaeltnis ist RINCK ELECTRONIC vermutlich unschlagbar.


----------



## mertens2 (6 April 2005)

von weidmüller gibt es die biester in klemmenbauform superklein mit verschiedenen messbereichen. TYP: RTD


----------



## Markus (13 April 2005)

hallo danke für die antworten, das handbuch habe ich gleich mal angefordert...

nun noch zur karte:

ich habe eine 331-7KF01-0AB00 und eine 331-7KF02-0AB0

was ist der unterschied? die KF01 scheint es bei siemens nicht mehr zu geben.

wenn ich wiederstand messe, also PT100 kann ich nur 4 der 8 eingänge nutzen, ist das so richtig? also auch bei zweileiter?

wie wäre das mit thermoelementen? kann ich da alle 8 eingänge nutzen?


die leitungslängen sind alle ca 5m.
bis jetzt habe ich zu den stellen eine geschirmtes cat5 netzwekkabel verlegt. kann ich thermoelemente damit nicht anschliesen? nur über speziell abgestimmte ausgleichseitungen?

eine toleranz von +/- 1°C wäre akzeptabel.

kann jederzeit andere kabel verwenden, liegen in leerrohren...


----------



## Zottel (14 April 2005)

Markus schrieb:
			
		

> wenn ich wiederstand messe, also PT100 kann ich nur 4 der 8 eingänge nutzen, ist das so richtig? also auch bei zweileiter?


Wenn du nur die Hälfte der Eingänge nutzen kannst, liegt es daran, daß die Baugruppe pro Paar mit einem Eingang Spannung und mit dem anderen Strom mißt.
Du könntest auch 8 externe Konstantstromquellen verwenden, den Spannungsabfall in Betriebsart "Spannungsmessung" messen und auf Temperatur umrechnen.


> wie wäre das mit thermoelementen? kann ich da alle 8 eingänge nutzen?


Ja


> die leitungslängen sind alle ca 5m.
> bis jetzt habe ich zu den stellen eine geschirmtes cat5 netzwekkabel verlegt. kann ich thermoelemente damit nicht anschliesen? nur über speziell abgestimmte ausgleichseitungen?


Bei Thermoelementen kommt es weniger auf die Länge an. Im Prinzip mißt du immer die Differenz zwischen der ersten und zweiten Verbindungsstelle der Thermopaarung. Um diese Differenz auf absolute Temperatur umzurechnen, ist ein Fühler an der Klemmstelle des Meßgerätes nötig. Wenn du die Cat5-Leitung dazwischen legst, passieren zwei Dinge:
1. Die Anschlußstelle des Thermoelementes ist der Ort, an dem du es an die Cat5 Leitung anschließt. Die Baugruppe kann aber nur die Temperatur ihrer Klemmstellen messen. Der Fehler beträgt: Temperaturunterschied zwischen Klemmen der Baugruppe und Verbindugsstelle Kabel-Thermoelement.
2. Eingangschaltungen für Thermoelemente haben gewöhnlich niedrige Innenwiderstände (<50-500 Ohm) (das iist keine "Design-Schwäche",obwohl es eine Spannungsmessung ist und man für Spannungsmesser hohe Innenwiderstände bevorzugt, sondern es unterdrückt Einstreuungen). Wenn du da "dünnes" Kabel zwischenschaltest, gibt es zusätzliche Fehler.


----------



## Markus (16 April 2005)

hmm ok dann mal ne grundlegende frage zu themoelementen.

ein thermoelement besteht doch aus zwei verschiedenene metallen, und wenn das thermoelement erhitzt wird, dann kann ich eine spannung an den anschlüssen messen die proportional zur tmerperatur steigt.

ist das richtig?

wieso kann ich diese spannung nicht nach 50 metern auch nocht messen mal abgesehen vom leitungsaverlust?



wenn ich pt100 mit konstantstromquellen verwende, wieso brauche ich 8 davon? eine für alle kanäle würde dann doch reichen?


was ist die maximale temperatur die mit pt100 möglich ist?
brauche ich für 1000°C definitiv ein thermoelement?


wie lange sind die zuleitungen (also die speziell abgestimmten) für thermoelemten maximal? wären 20m denkbar?


danke!


----------



## PeterEF (16 April 2005)

Hallo,




> ein thermoelement besteht doch aus zwei verschiedenene metallen, und wenn das thermoelement erhitzt wird, dann kann ich eine spannung an den anschlüssen messen die proportional zur tmerperatur steigt.
> 
> ist das richtig?



Fast. Die Thermospannung entsteht zwischen zwei Kontaktstellen der unterschiedlichen Metalle, wenn diese unterschiedliche Temperaturen haben. Verbind einen Eisendraht mit einem Kupferdraht je an den Enden, erhitze das eine Ende und/oder kühle das andere ab - zwischen beiden Enden kannst Du die Thermospannung messen (dazu natürlich einen Draht auftrennen!). Bei der Messung ist das eine Ende die Meßstelle, das andere die Klemmstelle, deren Temperatur ebenfalls gemessen wird. Die gemessene Thermospannung wird nun mit der Referenztemperatur der Klemmstelle verglichen: Spannung 0 - Temp. der Referenz und der Meßstelle gleich usw. usf.





> wieso kann ich diese spannung nicht nach 50 metern auch nocht messen mal abgesehen vom leitungsaverlust?



Man kann sie noch messen, allerdings mV messen - wenn die Meßstelle nicht richtig isoliert ist hast Du z.B. Probleme mit verschleppten Potentialen.





> wenn ich pt100 mit konstantstromquellen verwende, wieso brauche ich 8 davon? eine für alle kanäle würde dann doch reichen?



bei Parallelschaltung gilt die Stromteilerregel: d.h. durch den kleinsten (kältesten) Widerstand fließt der größte Strom - von einer Konstanz kann dann keine Rede mehr sein.
bei Reihenschaltung: der Ausgang der Konstantstromquelle müßte für die achtfache Spannung ausgelegt sein, denn er muß den achtfachen Widerstand überwinden. Sowas wäre aber denkbar. 




> was ist die maximale temperatur die mit pt100 möglich ist?
> brauche ich für 1000°C definitiv ein thermoelement?



Ich kenne PT100 bis  500°C - mehr nicht



> wie lange sind die zuleitungen (also die speziell abgestimmten) für thermoelemten maximal? wären 20m denkbar?



Ich denke, das ist kein Problem, im Zweifelsfall gibs auch abgeschirmte. Zur Sicherheit mal beim Hersteller fragen...


Schönen Abend noch Peter


----------



## Markus (16 April 2005)

ok, so langsam fang ich an zu begreifen - aber wirklich langsam.
will euch vorerst nicht mehr nerven, habe das buch von http://www.tcgmbh.de angefordert, und hoffe das mich das weiter bringt.

ich werde dort vermutlich auch thermoelemente und ausgleichsleitung kaufen die es als meterware gibt.

bis jetzt habt ihr mir schon sehr geholfen, aber das ist nur die spitze des eisbergs. richtig nerven werde ich in ein paar wochen wenn ich an die software zu regelung dieser recht komplexen heizung kommen...


----------



## Onkel Dagobert (16 April 2005)

Da ich das mit den Thermoelementen auch nie richtig verstanden hatte, habe ich mal ein wenig recherchiert.

links zu Thermoelementen und zur Temperaturmessung:
http://www.rosemount.com/document/man/2654_05j.pdf
http://www.reckmann.de/
http://www.kritec.de/infos.html
http://www.ipetronik.com/pdf/70_15/Ipetronik_nl2_2004_d.pdf

sehr informatives Dokument von JUMO:
http://www.jumo.de/web/Jumo_de.nsf/vw_icons/FAS146_ElektrischeTemperaturmessung_d/

http://www.pentronic.se/tysk/teori/termoel/termo1.asp


> "Das Thermoelement wurde von T.J. Seebeck 1821 erfunden.....Heute wissen wir, daß Seebeck den Mechanismus des Thermoelementes nicht vollständig verstanden hatte." Das tröstet mich, bin ich froh  .



PT100-Fühler soll es angeblich bis 850°C geben. Das habe ich irgendwo im net gelesen. Zumindest gibt es von S+S, Katalog S.25/26 (siehe Gastbeitrag weiter oben) PT100-Abgastemperaturfühler bis 750°C. Derartige haben wir auch im Einsatz, kenne jedoch nicht unser Fabrikat.

Es gibt auch Messumformer für Thermoelemente, welche vorort montiert werden können. Ich habe keine Ahnung was Ausgleichsleitungen kosten, aber billig sind sie sicherlich nicht. Diese könnte man sich u.U. ersparen.
http://www.rinck-electronic.de/rinck2001/pdf/MOMVTHER.PDF

Markus, beschreibe doch mal ganz kurz deine Heizungsanlage. Ich finde derartiges interessant, da ich hin und wieder mit so etwas zu tun habe.


Gruss, Onkel


----------



## GobotheHero (17 April 2005)

Zu erwähnen wär vielleicht noch das jeder Übergang von einem Metall zu einem anderen eine Spannung hervorruft.
Also, wenn ich an ein Thermoelement einen Kupferleiter anschliesse habe ich quasi 3 Spannungsquellen in der Messung. Kupfer auf Thermoelement / Thermoelement Material 1 auf Material 2 / Thermoelement Material 2 auf Kupfer.
Diese Kupferübergänge werden durch ?Kompensationsdosen? herausgerechnet, da auch die Kupfer auf Thermoelementübergänge Temperatruabhängig sind.
Bei deiner Analogkarte sollte/könnte noch ein Anschluss zur externen Kompensation sein. Dieser mißt die Umgebungstemperatur an der Klemmstelle und berücksichtigt dabei die entstehende Spannung.
Kompensierst du intern wird eine Temperaturmessung in der Karte angewandt (aber halt nicht so genau wie die externe).
Bis jetzt hat die interne Kompensation immer gute Dienste geleistet.

20m sind für solch eine Thermoelementenleitung kein Problem. Auch die 50Hz Einstreuungen sind durch die Filter in der Karte und die Schirmung des Kabels auch kein Problem. Aufpassen halt nur bei FU oder grossen Motoren (wie immer halt).

Die Thermoelementenleitung ist halt nur dazu da, um das Auftreten von weiteren Thermospannungsquellen zwischen 2 Metallen zu verhindern.
Bis zu dem Punkt wo du es durch Kompensationstemperaturmesstellen herausrechnen kannst.

Hoffe das ist alles so richtig


----------



## Markus (17 April 2005)

jetzt hab ichs begriffen!

also hat die karte irgendwo einen pt100 oder ein weiters thermoelement onboard, mit dem sie die temperatur an der karte/(=klemmstelle) misst.

kann ich den auch irgenwie abfragen? wäre ganz praktisch zum messen der schaltschranktemperatur...

wenn ich die klemmstelle auserhalb in einer dose habe von der ich mit kupferleitung auf die karte weiter fahre, dann muss ich am besten dort noch die temperatur messen, und die muss die karte dann zur kompensation nutzen (parameter in hw).


und bei thermoleitungen kommt es nicht unbedingt auf die länge an, sondern nur auf die leitung bzw. das material.
und das material der leitung muss gleich sein wie das vom thermoelement, welches wiederum vom typen abhängt...

wie verbinde ich die vorhandene anschlussleitung am besten mit der verlängerng? das mit den gelben steckern gefällt mir nicht so, aber mit lsteklemmen wirds ungenau weil ein weiteres metall im spiel ist, oder?

wie macht ihr das?


----------



## Zottel (17 April 2005)

Markus schrieb:
			
		

> jetzt hab ichs begriffen!
> 
> also hat die karte irgendwo einen pt100 oder ein weiters thermoelement onboard, mit dem sie die temperatur an der karte/(=klemmstelle) misst.
> 
> kann ich den auch irgenwie abfragen? wäre ganz praktisch zum messen der schaltschranktemperatur...


Kann dir zwar nicht sahen, ob Siemens eine Möglichkeit vorgesehen hat, die Vergleichstemperatur auszulesen, aber wenn du einen Kanal übrig hast, brauchst du nur die Eingangsklemmen kurzzuschließen und er liefert genau diese.


> wenn ich die klemmstelle auserhalb in einer dose habe von der ich mit kupferleitung auf die karte weiter fahre, dann muss ich am besten dort noch die temperatur messen, und die muss die karte dann zur kompensation nutzen (parameter in hw).


Sofern diese unveränderlich ist, würde das gehen. Aber eigentlich gibt es genau dafür die Ausgleichsleitungen.


> und bei thermoleitungen kommt es nicht unbedingt auf die länge an, sondern nur auf die leitung bzw. das material.
> und das material der leitung muss gleich sein wie das vom thermoelement, welches wiederum vom typen abhängt...
> 
> 
> ...


----------



## GobotheHero (19 April 2005)

Also ich weis nicht ob man sich die Kompensationstemperatur anzeigen lassen kann (ob extern oder intern).
Vielleicht mal die Hotline anrufen ?!

Es gibt spezielle Klemmen für Thermoelement-Leitung. Die benutzen wir aber eher selten, da sie 1. nicht unbedingt billig (aber auch nicht allzu teuer) sind. Man muss halt in der Regel direkt nen Karton davon abnehmen. Wir machen das meist so, das im Schaltschrank an der SPS ein Kanal zum direkten Anschliessen der Leitungen ist (Schirm nicht vergessen).

Wenn du selber einen Übergangspunkt von der Thermoelementleitung auf Kupfer machen willst würde ich davon abraten. Ich habe ka wie Siemens das dann Kompensiert aber sicher ist das Abhängig von der Klemme an der Klemmstelle und die wär ja dann anders als die an der SPS, die evtl noch beschichtet ist ?!


----------



## Markus (9 Juni 2005)

hallo,

habe da noch eine frage:

wie sieht es mit den verschiedenen typen aus?
die hw-config erlaubt nur die typen N,E,J,K,L

ich würde aber gerne andere typen verwenden.
ist die thermospannung bei anderen eventuell zu hoch für die karte?
oder kann ich problemlos andere verwenden und muss nur bei der
normierung des messwerts den faktor anpassen?


Karte: 6ES7 331-7KF01-0AB0 bzw. 6ES7 331-7KF02-0AB0


Danke!
Markus


----------



## Markus (10 Juni 2005)

ok, also ich will thermoelemente vom typ T (-185 - +300°C) verwenden.

ich weiß nun das die karte intern eben über die linearisierungsalgoryhtmen für die thermoelemente verfügt die in der hw-config anwählbar sind.

andere thermoelemente können auch angeschlossen werden, die karte wird dann eben auf -+80mV parametriert.

nur die linearisierung muss ich dann selber softwareseitig machen.

und da ist der haken!

hat sowas schon jemand gemacht? gibt es da beusteine?
anscheinend muss man einen polygonzug machen, was ist ein polygonzug?

den baustein kann ich auch selber basteln, brauche nur etwas hilfe bei der formel, bzw. beim "polygonzug"...

danke!


----------



## lorenz2512 (10 Juni 2005)

Hallo,
nur mal eine Frage gibt es für diesen Typ Thermoelemnt keine Umformer z.B. 4-20ma ? Erspart Dir unter Umständen jede Menge Rechnerei. Oder geht kein anderer Thermofühler?

mfg

dietmar


----------



## Zottel (10 Juni 2005)

Markus schrieb:
			
		

> was ist ein polygonzug?
> den baustein kann ich auch selber basteln, brauche nur etwas hilfe bei der formel, bzw. beim "polygonzug"...


Für etliche nichtlineare Zusammenhänge kann man aus der physikalischen Theorie analytische Funktionen ableiten, d.h. soetwas wie x*x+3*x+4 oder e hoch x oder sinus(x).
So eine Funktion gibt dir für jedes x einen Wert, wenn du es in die Formel einsetzt.

Für die nichtlineare Kennlinie von Thermoelementen existiert keine solche Formel oder sie ist nicht praktikabel.
Du erhälst die Kennlinie, indem du bei verschiedenen Temperaturen die Spannung mißt. Für jedes Wertepaar trägst du einen Punkt in ein Diagramm ein. Verbindest du nun die Punkte mit geraden Linienteilen, ist an jederm Punkt eine Ecke eines Vielecks "Polygons". Zum ganzen Vieleck fehlt aber noch eine Linie, die Anfang und Ende wieder verbinden würde, daher "Polygonzug" (teil des Umriß eines Polygons) und nicht "Polygon".

Je mehr Punkte von der Linie beannt sind, um so genauer gibt sie die wirkliche Kennlinie wieder. 
In einer Tabelle (z.B. in einem Buch oder in einem DB) kannst du aber nicht beliebig viele Werte speichern.
Um eine Spannung x umzurechnen, die nicht in der Tabelle vorkommt, interpoliert man:
1. Nächstniedrigeren Wert X1 suchen, Temperatur T1 ablesen
2. Nächsthöheren Wert X2 suchen, Temperatur T2 ablesen
3. Tx= T1+ (x-X1)(T2-T1)/(X2-X1)
Tx ist eine gute Näherung für die gesuchte Temperatur.

Die Formel macht folgendes:
(T2-T1)/(X2-X1) ist die Steigung des Linienabschnitts zwischen den Punkten (X1,T1) und (X2,T2).

x-X1 ist der Abstand von X1 bis x.
Wenn man also auf dem Linienabschnitt um diese Entfernung weitergeht, nimmt die Temperatur um die Steigung zu.

Falsch an dieser Methode ist, daß die Steigung des Polygonzugs sich in jedem Punkt schlagartig ändert. Dafür gibt es keinen physikalischen Grund und es ist auchbei der realen Kennlinie nicht so. Es gibt mathematische Methoden, daß zu ändern und eine "glatte" Kurve durch eine gegebene Menge von Punkten zu legen, z.B. Spline-Interpolation. Das ist recht aufwendig und für deine Anwendung "mit Kanonen auf Spatzen schießen".


----------



## Zottel (10 Juni 2005)

lorenz2512 schrieb:
			
		

> Hallo,
> nur mal eine Frage gibt es für diesen Typ Thermoelemnt keine Umformer z.B. 4-20ma ? Erspart Dir unter Umständen jede Menge Rechnerei.


@lorenz2512
Die Rechnerei macht man ja nur einmal. Wenn man's öfter braucht, "rechnet" es sich schnell. Und auch ein Umsetzer muß gekauft, manchmal programiert werden. Dann braucht er Strom und Platz; schließlich ist er im Fall eines Versagens eine zusätzliche Fehlerquelle und man muß ihn als Ersatzteil vorhalten. Schließlich kann ich die 30 Zeilen AWL schneller schreiben, als ich so ein Gerät aus einem Katalog wähle, die Unterlagen zur Handhabung lese und es bestelle.


----------



## Ralle (10 Juni 2005)

Es gibt noch eine schöne, auch relativ einfache Hilfe.

Trage deine Werte in eine Excel-Tabelle ein, erzeuge ein Diagramm.
Markiere die Diagrammlinie, dann rechte Maustaste und "Trendlinie hinzufügen". Jetzt kannst du anwählen welchen Typ etc. (beste Näherung ausprobieren). Außerdem unter dem Reiter Optionen "Gleichung im Diagramm darstellen" anwählen. Die Trendlinie sollte sich möglichst gut mit deiner Diagrammlinie decken. Mit Hilfe der eingeblendeten Formel kannst du in der SPS deine Linearisierung vornehmen (umstellen!). Je besser die Überdeckung, desto besser die Anpassung, desto umfangreicher aber auch die Formel.


----------



## lorenz2512 (10 Juni 2005)

Hallo,
@ Zottel: Gut für einen absolten Könner vieleicht kein Problem, aber bei mir würde so etwas zum Jahresprojekt werden ( :lol: mit ungewissem Ausgang). Wenn ich oben deine Beschreibung lese, nehme ich an das mindestens 50% der Forumsmitglieder sich an den Kopf fassen und sich fragen: was meint der?. Schau dir mal die letzten Beiträge zur Analogwertnomierung an, wenn da sich schon Verständniss verabschiedet, was soll das bei solchen Aufgaben erst werden?.

mfg

dietmar


----------



## Zottel (10 Juni 2005)

Na ja, ich hätte auch nur den Rechenweg angeben können. Die Einleitung sollte nur erklären, was der Begriff Polygonzug hier soll, wo er herkommt und warum es nicht einfach "eine Formel" gibt.
Der Hinweis auf die weiteren mathematischen Methoden paßt auch gut ins Bild, da aus Ralles Beitrag hervorgeht, daß auch Excel sowas kann. Wußte ich noch nicht und probiere ich heute noch aus.
Methode und Rechenweg zur Interpolation waren bei uns Stoff der 9.? oder 10.? Klasse, im Zusammenhang mit Logarithmentafeln.


----------



## Ralle (10 Juni 2005)

Ist schon gut so Zottel, jeder kann sich das entnehmen, was er braucht und umsetzen kann. Deine Beschreibung war jedenfalls ausreichend und verständlich.


----------



## Markus (10 Juni 2005)

@zottel
irgendwas hat mir bereits beim schreiben des wortes "polygonzug" gesagt das du mir das schon sehr bald erklären wirst... danke!


@lorenz
ich will nicht angeben hier, aber ich habe verstanden was er gemeint hat.
das verfahren leuchtet mir ein, aber ich dachte es gitbt ne einfachere lösung, bzw. ich wusste nicht das man dazu polygonzug sagt.

und nein ich habe auch nicht studiert (wenn ich vor solchen problemen stehe bereuhe ich es manchmal)

das mit den 30 zeilen awl kauf ich ihm zwar auch nicht ab, aber besonders aufwendig ist es auch nicht...


@ralle
diese lösung hört sich auch super an, schau ich mir gleich man an!


----------



## lorenz2512 (10 Juni 2005)

@ Ralle: Super, das kann nun fast jeder verstehen, aber die Idee ist nicht von Dir :wink: das würde ich wohl schon mehr dem bitchchecker zutrauen.
 @ Markus und Zottel: Mein Interesse an Zottel's Beitrag hat schlagartig nachgelassen wie der Satz kam:"Für die nichtlineare Kennlinie von Thermoelementen existiert keine solche Formel oder sie ist nicht praktikabel." Ich habe den höchsten Respekt vor Zottel, und das was er hier für das Forum leistet ist super, bloß es kommen nicht alle mit (ich habe mir die Libnodave Geschichte angesehen, und das ist zu hoch für mich), Ralle denkt da praktischer, aber gut das 2 solche guten Leute hier im Forum vertreten sind.

mfg

dietmar


----------



## Zottel (10 Juni 2005)

> das mit den 30 zeilen awl kauf ich ihm zwar auch nicht ab, aber besonders aufwendig ist es auch nicht...




```
L -32 
T index // damit geht's in Wirklichkeit bei 0 los
AUF SpannungsDB  // enthält Spannungswerte in aufsteigender Reihenfolge
M1: L index
T indexalt
L 32
+I
T index
L x  //Spannung
L DBD[index] //lädt den nächsten Spannungswert
<R  // ist der immer noch kleiner als x?
SPB M1  // dann nächster index
//
// Am Ende der Schleife ist der Eintrag zum ersten mal größer.
// Das bedeutet, der Vorgänger ist auch der nächstkleinere
//
L DBD[indexalt]
T X1
-R
T DeltaX
AUF TemperaturDB  // enthält Temperaturwerte in aufsteigender Reihenfolge
L DBD[index]  
L DBD[indexalt]
T T1
-R
T DeltaT 
L Deltax
/R
T Steigung
L x
L X1
-R
L Steigung
* R
L T1
+R
```
Weil Freitag ist, auch noch die 32 Zeilen Code
Nicht getest, aber sollte prinzipiell gehen.
Nicht zur Anwendung empfohlern, da das Durchsuchen einer Tabelle hier maximal so viel Schleifendurchläufe braucht, wie die Tabelle Elemente hat.
Ein "ordentliches" Verfahren ist "binäres suchen".


----------



## Markus (10 Juni 2005)

warum 32byte breite?

was ist "binäres suchen"?

danke für den code, aber das kriege ich hoffentlich auch noch selber hin...


----------



## Zottel (10 Juni 2005)

Markus schrieb:
			
		

> warum 32byte breite?


Weil REALs so breit sind. Und REALs kann man teilen, ohne sich um Genauigkeitsverlust kümmern zu müssen.


> was ist "binäres suchen"?


In einer Tabelle mit geordneten Wert schaut man auf den mittleren. Ist er größer als der gesuchte, liegt der gesuchte Wert in der ersten Hälfte, sonst in der zweiten. Mit der richtigen Hälfte macht man dann wieder dasselbe, solange bis nur ein Wert übrigbleibt.



> danke für den code, aber das kriege ich hoffentlich auch noch selber hin...


Kein Zweifel. Wollte nur sehen, ob ich mit den 30 Zeilen das Maul viel zu voll genommen hatte


----------



## Markus (10 Juni 2005)

Zottel schrieb:
			
		

> Weil REALs so breit sind. Und REALs kann man teilen, ohne sich um Genauigkeitsverlust kümmern zu müssen.



ähh, im simatic manager sind die 4byte lang
aber ich habe verstanden du adressierst ja die bitadresse, dann passt das wieder mit 32...




> In einer Tabelle mit geordneten Wert schaut man auf den mittleren. Ist er größer als der gesuchte, liegt der gesuchte Wert in der ersten Hälfte, sonst in der zweiten. Mit der richtigen Hälfte macht man dann wieder dasselbe, solange bis nur ein Wert übrigbleibt.



das ist cool...


----------

