LabVIEWForum.de - Während Laufzeit Funktionen im Programm hinzufügen/erweitern

LabVIEWForum.de

Normale Version: Während Laufzeit Funktionen im Programm hinzufügen/erweitern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich weiß nicht ganz wie ich es ausdrücken soll, aber es geht um folgendes Problem:
Mein Programm soll SPS Datenbausteine auslesen und protokollieren. Ich verwende das DSC-Modul
und einen OPC-Server. Im OPC-Server sind die entsprechenden Bausteine als Items hinterlegt, diese kann
ich wiederum in LabView hinzufügen und protokollieren lassen. Wenn ich das Programm nun kompiliere,
habe ich quasi ein statisches Programm, das nur die Umgebungsvariablen mitschreibt, die ich zuvor im Projekt
angelegt habe. Wie lässt sich vom Prinzip her im laufenden Programm dynamisch eine neue Variable hinzufügen?

Oder ganz allgemein:
Sagen wir mal es gibt ein SubVI mit der Funktion "Schreibe Werte in Textdatei".
Dieses SubVI kann nur mit einer Quelle verbunden werden. Also habe ich z.B. den Zufallszahlengenerator damit verbunden
und das SubVI schreibt mir im Run-Modus die entsprechende Textdatei.
Jetzt will ich aber im kompilierten Programm später noch ein SubVI hinzufügen, welches mir z.B. ständig die Uhrzeit in
eine Textdatei schreibt, parallel und unabhängig von dem zuvor einprogrammierten VI.

Ich hoffe ihr versteht was ich meine?!

Grüße Manuel Bayer
Hier mal ein Bsp eines statischen Programms, hier werden 3 Variablen in jeweils 3 Tags mitgeschrieben via "Write Tag"-Funktion.
Die Frage ist nun wie ich während der Laufzeit dem Nutzer die Möglichkeit geben kann einen weiteren Wert mitschreiben zu lassen,
ohne wieder in den Quellcode zu gehen und ein viertes "Write Tag" Klötzchen dahinzusetzen.
Verwendung von For Loop und Arrays, und du hast hast dein konkretes Beispiel gelöst.

Gruß, Jens
Ja aber dann wird die Datenverarbeitung ja nacheinander ausgeführt, das heißt wenn die Schleife bei "Write Tag" gerade den 2. Tag schreibt, gehen die Daten des 1. und 3. Tags verloren, oder nicht?!
Weil er die Funktionen ja nicht parallel ausführt sondern sequentiell.
Das würde am Beispiel bedeuten, dass z.B.: das Schreiben von Tag 1 solange unterbrochen wird, bis die anderen Tags (2-3) durchlaufen wurden, je nachdem wie viele Tags hinzukommen würde der For-Loop
immer mehr Iterationen durchlaufen müssen und in der Zwischenzeit gehen die Daten der gerade unbearbeiteten Tags verloren...

Oder seh ich das falsch?
Erst schreibst/liest du "Tag 1", dann "Tag 2", dann "Tag 3". Wo ist das Problem, das sollte ziemlich schnell gehen? Im Hintergrund wird das sowieso sequenziell über deine Netzwerkschnittstelle abgearbeitet. Der OPC-Server dient dir als "Zwischenspeicher", der merkt sich schon den letzten Wert solange, bis er einen neuen erhält.

Gruß, Jens
Okay, wenn das so ist... Ist es ja einfach.

Danke!!
Referenz-URLs