LGF_Histogram_DInt (FB / V3.0.1)


Autor: Siemens Digital Industry

Kurzbeschreibung

Das Histogramm stellt die Häufigkeitsverteilung einer Stichprobe nach Klassen dar. Eine Klasse beschreibt ein Werteintervall, in dem die einzelnen Häufigkeiten aufaddiert werden. Nach Vorgabe der Anzahl der Klassen wird die Klassenbreite und die jeweilige Klassenmitte berechnet. Die Klassenanzahl ist auf 15 Klassen begrenzt.

Die Verteilung stellt sich als Rechteck um den Klassenmittelwert mit der Klassenbreite und der aufsummierten Häufigkeit als Höhe dar.

Abbildung: Verteilung

LGF_Histogram

WinCC-Control

Zur Visualisierung des Boxplots bietet Ihnen der Siemens Industry Online Support ein .Net-Control, dass Sie in Verbindung mit WinCC Runtime Professional nutzen können. Di WinCC Controls finden Sie im UserFiles Ordner dieser Bibliothek.

Abbildung: .Net Control "Histogramm"

LGF_Histogram - WinCC .NET Control


Baustein Schnittstelle

LGF_Histogram_DInt (FB)
Bool  execute error  Bool
    
UInt  numberOfClasses status  Word
    
   subFunctionStatus  Word
    
   histValues  Array[0..1, 0..#CLASSES_COUNTER_UP_LIMIT] of LReal
    
   axis  Array[0..3] of LReal
    
   classWidth  LReal
    
Array[*] of DInt  values  Array[*] of DInt
       
   

Input Parameter

BezeichnerDatentypDefault WertBeschreibung
executeBoolFALSEAktivierung der Berechnung mit jeder positiven Flanke.
numberOfClassesUInt0Anzahl der gewünschten Klassen.

Output Parameter

BezeichnerDatentypBeschreibung
errorBoolFALSE: Kein Fehler
TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord16#0000-16#7FFF: Status des FB
16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
subFunctionStatusWordStatus oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen
histValuesArray[0..1, 0..#CLASSES_COUNTER_UP_LIMIT] of LRealGibt in einem zweidimensionalen Array die errechneten Werte aus.
• `histValues[0,0..14]` gibt die relative Häufigkeit der einzelnen Klassen aus.
• `histValues[1,0..14]` gibt die Klassenmitten aus.
• Falls weniger als 15 Klassen gewünscht sind, dann werden die nicht benötigten Arrayelemente mit 0 ausgegeben.
axisArray[0..3] of LRealGibt die Achsenwerte an:
• Unterer Wert der X-Achse
• Oberer Wert der X-Achse
• Unterer Wert der Y-Achse
• Oberer Wert der Y-Achse
classWidthLRealGibt die berechnete Klassenbreite aus.

In/Out Parameter

BezeichnerDatentypBeschreibung
valuesArray[*] of DIntDas Array der Datenreihe, mit der gerechnet werden soll.

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_EXECUTION_FINISHED
Status: Abarbeitung ohne Fehler beendet
16#7000STATUS_NO_CALL
Status: Kein Aufruf. Der Baustein wartet auf die Aktivierung durch den Parameter `enable`.
16#7001STATUS_FIRST_CALL
Status: Erstaufruf des FB nach einschalten
16#8600ERR_SHELL_SORT
Fehler: Fehler in Anweisung `LGF_ShellSort_DInt`. Weitere Infos in `subFunctionStatus`
16#9101ERR_WRONG_NO_CLASSES
Fehler: Falsche Anzahl der Klassen. Übergeben Sie dem Parameter `numberOfClasses` einen gültigen Wert (1 bis 15).

Funktionsbeschreibung

Der Baustein sortiert die übergebenen Daten und berechnet mithilfe der übergebenen Klassenanzahl und den Datenbereich die allgemeine Klassenbreite. Anschließend zählt der Baustein die Werte, die innerhalb einer Klasse liegen. Um ein Histogramm zeichnen zu können, errechnet der Baustein auch die nötigen X- und Y-Koordinaten.

Die Elemente des übergebenen Arrays values werden vom Baustein aufsteigend sortiert. Zur Sortierung wird der LGF_Shellsort_UDInt Baustein verwendet.

Die Klassenanzahl kann mit folgender Faustformel angegeben werden:

Number~of~classes = \sqrt{number~of~elements}

z.B. 100 Werte --> Number~of~classes = \sqrt{100} = 10

Formeln

Die Klassenbreite errechnet der Baustein mit folgender Formel:

classWidth = \frac{max - min}{Number~of~classes}

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Siemens Industry Online Support
23.11.2018First released version
02.00.00Simatic Systems Support
06.11.2019Code refactoring, comments added
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0, harmonize the version of the whole library
03.00.01Simatic Systems Support
06.04.2021Insert documentation