Jump to content

Anzeige:
nächste DASYLab Schulungstermine bei measX
DASYLab und Python 14.04. + 15.04.2020 Mönchengladbach
Messwerterfassung mit DASYLab – Grundlagen 21.04. + 22.04.2020 Mönchengladbach


HolWo

Administratoren
  • Content Count

    303
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by HolWo

  1. Hallo! Wie stark asynchron ist es denn? Millisekunden, Minuten? Welche Zeitbasen finden Verwendung... bei der Erfassung (MCC-Gerät) beim Generator, der den Eingang der Blackbox SAVE-Data speist Was passiert, wenn Sie den Genrator (vmtl. "Taktgeber" für Blockgröße 1) entfernen und stattdessen eine ablaufende Leitung des Analog-Eingangs abgreifen? Mit einem Mittelungsmodul oder einem Seprarierenmodul können Sie die Blockgröße auf 1 reduzieren. Erstellen Sie ein Testschaltbild: Kopie des obigen Schaltbilds erstellen, und darin alles entfernen, ausser dem Generator und dem IO_OUT-MCC-Modul. Den Generator durch einen Schalter ersetzen und seinen Ausgang mit den Eingängen des Analogausgangs verbinden. Wie stark ist die Verzögerung, wenn Sie die Ausgänge nun über den Schalter ein-/ausschalten? Möglicherweise ist es auch hilfreich, wenn Sie das Schaltbild zur Verfügung stellen (an hängen an einen Beitrag oder per Forum-Nachricht).
  2. Hallo! Der Eingang einer Software-Datenquelle dient dazu, dass man sich mit einem anderen Datenstrom synchronisieren kann -- manche Hardware bietet keine Zeitbasis an, die man dann anstatt "DASYLab", "Treiber", "NI DAQmx Tasks" usw. als Zeitbasis in einem Schalter-, Handregler etc einstellen kann. Sie können aber mal die untere Variante (s. Bild) ausprobieren: das "Variable lesen"-Modul hat einen Eingang. Davor sind Relais und Schalter (Impulstaster-Typ). Der Schalter nutzt die Zeitbasis "DASYLab" (10 Hz, BG 1). Betätigt man den Impulstaster, gibt dieser für genau einen Datenwert 5.0V aus (0.0V sonst). Das Relais lässt folglich nur dann einen Datenblock passieren, wenn man den Schalter drückt. Dieser eine Datenblock kommt am Eingang des "Variable lesen"-Moduls an. Das Modul gibt immer nur dann Daten aus, wenn es auch Blöcke am Eingang empfängt. Da dies immer nur bei einem Tastendruck passiert, wird entsprechend der aktuelle Variablenwert nur bei einem Tastendruck ausgegeben und an das "Variable schreiben"-Modul übergeben. Der Inhalt der Datenblöcke, die am Eingang des "Variable lesen-Modul ankommen, sind für das Modul unerheblich: es nutzt nur die Meta-Information über Abtastrate, Blockgröße und den Zeitstempel für seine eigene Ausgabe von Datenblöcken. Alternativ könnten Sie auch eine Aktion (Kategorie: Spezial) nutzen und den Variableninhalt mit der Aktion "Variable kopieren" bzw. "Variable setzen" einmalig bzw. bei Bedarf in einer andere Variable übertragen. Das Ereignis der Aktion könnte bspw. "Steigende Flanke" (oder "Wert erreicht 5.0V) sein, dann müssten Sie in einem Schritt der Statemachine kurzeitig 5.0V ausgeben (im vorherigen und nachfolgenden Schritt muss die Ausgabe 0.0V sein).
  3. Hallo! Die IVI-Module arbeiten (leider), wie Sie bemerkt haben, strikt kanalweise, sodass der erste Kanal das Gerät initialisiert, für sich reserviert und folgende Kanäle, die auf dasselbe Gerät zugreifen wollen, eine belegte Resource vorfinden. Ergo: Es funktioniert leider nicht.
  4. Hallo! Im Beispiel auf dem Bild ist ein "Cariage return"-Symbol, also <CR>, als Nachrichtenabschluss gezeigt. Das Terminal sendet vmtl. automatisch eines mit, da man im Eingabefeld nur die eigentliche Nachricht sieht ("WR0000"). In DASYLabs RS232-Modul, z.B. im Monitor, müssen Sie explizit ein <CR> hinzufügen, da DASYLab nicht wissen kann, dass das Gerät ein <CR> als Abschlusszeichen voraussetzt. D.h. "WR0000\r" (ohne die "") können Sie einmal ausprobieren -- das \r Zeichen ist die in DASYLab gebräuchliche Kurzschreibweise für <CR> (und \n für LF=Line feed). Wenn's funktioniert, bestätigt das Gerät, laut Beispiel oben, den Empfang mit einem "OK<CR><LF>" (ohne "").
  5. HolWo

    Statemachine

    Hallo! Die Ausgänge 1-4 des Schrittkettenmoduls steuern, ob für die vier Kammern "auto_leer" oder "auto_pkw" angezeigt werden. Für die vierte Kammer ist im ENDE-Schritt der Ausgang 4 für die Mindestdauer des Schritts auf 5.0 gesetzt, sodass die Statusanzeige "PKW_Exit" den PWK zeigt.
  6. Hallo! Ein Beispielskript finden Sie im Anhang. In DASYLab (ab Version 13) in Kategorie Spezial ein Skriptmodul ins Schaltbild legen. Im erscheinenden "Assistenten" einstellen, dass das Modul nur Ausgänge haben soll (es ist ja eine Datenquelle). Wenn das Modul im Schaltbild liegt, einen Doppelklick darauf ausführen und den "Externen Editor"-Modus aktivieren. Dann erscheint eine "Laden"-Taste -- hier dann das Skript in das Modul hineinladen. Das Skript liest über die serielle Schnittstelle testweise Daten von einem unserer Messgeräte, ist also speziell darauf ausgelegt und nicht universell einsetzbar! D.h., das Skript kann nur als Ausgangsbasis für Ihre konkrete Anwendung dienen und muss natürlich entsprechen angepasst werden, z.B. bei der Datenanforderung und der Analyse der empfangenen Daten. Im geöffneten Dialog des Skriptmodul können Sie über die Hilfe-Taste weitere Informationen erhalten (oder natürlich hier Fragen stellen ). USBBox_Zeitbasisauswahl.py
  7. Hallo! Die empfangenen Daten lassen sich mit Formatrings analysieren und als Zahlenwerte auf den Modulausgängen ausgeben, aber Texte lassen sich nur in DASYLabs globale Strings übertragen und z.B. per Aktion und Meldung weiterverarbeiten. Ein eleganterer Weg, empfangene Texte in eine Datei zu übertragen, wäre ab DASYLab 13 mit dem Skriptmodul (Kategorie: Spezial) gegeben. Aber hier müsste man dann die RS232-Kommunikation, die Analyse der empfangenen Daten und die Dateibehandlung selber programmieren (Skriptsprache Python).
  8. Danke für den Hinweis -- wir werden versuchen, dies zu korrigieren! Alternativ können Sie auch das ausgefüllte Rechteck als Ersatz für "fette" horizontale Linien verwenden.
  9. Hallo! Beim Build 203, der zurzeit auf measx.com herunterladbar ist, kann die Linienstärke des Layoutelements "Linie" verändert werden (s. Bild). Buildnummer der installierten DASYLab-Version: Menüleiste >> Hilfe >> Info über DASYLab... >> Version (Möglicherweise über den Nummernblock versucht, den Wert zu ändern, und NUM-Taste war nicht gedrückt?)
  10. Wenn die IXXAT VCI 4-Treiberserie genutzt wird, kann es auch dazu kommen, dass keine Daten empfangen werden. Ich hatte dies bereits an den IXXAT-Support gemeldet. Wenn die aktuellsten VCI 4-Treiber das Problem noch nicht gelöst haben, bleibt bis zur Behebung nur, den neusten VCI 3-Treiber zu nutzen.
  11. HolWo

    Diagram

    Hallo! Das Diagramm-Modul beherrscht diese Funktionen leider nicht. Nutzen Sie bitte das Linienschreiber-Modul, wenn Sie das Gitter und höhere Strichstärken benötigen.
  12. Hallo, ich weiss zwar nicht, was Sie mit "permanent zugreifen" meinen, aber mit dem Schreiben in eine Datei und dem Auslesen aus einer Datei kommt man vermutlich in die Nähe dessen, was Sie gerne machen möchten. Da man nicht aus der Datei lesen kann, in die man gerade schreibt, muss man etwas Tricksen. Es gibt zwei Dateien, aus einer wird gelesen, in die andere wird geschrieben -- wenn man den Datensatz "aktualisiert" (Schalter rechts oben: "Aufzeichnen"), dann werden die Dateien quasi beim Schreiber und Lesen getauscht. Mit dem Schalter (links unten) kann man dann wiederholt die gerade auktuelle "Lesedatei" auslesen. Der linke Linienschreiber zeigt, was in eine Datei geschrieben wird, der rechte Schalter zeigt, was gelesen wird -- auch mehrfach denselben "Datensatz", wenn man auf die Taste hämmert. Das Schaltbild ist angehängt (DASYLab 2016 SP2). Da Sie die Dateien "file_a/b" nicht haben, müssen Sie diese erstmal in einem "Trockenlauf" erstellen lassen: Schaltbild laden, den "Lesen"-Zweig entfernen, Schaltbild starten und zweimal "Aufzeichnen" betätigen. Jetzt existieren die Dateien. Nun Schaltbild laden und es funktioniert. 2000werte_datei_schreiben_lesen.DSB
  13. Hallo! Man kann einzelne(!) Zeichen in einem globalen String mit einem Hexcode angeben, z.B. um nicht druckbare Zeichen zu versenden. Siehe Bild: der String SIMU_SENDEN1 hat den Inhalt \x0a\xff\x1f -- das sind eigentlich nur drei Zeichen, aber mit dem Steuerzeichen \x geben wir DASYLab an, dass die beiden folgenden Zeichen der Hexcode sein sollen. Also \x1f ist das Zeichen mit dem Hexcode 31, was dem ASCII-Zeichen '1' entspricht. (siehe ASCII-Tabelle). Der Formatstring im RS232-Ausgang ist der Standardstring [a]/r. -- Für das [a] wird der zu sendende String eingesetzt und ein Carriage return (\r) angehängt, um die Nachricht abzuschließen. Die Aktion (Aktion00) sendet den String 1 und den String 2. String 2 enthält den Text FFFFFFFF (8xF). Im RS232-Eingang gibt es fünf Kanäle: die ersten vier haben als Formatstring ein einzelnen b (für Byte). Der fünfte Kanal enthält den Formatstring ahl\r. Jeder Kanal mit einem b liest ein einzelnen Byte aus dem empfangenen Datenstrom und gibt den (dezimalen) Wert auf dem Ausgang aus, angezeigt im Digitalinstrument. \x0a oder 0x0A oder 0Ahex entspricht 10 dezimal. \xff oder 0xff oder FFhex entspricht 255 dezimal usw. Der letzte Kanal enthält den Formatstring ahl, was soviel bedeutet, dass 8 Bytes als hexcodierte ASCII-Zeichen zu interpretieren sind (a=ascii/h=hex/l=long). 0xFFFFFFFF entspricht eben 4294..blahblah als Dezimalzahl. Mit dem Formatstring $1\r in einem RS232-Eingang kann man Daten in einen globalen String schreiben (hier: $1 >> Variable 1). Allerdings kann man dabei keine Interpretation durchführen, da dies nur für Klartext-Teile einer Nachrichten gedacht ist. rs232simusenden.DSB
  14. Hallo! Über die Stringfunktionen kann man leider keine führenden Nullen bei der Umwandlung hinzufügen lassen. Der RS232-Ausgang hingegen kann dies beispielsweise machen durch Nutzung des Formatstrings [az5]: z=leading zeros, 5=fünf Stellen (siehe Bild / angehängtes Beispielschaltbild / Hilfeseite zu Formatanweisungen des RS232-Ausgangs). Der sich nicht ändernde "Kommando-Teil" ist jetzt direkt im RS232-Ausgang eingegeben, gefolgt vom [az5]-Platzhalter. Eine Aktion sendet über den RS232-Ausgang eine globale Variable (Nr. 1, im Bild Wert =1080). Der Handregler gibt die Spannung vor, das Skalierungsmodul wandelt den Bereich 0-10 zu 0-20000. Das Ergebnis wird in die Variable 1 geschrieben. Vorteil dieser Lösung: Führende Nullen. Nachteil: Die Nachricht G05 i05 f9 aXXXXX an das Gerät kann nur einen variablen Teil haben (aXXXXX). Falls einer der anderen Werte auch variabel sein muss, funktioniert dieses Konzept nicht mehr. Wenn mehrere variable Teil in der zu sendenden Nachricht sind -- UND führende Nullen notwendig sind --, müsste man das Skriptmodul bemühen, um sich die zu sendende Nachricht geeignet zu programmieren. RS232_String_FührendeNullen.DSB
  15. Vermutlich müssen Sie zuerst das Gerät passend konfigurieren, sodass es eine Verbindung über Ethernet akzeptiert, und dann im DASYLab-ICOM-Modul die IP-Adresse entsprechend einstellen. https://web-material3.yokogawa.com/IMMW100-01E.pdf https://web-material3.yokogawa.com/IMMW100-71E.pdf
  16. Hallo! Das Schaltbild soll zeigen, wie man "zusammengesetzte" Kommandos an ein Gerät versendet. Im Ausgangsmodul "RS232 Aus00" sehen Sie den Formatstring \x02[a]\x03\r. Im Aktionsmodul "Aktion00" ist definiert, dass beim Auslösen der Aktion (Eingangswert hat sich geändert), über den RS232-Ausgang der globale DASYLab-String Nr. 1 gesendet wird. Das [a] im Formatstring des Ausgangsmoduls ist der Platzhalter, der durch den zu sendenden Text ersetzt wird. Die "Dekoration" rund um das [a], also das Symbol \x02, \x03 und das \r werden immer mitgesendet. Im Infofenster sehen Sie den Inhalt d4200 des Strings 1 (Name: DUTYCYCLE_STR). Wenn die Aktion also ausgelöst wird, wird der Text \x02d4200\x03\r an das Gerät geschickt. Wenn Sie rechts in DASYLabs Symbolleiste auf den grünen "Ball" mit der 2 klicken, finden Sie die Liste der globalen DASYLab-Strings. Doppelklick auf den String 1: hier sehen Sie, dass der Inhalt des Strings 1 berechnet ist. Der String besteht aus dem festen Teil d und dem Teil, welcher wiederum vom aktuellen Wert der globalen Variable DUTYCYCLE (Variable 1) abhängt. Das d ist bei "meinem" Gerät das Kommando für das Setzen des Duty Cycles auf 42% (übertragen als 4200). In dem anderen Aktionsmodul "Aktion01" sehen Sie, dass ein anderer String über dasselbe Modul geschickt wird. In diesem String (Nr. 2, Name ist FRQ_STR) wird ein anderes Kommando berechnet, das dann aus einem f und einer Zahl besteht. f steht bei "meinem" Gerät für das Kommando "Frequency", die Zahl ist die Prozentzahl (1000 = 100%). Das alles sind aber Kommandos, die nur für "mein" Gerät geeignet sind, weil "mein" Gerät etwas mit den Kommandos d und f anfangen kann. Zudem möchte "mein" Gerät, dass alle Kommandos explizit mit den Symbolen <STX> und <ETX> anfangen bzw. enden (STX = Start of Text, ETX = End of Text). Die Schreibweise in DASYLab für diese beiden Symbole ist \x02 (STX) bzw. \x03 (ETX) -- siehe ASCII-Tabelle (links oben bei hex 02 bzw. 03). Ausserdem verlangt mein Gerät, dass Nachrichten mit einem Carriage return-Symbol abgeschlossen werden: DASYLab nutzt hier auch die häufig anzutreffende Kurzschreibeweise \r für das CR-Symbol (siehe ASCII-Tabelle, hex 0D, <CR>). Das kann bei Ihrem Gerät natürlich ganz anders sein. D.h. nun, dass Sie für Ihre Anwendung den Formatstring G05 i05 f9 a15000 ersteinmal in den RS232-Ausgang schreiben. Anstelle der fest vorgegebenen 15000 schreiben Sie den Platzhalter [a]. Erstellen Sie ein Aktionsmodul, ein "Variable schreiben"-Modul, schließen Sie einen Handregler an. Der Wert des Handreglers wird in die Variable geschrieben und an das Aktionsmodul weitergegeben. Die Konfiguration des Aktionsmoduls können Sie 1:1 meinem Demoschaltbild entnehmen. Die Berechnung des Strings... müssen Sie entwas abwandeln, weil bei dem Demoschaltbild noch das "d" bzw. "f" Teil des zu versendenen Strings ist, was bei Ihrer Anwendung ja entfällt (nur die 15000 wurde ja gegen den Platzhalter [a] ersetzt, das a in Ihrem Kommando steht fest im RS232-Ausgang.) Bei weiteren Fragen...fragen!
  17. Hallo! Ich habe ein Beispielschaltbild (ab DASYLab 13) angehängt: im Beispiel wird einem Gerät via RS232 mitgeteilt wie Frequenzen und Abtastabstände (Duty cycle) zu setzen sind. Dabei werden Kommandos bestehend aus festen Bestandteilen und Variablen/Strings verschickt. Bitte einfach mal ansehen und bei Bedarf nochmal nachfragen. rs232_messedemo.DSB
  18. Hallo! Sie können probieren, mit dem ICOM-Modul Daten anzufordern. Das Modul ist vergleichbar mit dem RS232-Modul, nur dass es über eine Netzwerkverbindung (TCP/IP) mit Geräten kommunizieren kann. Es gibt auch einen "ICOM-Monitor" mit dem Sie testweise Kommandos zum Gerät senden können, und sehen können, was es antwortet. Die Kommandos des Yokogawa-MW100 können Sie der ANleitung entnehmen: https://web-material3.yokogawa.com/IMMW100-17E.pdf
  19. In diesem Bild (siehe unten) haben Sie kein Gerät angegeben, sondern nur "S1" gesendet. Vmtl. antwortet dann nur das erste Gerät. Schreiben Sie im Kanal0 "G00 S1\r" und verarbeiten Sie, wie auf dem Bild zu sehen, die erhaltenen Daten. Erstellen Sie einen fünften Kanal und schreiben Sie dort als Datenanforderung "G01 S1\r" und verarbeiten Sie in den weiteren Kanälen die Antworten des zweiten Geräts. Die Start- und Stoppkommandos müssen Sie vmtl. auch noch gerätespezifisch angeben ("G00 X\rG01 X\r"), evtl. können SIe diese auch weglassen, da Sie ja in den Kanälen zyklisch die Datenanfrage durchführen. Die Start/Stopp-Kommandos kann man bei anderen Geräten u.a. dazu verwenden, einmal einen Datenanforderung auszulösen, sodass das Gerät dann selbstständig kontinuierlich Daten sendet.
  20. Was passiert denn, wenn Sie nicht nur "S1" senden, sondern zusätzlich auch "G00" bzw. "G01" -- also bspw. "G00S1\r" oder "G00\rS1\r"? Dies können Sie auch im RS232-Monitor ausprobieren -- im oberen Bereich können Sie Befehle eintragen und absenden, ähnlich zum HyperTerminal, und im unteren Bereich die Antworten ablesen.
  21. Hallo! Das ist etwas schwierig zu beantworten, da man wissen muss, welche Befehle die Ahlborn-Geräte GENAU erwarten, um das zu liefern, was Sie gerne haben möchten. Die Befehle sind ja gerätespezifisch und keine Befehle, die von DASYLab oder allgemein dem RS-232-Protokoll abhängen. 1. Fragen Sie bitte den Ahlborn-Support danach, wie die Befehle lauten, um bei Ihrem Geräteaufbau die gewünschten Daten zu liefern. 2. Welche Geräte haben Sie? Haben Sie eine Dokumentation oder ein Handbuch? Evtl. könnte man daraus etwas ableiten; ohne eine Befehlsliste ist es, wie erwähnt, schwierig, weil der Befehlssatz vom Hersteller stammt.
  22. Hallo Geppi, User mad wollte eine normale DASYLab-Version automatisch im Runtime-Modus starten; nicht ein Schaltbild in einer Runtime-Version automatisch starten. Der zuschaltbare Runtime-Modus einer Vollversion ist nur zum Testen für die Zeit der Entwicklung gedacht; ob DASYLab als "normales" DASYLab oder als Runtime-Version startet, hängt von der im Konfigurator hinterlegten Seriennummer ab.
  23. Hallo DASYLab-Nutzer! Es steht eine aktualisierte Version von DASYLab 2016 mit Service Pack 2 zur Verfügung, welche zwei Fehler behebt: Wenn mit DASYLab 2016 SP2 (b882) erstellte, abgespeicherte Black-Boxen in ein Schaltbild eingefügt werden, kann es passieren, dass beim erneuten Laden des Schaltbilds, die Schaltbildmatrix innerhalb der Black-Box nicht korrekt wiederhergestellt wird. Das kann defekte Modulverbindungen und ein Fehlverhalten der Scrollfunktion zufolge haben. Beim Schreiben von Daten in eine Famos-Datei wurde die Dateigrößeninformation bei sehr großen Dateigrößen (> 2 GB) nicht richtig gesetzt, sodass die Datei nicht wieder eingelesen werden konnte, obwohl die Daten korrekt aufgezeichnet worden sind. Download: https://www.measx.com/de/service/download.html Hinweis: Die "alte" Version von DASYLab 2016 SP2 hat die Buildnummer 882, die neue Version hat die Buildnummer 889. Die Buildnummer ihres DASYLabs erfahren Sie innerhalb eines gestarteten DASYLabs über den Menüeintrag Hilfe >> Info über DASYLab 2016... im Reiter Version des erscheinenden Informations-Dialogs. Installation: Bitte zunächst das vorhandene DASYLab deinstallieren und dann die neue DASYLab-Version installieren.
  24. Das aktualisierte SP2 von DASYLab 2016 steht nun zur Verfügung und kann in unserem Download-Bereich heruntergeladen werden: https://www.measx.com/de/service/download.html
  25. Hallo! Es gibt demnächst eine aktualisierte "DASYLab 2016 SP2"-Version in der dieser Fehler korrigiert ist. Ich kann leider noch kein genaues Datum nennen, ich gebe aber hier Bescheid, wenn es soweit ist.
×
×
  • Create New...