Intouch und Profilkurve

Lazarus™

Level-2
Beiträge
434
Reaktionspunkte
52
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe einen DB mit dem Aufbau:

Zeitstempel : TOD
Messwert : INT
Messwert : INT
Messwert : INT
Zeitstempel
Messwert
... u.s.w.

Im OB35 wird ale 10ms der DB mit Zeitstempel und den 3 Messwerten gefüllt.
Wenn der DB "voll" ist, oder der Messzyklus abgeschlossen ist setze ich ein Bit "Daten bereit" und sperre den DB...

Bis dahin ist alles gut, aber ich möchte im Intouch nun diese Profilkurve mit Zuordnung des Zeitstempels darstellen und eventuell in einem Script eine CSV Datei füllen...
Nur leider habe ich keinen Plan, wie man diese Profilkurve abholen und darstellen könnte. Die Scriptgeschichte ist sekundär...

ich will ja nicht 1000ende Tags verballern, gibt es eine indirekte Variable, die ich zum auslesen nehmen kann so wie in WinCCflexibe oder sowas ??
Wie macht Ihr sowas ???

Ich bin wirklich für jeden Tip dankbar...
 
Hallo,
wie wäre es mit ner Seriellen Übertragung?
SPS Daten bereit an InTouch
Intouch holt 1 Datensatz ab
InTouch an SPS Daten abgeholt
SPS stellt nächsten Datensatz bereit
SPS Daten bereit an Intouch
...

Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas,

ja, das wäre ein Anfang, aber irgendwie ist das alles nicht gerade zufriedenstellend.
Seit ich mit Intouch arbeiten muss, verstehe ich garnicht wieso hier über WinCC oder WCCF gemeckert wird :ROFLMAO:

Trotzdem danke erst mal...
 
Vielleicht mal grundsätzlich zu deinen Kurvenwerten ...
Egal bei welcher mir bekannten Kurvendarstellung - eine Kurve wird immer aus einem Array aus Y-Werten, und falls es sich um eine f(x)-Darstellung handelt zusätzlich noch aus einem Array aus X-Werten , gebildet. Diese sind immer un-unterbrochen und ein Mix aus X- und Y-Werten. Ich könnte mir vorstellen, dass das bei Intouch auch so gehandhabt wird ...

Gruß
LL
 
... wenn ich anfang nächste Woche mal zeit habe, werd ich mal mit Intouch9.5 spielen. Vielleicht fällt mir dann noch was ein.
Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Larry: Das ist ja klar und nicht die Frage...
Ich habe 10 * Y-Wert und einen Zeitstempel (TOD).
Nun will ich das auf den Bildschirm "Plotten". Bis dahin ist es ja auch alles klar.

Nun habe ich mir mal einen Datenlogger FB für die S7 in SCL gestrickt, der alle 10ms einen Messwert-Satz loggt.
Der Baustein gibt mir nun auf Anfrage immer einen Datensatz zurück, bis alle Datensätze gelesen sind... Funktioniert generell...

ABER... Laaaangsaaaam... :confused: (Liegt bei mir etwa bei 1000 Datensätze * ~150ms) Und das ist alles nicht Zeitgemäss... Das macht ja sogar das kleine (feine) und hierzu preiswerte WinCCflex besser :sb5:

Gibt es denn im Intouch keine Möglichkeit einen fetten Datenblock zu lesen, so wie bei WinCC ??? Dann könnte ich immer, wenn ich den Block irgendwie im Intouch hätte alles schön im Skript zerlegen und Plotten...

Das ist ja das, was mich echt ärgert... Es muss doch möglich sein grössere Datenmengen schnell zu übertragen, OHNE dann gleich tausende Tags zu verballern... (Rohdaten lesen ???) Und der Support von Wonderware ...
... Da kann ich nur dem hier im Forum geschriebenen Beiträgen zustimmen :sb7:

@Thomas: Dir auch danke, mal sehen wie dieses Projekt hier endet, ich denke aber schon, das man es hinbekommt irgendwie :ROFLMAO:
 
Zuletzt bearbeitet:
... meine Intouch-Zeit liegt schon ein paar Jahre zurück (V 7.1 war mein letzter Stand) - ich habe das also nicht mehr so richtig parat ...
Gab / gibt es nicht die Möglichkeit ein Array einzulesen ? Ich meine mich erinnern zu können, dass das ging. Es gab dabei dann sogar die Möglichkeit ein Transfer_complete abzufragen.

Du überträgst jetzt also Datenblock für Datenblock nach Intouch ?

Gruß
LL
 
Also Array geht, wenn auch etwas unkomfortabel.
Hängt aber von deinem Treiber ab ob du das umsetzen kannst. Intouch an sich kennt aber keine Arrays - auch nicht in der 10er Version. Da es für Intouch aber nachher als eine Variable zählt kannst du damit Tags sparen.

Mit dem SIDirect-Treiber kann man ein Integer Array z.B. folgendermaßen abfragen:

Neue Variable vom Typ "E/A Message" anlegen, als Itemname beispielsweise "DB500,INT0,5", was 5 Integerwerte ab DB500.DBW0 wären.
Da die Variable ein Text ist, hast du, wenn du dir die Variable auf dem Bild anzeigen lässt, dort z.B. "00010002000300040005" stehen, wenn in der SPS 1, 2, 3, 4, 5 im DB stehen.

So wie sich das anhört zeichnest du deine Profilkurve auch zu Fuß, dann kannst du dir den String auch per Skript wieder in Werte zerlegen und damit weiterarbeiten...viel Spaß!
 
Zurück
Oben