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.


Antwort schreiben 

Einlesen Auslesen von Daten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.06.2012, 15:01
Beitrag #1

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
Einlesen Auslesen von Daten
Hallo,

Meine Frage betrifft die Erfassung von binären Daten.

Darstellung meinen System:
Ich habe in LabVIEW ein Programm erstellt mit dem ich binäre Eingänge einer SPS ausgebe und die Ausgänge der SPS zurücklese. Für die Eingänge sende ich einen binären Wert für jeden Kanal, zB DI1.1, DI1.2 etc. .. über eine task zu und für die Ausgabewerte lese ich die Binärwert zB DO1.1, etc. .. DO1.2 zurück.
Um dies zu tun habe ich eine Labview Umgebung die mit I/O Karte PXI-6528 verbunden sind (3 insgesamt) die in einem Gehäuse PXI-1044 was die Schnittstelle zu der SPS darstellt.
Die Werte der Eingangskanäle werden in einer Excel-Datei in form einer Tabelle geschrieben und die Excel Datei wird in eine TDMS Datei umgewandelt. Die TDMS-Datei wird von einem selbst gemachten VI gelesen und die Eingangswerte werden über eine Schreibe Task zu der SPS übermittelt.
Zum Lesen des Status der Ausgangskanäle der SPS lese ich die Ausgangszustände über eine Lese Task zurück. Sobald die Task abgeschlossen sind (Schreiben und Lesen) kann ich das Programm beenden. Nach dem beenden wird die TDMS Datei in eine Excel Datei umgeschrieben. Die Excel Datei ist abgelegt und auf meinen Rechner verfügbar.
Die Schreibe und Lese Task werden durch ein Log ausgelöst die Werte der SPS in eine TDMS Datei geschrieben.

Meinen Problem:
in der Excel-Datei bzw. TDMS Datei werden die Eingabewerte einen einzigen binären Eingangsport (8Kanäle) von einer der drei Input-Karten wird zweifach geschrieben (Werten werden in zwei Zeilen geschrieben) was seltsam scheint ist das für die anderen Eingänge der gleiche Karte werden die normal geschrieben (nur auf eine Zeile, wie es sein soll)

Frage 1:
- Ich finde nicht raus warum diese Werte doppelt geschrieben werden, kann mich jemanden helfen? Man hat mir empfohlen die TDMS Datei zu überprüfen,

Frage 2:
- weiß jemand wie man eine TDMS Datei auslest? Ich habe diesen Link gefunden aber die .exe Datei lässt sich nicht installieren. http://zone.ni.com/devzone/cda/epd/p/id/2944 Anbei finden SIe einen Screen shot von meinen Programm

Danke im Voraus für die Hilfe
Sorry für die Sprachfehlern ich bin nicht Deutsch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.06.2012, 09:19
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Einlesen Auslesen von Daten
(01.06.2012 15:01 )regis57 schrieb:  Frage 1:
- Ich finde nicht raus warum diese Werte doppelt geschrieben werden, kann mich jemanden helfen? Man hat mir empfohlen die TDMS Datei zu überprüfen,
Dazu wäre ein Blick auf den Source-Code hilfreich. Also: VI hochladen?!
(01.06.2012 15:01 )regis57 schrieb:  Frage 2:
- weiß jemand wie man eine TDMS Datei auslest? Ich habe diesen Link gefunden aber die .exe Datei lässt sich nicht installieren. http://zone.ni.com/devzone/cda/epd/p/id/2944 Anbei finden SIe einen Screen shot von meinen Programm
Wo ist denn der Screenshot? Aber noch besser wäre: s. oben

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2012, 16:40
Beitrag #3

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: Einlesen Auslesen von Daten
Hallo

ich habe meinen Problem eingeschränkt,aber leider noch nicht gelöst!
die Daten die ich an die SPS sende und zurücklese stimmen überein,also vermute ich stark dass der Fehler an die Umwandlung der TDMS Datei in Excel liegt.

Der Fehler ist ein bisschen anders:
Jeden Schreib Zyklus (50ms) werden die Daten von jeweils ein Kanal in eine Zeile der zugehörigen Kanalspalte geschrieben (Normal Fall)
Aber,
die Daten der Port7.1 zu Port7.8 und Port8.1 bis Port8.2 werden nicht in 16 Spalten und 1 Zeile geschrieben (Wie es sein sollte) sondern in 8Spalten und 2 Zeilen sodass es am Ende der Erfassung ein Versatz der Spalten gibt.


Anbei einen Ausdruck meinen VI und der VI der die Umwandlung der Tdms Datei in Excel macht.

Zur Ergänzung der Funktion,
Im Teil1 schreibe ich die Excel Datei in der TDMS Datei, die Vorgegebene Daten werden in der Registerkarte Tabelle geschrieben
Teil2 wird die TDMS Datei eingelesen dann werden die DI und DO Werte der SPS in der Registerkarte Prozesswerte geschrieben
Teil3 wird die TDMS Datei in der XLS Datei umgewandelt und eine Makro wird durchgespielt wenn man die Datei speichert.

Frage:
Kann der Fehler möglicherweise im Teil3 liegen?(in der VI TDMS zu .xls)

Kann ich die TDMS Datei auslesen?wie?wo ist die zu finden?

Vielen Dank, Merci!


Angehängte Datei(en) Thumbnail(s)
   

10.0 .vi  TDMS to XLS.vi (Größe: 26,12 KB / Downloads: 252)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2012, 16:49 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2012 17:20 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Einlesen Auslesen von Daten
Nur kurz zum letzten Teil deiner Frage: Hier gibt es das TDM-Excel Add-In:
http://zone.ni.com/devzone/cda/epd/p/id/2944
Damit kannst du tdms-Dateien direkt in Excel öffnen.

Gruß, Jens



EDIT: Weitere Fragen: Welche deiner Digital-Tasks sind den Port 7.1-7.8 & Port 8.1-8.8? Vermutlich die DI_dev7 und DI_dev8, aber woher sollen wir das sicher wissen?
Wieviele DIs enthält Taks DI_Dev6?
Wie groß sind die AC160-Digital-Arrays?
   

Passt das dann mit dem Array der Kanalnamen am TDMS-Write überein?
   

Ich glaube nicht, dass das Problem am hochgeladenen VI liegt, das dieses auf den ersten Blick genau das verlinkte Excel-Add-In verwendet, um die TDMS-Datei einzulesen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2012, 09:51
Beitrag #5

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: Einlesen Auslesen von Daten
Hallo danke erstmal für die Antwort,

Nur kurz zum letzten Teil deiner Frage: Hier gibt es das TDM-Excel Add-In:
http://zone.ni.com/devzone/cda/epd/p/id/2944
Damit kannst du tdms-Dateien direkt in Excel öffnen.
-- Ich habe diesen Link schonmal ausprobiert aber es lässt sich bei mir nicht installieren?!

Weitere Fragen: Welche deiner Digital-Tasks sind den Port 7.1-7.8 & Port 8.1-8.8?
-- Port 7.1-7.8 enstprechen Kanale 1 und Kanale 8 des Gerätes 3
Port 8.1-8.8 enstprechen Kanale 9 und Kanale 16 des Gerätes 3
Jede Task enthält 24Kanäle soviel Kanäle wie es auf einen DI oder DO Karte gibt
Die Kanäle sind in drei Port von 8Kanäle unterteilt.

Frage: Vermutlich die DI_dev7 und DI_dev8, aber woher sollen wir das sicher wissen?
--Ich habe dass in meinen Max Explorer so konfiguriert.
Eine Karte enthält eigentlich 24 DI und 24 DO deswegen steht task dev7 einmal für das Digital einlese task und einmal für das digital auslese task


Frage: Wieviele DIs enthält Taks DI_Dev6?
-- 24DI (Kanäle)

Frage: Wie groß sind die AC160-Digital-Arrays?
-- Die sind nicht begränzt es ist eine Array von Boolsche Werte (in Variable bibliothek konfiguriert) ich sehe da keine Begrenzung.

Also wo du die roten Kreis gezeichnet hast kommen genau 24*3=72 Werte für die DI Seite und 72 für die DO Seite.
Bis an deine Roten Kreis stimmt alles ich habe es mit der Sonde tool nachgeprüft.



Passt das dann mit dem Array der Kanalnamen am TDMS-Write überein?
--Ich schaue dass noch aber zurzeit verstehe ich die Frage noch nicht.

Gruß Regis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2012, 10:30
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Einlesen Auslesen von Daten
(15.06.2012 09:51 )regis57 schrieb:  Passt das dann mit dem Array der Kanalnamen am TDMS-Write überein?
--Ich schaue dass noch aber zurzeit verstehe ich die Frage noch nicht.
Das Array der Kanalnamen muss genauso groß sein wie die Anzahl der Kanäle die du schreiben willst, ansonsten macht das TDMS-Write ein Interleave daraus (s. Hilfe).

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.06.2012, 08:11 (Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2012 08:24 von jg.)
Beitrag #7

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: Einlesen Auslesen von Daten
Hallo

Zitat:Passt das dann mit dem Array der Kanalnamen am TDMS-Write überein?
--Ich schaue dass noch aber zurzeit verstehe ich die Frage noch nicht.
Das Array der Kanalnamen muss genauso groß sein wie die Anzahl der Kanäle die du schreiben willst, ansonsten macht das TDMS-Write ein Interleave daraus (s. Hilfe).

Gruß, Jens
Das Array der Kanalnamen muss genauso groß sein wie die Anzahl der Kanäle die du schreiben willst, ansonsten macht das TDMS-Write ein Interleave daraus (s. Hilfe).

Das stimmt überein, es gibt soviele Kanäle vordefiniert wie ich schreibe.

Gruß Régis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2012, 13:12
Beitrag #8

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: Einlesen Auslesen von Daten
Hallo
mein Problem ist geregelt es lag nämlich an die Kanäle Zuordnung (für die TDMS Datei geschriben)

Gruß
Régis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Daten aus *.dat Datei einlesen klavierspieler 5 8.774 30.09.2014 08:20
Letzter Beitrag: klavierspieler
  Daten lassen sich nicht komplett einlesen eyk107 4 5.283 20.06.2014 11:39
Letzter Beitrag: jg
  Daten Byteweise einlesen raverel 2 4.151 19.07.2013 09:28
Letzter Beitrag: raverel
  XML Daten aus Ring Daten erstellen und wieder auslesen B033el 1 4.095 17.10.2012 21:10
Letzter Beitrag: unicorn
  .lvm Daten einlesen und mit einem Tiefpass filtern Kernkraft500 3 5.296 18.01.2012 11:32
Letzter Beitrag: gentos
  Daten in Datenbank einlesen und ausgeben firas_1984 1 4.611 12.05.2011 22:15
Letzter Beitrag: jg

Gehe zu: