Messablauf

Ein typischer Messablauf zur Bestimmung der Masse eines Körpers umfasst drei wesentliche Schritte: Filtern, Skalieren und Auswerten.

Messablauf 1:

1. Filtern

Das Signal der EtherCAT-Klemmen der Baureihen ELM35xx und EL3356 weist typischerweise ein Maß an Rauschen auf, das eine Filterung erforderlich macht, um valide Messergebnisse zu gewährleisten. Der Funktionsbaustein FB_WG_ComboFilter bietet hierfür eine effektive Lösung, indem er eine Kombination aus PTn-, Moving-Average- und Notch-Filter in Serie schaltet. Sollten diese Filteroptionen nicht ausreichend sein, steht eine Auswahl weiterer Filter aus der TwinCAT 3 Filter Bibliothek zur Verfügung.

2. Skalieren

Das gefilterte Eingangssignal muss anschließend skaliert werden, um das Gewicht in der gewünschten Einheit (z. B. Gramm [g]) anzugeben. Die Skalierung erfolgt durch den Funktionsbaustein FB_WG_Scaling. Für eine akkurate Messung ist zudem eine Kalibrierung des SPS-Bausteins erforderlich, die beispielsweise mittels einer Zweipunktkalibrierung durchgeführt werden kann.

3. Auswerten

Im abschließenden Schritt wird das skalierte Signal mit Hilfe des Funktionsbausteins FB_WG_Weighing analysiert. Dabei ist es erforderlich, die Konfigurationsstruktur ST_WG_Weighing mit den passenden Parametern zu versehen. Ein Schlüsselparameter in dieser Struktur ist ST_WG_Weighing.nWindowLength, der die Anzahl der Samples definiert, die für die Berechnung des gleitenden Mittelwerts herangezogen werden – eine Größe, die auch als Fenstergröße bekannt ist. Dieser Parameter bestimmt, auf Basis wie vieler vergangener Werte die Ausgaben fWeight, fStd, fMin und fMax des Bausteins FB_WG_Weighing kalkuliert werden. Hierbei repräsentiert fWeight den Mittelwert, fStd die Standardabweichung und fMin/fMax den minimalen bzw. maximalen Wert der letzten nWindowLength Eingangswerte. Eine ergänzende Abbildung kann diese Zusammenhänge veranschaulichen.

Messablauf 2:

Um zusätzliche Ergebnisse des Funktionsbausteins wie bValidMeasurement, bNewResult, tLastResult, fLastWeight und fLastStd zu erhalten, ist es erforderlich, die Unterstruktur ST_WG_Weighing_Validation entsprechend zu konfigurieren.

Innerhalb von ST_WG_Weighing_Validation definieren die Parameter fThresholdWeight, fMaxWeightDeviation und fMaxStd die Kriterien für eine gültige Messung. Damit eine Messung als gültig gilt, müssen folgende Bedingungen erfüllt sein:

Diese Bedingungen müssen über die Anzahl der in nValidationSamples definierten aufeinanderfolgenden Samples hinweg erfüllt werden, um FB_WG_Weighing.bValidMeasurement auf TRUE zu setzen.

Die Messung wird eingeleitet, sobald FB_WG_Weighing.fWeight erstmalig den Wert von ST_WG_Weighing_Validation.fThresholdWeight übersteigt. Solange FB_WG_Weighing.bValidMeasurement den Wert TRUE hat, wird das Gewicht (fWeight) mit der kleinsten Standardabweichung (fStd) gesucht und kontinuierlich in FB_WG_Weighing.fLastWeight und in FB_WG_Weighing.fLastStd aktualisiert. Wenn der Parameter ST_WG_Weighing_Validation.fRelativeWeightLimit definiert ist, endet die Messung, sobald FB_WG_Weighing.fWeight unter den Wert von fThresholdWeight * fRelativeWeightLimit fällt. Ist dieser Parameter nicht gesetzt, endet die Messung, wenn fWeight unter fThresholdWeight fällt.

Am Ende der Messung wird der Zeitstempel in FB_WG_Weighing.tLastResult festgehalten und FB_WG_Weighing.bNewResult für genau einen Zyklus auf TRUE gesetzt. Wenn FB_WG_Weighing.fWeight erneut den Wert fThresholdWeight übersteigt, wird FB_WG_Weighing.fLastWeight zurückgesetzt und eine neue Messung beginnt.

In der nachfolgenden Abbildung wird der beschriebene Prozess noch einmal visuell verdeutlicht und zeigt den Zusammenhang zwischen den Parametern und den Bedingungen für eine gültige Messung:

Messablauf 3:

ST_WG_Weighing_AutoTare lässt sich analog zu ST_WG_Weighing_Validation konfigurieren, um Ergebnisse wie fAutoTareOffset und bNewAutoTareResult vom Funktionsbaustein zu erhalten. Diese sind essenziell, um den Funktionsbaustein FB_WG_Scaling automatisch zu tarieren, etwa durch den Aufruf von AutoTare(fbScaling,E_WG_AutoTareType.eEnd).

Dabei legen die Parameter fThresholdWeight, fMaxWeightDeviation und fMaxStd in ST_WG_Weighing_AutoTare die Kriterien für die Validierung einer Messung fest. Eine Messung gilt als gültig, wenn:

Die Aktualisierung von fAutoTareOffset beginnt, sobald fWeight erstmals unter fThresholdWeight fällt und die genannten Bedingungen über eine Reihe von in nValidationSamples definierten aufeinanderfolgenden Samples hinweg erfüllt sind. Das System sucht das Gewicht mit der niedrigsten Standardabweichung und aktualisiert kontinuierlich fAutoTareOffset.

Die Messung endet, sobald FB_WG_Weighing.fWeight den fThresholdWeight übersteigt. Daraufhin wird FB_WG_Weighing.bNewAutoTareResult einmalig auf TRUE gesetzt, was das Ende der Messung signalisiert. Fällt FB_WG_Weighing.fWeight unter den Schwellenwert fThresholdWeight, wird FB_WG_Weighing.fAutoTareOffset zurückgesetzt und eine neue Messung eingeleitet.

Die nachstehende Abbildung veranschaulicht den Ablauf und verdeutlicht die Beziehung zwischen den Parametern und den Kriterien für eine gültige Messung.

Messablauf 4: