Datenverwaltung , Datenvisualisierung B&R-Steuerung

ManAtWork!

Level-1
Beiträge
89
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Liebes Forum,

ich hab eine Frage zur Datenverwaltung und Datenvisualisierung auf einer B&R-Steuerung.
Und zwar möchte ich Daten pro produziertem Teil Speichern und gleichzeitig die Daten am Panel für den Bediener visualisieren.

Jetzt ist es aber so, dass die Anlage natürlich pro Charge extrem viele Teile produziert (Die genaue Anzahl ist vom Kunden noch nicht bekannt aber es werden ziemlich viele Teile sein und die Anzahl kann varrieren).
Es müssen also ziemlich viele Daten erfasst werden.
Hinzu kommt, dass man alle Daten auch auf einen USB-Stick ziehen können soll.

Aus diesem Grund bin ich mir jetzt nicht ganz sicher, wie ich das umsetzen kann.

Das ganze in ein riesen großes Array zu packen dürfte schwierig werden?
Erstens kann die Teileanzahl pro Charge variieren, dass Array würde eine größe X haben und ich bin mir nicht ganz sicher wie das mit dem Speicher aussieht wenn man ein Array mit zb 10000 Feldern hat.

Das ganze in eine csv- bzw. txt Datei zu schreiben würde natürlich auch gehen.

Hier sehe ich aber das Problem: Wie Visualisiere ich diese ganzen Daten am Panel dann?
Mit einem großen Array kann ich mir das irgendwie noch vorstellen.
Aber mit einer Datei in dem die Daten stehen ? Wie macht man sowas?

Ich hoffe ich konnte mein Problem einigermaßen verständlich erklären und hoffe, dass jemand so ein ähnliches Problem hatte und mich in die richtige Richtung lenken könnte.

Es geht mir jetzt mal nur um den allgemeinen Weg wie man sowas erfasst, speichert und visualisiert kann.

PS: Folgende Daten pro produziertem Teil würde ich gerne Speichern und Anzeigen lassen:

1. Datum
2. Lot-Nr
3. Teile-Nr (Sequenz)
4. Gutteil
5. Uhrzeit 1. Bearbeitungschritt
6. Uhrzeit 2. Bearbeitungschritt
7. Uhrzeit 3. Bearbeitungschritt
8. Uhrzeit 4. Bearbeitungschritt
9. Uhrzeit 5. Bearbeitungschritt
10. Uhrzeit 6. Bearbeitungschritt
11. Zeitliche Differenz zwischen 1. Bearbeitungsschritt und 6. Bearbeitungsschritt


Grüße Dominik
 
Hallo Dominik,

man muss hier ganz klar abgrenzen was die Aufgaben einer SPS sind und was nicht.

Bis zu einer gewissen Anzahl von Teilen ist es schon möglich das in der SPS zu machen, aber was kommt dann? Wie wird die Datenkonsistenz sichergestellt? Plötzlich soll doch noch gefiltert werden ( Gut / Schlecht / Zeitstempel )...

Wenn du die Datentypen mal Anschaust welche du hier ablegen willst kriegst du ja mal ein Gefühl dafür wie viel Speicher du vorhalten musst:
1. ( DATE ) 4 Byte
2. ( UDINT ) 4 Byte / STRING ( 1 Byte pro Char )
3. ( UDINT ) 4 Byte ( Kann man evtl. auf ein UINT mit zwei Byte reduziern... )
4. ( BOOL ) 1 Byte ( fraglich ob Gut / Schlecht ausreicht, oder ob auch der Grund warum GUT / SCHLECHT noch erfasst werden soll )
5. ( TIME ) 4 Byte
6. ( TIME ) 4 Byte
7.( TIME ) 4 Byte
8.( TIME ) 4 Byte
9.( TIME ) 4 Byte
10.( TIME ) 4 Byte
11.( TIME ) 4 Byte ( sehe ich als nicht Speicherwürdig, da man diese Information aus vorhandenen Daten errechnen kann -> Datenredundanz... )

Das sind 37 ( 41 mit 11. ) Byte pro Teil. Ich weiß nicht wie viele Teile pro Batch drauf sollen. Da du den Speicher nicht dynamisch allokieren kannst, musst du den ganzen Speicher vorher schon reservieren. Das begrenzt aber auch die Anzahl der Teile von denen du Daten aufnehmen kannst. B&R bietet die Möglichkeit Datenobjekte anzulegen und diese auch zu befüllen. Ist aber ein ganz schöner Aufwand...

Beim wegspeichern in eine CSV Datei kommt es dann auch noch auf die Taktzeiten an. Hier müssen die Daten als String aufbereitet und dann weggeschrieben werden. Das wegschreiben geschieht azyklisch, das heißt du musst einen Puffer aufbauen welcher nie voll werden darf.

Einfach eine Tabelle in Visual Components darzustellen wird auch nicht funktionieren, da die "Listbox" nur Strings darstellt... Auch da musst du dir von eine Visutabelle basteln und von Hand umsortieren wenn du den Anzeigebereich verschieben willst.

Solche Dinge gehören in eine richtige Visualisierung / SCADA Anwendung wie ZENON oder ähnliche. Die SPS kann diese Daten sammeln, aggregieren und bereitstellen. Für alles andere sind nachgelagerte Systeme Zuständig.

MfG

Markus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Markus,

so hört man mal wieder voneinander :p

Die Idee mit dem abspeichern in der SPS war eigentlich auch nie wirklich eine ernste Möglichkeit, ich wollte sie aber trotzdem mal angesprochen haben um Reaktionen drauf zu bekommen.
Und so wie ich das bei dir sehen kann, sind wir da eindeutig einer Meinung.

Die Idee mit der CSV-Datei möchte ich aber noch nicht sterben lassen.
Ich habe mich die Tage mit FTP und CIFS auseinandergesetzt.
Gerade in CIFS habe ich jetzt die ersten Tests gemacht und es scheint ganz gut zu funktionieren. (einfache FileCreat,FileRead,FileWrite tests)
Hast du in der Richtung schon mal Erfahrungen gemacht?

Das gute ist, dass meine momentane Anlage einen zusätzlichen Rechner besitzt (für die Bedienung der Etikettiersoftware). Diesen könnte ich für mein Datenmanagement "missbrauchen" indem ich dort mit CIFS meine Daten verwalte.
Von dort könnte ich auch bequem meine Daten wieder auslesen und für die Visu bereitstellen.

Wie man diese Datei dann auf dem Rechner für den Bediener erreichbar macht, weiß ich noch nicht bzw. muss ich noch testen ob es da zu Komplikationen kommen könnte.
(Also wenn der Rechner und die SPS gleichzeitig auf solch eine Datei zugreifen möchte)

Mache das aber eben alles zum ersten mal und stolpere über jeden kleinen Stein.
Was meinst du genau mit "ich muss einen Puffer aufbauen welcher nie voll werden darf" ?

Ansonsten würde es bestimmt reichen, wenn die Daten "oldschool" in einer CSV-Datei Zeilenweise dargestellt werden.

Ob unser Kunde ein System wie SCADA oder OPC besitzt weiß ich nicht. Auch hier habe ich keinerlei Erfahrungen.
Brauch da die Gegenseite nicht ein extra Programm um meine gesendeten Daten richtig deuten zu können?
Bzw. wenn ich diese Daten wieder einholen will, dass mir die richtigen zur Verfügung gestellt werden?

Grüße Dominik
 
Oder gibt es hier noch andere Möglichkeiten?

Wie externe Festplatten die man für die Datenablage benutzt könnte?
Also welche, die man zb. im Schaltschrank mit verbauen könnte?

Oder habe ich dort immer das Problem mit den maximal möglichen Schreibzyklen wie bei der CF-Karte ?:confused::confused:

Grüße Dominik
 
Besteht denn überhaupt die Notwendigkeit
- in der Steuerung die Daten über einen "beliebig" langen Zeitraum nachzuhalten?
- die Daten aus der CSV-Datei nachträglich wieder in der Steuerung verfügbar zu machen?
Wie wäre es, die Daten in eine CSV-Datei "endlos" auszulagern und parallel dazu in der Steuerung nur die letzten n DatenSätze zu speichern.
Die Maschine/Anlage soll doch produzieren und nicht auch noch selbständig die Prozesse optimieren?
Vielleicht ist es sinnvoller, in der Steuerung z.B. nur Durchschnitts-, Minimal- und MaximalWerte z.B. pro Tag, pro Schicht oder pro Charge zu visualisieren?
Die ausführlichen Daten "für's Archiv" sind dann eben nur über die CSV-Datei[en] verfügbar.

PS:
Wenn die BearbeitungsSchritte lückenlos nacheinander erfolgen, würde ich die UhrZeit nur für den 1. Schritt abspeichern und für jeden Schritt nur die BearbeitungsDauer.
Das sollte eigentlich genügen. Für die BearbeitungsDauer dürftest Du jeweils mit weniger als 4 Byte auskommen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dominik,

ich war bis heute im "Zwischen-den-Jahren-Shutdown".

Wenn du gleichzeitig auf Daten zugreifen möchtest ( lesen/schreiben), wirst du wahrscheinlich um eine Datenbank nicht drum herum kommen die dir den Zugriff regelt.

Das ganze in einer einzelnen Datei zu machen halte ich für riskant, da du bei einem Fehler unter Umständen alle Daten verlieren könntest. Ich würde hier zumindest in einem festen Zeit- oder Stückintervall eine neue Datei generieren. Damit könntest du evtl. auch dein Zugriffsproblem lösen. Du kopierst einfach die fertige Datei in ein anderes Verzeichnis auf das der Benutzer lesend zugreifen kann. Aber selbst das dann wieder zurückzubekommen in deine Visualisierung oder anderweitig darzustellen wird eine Herausforderung.

Das mit dem Puffer war dafür gemeint, falls du länger brauchst zum Daten wegschreiben als dass neue "Produkte" erzeugt werden.

Wenn du eine Bastellösung mit OPC und Datenbank haben möchtest schau dir mal NodeRed an. Kann man auch auf einem Windows-PC zum laufen bekommen und das funktioniert relativ zuverlässig. Aber Professionell ist das halt net...

MfG

Markus
 
Hallo,
ich denke bevor du hier eine Lösung entwerfen kannst musst du ganz eindeutig mit dem Kunden abklären wo die Daten wie zur Verfügung gestellt werden sollen (vor allem wie lange).

Die Daten auszulagern (MQTT, OPC, RedNode) ist heutzutage nicht das große Problem, aber wie siehts mit der Weiterverarbeitung aus? Hat der Kunde eine Datenverwaltung wo du die Daten einspielen kannst, wo der Kunde die weitere Verarbeitung übernehmen kann? Falls ja, wäre so eine Streaming Lösung meiner Meinung nach sehr passend.

Falls nein, hast du die Daten zwar aus der SPS rausgeschubst, dann gehts aber erst recht weiter. Wo und wie speichern? Zurück zur SPS für den Bediener? Nach meiner Meinung ist ohne 'Datensenke' seitens des Kunden eine Streaming Variante keine gute Lösung, da die externe Datenhaltung / Aufarbeitung / Anzeige sehr aufwendig werden könnte.

Die Daten lokal auf der SPS zu halten finde ich dann besser. Natürlich kann man Export Routinen zur Verfügung stellen die in bestimmten Intervallen (Tage, Wochen, Monate usw....) die Daten vom SPS System rausholen und somit Speicher wieder verfügbar machen. Die Daten an sich würde ich aber dann nicht mehr ändern, ev. kann man ja die SPS Visu (in Form von ARSim) in Büro PCs verwenden.

Um die Daten in der PLC geordnet zu halten würde ich auf jeden Fall schon mal viele Infos in den Dateinamen verstecken. Zeitintervalle z.B. Tage, Wochen usw. in Form von Verzeichnissen (jede Zeiteinheit ein Verzeichnis). Ev. für jedes Teil eine Datei mit der Info GutTeil usw.
Mit den File/Verzeichnis Funktionen kannst du dann schon einen Großteil der Filterungen machen...

Schöne Grüße
Manfred
 
Ich sehe hier mehrere Möglichkeiten.

1.
Eine externe USB Festplatte oder eine SSD anschließen und dort dann die Daten via "FileIO" Library als CSV Datei oder im binär Format ablegen, oder eben auch via FTP und CIFS wie schon genannt wurde.

2.
Die Daten via AsDb "Library" an einen externen MS-SQL oder Sybase Server übertragen.

3.
Verwendung von mapp Data, hier können die Daten auch auf eine externe Festplatte geschrieben werden. Wenn ich mich nicht täusche, dann soll mapp Data dann später auch noch die Anbindung an externe SQL Datenbanken unterstützen.

4.
Mit OPC UA Historizing könnten Werte auf der SPS für einen gewissen Zeitraum zwischengepuffert werden und dann auf ein externes System übernommen werden.

Bei allen Varienten (auch bei FTP und CIFS) muss die SPS bei einem kurzzeitigem Ausfall des Datenträgers oder der Verbindung die Daten für einen gewissen Zeitraum zwischenspeichern.

Zur Visualisierung muss man bei 1. und 2. auf jeden Fall selbst Hand anlegen und die Daten entsprechend auslesen und aufbereiten.
Bei 3. gibt es eventuell schon eine Anbindung an die mapp View (Web) Visualisierung von B&R oder auch an die mapp Report.
Bei 4. können zumindest die Kurzeit-Daten aus dem OPC UA Tag auf der Visu angezeigt werden, Zugriffe vom externen Datenspeicher müssten wieder ausprogrammiert werden.

Eine SSD ist übrigens nicht so schnell totgeschrieben:
https://www.heise.de/newsticker/mel...-beendet-Exitus-bei-9-1-Petabyte-3755009.html
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

tut mir leid das ich erst jetzt antworte, habe aber erst jetzt vom Kunden erfahren wie sie sich das ganze vorstellen.
Was mir hier zu gute kommt, es sollen jetzt doch nicht mehr sooo viele Daten aufgezeichnet werden, wie anfangs wirbel gemacht wurde.
Somit kann ich das ganze lokal auf der PLC halten.
Insgesamt sollen 5 Datensätze mit jeweils 200 Teilen ( insgesamt komme ich hier auf 224560Bytes ).
1 Datensatz wird beschrieben und 4 als Puffer.

Das ganze kann ich also schön in einer Struktur anlegen, beschrieben, verschieben und anschließend am Panel anzeigen lassen.
Über ein USB-Stick kann der Kunde einen Datensatz auswählen und als CSV-Datei auf den USB-Stick schreiben.

Da das ganze nur eine Laboranlage wird, reicht dem Kunden das.

Trotzdem vielen Dank für eure ganzen Anregungen und Ideen.
Den weg über FTP und CIFS habe ich testweise trotzdem mal probiert.
Hier nur kurz zur Info (ich wusste das alles nicht):
Mit FTP kann man nur ganze Dateien behandeln. Ich kann aber nicht über FTP auf eine Datei zugreifen und diese beschreiben.
Das geht mit CIFS aber alles ganz bequem.
 
Zurück
Oben