Compact Logic – Thermoelement

Thermoelementmessung passend zur Anwendung

Compact Logic unterstützt bereits die SPI-Blöcke TCmax31855 und TCmax31856. Diese Bausteine übernehmen Spannungsmessung und Kaltstellenkompensation; der MAX31856 bietet außerdem eine integrierte Linearisierung für acht Standardtypen. Sie ermöglichen einen einfachen Aufbau mit wenig zusätzlicher Hardware. Die Eigenschaften der Auswertung werden dabei wesentlich durch den gewählten Baustein bestimmt. Herstellerinformationen: MAX31855, MAX31856.

Der hier beschriebene Block Thermoelement ermöglicht eine eigene Messkette: Sie wählen die Spannungsmessung, die Kaltstellenmessung und die Kennlinien selbst. Ein präziser, rauscharmer ADC und bei Bedarf ein geeigneter Vorverstärker, beispielsweise ein Instrumentenverstärker, können eine deutlich höhere Messgenauigkeit ermöglichen. Entscheidend ist die gesamte Messkette einschließlich Sensor, Kalibrierung und Kaltstellenmessung; zusätzliche Auflösung allein garantiert keine höhere Genauigkeit. Hinweise zur Messkette gibt die Herstelleranleitung zur Thermoelementmessung.

Die Besonderheit in Compact Logic sind die frei wählbaren Kennlinien:

  • Für besonders wichtige Temperaturbereiche können Sie gezielt fein aufgelöste Tabellen erzeugen.
  • Eigene oder kalibrierte Kennlinien lassen sich als CSV hinterlegen.
  • Auch weniger verbreitete Thermoelementtypen können eigene Tabellen erhalten.
  • Tabellen lassen sich über die üblichen Normbereiche hinaus erweitern, wenn geeignete Kennliniendaten und ein dafür geeigneter Sensor vorliegen.

Damit passen Sie Messhardware und Auswertung an Ihre Anwendung an. Die Tabellenumrechnung bleibt ein einzelner SPS-Block. Bei Verwendung eines Vorverstärkers muss sein Einfluss vor dem Eingang U [mV] herausgerechnet werden: Der Block erwartet die ursprüngliche Thermoelementspannung, nicht die verstärkte ADC-Spannung.

Was macht der Block?

Der Block Thermoelement berechnet aus der gemessenen Thermoelementspannung und der Temperatur der Anschlussklemme die Temperatur an der Messstelle. Die Temperatur der Anschlussklemme heißt Kaltstellentemperatur.

Die benötigte Kennlinie wählen Sie in den Blockparametern aus. Die Kennlinien werden gemeinsam im 8-kB-Bereich TC_Data gespeichert. Mehrere Thermoelementblöcke können denselben Bereich und dieselbe Kennlinie verwenden.

Gemeinsamer Speicher: acht Bereiche mit je 8 kB

Für Blockdaten stehen acht Bereiche mit jeweils 8 kB zur Verfügung. Unter Einstellungen → Block-Daten legen Sie fest, welche Daten ein Bereich enthält, beispielsweise Thermoelement-Kennlinien oder Displaybeschreibungen. Ein Bereich gehört nicht automatisch zu einem einzelnen Funktionsblock: Mehrere passende Blöcke können die darin gespeicherten Daten verwenden.

Für Thermoelemente gibt es genau einen gemeinsamen Bereich TC_Data. Darin können mehrere Kennlinien liegen. Jeder Thermoelementblock wählt daraus seine benötigte Kennlinie; zusätzliche Thermoelementblöcke benötigen deshalb keinen weiteren 8-kB-Bereich. Bei der Initialisierung lädt jeder Block seine ausgewählten Tabellen in den Arbeitsspeicher. Die übrigen Bereiche bleiben für andere Blockdaten verfügbar, soweit sie nicht bereits belegt sind.

Schnell einrichten

  1. Öffnen Sie Einstellungen → Block-Daten. Wählen Sie TC_Data. Ist noch keiner vorhanden, stellen Sie einen freien Bereich auf die Verwendung Thermoelement. Es darf nur einen solchen Bereich geben.
  2. Klicken Sie Neue TC-Kennlinie hinzufügen …. Wählen Sie Standard-ZIP und den gewünschten Typ, beispielsweise K.
  3. Geben Sie einen eindeutigen Namen ein, beispielsweise K Ofen. Prüfen Sie Messbereich und Kaltstellenbereich. Zum Einstieg können Sie die vorbelegten Werte verwenden.
  4. Klicken Sie Kennlinie prüfen und übernehmen, anschließend im Einstellungsdialog Speichern und Anwenden.
  5. Fügen Sie unter Messwertverarbeitung einen Thermoelement-Block ein. Wählen Sie in seinen Parametern die Kennlinie K Ofen.
  6. Verbinden Sie die gemessene Spannung mit U [mV] und die Temperatur der Anschlussklemme mit T_ref [°C].
  7. Verwenden Sie T [°C] zusammen mit valid: Erst wenn valid wahr ist, liegt ein für die Anwendung verwendbarer Messwert vor. status erklärt mögliche Fehler.

Beim Wechsel der Kennlinie werden Min und Max automatisch aus deren gespeichertem Messbereich übernommen. Danach können Sie die Grenzen für Ihre Anwendung ändern. Das Umschalten von Checkrange, erneutes Auswählen derselben Kennlinie und Laden einer gespeicherten Konfiguration setzen eigene Grenzen nicht zurück. Bei einem Wechsel zu einer anderen Kennlinie werden sie erneut vorbelegt.

Anzeige im Designer

Die erweiterte Blockanzeige zeigt die berechnete Temperatur und darunter die Kaltstellentemperatur T_ref, jeweils in °C. Wenn der Ausgang valid nicht gesetzt ist, erscheint der deutliche Hinweis Not Valid.

Bei eingeschaltetem Checkrange erscheint darunter ein kleiner Bereichsbalken mit Min und Max. Seine Länge zeigt die Position der Temperatur zwischen diesen Grenzen; die Farbe wechselt von Grün bei Min über Gelb in der Mitte zu Rot bei Max. Außerhalb bleibt der Balken am jeweiligen Ende und Not Valid zeigt die fehlende Freigabe. Bei einem Umrechnungsfehler oder ungültigen Grenzen wird der Balken geleert.

Die Farbe beschreibt die Position im Bereich und ersetzt nicht die Prüfung von valid oder status.

Ein- und Ausgänge

AnschlussBedeutung
U [mV]Gemessene Spannung zwischen den Thermoelementleitungen, in Millivolt
T_ref [°C]Temperatur der Anschlussklemme, in Grad Celsius
Min [°C]Untere Grenze für einen verwendbaren Messwert; nur bei eingeschalteter Bereichsprüfung
Max [°C]Obere Grenze für einen verwendbaren Messwert; nur bei eingeschalteter Bereichsprüfung
T [°C]Berechnete Temperatur an der Messstelle
validWahr, sobald ein Messwert erfolgreich berechnet wurde und die eingeschaltete Bereichsprüfung erfüllt ist
status0 = kein Fehler; andere Werte beschreiben den Fehler

Der Spannungseingang erwartet die gemessene Spannung vor der Kaltstellenkompensation. Eine bereits kompensierte Spannung darf nicht erneut mit der tatsächlichen Kaltstellentemperatur kompensiert werden.

Für eine bekannte, konstante Kaltstellentemperatur können Sie einen festen Wert an T_ref [°C] verwenden. Der Block erkennt nicht, ob die tatsächlich vorhandene Klemmstellentemperatur davon abweicht.

Der Statusanschluss befindet sich unten bei den Ausgängen. An einem Zahleneingang liefert er den Fehlercode. An einem Digitaleingang bedeutet er 0 = kein Fehler, 1 = Fehler vorhanden. Sein Tooltip erklärt die möglichen Werte.

Nur verwendbare Temperaturen an die Regelung weitergeben

Beispiel: Ihre Regelung soll einen Messwert erst ab 200 °C verwenden, obwohl die Kennlinie auch niedrigere Temperaturen abdeckt.

  1. Aktivieren Sie in den Blockparametern Checkrange.
  2. Setzen Sie Min [°C] auf 200 und Max [°C] auf die obere Anwendungsgrenze, beispielsweise 1200.
  3. Verbinden Sie T [°C] mit dem Messwerteingang Ihrer Regelung und valid mit deren Freigabe beziehungsweise Messwertfreigabe, sofern der Regelblock eine solche besitzt.

Bei 150 °C gibt der Block T = 150 °C, valid = false und status = 0 aus. Die Messung ist korrekt, aber für Ihre Anwendung nicht verwendbar. Ab 200 °C bis einschließlich 1200 °C wird valid wahr. Oberhalb von Max wird valid wieder falsch, solange die Temperatur noch innerhalb des Kennlinienbereichs liegt.

Der Ausgang T wird dabei weder begrenzt noch festgehalten. Die angeschlossene Regelung muss valid tatsächlich berücksichtigen; allein die Verbindung von T verhindert keine Verarbeitung unbrauchbarer Werte.

Min und Max dürfen feste oder verbundene Werte sein. Auch bei unverändertem T wirkt eine Änderung der Grenzen bei der nächsten Ausführung des Blocks. Min = Max erlaubt genau diesen Temperaturwert. Min > Max oder nicht endliche Grenzen ergeben bei eingeschalteter Prüfung status = 1024, T = 0 und valid = false. Nach Korrektur läuft die Berechnung automatisch weiter.

Standardmäßig ist Checkrange ausgeschaltet. Dann werden Min und Max ignoriert; valid meldet ausschließlich, ob ein Messwert erfolgreich berechnet wurde. Die Kennlinienauswahl und die Bereichsprüfung sind voneinander unabhängige Parameter. Es können Kennlinienkennungen von 1 bis 127 gewählt werden; 0 bedeutet keine Auswahl.

TC_Data einfach konfigurieren

Die Übersicht enthält nur die gespeicherten Kennlinien. Sie zeigt deren Bereiche, Punktzahlen und Speicherbedarf. Ein Balken zeigt, wie viel der 8192 Byte belegt ist und wie viel noch frei bleibt. Darin sind auch die Verwaltungsdaten enthalten.

Jede Kennlinie hat zwei voneinander unabhängige Bereiche:

EinstellungWofür sie giltBeispiel für Typ K
Kaltstelle: von / bis / SchrittTemperatur der Anschlussklemme; Umrechnung von Temperatur in Ersatzspannung−10 … +50 °C, Schritt 2 °C
Messbereich: von / bis / TabellenpunkteTemperatur an der Messstelle; Umrechnung der kompensierten Spannung in Temperatur−20 … +1200 °C, 128 Punkte
Fehlerlimit gegenüber CSVZulässiger zusätzlicher Tabellenfehler gegenüber den Quelldaten0,1 °C

Die Beispiele entsprechen den aktuellen Vorbelegungen für K. Der Kaltstellenbereich muss die zu erwartenden Temperaturen Ihrer Anschlussklemme abdecken. Der Messbereich muss die Temperaturen Ihrer Messstelle abdecken. Beide Bereiche müssen in der Quelldatei enthalten sein.

Tabellenpunkte sind keine Temperatur-Schrittweite. Die Messwerttabelle verwendet gleichmäßige Spannungsabstände. Zwischen den Punkten interpoliert der Block. Mehr Punkte benötigen mehr Speicher und können den Tabellenfehler verringern. Das Fehlerlimit beschreibt nicht die gesamte Genauigkeit von Thermoelement, Spannungsmessung und Kaltstellenmessung.

Bei der Kaltstelle gibt es zusätzlich zu den Intervallen beide Endpunkte: −10 … +50 °C mit Schritt 2 °C ergibt beispielsweise 31 Punkte. Die Bereichsbreite muss ein ganzzahliges Vielfaches des Schritts sein.

Im Assistenten sehen Sie den Speicherbedarf der neuen Kennlinie und den danach verbleibenden Platz. Reicht der Speicher nicht, löschen Sie nicht benötigte Kennlinien oder wählen Sie eine andere Auslegung. Der Editor übernimmt eine Kennlinie nur, wenn auch die Prüfung des Fehlerlimits erfolgreich ist.

Hinzufügen, löschen und ersetzen

Wählen Sie als Quelle Standard-ZIP, Eigenes ZIP oder CSV-Datei. Die Standardbibliothek enthält B, E, J, K, N, R, S und T. Ein Name darf nur einmal vorkommen; Groß- und Kleinschreibung unterscheiden dabei keine Namen.

Gespeicherte Kennlinien können gelöscht und neu hinzugefügt, aber nicht nachträglich bearbeitet werden. Dieselbe Quelle darf für mehrere Einträge mit unterschiedlichen Bereichen verwendet werden, beispielsweise K Ofen und K Abgas.

Nach dem Löschen und erneuten Hinzufügen prüfen Sie die Kennlinienauswahl aller betroffenen Blöcke erneut. Eine neue Kennlinie ist nicht allein durch ihren Namen mit der alten Auswahl verknüpft.

Mit Kennlinie prüfen und übernehmen ändern Sie zunächst nur die lokalen Daten im Dialog. Erst Speichern und Anwenden überträgt sie auf das Gerät und initialisiert die betroffenen Thermoelementblöcke neu. Das Schließen ohne Übernahme ändert die laufenden Tabellen nicht.

Binär speichern … sichert das fertige Paket auf dem PC. Binär laden … ersetzt den lokalen Paketinhalt nach Prüfung und Rückfrage. Die ursprünglichen CSV-Dateien werden für die Verwendung eines fertigen Pakets nicht benötigt.

Was passiert außerhalb der Bereiche?

Der Block erweitert die Kennlinie nicht über ihre gespeicherten Grenzen hinaus. Die Endpunkte gehören zum gültigen Bereich.

SituationErgebnis am Ausgang Tstatus
Beide Eingänge sind gültig und die berechnete Temperatur liegt im MessbereichBerechnete Temperatur0
T_ref liegt unter oder über dem Kaltstellenbereich0 °C512
Die kompensierte Spannung liegt außerhalb des Messbereichs0 °C768
U oder T_ref ist kein endlicher Zahlenwert, beispielsweise NaN0 °C256

Beispiel: Bei einem Kaltstellenbereich von −10 … +50 °C ist T_ref = 51 °C ein Fehler, auch wenn die eigentliche Messstelle innerhalb ihres Messbereichs liegt. Bei einem Messbereich bis +1200 °C wird eine darüberliegende Messung ebenfalls als Fehler gemeldet.

Für die Prüfung des Messbereichs zählt U plus Kaltstellen-Ersatzspannung, nicht U allein. Deshalb gibt es keinen festen zulässigen Bereich der Eingangsspannung, der unabhängig von T_ref gilt.

Unmittelbar an den Spannungsgrenzen berücksichtigt die Firmware eine sehr kleine Rundungstoleranz. Innerhalb dieser Toleranz wird der Endpunkt ausgegeben. Das dient dem Ausgleich von Rechenrundungen und erweitert den nutzbaren Messbereich nicht.

Bei mehreren Fehlern zeigt der Block einen Fehlercode. Nach Prüfung der geladenen Kennlinie werden zunächst die eingeschalteten Anwendungsgrenzen geprüft, dann die Eingangszahlenwerte, der Kaltstellenbereich und zuletzt der Messbereich.

Sobald die Eingänge wieder gültig sind, liefert der Block bei der nächsten Berechnung automatisch einen Temperaturwert und setzt status auf 0. Ein manuelles Rücksetzen ist dafür nicht erforderlich.

Defaultwerte, Start und Fehlerfall

Ein neu angelegter Block hat zunächst folgende Werte:

EinstellungDefault
KennlinieKeine Kennlinie ausgewählt
U [mV]0
T_ref [°C]0
Min [°C]−20
Max [°C]1200
CheckrangeAusgeschaltet
T [°C]0
validfalse, bis der erste verwendbare Messwert vorliegt

Wählen Sie deshalb vor der Verwendung eine Kennlinie und stellen Sie beide Eingangswerte bereit. Ein fehlender Anschluss wird nicht automatisch als Messfehler erkannt: Ein fester Eingangswert kann ebenfalls gewollt sein. Insbesondere bedeutet T_ref = 0 die Annahme einer Kaltstelle bei 0 °C.

Bei einem erkannten Fehler setzt der Block T auf 0 und valid auf false. Er hält keinen alten Messwert fest und extrapoliert nicht. Diese 0 ist im Fehlerfall kein Temperaturmesswert. Auch eine korrekt berechnete Temperatur kann 0 °C sein; valid und status unterscheiden die Zustände. Eine Überschreitung des Anwendungsbereichs allein ist kein Umrechnungsfehler und setzt T deshalb nicht auf 0.

Nach jeder Initialisierung steht T zunächst auf 0 und valid auf false. Eine erfolgreiche Initialisierung meldet bereits status = 0; der erste Messwert entsteht erst durch die folgende Berechnung. Verwenden Sie deshalb valid als Freigabe für die Weiterverarbeitung.

Der Block wird standardmäßig höchstens alle 10 ms berechnet. Bei unveränderten gültigen Eingängen bleibt das Ergebnis erhalten. Einen Enable-Eingang und ein konfigurierbares Verhalten im Fehlerfall besitzt diese Version nicht.

Weitere Statusmeldungen

statusUrsacheAbhilfe
1TC_Data fehltTC_Data anlegen und übertragen
2Paket oder Tabellen ungültig beziehungsweise Format nicht unterstütztGültiges Paket laden oder Kennlinien neu erzeugen
3Keine Kennlinie ausgewählt oder ausgewählte Kennlinie fehltKennlinie in den Blockparametern auswählen
4Nicht genügend ArbeitsspeicherSpeicherbedarf der laufenden Konfiguration prüfen
5TC_Data konnte nicht gelesen werdenBlockdaten und Geräteverbindung prüfen
16Blockfunktion in der Firmware nicht verfügbarPassende Firmware verwenden
1024Anwendungsgrenzen ungültigEndliche Werte angeben und Min ≤ Max einstellen; automatische Erholung

Nach Beheben eines Initialisierungsfehlers (1 bis 5 oder 16) muss der Block erneut initialisiert werden, beispielsweise durch Änderung und Übernahme der Kennlinienauswahl oder durch Übertragen des korrigierten TC_Data-Pakets. Ein bloßes Ändern der Eingangswerte behebt diese Fehler nicht.

Umstieg von der bisherigen Blockversion: Wegen der zusätzlichen Eingänge hat sich die Blockstruktur geändert. Fügen Sie vorhandene Thermoelementblöcke neu ein, wählen Sie ihre Kennlinie und stellen Sie die Verbindungen wieder her. Das TC_Data-Paketformat bleibt Version 2.

Eigene Kennlinien

Eine eigene CSV enthält die Temperatur und die Thermoelementspannung bezogen auf eine Kaltstelle bei 0 °C:

temperature_C;voltage_mV
-10;-0.4
0;0
50;2
100;4

Dies ist eine künstliche Beispielkennlinie. Verwenden Sie für Ihren Sensor die passenden Daten.

Speichern Sie die Datei als UTF-8-Text. Verwenden Sie die gezeigte Kopfzeile, Semikolon als Spaltentrenner und Punkt als Dezimaltrennzeichen. Die Temperaturen müssen streng aufsteigen. Im gewählten Messbereich muss die Spannung durchgehend steigen oder fallen, damit die Umrechnung eindeutig ist.

Mehrere CSV-Dateien können direkt nebeneinander in einem ZIP liegen. Es sind keine Unterordner oder zusätzlichen Beschreibungsdateien erforderlich. Die Quelle wird nur beim Hinzufügen benötigt.