Jump to content

HolWo

Administratoren
  • Posts

    360
  • Joined

  • Last visited

  • Days Won

    6

HolWo last won the day on March 14

HolWo had the most liked content!

1 Follower

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hallo, was genau funktioniert nicht? Wie sieht das Schaltbild aus, also was tun Sie, das nicht funktioniert? Die 6009 beherrscht nur den Signalerzeugungsmodus "1 Wert (auf Anforderung)", d.h. hier lässt sich der Spannungspegel am Analogausgang nur wenige Male pro Sekunde verändern. Für hohefrquente Rechtecksignal/Sinusschwingungen kann dies nicht verwendet werden. Je nach NI 92XX Hardware kann es möglich sein, entweder einen Spannungstask mit kontinuierlichem Signalerzeugungsmodus zu nutzen, oder eine zählergestützte Impulsausgabe. Beim Task mit "kontinuierlichem Signalserzeugungsmodus" legen Sie eine Abtastrate und eine Blockgröße fest, mit der der Task die ihm zur Verfügung gestellten Daten verwendet, um den Spannungspegel am Analogausgang zu verändern. Beispielsweise 1000 Hz und "zu schreibende Werte" 100 -- dann wird der Task jede 0,001s (1/1000) den Spannugspegel verändern können je nach höhe der Werte, die dem Task übergeben werden. Der Parameter "zu schreibende Werte" ist das, was in DASYLab der Blockgröße entspricht. D.h. der Task erwartet nich 1000x pro Sekunde einen Einzelwert, sondern 10x pro Sekunde 100 Werte (10x100 = 1000 Werte pro Sekunde --> 1000Hz]. D.h. wenn Sie einen "kontinuierlichen AusgabeTask" (1000Hz, zu schreibende Werte 100) in einem DASYLab Analogausgangsmodul nutzen, müssen Sie entsprechend einen Datenstrom anliefern, der die Eigenschaft 1000Hz und Blockgröße 100 hat. Falls die 92XX-Hardware auch Counter/Zähler hat, können Sie einen zählergestützte Impulsausgabe als Task nutzen. Dieser hat zwei Parameter: die Zeitdauer für die High- und die Low-Phase eines auszugebenden Rechtecksignals. Wenn Sie diesen Task in einem Frequenzausgabemodul in DASYLab nutzen, hat das Modul zwei Eingänge, die Sie bspw. mit einem Handregler geeignet mit Werten bedienen müssen. Bspw. jeweils 0,5[V] an beiden Eingängen anliefern: das erzeugte Rechteck hat eine High- und eine Low-Dauer von jeweils einer halben Sekunde. Beachten Sie bitte, dass jeder neue Datenwert (zwei Eingänge), der an das Frequenzausgabemodul geliefert wird, eine Neukonfiguration des Impulsausgabetasks bewirkt, selbst dann, wenn mit dem Handregler derselbe Datenwert immer wieder angeliefert wird. Die DASYLab-Zeitbasis ist im Handregler voreingestellt und dient als sein "Taktgeber" für die Ausgabe des aktuellen eingestellten Handreglerwerts. Die DASYLab-Zeitbasis ist auf 10Hz BG 1 voreingestellt, sodass der Handregler 10x pro Sekunden seinen Wert ausgibt. Das führt dazu, dass der Impulsausgabetask sich jede Zehntelsekunde reinitialisiert, auch dann wenn der Handreglerwert sich nicht mehr verändert. Dies sollte vermieden werden, da dies Rechenzeit in Anspruch nimmt, die Performance reduziert und auch zu Fehlern/Timeouts führen kann. Zwischen Handregler und dem Frequenzausgabemodul daher bitte ein Relais oder ein Haltemodul anschliessen -- mit dem Handregler die gewünschte Hi/Lo-Zeiten für das Rechtecksignal voreinstellen und dann mit einem Schalter und einer Aktion den Wert der Haltefunktion ausgeben: das verändert einmalig die Einstellung des Tasks bis erneut die Einstellung geändert werden muss ("On-Demand").
  2. Hallo! 1. Welche Release- und Buildnummer hat Ihr verwendetes DASYLab 2016? Dies können Sie in der Textkonsole eines gestarteten DASYLabs ablesen (siehe Screenshot)? 2. Ist das Gerät direkt mit dem Mess-PC verbunden oder sind PC und Messgerät über das Firmennetzwerk verbunden? 3. Nach welcher Zeitspanne tritt der Timeout auf -- innerhalb von Sekunden, Minuten oder evtl. erst nach Tagen? 4. Mit welcher Abtastrate fordern Sie neue Daten an? 5. Wie viele Kanäle bzw. Modbus-Module sind im Schaltbild vorhanden, die per Modbus Daten erhalten?
  3. Hallo! Ja, da ist leider ein Fehler im Statemachine-Modul beim Ermöglichen von Variablenverknüpfungen im Zähler-Reiter passiert. Im Schritt, in dem der Zähler 1 beim Verlassen des Schritt um 1 inkrementiert wird, wird die "1.0" nicht korrekt ausgewertet -- die 1.0 wird irrtümlicherweise als Variablennummer interpretiert, sodass der Zähler um den Wert der Variable 1 erhöht wird. Work-around 1: Anstatt der 1.0, eine globale Variable verknüpfen und ihr den Wert 1.0 zuweisen. Work-around 2: Die unten angehängte, korrigierte Statemachine-DLL verwenden (ins DASYLab 2022-Anwendungsverzeichnis kopieren, die vorhandene Datei bitte sichern). Demächst wird eine DASYLab 2022-Version erscheinen, die den Fix sozusagen "ab Werk" enthält. Die aktuelle DASYLab 2022-Version trägt die Buildnummer 262 (siehe https://www.measx.com/de/service/download.html). Die neue Version wird eine höhere Bildnummer tragen! statemachineDLL_DL2022__2022-02-07.zip
  4. Seltsam. Schauen/Suchen Sie bitte einmal, ob nach der Compliance Package-Installation eine 'ividmm.dll' vorhanden ist. Welche Version de Compliance Package genau haben Sie installiert?
  5. Hallo! Können Sie die Adresse evtl. im Menü des Geräts ablesen/einstellen? Eine weitere Möglichkeit neben GPIB wäre die Kommunikation via IVI, im Konfigurator den IVI-Treiber bitte aktivieren. Die Module ohne Plus-Symbol im Namen sind für NI-Geräte, die mit Plus-Symbol für alle anderen. Anbei finden Sie ein PDF mit einer Anleitung, die allerdings ein DMM von Fluke einrichtet. DASYLab Techniques - Configuring DASYLab V12 to use a Fluke 45 DMM using the IVI drivers.pdf
  6. Hallo Stefan, spontan: Mit dem Datenfenstermodul aus der Ausgabe des Min/Max-Moduls 2er-Blöcke erstellen. Mit dem Selektieren-Modul den ersten und den zweiten Wert jedes Zweier-Blocks ausgeben lassen, damit die Berechnung durchführen und in eine Variable schreiben. Mit dem Zählermodul kannst die Blöcke zählen lassen. Damit nach der einen interessanten Berechnung, die nur für die ersten beiden Werte gelten soll, keine weiteren erfolgen sollen, kannst du hinter das Min/Max-Modul ein Aktions gesteuertes Relais platzieren. Wenn das Datenfenster einen 2er-Block ausgegeben hat, zählt das Zählermodul eben bis 1, gibt den Wert aus, diesen mit einer Aktion überwachen (Eingang erreicht Wert 1) und das Relais sperren.
  7. Hallo! (1) Vergewissern Sie sich bitte, dass die Sekundäradresse des Geräts tatsächlich 0 ist. Die "1" zwischen den Doppelpunkten ist die Primäradresse. (2) Probieren Sie bitte eine Headerlänge von 0. (3) In den Optionen können Sie die ABfragerate (unten im DIalog) reduzieren (Standard: 2Hz bzw. 0,5s), möglicherweise ist die Vorgabe zu schnell für das Gerät. Die GPIB-32.DLL wird automatisch von den IEEE-Modulen verwendet, wenn diese im Verzeichnis liegt; diese muss nicht gesondert initialisiert werden.
  8. Hallo! (1) Durch die Installation der NI-Treiber für GPIB-Hardware sollte es auch eine GPIB32.DLL (bzw. GPIB-32.DLL) im Windows/System32 (bzw. Windows/SysWOW64) geben -- kopieren Sie diese bitte in das DASYLab-Anwendungsverzeichnis, z.B. C:\Programme\DASYLab 2016. (2) Im IEEE-Modul können Sie mit dem Befehl 'ibwrt' eine Anfrage an das Gerät senden, müssen zudem noch die Antwort lesen mit 'ibrd'. Wenn Sie ein neues Eingangsmodul im Schaltbild platzieren, sehen Sie eine Beispielabfolge von Befehlen: ibwrt (user, 'MSV?') ibrd (user) Die zurückgelieferte Antwort muss dann mittels eines Formatstrings interpretiert werden, 'a' sollte für die im Screenshot gezeigte Gleitkommazahl korrekt sein.
  9. Hallo! Auf der Produktseite des Geräts steht, dass es per RS232 und GPIB angesprochen werden kann. Schauen Sie bitte einmal in das Handbuch des Geräts, ob Sie dort bspw. die RS232-Kommandos finden, um DASYLabs RS232-Module für die Kommunikation zu verwenden. https://www.keysight.com/de/de/product/34450A/digital-multimeter-5-5-digit-oled-display.html
  10. Das funktioniert (leider?) nicht. Das würde dem Konzept, die originale Uhrzeit zu verwenden, wiedersprechen, da wir dann mehrfach Daten hätten, die denselben Zeitstempel bekämen -- aber das unterstützt DASYLab nicht: jeder Datenblock hat einen Zeitstempel, aufeinanderfolgende Zeitstempel müssen streng monoton ansteigen, d.h. es dürfen keine Datenblöcke auftreten, die einen Zeitstempel haben, die zeitlich früher liegen als ein schonmal aufgetretener.
  11. Hallo! (1) Die Umwandlungsfunktion verwendet das Dezimaltrennzeichen, welches von Windows als Standard vorgegeben ist. In den EInstellungen zur Region in der WIndows Systemsteuerung können Sie dies von Komma zu Punkt ändern. (2) Im RS232/ICom-Ausgang lassen sich weitere Formatanweisungen angeben, um die zu sendenden Zeichen anzupassen (Hilfe des Moduls: Formatanweisungen für die Datenausgabe). Mit [a5,2] bzw. [a5.2] (Komma vs. Punkt) kann gesteuert werden, welcher Dezimaltrenner genutzt wird, wenn eine Zahl mit fünf Stellen, davon zwei Nachkommastellen, vor dem Senden formatiert werden soll. Hier müsste die zu sendende Zahl über den Eingang des Moduls geliefert werden, diese wird dann in den Platzhalter des Formatstrings eingesetzt (z.B. [a5.2)]. Vor und nach dem Platzhalter im Formatstring des Moduls können natürlich weitere "Dekorationen" hinzugefügt werden, um z.B. einen SCPI-Befehl mit variablem Bestandteil zu vervollständigen. (3) Mit dem Skriptmodul könnte man einen globalen String lesen und enthaltene Zeichen ersetzen. Das "Innenleben" eines Skriptmoduls wird mit der Sprache Python programmiert. Ich habe ein Beispielskript angehängt (ab DASYLab 13), das das Prinzip des Skriptmoduls grob demonstriert: hier wird der Inhalt eines Strings darauf geprüft, ob dieser als Dateiname zu gebrauchen ist. DASYLabs globale Strings können freien Text aufnehmen, aber der Inhalt eines Strings kann natürlich Zeichen enthalten, die nicht in Windows-Dateien/Verzeichnissen vorkommen dürfen, bspw. der Doppelpunkt. Mit dem Schalter kann die Prüfung ausgelöst werden: dies liest einen globalen String, prüft diesen und schreibt das Ergebnis in einen anderen String. Auf ähnliche Weise könnten Sie vor dem Senden eines globalen Strings zunächst mit einem entsprechend angepassten Skriptmodul den Inhalt eines Strings anpassen, das Dezimaltrennzeichen austauschen, und dann die aufbereiteten String senden. Im Konfigurationsdialog des Skriptmoduls können Sie über "Speichern" das im Modul enthaltene Skript als Datei z.B. auf dem Desktop abspeichern und mit einem Texteditor ändern. Anschließend muss das Skript wieder in das Modul mittels "Laden"-Schalter hineingeladen werden. validstring.DSB
  12. Hallo! Führende Nullen darstellen ist leider nicht möglich für DASYLabs Standard-Visualisierungen. Mit dem Skriptmodul könnte man den Inhalt eines globalen Strings vorgeben, sodass bspw. von einer Quelle (globale Variable, Eingang eines Moduls) die übergebene Zahl als zwei Zeichen in einen globalen String geschrieben werden. Den Inhalt des globalen String könnte man dann in einem Layout-Element (Textzeile/-block) anzeigen.
  13. Hallo! Über die Hysterese im Minima/Maxima-Modul können Sie steuern wie fein/groß die "Betrachtungsintervalle" sein sollen. Aber: Ist die Hysteres zu groß gewählt, werden die "hinteren" Maxima nicht mehr gefunden, ist diese zu niedrig, werden zuviele lokale Maxima im vorderen Bereich erkannt.
  14. Hallo! (1) Erhöhen Sie bitte die Blockgröße, grobe Richtlinie für das Verhältnis von Abtastrate zu Blockgröße ist eine 10:1 Ratio -- hier also: 1000 Hz, Blockgröße 100. Das verringert die "Last", da pro Sekunde nicht mehr 100 Datenblöcke (mit je 10 Werten) transportiert/verwaltet werden müssen, sondern nur noch 10 Datenblöcke (mit je 100 Werten). (2) Beim Bild mit der Zeitbasis-Einstellung sieht man, dass der Taskname in runden Klammern eingefasst ist -- das bedeutet, dass dieser Task eigentlich nicht verfügbar ist (quasi ein Platzhalter). Prüfen Sie bitte, ob sie den richtigen Task im Schaltbild verwenden bzw. sich auf den korrekten Task synchronisieren. (3) Für kontinuierliche NI-DAQmx-Tasks können Sie die Puffergröße anpassen: Messen >> Messeistellungen >> NI >> NI-DAQmx/CAN/XNet-Messeinstellungen Die Ringpuffergröße hängt von der verwendeten Blockgröße ab. 30 Blöcke ist die Voreinstellung, probieren Sie bitte einmal 60 Blöcke als Größe für den Puffer aus.
  15. Hallo, können Sie bitte das Schaltbild anhängen? Einfach auf den Beitrag hier im Forum ziehen. Prinzipiell ist das "Delta" in der Datei ohnehin nur ein Platzhalter, da es durch das Resampling der originalen Zeitdaten kein festes Delta mehr gibt. In Ihrem konkreten Beispiel haben Sie zwar alle 8 Sekunden einen neuen Satz Daten, welcher auf 360 Werte modifiziert/resampelt wird, es kann aber auch passieren, dass es mal nur 2 Sekunden oder 20 Sekunden sind, über die Daten gesammelt werden, das hängt schließlich vom nicht zwingend äquidistanten Abstand zweier Peaks am Steuereingang ab. Als Resultat erhält man (hier) 360 Werte, aber das Delta der ursprünglichen Zeitdaten ist einmal kürzer und einmal länger, also variabel, sodass es keinen "einen" Wert gibt, denn man als Delta in die Datei schreiben kann.
×
×
  • Create New...