MappView - Datenobjekt anzeigen und bearbeiten?

Zezoar

Level-2
Beiträge
11
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Mit-SPSler, ich habe eine Frage zu folgendem Anwendungsfall.

Ich hab mir ne Datenlogging Lib geschrieben in welcher ich ein Datenobjekt (Logwerte.dat) zur Definition der zu loggenden Prozessvariablen benutze.
Dort steht praktisch pro Zeile ein String mit dem Variablennamen und ggf. ein zweiter String mit dem Titelleistennamen der Variable drin.

FRAGE: Ich würde gerne dieses Datenobjekt zur Laufzeit über die Visualisierung bearbeiten können um die Liste der Logvariablen ändern zu können, habe allerdings nichts passendes gefunden. Der Support meinte zu mir das müsste mit dem Textpad gehen, aber damit kann man soweit ich sehen konnte nur Dateien auf einem definierten File-Device öffnen und bearbeiten (Stimmt das?)
Das wäre natürlich auch eine Möglichkeit, aber dann müsste ich die Einbindung des Datenobjekts ändern in das Auslesen einer Text / CSV oder wasauchimmer-Datei ändern und bevor ich das mach dachte ich, frag mal lieber :)
1. Hat eventuell jemand eine Idee wie ich ein Datenobjekt in MappView bearbeiten kann?
2. Wenn ich ein Textpad verwende, ist es möglich für dieses Textpad auch die Touchtastatur auf einem B&R-Tab (bspw. T80) einblenden zu lassen?!
 
Ich habe das schon mit CNC Dateien gemacht. Das funktioniert eigentlich ganz gut. Schau dir die Hilfe zu den einzelnen Elementen an. Ruhig auch ein bisschen Querlesen bei Objekten von denen man denkt dass man sie nicht braucht. Da ist es eigentlich ganz gut beschrieben. Es gibt da auch schon vorgefertigte Teile z.B. für die Textbox die gleich das Dateihandling mitbringt.

Ich vermute die Strings die du ändern möchtest sind die PVI Tags der Variablen? Warum willst du dir die Arbeit machen die mühsam einzugeben? Mach doch eine vorgefertigte Liste mit allen Elementen und bau dir noch etwas zum aktivieren ein. Vielleicht ein Auskommentieren durch vorangestellte Sonderzeichen. Ist meiner Meinung nah komfortabler als auf einem T80 ein ewig langes Tag einzugeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hört sich ja schonmal prima an, vielen Dank für die schnelle Antwort!!
Dann werde ich mir das Textpad nochnmal näher anschauen. Ich war mir nicht sicher, da ich (meine ich) aus der Hilfe gelesen habe, dass mit dem Textpad eben nur Zugriff auf Dateien möglich ist, welche in einem FileDevice liegen, aber vielleicht liegt das Geheimnis auch in der MPserver Bibliothek bzw. der MPFileManager Konfig.

Zur Not lagere ich die Datei dann eben in den Userspeicher aus. Da ergeben sich dann aber auf Applikationsseite wieder unangenehme Probleme (kein Zugriff mehr per DataObj-Bibliothek usw...
ein Pro-Argument wäre: die Datei wäre unabhängig von Programmdownloads immer verfügbar und auch per ftp erreichbar....)


Antwort auf deine Frage: ich definiere dort einfach die Variablennamen, so wie ich sie deklariert habe. So lang sind die nicht :) (sieh bspw. so aus: 1721338598393.png)
Das ist bis jetzt die mir am praktisch erscheinendste Lösung nach verschiedenen Tests (habs schon mit XML-Files probiert, vordeklarierten Arrays usw.) ich lass mich aber auch immer gern eines Besseren belehren
 
So, jetzt hab ich nochmal in der Hilfe nachgesehen...
"Widgets" heißen die Dinger nach denen ich gestern gesucht habe. Unterpunkt "Text". Das bringt alles mit was du brauchst für das File Handling. Die Konfiguration musst du halt entsprechend Anpassen.

Was ich noch nicht verstanden habe, ist wie du auf die Variablen zugreifst. Hast du dir mit deiner Bibliothek einen Wrapper für die PV_xxx Funktionen in der sys_lib geschrieben?
Frage nur aus Interesse, habe vor einiger Zeit etwas Ähnliches gemacht um ein konfigurierbares TCP Protokoll zu bauen.
 
Danke dir, ich hatte das "Textpad" widget im Auge, allerdings kann man damit, soweit ich es verstanden habe nicht auf Dataobjects im Ram zugreifen. Falls das so stimmt, muss ich wirklich die Liste in einer Datei im Userspeicher ablegen.
Oder mir fällt noch ganz was neues ein um eine Variablenliste zur Verfügung zu stellen, welche einerseits die Applikation leicht verarbeiten kann und welche andererseits über MappView bearbeitbar ist.

Zu deiner Frage: Genau, ich benutze PV_ninfo um den Datentyp zu ermitteln und pv_xgetadr um die Adresse der PV zu ermitteln. Die leg ich dann zusammen mit dem gewünschten Titelleistennamen als Struct in einer dynamischen Verbindungsliste ab. Über diese Liste kann ich dann im Loggingintervall die Werte aus den Adressen abfragen und alles in einen String schreiben, was dann eine Zeile im Logfile ergibt.
Diese Zeilen Puffer ich dann im Ram um die CF-Karte nicht zu killen (doppel oder dreifachpuffer, je nachdem ob Logging intervall kleiner ist als die Zeit, die nötig ist für den Schreibvorgang) und schreibe, sobald der Puffer voll ist den ganzen Satz an Zeilen in eine Datei auf die CF.
 
Zurück
Oben