TIA Excel Tabelle als CSV einlesen und verarbeiten

Zuviel Werbung?
-> Hier kostenlos registrieren
Und vieleicht ist dies eine Aufgabe für der "open controller".
Es hat relativ viel Datenspeicher. 5 MB glaube ich.
Und wenn die Daten intern von WinCC RT auf der open controller übertragen wird, dann geht es viel schneller in vergleich zu ein normalen Ethernet Verbindung.
 
Echtes PC Programm gestaltet sich auch wieder schwierig. Kann ich nicht per HMI bedienen und ich hab noch nie mit C++ und Konsorten gearbeitet.

Ich fürchte allerdings, dass du da irgendwo landen wirst - vielleicht mit der Variante von Peter Wahlen.
Es wäre zu diesem Zeitpunkt möglicherweise sinnvoll wenn du darüber mal mit deinem Chef und/oder deinem Kunden Rücksprache hältst.
Ich halte deine Problematik für nicht sinnvoll mit einer Standard-Visu zu realisieren ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen Leute,

also ich habe aktuell wie es scheint 5 verschiedene Varianten die ich zur Lösung verwenden könnte

1. mit der Rezeptur der WinCC, da liegt die Limitierung allerdings bei 5000 Datensätzen bei ner Runtime (@JesperMP)
2. mit einem VBScript die CSV Datei zerlegen in internen Variablen Arrays speichern und dann Häppchenweise in die CPU laden
3. die gesamte CSV Datei per HMI auf die interne SD Karte der SPS schieben und von dort weiter verarbeiten (bin mir aber nicht sicher ob das so ohne weiteres geht)
4. per TCP-Verbindung (Fileserver, etc.), wobei hier das Problem wohl liegt, dass jeder Datensatz Anfang und Ende kodiert bekommen muss
5. mit einem Windows-Tool (C++, etc.) die Daten direkt in einen SPS Datenbaustein zu übertragen

Ich werde mich wohl oder übel erst mal mit dein beiden ersten Varianten beschäftigen müssen. Variante 3 finde ich interessant, vorallem weil es wohl möglich sein soll per S7-1500 Webserver die Datei zu übertragen, kann ich aber nicht ausprobieren, weil keine Hardware vorhanden ist und zur Simulation bräuchte ich PLCSim Advanced.
Variante 4 scheint wohl nicht besonders praktikabel und bezüglich Variante 5 müsste ich tatsächlich mit meinem Chef sprechen in wieweit man das realisieren kann/darf.

MFG Azrael
 
Noch einmal zwei Ansätze:

1. Open Controller und ODK, dann brauchst du die Daten nicht zwischen HMI und PLC hin und her schaufeln.

2. Können die 1500er nicht mittlerweile auch CSV Datein einlesen, also wieder die Daten direckt in der PLC
verarbeiten.
 
Noch einmal zwei Ansätze:

1. Open Controller und ODK, dann brauchst du die Daten nicht zwischen HMI und PLC hin und her schaufeln.

2. Können die 1500er nicht mittlerweile auch CSV Datein einlesen, also wieder die Daten direckt in der PLC
verarbeiten.

zu 1. Open Controller : benötigt aber anscheinend eine eigene/andere CPU

zu 2. Wenn ich das richtig gegoogelt habe dann kann die 1500 wohl auf CSV Dateien die auf der MMC liegen zugreifen. Kann ich aber nicht ausprobieren weil keine Hardware vorhanden und Simulieren geht anscheinend nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
zu 1. Open Controller : benötigt aber anscheinend eine eigene/andere CPU

zu 2. Wenn ich das richtig gegoogelt habe dann kann die 1500 wohl auf CSV Dateien die auf der MMC liegen zugreifen. Kann ich aber nicht ausprobieren weil keine Hardware vorhanden und Simulieren geht anscheinend nicht.

zu 1.
Ich würde sogar einen Schritt weiter gehen und einen 477 oder höher und da die Soft SPS 1507 installieren,
das ganze dann mit ODK, dann kannst du in vernünftiger Hochsprache deine Daten einlesen und hast den
Prozess Zeitlich unter Kontrolle.

zu 2.
CSV.jpg
 
:-) ok dann gleich mal die Zwischenfrage, was ist denn eine 477?

das mit der Rezeptverwaltung per MMC hatte ich schonmal entdeckt. Hat aber den Nachteil, dass ich es nicht ausprobieren kann und vermutlich auch keine Datenübersicht auf der Visu habe.

Ich habe übrigens gerade festgestellt, dass Rezepte von einer CSV Datei per Runtime nicht so ohne weiteres möglich ist. Man schein dazu noch etwas bei Siemens einkaufen zu müssen (WinCC Recipes for Runtime Advanced-Lizenz) ^^
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Helmut:
Ich glaube nicht, dass du durch den Einsatz einer Soft-SPS hier Vorteile erzielen würdest ...
Der Teile "mit vernünftiger Hochsprache ..." würde sich dadurch nicht anders gestalten ...

@Azrael:
Ich würde hier eher über .Net (also VB.NET oder C#.Net - alldanach was dir besser munden würde) nachdenken ...
Deine Varianten 1,2,3 wären mir zu unsicher in der Kontrollierbarkeit ...
 
@Helmut:
Ich glaube nicht, dass du durch den Einsatz einer Soft-SPS hier Vorteile erzielen würdest ...
Der Teile "mit vernünftiger Hochsprache ..." würde sich dadurch nicht anders gestalten ...

@Azrael:
Ich würde hier eher über .Net (also VB.NET oder C#.Net - alldanach was dir besser munden würde) nachdenken ...
Deine Varianten 1,2,3 wären mir zu unsicher in der Kontrollierbarkeit ...

ich schrieb doch IPC mit ODK, dann hat er doch Hochsprache. Er ruft dann
diese Hochsprachenanwendung aus den PLC Programm auf wie ein Funktionsbaustein.

Dann hat er nur eine Plattform und muss nicht von einer in die anderen, die Daten
hin und her schaufeln.
 
... da bist du dann weiter als ich ...
Ich kenne nur die Variante, wo zwischen dem PC-Programm und der SPS eine Art "Shared Memory" vereinbart wird ...
Wie auch immer ... ich weiß jetzt nicht so recht, ob ich solchen Siemens-Tools so richtig vertrauen könnte. Bei dem anderen vorgeschlagenen Weg weiß ich hingegen, dass das funktioniert und auch vernünftig umsetzbar ist ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm so, jetzt kenn ich zumindest schonmal die Beschränkungen von WinCC Runtime

- max interne Variablen -> ca. 24500
- Arrays [0..1999]
- keine String-Arrays

Also wird es per Script schonmal nicht besonders angenehm
 
Ich würde auch eine Soft SPS nehmen und die Daten darüberdirekt in einen DB Schreiben.
Wenn du z.B. eine Microbox nimmst kannst du auf dem gleichen PC direkt WinCC Advanced als Runtime laufen lassen und brauchst nur einen Monitor oder touch screen anschließen um die Visualisierung laufen zu lassen.
Dann brauchst du kein extra Panel und es wird dir nicht abgekündigt.

Gruß

Jens
 
Ich meine, es ist völlig egal, ob die WinCC Advanced Runtime auf einem Touchpanel oder einem PC oder zusammen mit einer SoftSPS auf dem selben PC/Microbox läuft - das Übertragen der csv-Daten in einen DB der SPS mit WinCC Adv. RT wird nicht schneller oder einfacher, weil das als Rezeptur (mit Fertigmeldung) erfolgen muß. Und da hat man die Wahl zwischen: eine Rezeptur mit 13 (oder 5 *) Variablen anzulegen und davon 50.000 Datensätze in die SPS zu schaufeln (wo die Übertragung ein paar Stunden dauert), oder z.B. eine Rezeptur mit 1300 (oder 500 *) Variablen anzulegen und davon 500 Datensätze in die SPS zu schaufeln (wo die Übertragung auch noch ca. 7 Minuten dauern wird). Die lange Übertragungszeit ergibt sich aus dem Umstand, daß man in WinCC Adv. keine Variablen-Aktualisierungszeit kleiner als 100ms einstellen kann. Die reine Datenübertragungszeit (ohne WinCC-Handshake) schätze ich auf 30..60 Sekunden.

Die csv-Daten müssen mit einer Kommunikationssoftware übertragen werden, die viel schneller in die SPS schreiben kann als mit WinCC Adv. RT möglich ist. Da gibt es einige Möglichkeiten (die meisten wurden schon auf Seite 1 genannt). Ich sehe da als Hürde lediglich die Aufgabe, diese externe Software mit der WinCC RT "fernzusteuern", weil der HMI-Bediener die Datei komfortabel aus einer dynamischen Dateiliste auswählen können soll.

(*) 13 oder 5 Variablen: die 9 Bools kann man in ein Word zusammenfassen

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich meine, es ist völlig egal, ob die WinCC Advanced Runtime auf einem Touchpanel oder einem PC oder zusammen mit einer SoftSPS auf dem selben PC/Microbox läuft

Da stimme ich fast zu, aber

Die PCs mit WinCCAdvanced sind um einiges Leistungsfähiger als die Comfort Panels, das fängt beim Bild aufschlagen an und das hört beim auslesen einer Rezeptur auf.
Comfort Panels sind halt lahme Kisten.

Die Komunikation zwischen WinCC und Soft SPS ist um Welten schneller und Leistungsfähiger als eine zwischen Panel und Hard SPS, da ein Soft Bus
genutzt wird.

Trotzdem würde ich eine Soft SPS nutzen und die Daten mit ODK direkt in die Steuerung holen, es gibt von Siemens sogar eine fertige Application,
um CSV-Datein, XML-Datein usw. einzulesen, man kann Sie für relativ schmales Geld kaufen.
 
Hallo Leute,
hmm das was @rostiger Nagel schreibt klingt recht interessant. Ich weiß aktuell aber leider nicht ob sich in Sachen Hardware noch was anpassen lässt. Aktuell ist leider einfach ne 1500er (welche Variante davon keine Ahnung) und ne Runtime Advanced angedacht.

Wie ich herausgefunden haben scheint es ja so zu sein dass ich für Rezepturen nochmal ne Erweiterung von Siemens für die RT brauche. Deswegen hab ich erst mal angefangen mich an VBScript zu versuchen.

Sollte es da eine akzeptable Lösung geben dann muss man eben in Kauf nehmen, dass die Datenübertragung eben etwas Länger dauert.
Meine Idee wäre es aktuell die Datei Blockweise einzulesen (evtl. immer in 2000er-Schritten) und diese Blöcke dann nacheinander in die SPS zu übertragen.

Bis dato hab ich ein Skript erstellt, dass mir eine Open-File-Box öffnet und die Anzahl der Datensätze in dieser ermittelt. Morgen werd ich mich dann mal am einlesen der Blöcke versuchen.
 
Das sollte schon so funktionieren (in etwa) - das einzige Problem, das du so bekommen wirst ist, das du nicht so genau weißt, wann deine Daten in der SPS tatsächlich aktualisiert sind. Dazu kommt außerdem, dass ALLE diese Variablen ständig aktualisiert werden MÜSSEN (zyklisch fortlaufend) da sie sonst möglicherweise nie in der SPS landen. Vor Allem dann, wenn du möglicherweise im Script mit Schleifen arbeitest und die ggf. die Tag-Namenstring noch selbst zusammenbastelst (das wird bei den Strings so laufen müssen).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habs zwar schonmal geschrieben, aber mit einem richtigen WinCC was du ja auch auf deinem Panel installieren könntest, kannst du kontrolliert Rohdatenblöcke (imho 64kb pro Auftrag) an die SPS schicken. In der SPS hast du dann auch eine Rückmeldung wann und wo die Daten landen.
 
Ich habs zwar schonmal geschrieben, aber mit einem richtigen WinCC was du ja auch auf deinem Panel installieren könntest, kannst du kontrolliert Rohdatenblöcke (imho 64kb pro Auftrag) an die SPS schicken. In der SPS hast du dann auch eine Rückmeldung wann und wo die Daten landen.

Mit einem richtigen WinCC meinst du WinCC Advanced? oder Professional?

Gibt es es eigentlich eine Möglichkeit per VBScript direkt in einen S7 DB zu schreiben? Vermutlich bräuchte ich dazu so etwas wie dieses erwähnte libnodave oder?
 
Zurück
Oben