FB300 – V01/00.00.00 vom 18.10.2009
Die Aufgabe einer SPS-Steuerung ist das Erfassen von Signalen/Daten, um diese im SPS-Programm zu verarbeiten. In der Industrieautomation wird eine Vielzahl von Signalgebern verwendet, die auf verschiedene Weisen an die SPS angeschlossen werden. Durch die Systemeigenschaften von Signalgebern, Messungen, Leitungsverlegungen und dem SPS-System kommt es vor, dass das Signal für die Anwendung oder Regelung aufbereitet werden muss.
Welche Effekte könnten zur Aufbereitung der Signale führen?
- Stark schwankende Messerwerte
- Motordrehzahl
- Störsignale auf den Leitungen vom Analogsignal
- Signalsprünge auszugleichen
- Sporadische Messfehler/Störungen zu unterdrücken
Allgemeines
Für die Geschwindigkeitserfassung wurde der FB300 entwickelt, der mit der Wegänderung pro SPS-Zyklus, den Durchschnittswert in m/min ermittelt. Eine mögliche Anwendung sind Antriebssysteme, die Materialien fördern, bzw. eine Bewegung ausführen, welche einen Weg zur Folge hat. Der FB300 wertet die Wegänderung aus. Die Wegänderung kann z.B. über einen Drehgeber, der am Motor, am Getriebe oder an der Umlenkrolle sitzt, ermittelt werden. Mit der Größe des DB’s, der die Wertänderung speichert, wird die durchschnittliche Geschwindigkeit berechnet (Summe der Wertänderung/Anzahl Datensätze, die anschließend in m/min umgerechnet wird). Die Grafik zeigt eine Aufzeichnung zweier Werte. Der obere Wert ist ungefiltert. Aus ihm wurde die Wertänderung ermittelt. Der untere Wert ist das Ergebnis vom FB300, welcher den durchschnittlichen Geschwindigkeitswert ermittelt hat.
Der FB300 hat folgende Merkmale:
- Pro FB Ausführung wird der Durchschnittswert neu ermittelt
- Anzahl der Werte für Berechnung über DB-Größe einstellbar
- Ergebnisausgabe als Real, in m/min
- Zykluszeit in optimierter Auswertung
- Automatische Korrektur
- Multiinstanzfähigkeit
FB300 Beschaltung INPUT
dbd_dat DB-Block DB mit Daten von/für Auswertung (Alternative ‘db_dat’)
dbnr_dat INT DB-Nr. mit Daten von/für Auswertung (Alternative ‘db_dat’)
bii_1_reset BOOL 1=Reset Durschschnittsberechnung
rei_zeit_zykl Real Zeitwert pro Programmaufruf
rei_weg_zykl_mm Real Weg pro Programmaufruf in mm
FB300 Beschaltung OUTPUT
bio_1_ausf_akt BOOL 1=Ausführung aktiv
reo_mat_v Real Material-V in m/min
reo_mat_v_pos Real Material-V in m/min, immer als Positiver Wert
Beschreibung zu der Beschaltung des FC´s:
- dbd_dat / DB-Block
- dbnr_dat / INT
Für die Zwischenspeicherung der Werte ‘rei_zeit_zykl’ / ‘rei_weg_zykl_mm’ wird ein Datenbaustein benötigt, der als Umlaufspeicher ausgelegt ist. Bei jedem Programmaufruf werden hier die alten Werte ausgelesen und von der Summe subtrahiert. Die neuen Werte werden in dem DB gespeichert, und zur Summe hinzu addiert.
Die Angabe des Datenbausteins kann auf zwei verschiedene Arten angeben werden. Der entsprechende DB kann direkt als DB-Block, z.B. mit der Beschaltung ‘dbd_dat’, als DB300 angegeben werden. Als alternative DB-Angabe kann die Beschaltung ‘dbnr_dat’ verwendet werden, an der nur die DB-Nr. eintragen wird, z.B. ‘300′. Dabei hat der Übergabeparameter ‘dbnr_dat’ die Priorität, wenn der Wert größer Null ist.
- bii_1_reset / BOOL
Falls ein kompletter Datenreset gewünscht wird oder notwendig ist, wird hier mit einem TRUE/1 Signal der komplette DB-Inhalt auf Null zurückgesetzt, sowie sämtliche Daten, die zur Berechnung zwischengespeichert wurden. Bei dieser Funktion kann sich die SPS-Zykluszeit je nach Größe des DB´s erhöhen.
- rei_zeit_zykl / Real
- rei_weg_zykl_mm / Real
Diese beiden Werte werden für die Geschwindigkeitsberechnung benötigt. Der Zeitwert wird am ‘rei_zeit_zykl’ beschaltet. Bei zyklischem FB Aufruf kann die SPS-Zykluszeit verwendet werden (siehe Dokumentation OB1, in der wir einige Signale/Daten erstellen).
Alternativ kann ein Weckalarm (OB30..38) verwendet werden, dessen fester Zeitaufruf eingetragen wird. Der zweite Wert ist der zurückgelegte Weg pro Programmaufruf in mm, der an ‘rei_weg_zykl_mm’ beschaltet wird.
- bio_1_ausf_akt / BOOL
Dieses Signal zeigt an, dass die Geschwindigkeitsberechnungen beim True Signal ausgeführt wurden. Eine mögliche Ursache für die Nichtausführung ist, dass der Datenbaustein zu klein ist. Es müssen minimal zwei Datensätze vorhanden sein.
- reo_mat_v / Real
- reo_mat_v_pos / Real
Das Ergebnis der Durchschnittsberechnung wird hier in m/min ausgegeben. Der OUTPUT Wert ‘reo_mat_v’ wird mit Vorzeichen ausgegeben. Bei einem negativen Übergabewert vom Weg, kann das Ergebnis negativ sein. Bei dem Rückgabewert ‘reo_mat_v_pos’ wird immer ein positiver Wert ausgegeben.
Ergänzende Informationen
Der Datenbaustein
Der zugewiesene Datenbaustein speichert die Übergabeparameter für die Berechnungen. In dem DB300 wurde ein Array angelegt, der eine Struktur (Datensatz) enthält, in dem die Zeit-/Wegwerte eingebunden sind. Der Programmierer bestimmt durch die Anzahl der Datenfelder, wieviel Werte in der Durchschnittsberechnung ausgeführt werden sollen. Um so größer die Anzahl, desto größer der Zeitbereich.
Automatische Korrektur
Bei jedem Umlauf werden alternativ Gesamtwerte gebildet, um die Ungenauigkeiten bzw. Fehler zu korrigieren.




