FC496 – V01/00.00.00 vom 23.03.2009
Durchschnittsberechnung zur Geschwindigkeitserfassung
In den SPS-Programmen müssen häufig Werte von Analog- oder Digitalsensoren erfasst werden, wie z.B.:
- Abstand
- Position
- Geschwindigkeit
- Strömungen
- ….. und einiges mehr.
Diese verschiedenen Daten werden benötigt zum:
- Steuern
- Regeln
- die Qulitätssicherung
Egal ob es sich um Analog- oder Digitalsensoren handelt, sind Werteschwankungen durch die verschiedenen Messarten normal.
Bei der Analogtechnik werden häufig Störsignale auf den Leitungen indiziert, während bei der Digitaltechnik die Signale bei geringen Abtastzeiten stark schwanken können.
Bei zu stark schwankenden Messwerten, welche durch die Art der Messart entstehen können, wird eine Aufbereitung der Werte benötigt, um den Prozess zu steuern oder regeln zu können. Bei Prozessen die eine Positionsangabe und eine Geschwindigkeitsangabe benötigten, wie z.B. bei der Positionierung von Liftsystemen, kann aus der Positionsangabe die Geschwindigkeit berechnet werden. Dies geschieht durch die Veränderung der zu ermittelnden Zeit, um die Geschwindigkeit in der gewünschten Einheit zu berechnen. Dafür wurde von uns der FC496 entwickelt, der z.B. bei einer Position, Abstand, Höhe oder Inkrementen (Zählerwert) eine Geschwindigkeit über den Durchschnittswert errechnet. Dadurch werden auch die schwankenden Signale beruhigt.
Allgemeines
Für den FC496 wird noch ein Datenbaustein benötigt, in dem die Daten von dem FC-Programm zwischen gespeichert werden, sowie die Werte für die Durchschnittsberechnung. Die Anzahl der Werte für die Ermittelung des Durchschnittswerts werden im DB496 im ARRAY angegeben. Die Anzahl der Werte kann je nach Anwendung von 2 bis 1000 Werten oder höher liegen. So kann die SPS-Zykluszeit stark erhöht werden, wenn alle Werte bei den FC-Aufruf zusammen addiert würden. Auf diese Weise würde das SPS-Programm auf Zykluszeit optimiert. So werden nicht alle Werte im Programmzyklus zusammengerechnet, sondern durch das addieren/subtrahieren vom aktuellen bzw. herausfallenden Gesamtwert berücksichtigt. Weiter sind die Werte als Rundlaufspeicher organisiert, wodurch das schieben der Werte entfällt. Mit diesem Programmbaustein können Werte des Datentyps Real verarbeitet werden.
FC-Beschaltung INPUT
In der folgenden Aufstellung gibt einen Überblick der Beschaltung:
DB_Dat DB-Block Daten von/für Auswertung
BII_1_Reset BOOL 1=Reset Durchschnittsberechnung
ReI_Zeit_Zykl Real Zeitwert pro Programmaufruf
ReI_Ist_Delta_Zykl Real Ist-Wert delta pro Programmaufruf
ReI_Zeitbasis_ms Real Zeitbasis in Millisekunden
(1000ms=#/sek 60000ms=#/min)
FC-Beschaltung OUTPUT
In der folgenden Aufstellung gibt einen Überblick der Beschaltung:
BIO_1_Ausf_akt BOOL 1=Ausführung aktiv
ReO_IST_V Real IST-V in vorgegebener Zeitbasis
ReO_IST_V_pos Real IST-V in vorgegebener Zeitbasis,
immer als positver Wert
Beschreibung zu der Beschaltung
Zu der Beschaltung des FC-Bausteins folgen weitere Informationen:
DB_Dat / DB-Block
Der FC-Baustein muss zur Ausführung Werte zwischenspeichern. Dazu gehört die Datensatznummer zum laden/speichern der Werte, sowie der Gesamtwert/Durchschnittswert der Datentypen DINT/Real, die hier zwischen gespeichert werden.

BII_1_Reset / BOOL
Wenn an den FC-Eingang ein VKE1 anliegt, wird der komplette DB-Baustein zurückgesetzt, alle Bytes werden auf Null gesetzt werden. Eine Durchschnittsberechnung wird nicht ausgeführt.
ReI_Zeit_Zykl / Real
Für die Berechnungen wird ein Zeitwert benötigt. Da nicht immer sichergestellt werden kann, dass der SPS-Zyklus immer gleich lang ist, wird hier die aktuelle SPS-Zykluszeit eingetragen, der in unserem Standardprogramm im OB1 erstellt wird.

ReI_Ist_Delta_Zykl / Real
Der FC496 verarbeitet nur die Werteänderung von Zyklus zu Zyklus, der hier eingetragen wird. Weil die Messwertsignale fast nur absolute Angaben sind, ist die Werteänderung noch zu ermitteln. Dafür kann der SPS-Programmbaustein FB103 (GP: Geberzähler auswerten) verwendet werden.
ReI_Zeitbasis_ms / Real
Im FC496 wurde auch berücksichtigt, daß nicht alle Werte in der Zeiteinheit Minute gebraucht werden oder sinnvoll sind. Daher kann der Programmierer die Zeitbasis selbst wählen, in dem er hier den Zeitwert in Millisekunden für die Einheit angibt (z.B. 1000ms=mm/sek 60000ms=dm³/min oder m/min). In den screen-shots wurde die Zeitbasis in Minuten angegebene (60000ms).
BIO_1_Ausf_akt / BOOL
Wenn der angegebene Datenbaustein zu wenig Bytes enthält, so das der notwendige Datenkopf inklusive einem Wert nicht vorhanden ist, kann keine Durchschnittsberechnung ausgeführt werden. Sollte der DB-Baustein die notwendige Größe haben, werden die Berechnungen ausgeführt, und eine TRUE/1 wird ausgegeben.
ReO_IST_V / Real
Hier wird der berechnete Durchschnittswert inklusive des Vorzeichens in der gewünschten Zeitbasis ausgegeben.
ReO_IST_V_pos / Real
Hier wird der berechnete Durchschnittswert immer als positiver Wert in der gewünschten Zeitbasis ausgegeben.

