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
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_UDInt (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 UDInt | values | Array[*] of UDInt | ||||||
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
execute | Bool | FALSE | Aktivierung der Berechnung mit jeder positiven Flanke. |
numberOfClasses | UInt | 0 | Anzahl der gewünschten Klassen. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
error | Bool | FALSE: Kein Fehler TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten |
status | Word | 16#0000-16#7FFF: Status des FB 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
subfunctionStatus | Word | Status oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen |
histValues | Array[0..1, 0..#CLASSES_COUNTER_UP_LIMIT] of LReal | Gibt 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. |
axis | Array[0..3] of LReal | Gibt die Achsenwerte an: • Unterer Wert der X-Achse • Oberer Wert der X-Achse • Unterer Wert der Y-Achse • Oberer Wert der Y-Achse |
classWidth | LReal | Gibt die berechnete Klassenbreite aus. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
values | Array[*] of UDInt | Das Array der Datenreihe, mit der gerechnet werden soll. |
Code / Wert | Bezeichner / Beschreibung |
---|---|
16#0000 | STATUS_EXECUTION_FINISHED Status: Abarbeitung ohne Fehler beendet |
16#7000 | STATUS_NO_CALL Status: Kein Aufruf. Der Baustein wartet auf die Aktivierung durch den Parameter `enable`. |
16#7001 | STATUS_FIRST_CALL Status: Erstaufruf des FB nach einschalten |
16#8600 | ERR_SHELL_SORT Fehler: Fehler in Anweisung `LGF_ShellSort_UDInt`. Weitere Infos in `subFunctionStatus` |
16#9101 | ERR_WRONG_NO_CLASSES Fehler: Falsche Anzahl der Klassen. Übergeben Sie dem Parameter `numberOfClasses` einen gültigen Wert (1 bis 15). |
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
Die Klassenbreite errechnet der Baustein mit folgender Formel:
classWidth = \frac{max - min}{Number~of~classes}Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Siemens Industry Online Support | |
23.11.2018 | First released version | |
02.00.00 | Simatic Systems Support | |
06.11.2019 | Code refactoring, comments added | |
03.00.00 | Simatic Systems Support | |
23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library | |
03.00.01 | Simatic Systems Support | |
06.04.2021 | Insert documentation |