Meßproblem und Auswertung dazu...

Hallo

Ich habe in der kommenden Zeit eine Langzeitmessung (72Std und länger) von Sensoren zu machen. Die bekommen als Eingangssignal digitale

0/24V, das mit ca. 0,75Hz wackelt. Nachdem das Signal am Eingang gewechselt hat muß innerhalb einer definierten Zeiit (200ms +/- 10%) der Ausgang den Pegel ändern (ebenso mit 0/24V)

Es werden 5 Sensoren in Serie geschalten, das Ausgangssignal des einen Sensors ist das Eingangssignal des nächsten Sensors. Mit 2 weiteren Daten, die pro Sensor erfaßt werden müssen fallen also 3 bit pro Sensor und das Mastersignal mit 0,75Hz, zusammen also 16bit.

Ich muß nun mindestens 72 Std lang automatisch alle Pegeländerungen erfassen und danach aus den Meßprotokollen erkennen, ob und wann es Aussetzer oder zeitliche Ungenauigkeiten gegeben hat.

Die Daten sollen am Ende der Messung als CSV vorliegen.

Die Fragen, die ich nun habe:

- Welcher preiswerte Logikanalyser kann 100MByte (offline) aufzeichnen und als CSV wiedergeben? Das Budget erlaubt eine Neuanschaffung, aber es erlaubt keine sehr großen Sprünge (600? sind das Maximum).

- mit welcher (idealerweise OS) Software (Linux oder Windows ist egal) kann diese Datenmenge sinnvoll ausgewertet werden? Ich muß sowohl einen Ausfall des Ausgangssignals als auch zu schnelle oder zu langsame Signale finden.... eine spezielle SW dafür schreiben ist aus persönlichen Gründen nicht ideal....

Bisher habe ich dazu das Meilhaus UM203 in die engere Wahl genommen, bin aber mit den Auswertemöglichkeiten noch nicht sehr vertraut. Die anderen Lowcost-Analyser bieten keine Möglichkeit der Offline-Aufzeichnung....

Langer Rede kurzer Sinn - ich bin offen für Ideen und Anregungen, wie diese Meßfrage anders als mit einem Analyser gelöst werden kann, welche Software dafür taugt....

Grüße und Danke im Voraus

- Michael Wieser

Reply to
Michael Wieser
Loading thread data ...

Michael Wieser schrieb:

noch ein paar fragen dazu:

du schreibst du willst eine Langzeitmessung machen. Für so was würde ich keinen LA kaufen, sondern irgendetwas um einen PC zusammenstricken. Welche zeitliche Auflösung brauchst du denn? CSV würde ich hinten anstellen, solange der LA nicht irgendwelche chiffrierte Daten produziert ist die Konvertierung trivial und binäre Daten sind viel kleiner als CSV. Wenn du diese Langzeitmessungen wiederholt machen willst, dann würde sich ein Datalogger oder LA lohnen. Für die Auswertung würde ich persönlich Matlab nehmen, weil ich es habe (sonst zu teuer). Es gibt auch Matlab-ähnliche Software als Freeware, nicht ganz so ausgereift, aber dafür wohl geeignet.

Waldemar

Reply to
Waldemar Krzok

Zur zeitlichen Auflösung: 5ms erscheinen mir als sinnvoller Kompromiss zwischen der sicheren Erkennung der +/-10% von 200ms und der über 72 Std anfallenden Datenmenge. Wenn die MB kein Problem sind ist 1ms Zeitbasis auch ok.

Das Meilhausgerät wäre nach meinem Verständnis so eine um einen PC herum zusammengestrickte Lösung, angenehmerweise kann das auf eine SD-Karte offline schreiben, daher liese sich das bis auf die Initialisierung und Auswertung ohne PC machen.

Für mich sind Meßgeräte Meßgeräte und PCs PCs oder IAW: die haben gemeinsame Schnittstellen aber keine gemeinsame Schnittmenge....

- Michael Wieser

Reply to
Michael Wieser

Wir machen das normalerweise damit, i.d.R. reicht der U3 fuer etwas ueber $100:

formatting link

Dann brauchst Du noch eine Database SW, die diesen Berg an Daten wegpacken kann und moeglichst VBA versteht. Excel ist kein Database Programm und schafft das nur mit Paging Tricks, da war mal eine Diskussion im Labjack Forum drueber, wo jemand ein aehnliches Problem hatte. Der Support dort ist uebrigens gut.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Verstehe ich nicht, warum du 100 MByte brauchst. Auch wenn du 16 Bits mit

10 Hz aufzeichnest für die 72 Stunden, um garantiert alle 0,75 Hz Schwankungen mitzubekommen, bräuchtest du nur 5 MByte. Wenn du gerne bastelst, dann könnte man das recht kompakt bauen: kleinen Microcontroller mit seriellen Anschluss, Aufzeichnung in ein serielles Flash, was es bereits für 9 Dollar für 64 MByte gibt:

formatting link
?name=W25X64VSFIG-ND

Auf dem PC dann per Terminalprogramm über XModem o.ä. die Daten übertragen (Sourcen dazu gibt's im Internet, sodaß man nicht viel selber auf dem Controller schreiben braucht). Das braucht aber auch bei 115.200 Baud dann recht lange. Alternativ: SD-Card und dann am PC per SD-Card Reader auslesen.

Ohne Programmierung könnte es schwierig werden, ist aber recht einfach, sowas zu schreiben.

Sieht auch gut aus. Wenn du Netzspannung da hast, wo du aufzeichnest, dann sollte auch ein alter PC oder Laptop reichen, um es aufzuzeichnen und du hättest eine größere Auswahl an Geräten. Jörg hat gute Erfahrungen mit LabJack gemacht, kann man in Visual Basic usw. selber programmieren, was es in der Express Edition kostenlost von Microsoft gibt. Ich weiß aber nicht, ob es lückenlos unter Windows mit 10 Hz aufzeichnen kann, denke aber mal, daß es auf dem Gerät entsprechend zwischengespeichert wird, wenn der PC mal ruckelt.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Michael Wieserschrieb: "

[...]

Ih weiß nicht wie oft Du so etwas brauchst, aber für einmalige Anwendung würde ich einen guten LA sicher mieten.

Es gibt auch preiswerte LAs (am USB) die nur einen Sample wegspeichern, wenn sich an den Eingängen etwas ändert.

Dirk

Reply to
Dirk Ruth

Ab Excel 2007 kann man bis zu 1.048.576 Zeilen und 16.384 Spalten speichern, aber ich würde sowas wohl schnell mit VB.NET schreiben. Man könnte sich auch das ganze CSV-Handling sparen, wenn man gleich eine Datenbank nimmt. Microsoft bietet da als kostenlose Lösung MSDE an (ist kostenlos, weil die maximale Datenmenge auf 2 GB beschränkt ist). Du kannst aber auf alle ODBC-Quellen zugreifen, wie Access. MySQL bietet auch eine gute Integration an. Bei MySQL können die Tabellen dann 2 TB groß werden:

formatting link
formatting link

Da sieht das dann recht trivial vom Programm her aus (mit Microsoft-Datenbanken fast gleich, nur wird dann das generische SqlConnection verwendet, statt MySqlConnection) :

Imports MySql.Data Imports MySql.Data.MySqlClient

' Datenbankverbindung herstellen Dim connection As New MySqlConnection _ ("Database=test;Data Source=localhost;User Id=root;Password=") connection.Open()

' alte Tabelle löschen, falls vorhanden Dim command As New MySqlCommand("drop table if exists logging", connection) command.ExecuteNonQuery()

' Tabelle neu anlegen command = New MySqlCommand( _ "create table logging " & _ "(time timestamp default current_timestamp, value int)", connection) command.ExecuteNonQuery()

' ein paar Werte reinschreiben Dim r As New Random() For i = 1 To 10 command = New MySqlCommand("insert into logging set value=?value", connection) command.Parameters.AddWithValue("?value", r.Next(100)) command.ExecuteNonQuery() Next

' Werte auslesen command = New MySqlCommand("select * from logging order by time", connection) Dim reader = command.ExecuteReader() While reader.Read() Console.WriteLine("time: {0}, value: {1}", reader!time, reader!value) End While

' Datenbankverbindung schließen connection.Close()

Das gibt dann auf der Console z.B. sowas aus:

time: 18.09.2008 21:03:27, value: 41 time: 18.09.2008 21:03:27, value: 70 time: 18.09.2008 21:03:27, value: 21 time: 18.09.2008 21:03:27, value: 14 time: 18.09.2008 21:03:27, value: 16 time: 18.09.2008 21:03:27, value: 83 time: 18.09.2008 21:03:27, value: 91 time: 18.09.2008 21:03:27, value: 62 time: 18.09.2008 21:03:27, value: 29 time: 18.09.2008 21:03:27, value: 76

Ist von der Geschwindigkeit her auch nicht schlecht: Ich habe hier 7.600 Werte pro Sekunde gemessen.

Statt den Zufallswert kannst du dann LabJack, oder ein anderes DAQ-Gerät mit VB.NET-Unterstützung nehmen, um die Werte von dort zu lesen.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Irgendeine AD-Karte und 'n alten Linux PC

Bei den Frequenzen kann man auch noch mehrere bequem Meßwerte mitteln.

Auswertung über awk:-) Da muß ich nicht wissen, ob im Hintergrund Excel post/pre

2007 vorhanden ist:-)

Zumindest die RTX03B und A ist unter Linux ansprechbar, und, wenn noch erhältlich, preiswert. Problem dürfte da eher sein, einen Rechner mit ISA noch irgendwo aus verstaubten Ecken zu graben.

Olaf

Reply to
Olaf Schultz

Bekommst du bei eBay nachgeworfen:

formatting link

Eben war noch kein Gebot abgegeben und läuft noch 7 Minuten. Ich habe auch noch einen im Keller stehen :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Die kannst Du auch noch neu kaufen. War letztens mal ein Thread drueber, da hatte ich einen Link gesetzt, IIRC eine Firma, die Rechner fuer den Industriebedarf liefert. Haufenweise ISA Slots drin.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Zeitraster ist mindestens 5ms, also 200Hz oder 400Byte pro Sekunde,

1,4MB/Stunde oder ca. 100MB für 72 Std.

binnen einer Woche schaffe ich das zeitlich nicht. Bei diesem Projekt ist nicht nur diese Messung zu machen sondern einiges Anderes auch und das bindet ebenso Resourcen. Kunde sagt "mach mal und das sofort". Da bleibt dann nicht viel Zeit für an und für sich vergnügliche uC-Enwicklung übrig.

die persönlichen Gründe sind genau die, daß für mich SW schreiben eben nicht einfach ist. der Wirkungsgrad ist auch nach vielen Mühen des Lernens unter jeder Kritik.

wie gesagt - wenn möglich ohne PC im Dauerlauf, daher ist Labjack nicht ideal, obwohl es recht brauchbar aussieht.

Grüße

- Michael Wieser

Reply to
Michael Wieser

Tips bei wem?

welche?

Es ändert sich alle 0,75Hz was. Entscheidend für mich ist, daß ich in unter ca. 390000 Änderungen pro Meßkanal (0,75Hz über 72 Stunden) den (nicht erwarteten) Fehler finde, wo das gemessene Signal nicht innerhalb der erlaubten Verzögerung von 200ms +/-10% zurückkommt. Und das in einer Kette von 5 Sensoren hintereinander.

Damit das nachvollziehbar oder Triggerfehler möglichst ausgeschlossen bleiben möchte ich keine komplexen Triggerbedingung vor der Messung einstellen sondern nach dem Testlauf das Log auswerten, damit ich auch uU die Dinge sehe, die eine Automatik übersehen hätte.

Grüße

- Michael Wieser

Reply to
Michael Wieser

Da würde ich die Fehlerdetektierung direkt per Microcontroller programmieren und nicht erst alles aufzeichnen. Wenn Programmieren nicht deine Stärke ist, an andere als Subauftrag vergeben. Sollte aber in 1-2 Stunden in vielleicht 50 Zeilen C machbar sein, mit RS232 Kommunikation um die Fehler dann auszulesen. Wenn du nicht viele Fehler erwartest, dann sollte der Speicher jedes einigermaßen besseren Microcontrollers reichen.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Michael Wieser schrieb:

Mein Senf zu den zahlreichen anderen Vorschlägen:

Soweit, so einfach.

Du brauchst also recht gute Timestamps, um die Abweichung von 10% von

200ms erkennen zu können.

Und der Timestamp. Nochmal 24Bit. (72h*60min*60s/20ms)

Ich würde einen Microcontroller messen und die Ergebnisse auf SD-Karte schreiben lassen.

Kein Problem. Binär zu speichern könnte hier noch einfacher sein.

Für 600? könnte man sich das fast bauen lassen...

Das macht es etwas komplizierter. Müßte ich das tun, würde der Microcontroller das schon ausgewertet haben und ein Flag in den Daten setzen.

Wenn dieses Gerät nicht ein Einzelstück sein soll, würde ich über eine Sonderanfertigung nachdenken.

My 2¢, Falk

Reply to
Falk Willberg

Wenn er es mit konstanter Bitrate aufzeichnet, dann braucht er keine Timestamps, falls es per Microcontroller und quarzgesteuertem Takt mit Timer-Interrupts programmiert wird. Ich würde aber auch eher dazu tendieren, nur die Fehlerereignisse mit Timestamp aufzuzeichnen. Das kann dann auch problemlos mit höherer Auflösung als 1 ms geschehen.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Das Ganze klingt etwas nach Beweissicherung, daß irgendein System Fehler macht. In diesem Fall wird der Kunde einem uC, der den Fehler erkennen soll, vielleicht nicht trauen.

Andernfalls ist der Weg natürlich, uC Fehler erkennen lassen, Rundumleuchte und Horn einschalten und Timestamp protokollieren.

Hätte ich mehr Zeit, würde ich vorschlagen, daß Du die Auswertung machst (1-2h C-Programmierung) und ich die Hardware nebst Speicherung, das habe ich nämlich fertig hier liegen ;-)

Falk

Reply to
Falk Willberg

Was gar nicht so verkehrt ist. Eine Entwicklung liegt da nicht drin, aber vielleicht hat jemand so etwas schon entworfen und kann ein Modul verkaufen.

Am besten in einschlaegigen uC Gruppen fragen. Im Yahoo MSP430 Forum kann ich mich dunkel erinnern, dass der australische Entwickler mit dem User Name "Onestone" so aehnliche Sachen fuer unbeaufsichtigten Feldeinsatz entwickelt hat.

[...]
--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Ich weiß, die angedachten 5ms sind eh schon das unterste, was ich noch für vertretbar halte.

ok.

Wenn es ein zugekauftes Einzelprojekt ist glaube ich nicht das Du mit

600? auskommst.

Da solche uC-Projekte (mit SW aus fremder Hand) eigentlich mein Brotberuf sind.... habe ich aus gutem Grund diese naheliegende Lösung verworfen, denn ich traue einer Einzellösung, die zum _Verifizieren_ eines Fehlers dienen soll erst dann, wenn ich die mindestens 2x mit allen Schikanen durchlaufen lassen konnte und die Ergebnisse da ok sind.

Der Aufwand, den Eigenheiten des selbstgebauten Meßgeräts auf die Spur zu kommen ist mM nach nicht zu unterschätzen. Mein Programmierer baut hin und wieder schwer zu findenden Mist.

Die Messung beginnt Freitag in einer Woche, dh. mit 2x72 Std Testzeit und Debugzeit ist da nichts mehr. Ein zugekauftes oder gemietetes Gerät, das die Daten einfach offline wegschreibt und mir mehr Zeit bei der Auswertung läßt entspannt die zeitliche Situation schon sehr. Daher die Fragen....

Es wäre ein Einzelstück.

Daher - die uC-Lösung wäre mit 2 Wochen Vorbereitungszeit eine preiswerte und gangbare Lösung, die ich auch gehen könnte und gehen würde. Doch aus Zeitgründen ist diese Lösung in diesem Fall nicht mehr sinnvoll umsetzbar.

Danke für gute Fragen und Anregeungen daraus

- Michael Wieser

Reply to
Michael Wieser

[Daten protokollieren]

Es ist keine Kunst, eher eine Fleißarbeit.

Oder bei

formatting link
anfragen. "Nen antwort one alle rechteschreibkentni'ße" am besten "nicht mal ignorieren". Da sind IMO aber auch gute Leute vertreten.

Falk

Reply to
Falk Willberg

Michael Wieser schrieb:

...

....

*Das* dürfte der springende Punkt sein.

...

Zeit ist Geld...

Viel Erfolg!

Falk

Reply to
Falk Willberg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.