Sonstiges Meewertaufnahme Möglichkeit mit 20ms / .csv Datei

kliebisch.m

Level-1
Beiträge
120
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe bisher eine Messkurve mit VBA Script im Panel (TIA) gemacht.
Leider bekommt man nicht mehr Zykluszeit als die 100ms vom Panel<>SPS hin.

Jetzt habe ich einen Kunde, der möchte ein Analogsignal (Drucksensor) in eine csv. Datei haben in max. 20ms Zyklus.

Hat jemand eine Idee, wie eine Lösung aussehen kann?


(ich habe schon die Idee gehabt: SPS Analyzer auf einen PC und mitlaufen lassen)

Danke für jede Idee im Voraus.
 
Moin,

speicher dir doch auf der SPS in jedem Zyklus den Analogwert und hole dir dann immer die letzten bspw. 10 oder 100 Werte mit dem Panel ab.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

speicher dir doch auf der SPS in jedem Zyklus den Analogwert und hole dir dann immer die letzten bspw. 10 oder 100 Werte mit dem Panel ab.



Danke, hatte ich auch mal überlegt. Fand ich aber keine gute Lösung, nachdem ich gerechnet hatte 20ms=50Werte/s=3000Werte/m und ein Messbereich ist dann zwischen 20 und 40 Min. also 120000 RealWerte.
 
Ja ich meinte auch lediglich einen Buffer-DB von z.B. 100 Werten in der SPS zu speichern, dann vielleicht in einen zweiten "SPS->HMI"-DB zu kopieren und wieder 100 Werte zu speichern usw...
Das HMI holt dann (getriggert von der SPS) via Script die 100 Werte aus dem "SPS->HMI"-DB und fügt die abgeholten 100er-Pakete wieder zusammen.
 
Was ist das für eine CPU? Vielleicht kann die CPU die Meßwerte auf seiner Memorycard speichern/puffern.
Von welchem Analogeingang kommt der Meßwert? Ist der Analogeingang und der Drucksensor schnell genug für 20ms Abtastung?
Wie oft ist ein solcher Meßzyklus aufzuzeichnen?

In dem 100ms-Raster kannst Du nicht nur einen Wert in das Panel einlesen sondern viel mehr. Du könntest 50 adressmäßig aufeinanderfolgende Variablen oder ein Array mit 50 Werten anlegen und alle zusammen im 100ms-Raster einlesen - allerdings nicht garantiert.

Größtes Problem: Du bekommst die Werte nur mit Handshake Panel-CPU sicher in das Panel eingelesen. Tip: packe je 50 Werte (oder ein Array mit 50 Werten) in eine Rezeptur und lese die Rezeptur mit GetDataRecordTagsFromPLC in das Panel ein.
Wir hatten schon sehr viele Diskussionen zu diesem Thema, benutze mal die Forumssuche mit Stichwort "GetDataRecordTagsFromPLC"
Und hier ein Beispiel zum sicheren einlesen von mehreren KByte aus der CPU und schreiben in eine csv:
https://www.sps-forum.de/hmi/47637-...rte-eines-tp277-6-speichern-2.html#post350344

Was hast Du für ein Panel? Oder ist das eine WinCC Runtime auf PC? Davon abhängig sind unterschiedliche VBS-Anweisungen zu verwenden.

Meine Meinung: eine SPS ist mit Deiner Aufgabe hart am machbaren. Probiere es aus, doch es könnte sein, daß das so nicht geht oder nicht sicher genug.

Harald
 
@Peter:
die bitgetriggerten Kurven haben aber eine Obergrenze hinsichtlich der Anzahl der Elemente darin (ich meine 900). Damit kommt der TE dann wohl nicht klar ... Dennoch wäre das der richtige Ansatz.

@TE:
Warum meinst du denn die riesige Anzahl an Werten in so schneller Folge zu benötigen ? Du kommst so ja auch (so ganz nebenbei) ganz schnell an die Grenzen der Speicherfähigkeit.
Vielleicht geht es ja auch, den Ansatz selbst "etwas" zu variieren ...

Gruß
Larry
 
Zurück
Oben