Button Abfagen (Funktionen)
-
dirk61 schrieb:
Könntest du den nicht die 4 punkte in den Quell Code einarbeiten, denn für dich ist das so leicht da hin gechrieben, bist denke mal auch vom Beruf Programmierer
Das wäre aber einer Komplettlösung nahe gekommen. Außerdem hab ich ja keinen Quellcode, du hast ja nur die OnButton gepostet.
Wie oft willst du denn den Wert auslesen bzw. aktualisiert angezeigt bekommen?
-
AndyDD schrieb:
dirk61 schrieb:
Könntest du den nicht die 4 punkte in den Quell Code einarbeiten, denn für dich ist das so leicht da hin gechrieben, bist denke mal auch vom Beruf Programmierer
Das wäre aber einer Komplettlösung nahe gekommen. Außerdem hab ich ja keinen Quellcode, du hast ja nur die OnButton gepostet.
Wie oft willst du denn den Wert auslesen bzw. aktualisiert angezeigt bekommen?hey...
so hab jetzt das Problem mit einem Timer gelöst. Der Timer läuft die schleife so oft durch bis ich es stoppe.
jetzt bleibt mir noch ein Problem und zwar wie kann ich die Phasenverschiebung ermitteln? Damit ich die Leistungen berechnen kann.Aber danke für deine Hilfe.
-
Wenn du von Phasenverschiebung redest, so misst du also keine Gleichspannung. Somit ist die "einfache" Umrechnung von Strom und Spannung eben nicht mehr so trivial, auch nicht mit einem Shunt.
Welche Phasenverschiebung meinst du denn? Die zwischen Strom und Spannung einer Wechselgröße oder die zwischen zwei verschiedenen Wechselspannungen?
Ich hab sowas noch nie programmtechnisch umgesetzt. Eine Möglichkeit wäre über die Samples einen Spannungs-/Stromteitverlauf zu bekommen und aus diesem die Phasenverschiebung zu ermitteln. Wie groß ist denn die maximale Frequenz deiner Wechsslgröße und wie oft bewirkt dein Timer eine Abtastung? Ich fürchte fast, so wird das nicht ganz funktionieren (Nyquist-Shannonsches Abtasttheorem).
-
Ich messe keine reine Gleichspannung.
Über einen Trennversterker Messe ich die Spannung und Strom werte ein.
Ich habe eine Messspannung von +/- 10V. Über den Trennversterker verhält sich meine Gleichspannung wie eine Wechselspannung
hab also immer noch die Sinus Kurve die aber keine richtige Sinus kurve mehr ist.Ich meine die Phasenverschiebung zwischen Spannung und Strom.
Die Frequenz meiner Wechselgröße beträgt immer noch 50Hz, ich Messe die Netzt Spannung.Ich hatte mir gedacht das ich irgendwie die beiden Null durchänge ermittel und die Zeitverschiebung zwischen den beiden feststelle. Mein Timer startet alle 500ms die Messung neu und Aktualliesiert meine Anzeige.
Noch eine klein Frage was mir so einfällt, kann man die Anzeigen verändern also eine Digitale Anzeige darstellen?Wie du es sagst das wird nicht so leicht.
-
dirk61 schrieb:
Ich messe keine reine Gleichspannung.
Über einen Trennversterker Messe ich die Spannung und Strom werte ein.
Ich habe eine Messspannung von +/- 10V. Über den Trennversterker verhält sich meine Gleichspannung wie eine Wechselspannung
hab also immer noch die Sinus Kurve die aber keine richtige Sinus kurve mehr ist.Ich meine die Phasenverschiebung zwischen Spannung und Strom.
Die Frequenz meiner Wechselgröße beträgt immer noch 50Hz, ich Messe die Netzt Spannung.Ich hatte mir gedacht das ich irgendwie die beiden Null durchänge ermittel und die Zeitverschiebung zwischen den beiden feststelle. Mein Timer startet alle 500ms die Messung neu und Aktualliesiert meine Anzeige.
Noch eine klein Frage was mir so einfällt, kann man die Anzeigen verändern also eine Digitale Anzeige darstellen?Wie du es sagst das wird nicht so leicht.
Siehste, und damit kannst du das schon vergessen. Weil: Abtasttheorem. Wieso kommst du auf 500 ms? Das entspricht doch 2 Hz. Schau mal: 50 Hz sind entsprechend 20 ms für eine vollständige Periode. Laut Abtasttheorem musst die Abtastfrequenz mindestens!! doppelt so groß sein wie die größe im Signal vorkommende Frequenz. Dabei ist das völlig unerheblich ob die eine pulsierende Gleichspannung oder eine echte Wechselspannung hast. Also: Abtasten 100 mal in der Sekunde entspricht 10 ms. Soll heißen: du müsstest alle 10 ms ein Timerereignis losschicken. Und das kannst du vergessen. Erstens ist Windows kein real-time-OS und selbst wenn der Timer eine Auflösung von 1ms theoretisch hergeben würde, tut er das im unteren Bereich nicht. Zweitens: wenn das Abarbeiten anderer Nachrichten in der Nachrichtschleife mal wieder etwas dauert wird wie WM_TIMER auch nicht zeitnah verarbeitet. Außerdem braucht es ja auch eine endliche Zeit die der ADU braucht und du auf das Register der Karte zugeriffen hast.
Sicher samplen die Karten mit bis zu 40 kHz, was ja einer maximalen Signalfrequenz von 20 kHz entspräche. Allerdings brauchst du ja zeitnahe Messwerte, wenn ich dich richtig verstanden habe.
Allerdings gibts da eine Möglichkeit. Manche Karte (meine auch) schreiben über interne Puffer, die man dann zur Berechnung nutzen kann. Da musst du mal in der Beschreibung der Karte lesen. Dann übernimmt die Hardware den Rechenpart, was deutlich schneller geht wie mit dem PC. Aber einfach Spannungswerte im Zeitraster abtasten und dann versuchen zu rechnen ist Blödsinn. Die Nulldurchgänge bekommst du ja nicht mal alle mit. Bei 500 ms (angenommen alles läuft zeitoptimal sind ja schon 25 Perioden vergangen, die du gar nicht betrachtet hast.
-
Ist schon richtig was du sagst das man bei 50Hz 20ms hat.
Die abtast frequenz stell ich ja nicht bei meinem timer ein sondern in meiner funktion Frequenz. Und dort Taste ich schon mind. die Doppelte Frequnz ab. Vielleicht muss ich auch den Timer kleiner stellen, das könnte möglich sein.AndyDD schrieb:
Allerdings gibts da eine Möglichkeit. Manche Karte (meine auch) schreiben über interne Puffer, die man dann zur Berechnung nutzen kann. Da musst du mal in der Beschreibung der Karte lesen. Dann übernimmt die Hardware den Rechenpart, was deutlich schneller geht wie mit dem PC.
Die werte werden in den Internen Puffer reingeschriebn aber was meinst du den damit genau? Hab bei mir die Doku der Karte angeschaut, konnte jetzt nichts direktes drüber finden....
-
Welche Karte hast du denn genau?
-
AndyDD schrieb:
Welche Karte hast du denn genau?
das ist die me4610
-
Ich hab mal in dem Handbuch zu deiner Karte nachgeschaut. Die Meilhaus-SDK bietet ja hier schon einiges was du brauchst. Ab Kapitel 4.1.2.1 (Version 1.2D) steht alle was du brauchst. Die Karte schreibt die Werte in den Ringpuffer und du brauchst diese nur zeitnah auslesen. Wenn die Abstände zwischen zwei Ticks 30,30 ns betragen ist die Auflösung mehr als ausreichend. Der Rest ist reine Mathematik. Aus den Samplewerten könntest du z.B. die Spannungs-Zeitfunktion ermitteln. Eventuell gibts auch irgendeine Transformation, wo man noch einfacher die Phasenverschiebung ermitteln kann. Nur das ist bei mir auch schon wieder eine ganze Weile her wo ich das das letzte Mal hatte...
-
Das hatte ich auch gelesen. Was mich jetzt nur durcheinander wirft, dann würde es doch nicht Funktionieren wenn ich ein Timer eingestellt habe um die Funktion immer automatisch zu starte?!. Habe momentan ein Große Denkblokade!
Wie realisiert man das mit den Samples? Das ist mir auch jetzt ganz neu! Gibs da ein link mit Bsp. Hab zwar gegooglet aber nichts so gefunden.
-
Bin bin zuerst davon ausgegangen, dass du dir mehrfach hintereinander weg den Wert für die Spannung aus dem Register der Karte holst. Deshalb gabs von mir die Anmerkung mit dem Abtasttheorem.
Jetzt gehe ich davon aus, dass du das so machst wie es im entsprechenden Kapitel des Handbuchs beschrieben ist. Die Karte arbeitet ja über einen Ringpuffer. Wie lange es natürlich dauert den auszulesen hab ich jetzt nicht nachgeschlagen. Klar musst du den zyklisch auslesen, sonst stoppt entweder die Messung (wenn er voll ist) oder die Werte werden einfach überschrieben. Allerdings müsste dann der Timer einen größeren Intervall bekommen. Die API von Meilhaus bringt ja auch viel zum Fehlermanagement mit, eventuell könntest du sogar das mit dem Timer lassen und eventgesteuert arbeiten (wenn Puffer voll, dann auslesen; wenn ein Fehler auftaucht musst du natürlich die Messwerte verwerfen, da man dann die Gültigkeit in Frage stellen muss). Du musst aber erst mal dieses Handbuch inklusive Funktionenreferenz genau studieren. Ist sehr gut beschrieben. Zu meiner Karte gabs nur ein schlechtes Tut in Englisch.
Zu den Samples: schau dir mal die Theorie zur A/D-Wandlung an (Stichwort Systemtheorie). Aus den einzelnen Messpunkten (Samples) kann man die Spannungs-Zeit-Funktion ermitteln. ich bin mir eben nicht mehr so sicher, aber ich glaube bei irgendeiner Transformation war es relativ leicht die Phasenverschiebung zweier Signale zu ermitteln.
-
AndyDD schrieb:
Bin bin zuerst davon ausgegangen, dass du dir mehrfach hintereinander weg den Wert für die Spannung aus dem Register der Karte holst. Deshalb gabs von mir die Anmerkung mit dem Abtasttheorem.
Jetzt gehe ich davon aus, dass du das so machst wie es im entsprechenden Kapitel des Handbuchs beschrieben ist. Die Karte arbeitet ja über einen Ringpuffer. Wie lange es natürlich dauert den auszulesen hab ich jetzt nicht nachgeschlagen. Klar musst du den zyklisch auslesen, sonst stoppt entweder die Messung (wenn er voll ist) oder die Werte werden einfach überschrieben. Allerdings müsste dann der Timer einen größeren Intervall bekommen. Die API von Meilhaus bringt ja auch viel zum Fehlermanagement mit, eventuell könntest du sogar das mit dem Timer lassen und eventgesteuert arbeiten (wenn Puffer voll, dann auslesen; wenn ein Fehler auftaucht musst du natürlich die Messwerte verwerfen, da man dann die Gültigkeit in Frage stellen muss). Du musst aber erst mal dieses Handbuch inklusive Funktionenreferenz genau studieren. Ist sehr gut beschrieben. Zu meiner Karte gabs nur ein schlechtes Tut in Englisch.
Zu den Samples: schau dir mal die Theorie zur A/D-Wandlung an (Stichwort Systemtheorie). Aus den einzelnen Messpunkten (Samples) kann man die Spannungs-Zeit-Funktion ermitteln. ich bin mir eben nicht mehr so sicher, aber ich glaube bei irgendeiner Transformation war es relativ leicht die Phasenverschiebung zweier Signale zu ermitteln.hallo..
eigentlich mach ich das so wie in der Beschreibung, hole die werte synchron aus dem Ringpuffer heraus. Die beschreibung gibt schon einiges her aber mit unserem kentniss über Programmieren sagt es auch nicht viel. Die Beschreibung haben wir immer parat beim Programmieren aber es fehlen uns noch viele Hintergrund wissen was wir uns wegen zeit mangel nicht aneichnen können...Was meinst du mit Transformation, das sagt mir zu diesem Thema nichts...
-
Hallo AndyDD
leider hab ich das mit dem Phasenverschiebng nicht hinbekommen...hab verschiedene sachen ausgetestet aber bekomm es einfach nicht hin, könntest du mir da weiter helfen??