-> Hier kostenlos registrieren
Moin Moin!
ich möchte in meiner Beckhoff Visu gerne ein Balkendiagramm einfügen, welches mir die Stückzahlen der letzten 24 Stunden einer Maschine anzeigt.
Dazu habe ich im SPS Code ein Array (arrLetzte24h : ARRAY [0..23] OF UDINT erstellt, in welches die Stückzahlen der derzeitigen Stunde auf Array Element 23 hochgezählt werden. Das Array rutscht dann bei Stundenwechsel jeweils um eine Stelle weiter und der älteste Wert fliegt raus (wird überschrieben) und Arrayelement 23 wird für die neu angebrochene Stunde wieder auf 0 gesetzt. Der Code für die Verschiebung des Arrays sieht so aus:
Wenn ich dieses Array nun mit meinem BarChart Control der HMI verknüpfe, bekomme ich folgendes Ergebnis:
Nun gefällt mir die Beschriftung der X-Achse noch nicht. Diese ist nämlich starr und verändert sich je nach Tageszeit NICHT. Der ganz rechte Balken (23) ist der Stückzähler der aktuellen Stunde. Der Balken links danben ist der Stückzähler der Stunde davor usw.
Wie schaffe ich es nun, dass mir die X-Achsenbeschriftung die tatsächliche Stunde des Tages anzeigt und nicht starr auf 0-23 bleibt. Also wenn es nun 15:30Uhr ist soll der ganz rechte Balken die X-Achsbeschriftung 15 haben und der Balken links daneben die 14 usw.
Vielleicht hat ja jemand einen Hinweis in die richtige Richtung für mich.
ich möchte in meiner Beckhoff Visu gerne ein Balkendiagramm einfügen, welches mir die Stückzahlen der letzten 24 Stunden einer Maschine anzeigt.
Dazu habe ich im SPS Code ein Array (arrLetzte24h : ARRAY [0..23] OF UDINT erstellt, in welches die Stückzahlen der derzeitigen Stunde auf Array Element 23 hochgezählt werden. Das Array rutscht dann bei Stundenwechsel jeweils um eine Stelle weiter und der älteste Wert fliegt raus (wird überschrieben) und Arrayelement 23 wird für die neu angebrochene Stunde wieder auf 0 gesetzt. Der Code für die Verschiebung des Arrays sieht so aus:
Code:
//Array letzte 24h
IF Zeitdaten.bStundenwechsel THEN
MemMove(
destAddr:=ADR(arrLetzte24h[0]), (* Zieladresse *)
srcAddr:=ADR(arrLetzte24h[1]), (* Quelladresse *)
n:=SIZEOF(arrLetzte24h)-4); (* Anzahl der zu verschiebenden Bytes *)
arrLetzte24h[23]:=0;
Wenn ich dieses Array nun mit meinem BarChart Control der HMI verknüpfe, bekomme ich folgendes Ergebnis:
Nun gefällt mir die Beschriftung der X-Achse noch nicht. Diese ist nämlich starr und verändert sich je nach Tageszeit NICHT. Der ganz rechte Balken (23) ist der Stückzähler der aktuellen Stunde. Der Balken links danben ist der Stückzähler der Stunde davor usw.
Wie schaffe ich es nun, dass mir die X-Achsenbeschriftung die tatsächliche Stunde des Tages anzeigt und nicht starr auf 0-23 bleibt. Also wenn es nun 15:30Uhr ist soll der ganz rechte Balken die X-Achsbeschriftung 15 haben und der Balken links daneben die 14 usw.
Vielleicht hat ja jemand einen Hinweis in die richtige Richtung für mich.