INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Softwareentwickler LabVIEW (M/W/D)
Büdingen

Experte National Instruments (m/w/d)
Steinfurt

Techniker Prozessentwicklung und Versuche (m/w/d)
Minden

Testingenieur (m/w/d) Elektroniktest und Systemintegration
Vilsbiburg

Experte Product Development Elektrik/Elektronik Brennstoffzelle (m/w/d)
Herzogenaurach

Experte Product Development Brennstoffzellensystem (m/w/d)
Herzogenaurach

Leiter Entwicklung (m/w/d)
Rheinland-Pfalz





.
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

*.txt Daten einladen mit der Funktion Call ASCIIConfigLoad
25.06.2012, 15:44,
#1
DIAdem-Version: 10.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
*.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo,

ich bin ich bin absoluter DIAdem Neuling. Ich möchte *.txt Daten in DIAdem automatisiert einlesen. Dazu habe ich mir ein kleines Skript geschrieben, welches vom Prinzip funktioniert. Der Befehl hierzu war DataFileLoad. Das Problem ist, dass sich der ASCII- Import-Assistent öffnet und mein gewolltes automatisches Laden vehindert/unterbricht. In der Hilfe findet man die folgende Funktion

Call ASCIIConfigLoad(Ascii Config File)
Call ASCIILoad(Ascii File, 0 )

um dieses Problem zu umgehen. Weitergeleitet findet man dann dieses Konstrukt.
Call ASCIIConfigLoad(UsrCnfReadPath & "Example_ASC.stp")
Call ASCIILoad(DataReadPath & "example.asc",0)

Ich verstehe an dieser Stelle nicht UsrCnfReadPath und wie die ganaue Syntax aussehen muss und auch nicht DataReadPath.
Kann ich mit diesem Befehl überhaupt *.txt Dateien einlesen und wie muss ich den Befehl schreiben? Die Daten befinden sich auf meiner Festplatte. Unten habe ich, zum besseren Verständnis, noch mein bisheriges Script angehängt.

Option Explicit 'Erzwingt die explizite Deklaration aller Variablen in einem Skript.

Dim MyFolders()
Call InitMyFolders
'-------------------------------------------------------------------------------
Sub InitMyFolders
ReDim MyFolders(0)
MyFolders(0)="Y:\Zyklen"
End Sub
'-------------------------------------------------------------------------------
Call DataDelAll(1) '... HeaderDel
'Call DataFileLoad(MyFolders(0)&"Leistung.txt","","") '... DataFilename,FileImportFilter,ImportAction

Call ASCIIConfigLoad(UsrCnfReadPath & "Leistung.txt")
Call ASCIILoad(DataReadPath & "Leistung.txt",0)

Call ChnPropValSet("[1]/Kanal 1","name","Zeit")
Call ChnPropValSet("[1]/Kanal 2","name","n")
Call ChnPropValSet("[1]/Kanal 3","name","M")
Call DataFileSave(MyFolders(0)&"Leistung_Ladescript.tdm","TDM") '... DataFilename,FileExportFilter

Vielleicht kann mir jemand helfen.

Grüße
Basti

Antworten
26.06.2012, 09:58,
#2
DIAdem-Version: 2010, 2011, 2012, 2015, 2017
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 2009
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo Basti,

UsrCnfReadPath (oder auch ConfReadPath) gibt den Ordner (Dateipfad) an, in dem deine Konfigurationsdatei (*.stp) liegt.
Hier kannst du zur Not den Pfad auch individuell eintragen (bspw.: "C:\....\Konfig.stp")

DataReadPath wiederum gibt die Datei an, welche mit der oben angegeben Konfigurationsdatei geladen werden soll. In deinem Fall "Leistung.txt".

Damit DIAdem eine Textdatei auch deinen Wünschen entsprechend öffnen und darstellen kann, mußt du eine kleine Konfigurationsdatei erstellen. Diese kannst du über den ASCII-Import-Assistenten erstellen und abspeichern. Und genau diese Datei inkl. Pfad gibst du dann bei der ASCIIConfigLoad-Funktion ein.

Gruß MBT

Antworten
27.06.2012, 12:28,
#3
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo Basti,

generell ist der ASCII-Import natürlich eine Option für das Einlesen der Textdatei. Aber die Version des Wizards ist eher schon veraltet. In den neueren Versionen wird ein deutlich flexiblerer Wizard eingesetzt. Davon abgesehen würde ich (auch schon mit Version 10.2) ein DataPlugin schreiben. Damit kann die Datei genauso wie eine TDM Datei gelesen und auch im DataFinder gesucht werden werden. Das Setzen der Kanalnamen kann man auch direkt im DataPlugin machen. Ist es möglich ein oder zwei der Textdateien als Beispiel zu posten ? Dann erstellen wir schnell das DataPlugin und posten es dann wieder.

Andreas

Antworten
27.06.2012, 15:49, (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2012, 15:49 von Basti.)
#4
DIAdem-Version: 10.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Vielen Dank für die Beiträge.

Erst einmal vielen Dank an MBT. Mit Ihrer Erklärung konnte ich meinen Code berichtigen. Leider bekomme ich jetzt einen nicht genauer definierten Fehler. Ich vermute, dass es am *.txt Format liegt. Sicher bin ich mir nicht.

@Andreas
Vielen Dank für den Tipp und das Angebot. Die Orginal Files darf ich nicht posten, jedoch kann ich eine vom Aufbau gleiche *.txt Datei anhängen, die Werte sind keine Orginalwerte.
Spalte 1 = Zeit
Spalte 2 = n_Rotor1
Spalte 3 = n_Rotor2
Spalte 4 = n_Rotor3


.txt   Gyro.txt (Größe: 829 Bytes / Downloads: 557)


Vielen Dank für eure Hilfe.
Ich habe noch eine Frage, habt Ihr euch DIAdem selbst beigebracht oder eine Schulung besucht?

Viele Grüße
Basti

Antworten
28.06.2012, 07:10,
#5
DIAdem-Version: 2010, 2011, 2012, 2015, 2017
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 2009
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Guten Morgen Basti,

kein Problem, dafür sind wir da Smile

Wenn du eine genauere Fehlerbeschreibung sendest, können wir dir hier sicherlich auch weiterhelfen.

Da ich Version 10.2 nicht mehr nutze, kann ich leider nichts zum Wizard sagen, aber ab DIAdem2010 ist er doch sehr hilfreich.
Vielleicht hast du ja die Möglichkeit umzusteigen Wink.
Dennoch sollte dein angehängtes txt-File einfach per Konfigurationsdatei einzulesen sein.

Um deine letzte Frage zu beantworten, ich habe mir alles mittels "learning by doing" beigebracht.
Da ich beim Scripten keine Vorkenntnisse vorweisen konnte, kostete es viel Zeit. Aber die DIAdem-Hilfe und dieses Forum waren hier sehr hilfreich.
Sicherlich wähle ich manchmal noch einen zu komplizierten Weg, aber man lernt ja stetig dazu Smile.

Gruß MBT

Antworten
28.06.2012, 14:44,
#6
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo Basti,
im Attachment findet sich das Plugin. Bitte einfach das zip-File herunterladen, die Datei auspacken (basti.uri) und dann auf die Datei doppelklicken. Ab dann kennt DIAdem das Format unter dem Namen "Basti" .

Laden der Datei geht dann etwa so:
Call DataFileLoad("E:\Customer_Requests\Basti\Gyro.txt","Basti","")

DIAdem habe ich mir ebenfalls selbst beigebracht... :-)



Angehängte Dateien
.zip   Basti.zip (Größe: 1,45 KB / Downloads: 493)
Antworten
02.07.2012, 13:14,
#7
DIAdem-Version: 10.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad


Danke für das PlugIn. Der Import funktioniert jetzt soweit, genauso wie ich es mir vorgestellt habe.

In einem zweitem Schritt möchte ich das PlugIn nun modifizieren, und aus meinen 4 Kanälen 26Kanäle machen. Am besten erstelle ich das Data PlugIn mit dem Assistenten neu. Ich habe dazu aber folgende Frage. In welchem der 5 Schritte kann ich meine Kanäle bennen. Der Hilfe nach soll dies im Schritt 3 möglich sein. Kann ich jetzt, händisch, im Assistenten meine Kanalnamen eintragen oder muss/soll ich meine Kanalnamen in meine *.txt Datei schreiben in die erste Zeile und durch Leerzeichen trennen. Bzw. mit welchen Editor kann ich die Basti.uri Datei laden und meien Kanalnamen erweitern? Ich habe heute morgen schon einige Kombinationen ausprobiert, habe aber keinen Erfolg bei der Problemlösung gehabt.

Besonderen Dank nochmals, an AHaub und MBT. :-)

Antworten
02.07.2012, 15:09,
#8
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo Basti,

von dem Weg über den Assistenten würde ich abraten. Der DataPlugin-Assistent ist dann sehr gut wenn man das Plugin anschliessend nicht mehr ändern möchte.

In diesem Fall kann man jetzt aber das Script des DataPlugins einfach ändern.
Im Modul "SCRIPT" einfach über die folgenden Menüs gehen :
Einstellungen=>Optionen=>DataPlugins
Dann das DataPlugin selektieren, auf den Button "Eigenschaften" klicken und in dem Unterdialog die Funktion "Script Editieren" wählen.
Jetzt wird das Script angezeigt.

Es gibt relativ weit oben eine Zeile :
Dim sgaChannelNames : sgaChannelNames = Array("Zeit","n_Rotor1","n_Rotor2","n_Rotor3")

Wenn man dieses Feld erweitert, nimmt sich das Plugin die Kanalnamen aus dem Feld. Es werden maximal so viele Zeilen aus dem Feld genommen wie Spalten in der Datei gefunden werden.

Das Script nach der Änderung einfach speichern.

Antworten
05.07.2012, 10:32,
#9
DIAdem-Version: 10.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Vielen Dank, an AHaub, das PlugIn funktioniert gut, ich habe aber dennoch ein letztes Problem. Nachdem ich die Zeile

Dim sgaChannelNames : sgaChannelNames = Array("Zeit","n_Rotor1","n_Rotor2","n_Rotor3")

erweitert habe möchte ich das Data PlugIn abspeichern.
Ich habe den Code ja im Script Modus geöffnet, beim abspeichern wird dann aber aus der *.uri Datei eine *.vbs Datei. Diese ist aber kein PlugIn mehr. Meine Änderungen am PlugIn werden dadurch nicht verändert. Unter Speichern unter habe ich aber auch nicht das richtige Dateiformat gefunden. Deshalb werden meine Änderungen nicht übernommen.
Als nächsten Schritt habe ich versucht über "Einstellungen=>Optionen=>DataPlugins" das Script wieder zu exportieren. Ich bin dabei der Meinung DIAdem führt diesen Schritt aus aber übernimmt meine Änderungen nicht. Bzw. nur für die ertsen 4Werte und den Rest schmeißt es über Bord.
Dannach bin ich hergegangen und habe die *.uri Datei mit dem Standart Editor von Windows göffnet und meinen Code hinein kopiert. Hier war das Problem, dass danach angeblich die Config Datei beschädigt war.

Liegt mein Problem letztenendes an meiner Config Datei, weil ich 26 anstatt 4 Kanälen laden möchte? Bzw. mache ich etwas falsch oder vergesse etwas? Die Hilfsfunktion von DIAdem ist bei diesem Problem auch nicht sehr hilfreich.

Grüße Basti

Antworten
06.07.2012, 12:12,
#10
DIAdem-Version: 2010
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: *.txt Daten einladen mit der Funktion Call ASCIIConfigLoad

Hallo Basti,
ich habe einfach das Script wie beschrieben über das Menue geladen und meine Änderungen gemacht und dann die Datei da gespeichert wo sie auch herkam, also einfach "Speichern" ausgeführt. Dann sind bei mir die Änderungen für den nächsten Ladevorgang schon aktive.
Es stimmt, das Plugin ist normalerweise als .URI datei "verpackt" Darin enthalten sind einige Parameter für die Installation, der VBS-Text und optional eine Ikone.

Bei mir ist die VBS Datei des Plugins hier gespeichert:
C:\ProgramData\National Instruments\Shared\USI\Plugins\DataPlugins\Basti\Basti.vbs
Den Text bekommt man auch angezeigt wenn man nach dem Laden der VBS datei über das Menü das Kontextmenü (Rechtsklick) auf dem Dateinamen der Datei aufruft. Das ist der Reiter/Tab unterhalb des dateitextes im SCRIPT-Fenster. In dem Kontextmenü gibt es den Punkt "Dateiname/Pfad kopieren". Wenn man den Punkt anklickt, steht der Pfad anschliessend im Clipboard.

Aber nochmal: Nach dem Ändern der Datei einfach "Speichern" sollte schon funktionieren.

Antworten


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  DIAdem .r64 und .dat Daten einlesen Mike 0 4.383 30.10.2018, 07:18
Letzter Beitrag: Mike
  ISO-MME Daten Import/Export Multimeter 0 9.669 13.10.2015, 15:53
Letzter Beitrag: Multimeter
  Einzeldaten aus Unterordnern automatisiert einladen D.Hammerschmidt 1 10.831 04.07.2014, 07:36
Letzter Beitrag: asapDIAdem
  Daten aus Kanal selektieren und diese in neuer Datei ablegen noreplypy 4 19.174 25.02.2014, 14:47
Letzter Beitrag: c.donfack
  Can Hex Daten einlesen portas 1 10.598 25.02.2014, 10:59
Letzter Beitrag: voyager
  Daten aus DB2 Datenbank auslesen KonstantinE 0 7.699 24.02.2014, 09:36
Letzter Beitrag: KonstantinE
  Daten nach MatLab exportieren MiBa 6 23.988 18.11.2011, 14:10
Letzter Beitrag: MiBa
  TDM Daten mit Root Eigenschaften laden SolarMan 2 13.064 21.09.2011, 06:56
Letzter Beitrag: Carpe_DIAdem
  Daten(.Dat) aus Pfad laden TonSch 5 17.692 23.11.2010, 11:38
Letzter Beitrag: kwakz
  Daten aus Kanal in anderen Kanal kopieren Markus 5 19.331 04.11.2010, 11:41
Letzter Beitrag: kwakz

Gehe zu: