Jump to content

HolWo

Administratoren
  • Posts

    346
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by HolWo

  1. 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.
  2. Hallo! Schauen Sie einmal in die Optionen des Schaltermoduls. Dort bitte die Zeitbasis einstellen, die das MCC-Modul "Dev1-Ai0" verwendet. Beide Datenquellen, das MCC-Modul und der Schalter, werden dann gleichzeitig Daten ausgeben mit derselben Abtastrate und Blockgröße. Im Schalter ist vermutlich die Zeitbasis "DASYLab" eingestellt, welche standardmäßig auf 10 Hz Blockgröße 1 eingestellt ist. D.h. Datenquellen, welche diese Zeitbasis nutzen, geben jede 1/10 Sekunde einen Datenblock mit einem Einzelwert aus (anders: 10 Werte pro Sekunde im Abstand von 0,1s). Das MCC-Modul wird sicherlich eine andere Abtastrate und Blockgröße verwenden, sodass an der Haltefunktion Datenströme angelangen, die unterschiedliche Abtastraten und Blockgrößen haben. Dies unterstützen viele Module nicht und melden dann, dass die Zeitinformation oder die Blockgröße unterschiedlich ist. Die Zeitinformation (von zu verarbeitenden Datenblöcken) kann unterschiedlich sein, wenn die Abtastraten unterschieldlich sind, aber auch, wenn man einen Datenstrom durch ein Relais führt, welches die Daten zunächst blockiert und dann wieder frei gibt. Solche "unterbrochenen" Datenströme kann man i.A. nicht zusammen mit nicht unterbrochenen Datenströmen verrechnen. Anstatt in den Schalteroptionen eine Zeitbasis einzustellen, können Sie auch die Option "Eingang" aktivieren. Dann erhält der Schalter einen Eingang und leitet die Eigenschaften seines ausgegebenen Datenstroms vom ankommenden Datenstrom ab und gibt zudem immer nur dann Daten aus, wenn am Eingang neue Daten angelangen. Die "eigentlichen" Daten, die am Eingang des Schalters ankommen, werden ignoriert -- der Eingang dient quasi nur zur "Taktung".
  3. haltefunktion.DSB Hallo! Probieren Sie einmal die Haltfunktion "Wert halten bei Low-Pegel am Steuereingang" aus, siehe Bild. Dann gibt das Haltfunktionsmodul kontinuierlich Daten aus. Bei 5.0V am jeweiligen Steuereingang (Schalter EIN, High-Pegel) wird das angeschlossene Signal quasi durchgeschliffen. Bei 0.0V (Schalter AUS, Low-Pegel) hält das Haltmodul den Wert fest und gibt sozusagen "den letzten bekannten Wert" laufend aus. Anbei auch die Schaltbilddatei (DASYLab 2016 SP2)
  4. Wenn Sie einen Schalter verwenden und diesen als "Pause/Weiter"-Taste einsetzen, dann befindet sich dieses Modul (der Schalter) quasi in einem Sondermodus, der auch ohne Datenfluss auskommt -- der Pause/Weiter-Schalter (und der Start/Stopp-Schalter) bedienen dann sozusagen die Buttons in der Symbolleiste (Play, Pause/Weiter, Stopp). Im Allgemeinen sollten Sie Schaltbilder so erstellen, dass diese ohne Pause-Funktion funktionieren und quasi ununterbrochen "durchlaufen", also einen Datenfluss von Datenquellmodulen zu Datensenken gewährleisten. Wenn Sie "nur" die Anzeige im Linienschreiber einfrieren möchten, dann friert eine Pause auch alles andere im Schaltbild ein, was man u.U. nicht haben möchte -- eine Datenerfassung soll ja weiter Daten erfassen, während temporär ein Signalausschnitt im Linienschreiber begutachtet wird. Wie oben erwähnt: mit einem Relais können Sie "lokal" den Datenstrom unterbrechen, sodass keine neuen Daten mehr an das Linienschreiber-Modul geliefert werden -- die Anzeige "steht", während "rundherum" die Schaltbildabarbeitung nicht-pausiert weiterläuft (Datenerfassung, Berechungen, Ablage in Datendatei, ...).
  5. Hallo! Nein. Grob gesagt arbeiten die Module in DASYLab nur dann, wenn diese an Eingängen Daten erhalten. Während einer Pause generieren Datenquellen keine Daten an ihren Ausgängen, sodass ein angeschlossenes Modul nicht prüfen kann, ob eine Pause besteht oder nicht. Pause ist auch nur sinnvoll, wenn man bspw. aufgezeichnete Daten aus einer Datei liest und "mal eben" anhalten möchte, um im z.B. Linienschreiber angezeigte Signalverläufe zu betrachten. Bei einer Erfassung von Daten mit einer Messhardware, wird sich die Ausführung des Schaltbilds zwar "anhalten" lassen, aber Messhardware wird es i.A. nicht unterstützen. Was passiert mit den Daten, die während einer Pause angefallen sind? Was passiert, wenn die Pause zu lange dauert und die Datenpuffer der Hardware vollgelaufen sind? Wenn Sie bspw. Daten für eine bestimmte Dauer nicht in eine Datei speichern möchten, dann können Sie dazu ein Relais-Modul verwenden, um den am Eingang ankommenden Datenstrom am Ausgang nicht auszugeben.
  6. Hallo! Das funktioniert mit dem Layout-Element "Tabelle" in Kombination mit in Zellen verknüpften globalen Variablen oder Strings. Legen Sie eine Tabelle auf einer Layoutseite an, führen Sie einen Doppelklick auf die Zelle aus, die als Eingabefeld dienen soll. In den Eigenschaften der Zelle können Sie nun die "Editierbarkeit" der Zelle bestimmen: 'nicht', 'Text' und 'Variable' -- wählen Sie hier 'Variable'. Im Feld für den Inhalt der Zelle einen Rechtklick ausführen und über das Kontextmenü eine globale Variable oder einen globalen String verknüpfen -- im Textfeld steht dann bspw. ${VAR_1} oder ${MAXIMUM} (falls z.B. String 2 diesen Namen erhalten hat). Die Zelle zeigt nun immer den aktuellen Inhalt der verknüpften Variable/des Strings an, selbst wenn der Variablen/Stringinhalt sich durch z.B. eine Aktion oder das Modul "Variable schreiben" verändert hat. Während der laufenden Messung kann nun ein Doppelklick auf die Zelle ausgeführt und der Wert/Text geändert werden -- dies ändert dann den Wert der Variablen bzw. des Strings. Die Editierbarkeitsoption 'Text' dient "nur" dazu, dass bspw. Kommentare/Notizen in die Zelle geschrieben werden können. Der eingegebe Inhalt ist aber nur "in der Zelle" gespeichert und nicht in einer Variablen oder einem String. Die kann nützlich sein, wenn bspw. die Layoutseite gedruckt wird und der Kommentar dort auftauchen soll.
  7. Hallo! Aktion "String schreiben" überträgt den Inhalt des angegebenen Strings in die DASYLab.INI-Datei, z.B. hier zu finden: "C:\Users\Public\Documents\DASYLab\15.1.0\ger" (für ein deutschsprachiges DASYLab 15/2020.1). Mit der Aktion "String lesen" überträgt man entsprechend den Wert für den String aus der Datei in den globalen String zurück. Auf diese Weise überträgt man bspw. Variablen/String-Werte von einem Schaltbild in ein anderes, wenn man während der Messung die Aktion "Schaltbild laden und starten" verwendet. Das Konzept eignet sich, um in einem "Konfigurations-Schaltbild" Parameter vom Benutzer des Schaltbilds festlegen zu lassen, die man dann im eigentlichen Mess-Schaltbild verwendet. Oder in unterschiedlichen Mess-Schaltbildern -- wenn man im Konfig.-Schaltbild auch eine Wahl anbietet, welches Mess-Schaltbild geladen werden soll. Mit der Aktion "String schreiben (Datei)" kann auch eine eigene Datei (z.B. "config_xyz.ini") angegeben werden, sodass der Variablen-/Stringwert-Transfer nicht über die DASYLab.INI laufen muss -- es können ja unterschieldliche Konfigurationsschaltbilder auf dem Rechner verwendet werden, die sich sonst gegenseitig die Werte in der "zentralen" DASYLab.INI überschreiben würden...
  8. Hallo! Die "Reihenfolge im Startdialog" können Sie über das Menü ändern (s. auch Bild): Optionen >> Globale Variablen und Strings >> "Reihenfolge im Startdialog..."
  9. Hallo! Nein, dies lässt sich nicht abfragen. Wenn Sie aber vor(!) dem Start der Messung Variablen/Strings abfragen möchten, dann setzen Sie bitte für die jeweiligen Variablen die Option "Im Startdialog Wert eingeben" (siehe Bild unten) Wenn Sie nun die Messung starten ("Play" betätigen), dann erscheint ein Dialog, der den Benutzer zur Eingabe der Variablen/Strings auffordert. Der Startdialog kann mit "Starten" und "Abbrechen" verlassen werden: bei "Starten" startet die Messung, bei Abbrechen nicht. Mit der Aktion zum Eingeben von Variablen/Strings können Sie während der bereits laufenden Schaltbildausführung Variablen-/Stringinhalte eingeben lassen. Kontrollieren, ob der Benutzer den Dialog mit "Ok/Abbrechen" verlässt, ist aber nicht möglich. Mit dem Aktions-Ereignis "Globale Variable/String geändert" können Sie sich aber benachrichtigen lassen, ob sich ein Inhalt verändert hat.
  10. Hallo! Das Betriebssystem hat auf die Modbus-Kommunikation (die Funktionen) keinen Einfluss.
  11. Hallo, argh, Sie haben den Beitrag editiert... Für das vorige Gerät BK8100 gibt es ein PDF mit einem RSR232-Beispiel: https://download.beckhoff.com/download/Document/io/bus-terminals/bk8100de.pdf Allerdings muss man hier eine Prüfsumme ausrechnen und anhängen. Ich konnte nicht ausmachen, welche verwendet wird. DASYLab bietet einige automatisch berechnete an; wenn davon keine mit der notwendigen Prüfsumme für das Gerät übereinstimmt, müsste man diese manuell berechnen und einen festen Anfrage-String senden. Die Kontrolle der vom Gerät gelieferten Antwort inkl. Prüfsumme kann das Standard-RS232-Modul leider nicht leisten. Entweder ignoriert man das Verhandensein der Prüfsumme der Antwort oder man könnte das Skriptmodul verwenden, um die Kommunikation (vollständig!) selber zu implementieren. Das BK9050 sollte sich laut Handbuch (https://download.beckhoff.com/download/document/io/bus-terminals/bk9000_bk9050_bk9100de.pdf) via Modbus auch von DASYLab ansprechen lassen. Beachten Sie aber bitte, dass DASYLab nicht alle Modubus-Funktionen unterstützt, sondern sich auf die Modbus-Funktionen 1, 3, 4, 15 und 16 beschränkt: 0x01 Read Multiple Coils Digital-Eingang 0x03 Read Holding Register 40000 Analog-Eingang 0x04 Read Input Register 30000 Analog-Eingang 0x10 Write Multiple Register Analog-Ausgang 0x0F Write Multiple Coils Digital-Ausgang
  12. Hallo! Die Anzeigemodule haben eine feste Grenze der Anzahl der gleichzeitig darstellbaren Daten. Die Aufzeichnung in eine Datei kann natürlich (nahezu) beliebig schnell passieren, aber für die Darstellung muss man reduzieren, wenn (vergleichsweise) hohe Abtastraten und lange Historien der Anzeige zusammentreffen. Für die reine Darstellung über Tage ist es möglicherweise ausreichend, wenn man bspw. statt 100 Hz nur einen reduzierten Datenstrom mit 1 Hz verwendet -- für den "groben" Überblick über mehrere Tage. In der Datendatei steht ja die volle Auflösung zur Verfügung. Hier gibt es mehrere Möglichkeiten, den Datenstrom vor der Anzeige im Linenschreiber zu reduzieren. Bspw. mit dem Separieren-Modul: bei einem Datenstrom mit 1000Hz/BG100 könnte man 99 Werte ignorieren und einen passieren lassen, sodass der Datenstrom nur noch ein Zehntel der Werte umfasst. Oder mit einem Kombitrigger (Steigende Flanke/Direkt) und einem Relais (mit Steuereingang): am Steuereingang schließt man ein Generatormodul an, welches alle paar Sekunden, Minuten oder Stunden einen Impuls erzeugt. Das Relais wird zum Zeitpunkt des Impulses nur einen Wert jedes Kanals passieren lassen. Auf diese Weise könnte man für kürzere Historien eine höhere Auflösung der Daten ermöglichen, in dem man weniger stark reduziert, und gleichzeitig über längere Zeiträume stärker reduzierte Datenströme darstellen.
  13. Hallo! Sie können mithilfe eines Analog- bzw. Digitalausgangsmoduls ein 5.0V-Signal auf einem Ausgang Ihrer DataTranslation-Messhardware ausgeben. Als Datenquelle im Schaltbild können Sie bspw. ein Generatormodul (Konstante, 5.0V) oder ein Schaltermodul verwenden (AUS: 0.0V, EIN: 5.0V).
  14. Demnächst gibt es wieder ein vollständiges und einheitlich gefärbtes Gitter im Layout.
  15. Hallo! Können Sie bitte das betreffende Schaltbild zur Verfügung stellen?
  16. Fixed errors: Worksheet zoom Correction of moving documentation frames when the schematic is zoomed. Multiplex module A crash could occur when stopping the measurement if a multiplex module is used in the schematic. DASYLab Online Help The help pages of the MQTT driver have been updated. Behobene Fehler: Schaltbildzoom Korrektur des Verschiebens von Dokumentationsrahmen, wenn das Schaltbild gezoomt ist. Modul Multiplexen Beim Stopp der Messung konnte es zu einem Absturz kommen, wenn ein Multiplexen-Modul im Schaltbild verwendet wird. DASYLab Online-Hilfe Die Hilfeseiten des MQTT-Treibers wurden aktualisiert. Downloads: (EN) https://www.measx.com/de/service/download.html (DE) https://www.measx.com/en/service/download.html
  17. Hallo! Wenn der Zeitstempel sich ändert, z.B. der angelieferte Wert am Eingang ändert sich, dann muss man die "Neuberechnung" in der ProcessData-Funktion durchführen, siehe angehängtes Schaltbild/Skript. Bild: In der globalen Variable steht beispielhaft ein Zeitstempel. Das Modul "Variable lesen" gibt den Wert als Datenblock an seinem Ausgang aus. Das Skriptmodul empfängt den Datenblock (siehe ProcssData, ganz unten im Skript) und holt sich den letzten Wert des Datenblocks (falls Blockgröße > 1). Der Wert ist der Zeitstempel, welcher dann über die Bibliotheksfunktion in Zeit/Datum-Information gewandelt wird. Ist das erfolgreich gewesen, werden die sich ergebenden Texte in globale String geschrieben. Änderungen am Skript machen: Die Py-Datei kann mit einem beliebigen Texteditor angepasst werden. Im Skriptmodul muss dann über die "Laden"-Taste die Py-Datei in das Modul geladen werden. Die Py-Datei muss für die Schaltbildausführung nicht neben der Schaltbilddatei (*.DSB) liegen -- die Py-Datei braucht man nur zum Verändern des Verhaltens des Skriptmoduls: Skriptmodul-Skript mit "Speichern"-Taste als Datei abspeichern, in der Datei Änderungen durchführen, Py-Datei wieder mit "Laden"-Taste ins Modul zurückladen. date_time.DSB timestamp.py
  18. Hallo! Wie Hag erwähnte, sollte ein Formatstring a\n eigentlich ausreichen (siehe Bild). a - alle Zeichen bis zum Terminator-Symbol versuchen als Zahl zu interpretieren \n - Linefeed-Symbol als Terminator nutzen Im Digitalinstrument nur noch im Kanal die Anzahl der Nachkommastellen erhöhen -- in den Optionen des Moduls die Gesamtanzahl der anzuzeigenden Stellen der Zahl ebenfalls. Im Bild sind es 15 Stellen, davon im Kanal 0 Nachkommastellen = 6. 6a\n o.ä. funktioniert nicht, wenn die Anzahl der Zeichen größer als (hier) 6 ist: zuerst werden sechs Zeichen als Zahl aus dem Ausgang ausgegeben, dann wird der "Rest" der empfangenen Zahl bis zum Terminator-Symbol ausgegeben -- auf demselben Ausgang. Daher werden pro Nachricht mehrere Zahlen ausgegeben, sodass die Digitalanzeige nichts plausibles anzeigen kann: zuerst werden die ersten 6 Zeichen als Zahl angezeigt, aber quasi sofort vom "hinteren" Teil der Nachricht überschrieben, d.h. den eigentlich noch sinnvollen Anfangsteil der Nachricht, sieht man nur für den Bruchteil einer Sekunde und der hintere Teil der Nachricht bleibt in der Digitalanzeige stehen, bis die nächste Nachricht vom Gerät eintrifft. (An der seriellen Schnittstelle habe ich die Pins 2 und 3 kurzgeschlossen, sodass ich mir über dieselbe Schnittstelle selber Nachrichten zusenden kann -- sehr praktisch beim Tüfteln... )
  19. Hallo! Mit dem Skriptmodul kann man den Zeitstempel in eine besser lesbare Datums- und Zeitinformation umwandeln, siehe Bild. Für den Gebrauch in DASYLab müsste der Zeitstempel dann über einen Datenkanal an einen Eingang des Skriptmodul geliefert werden oder in einer globalen Variable abgelegt sein. Mit value = Ly.GetVar(5) liest man z.B. den Inhalt der globalen Variable 5 in die Python-Variable 'value' (Ly.GetStr(x) liest den Inhalt eines globalen Strings). Nach der Umwandlung müsste man 'date' und 'time' wieder in globale Strings (Texte) übertragen, um sie an anderer Stelle in DASYLab weiterverenden zu können. Mit Ly.SetVar(num, value) bzw. Ly.SetStr(num, text) kann eine globaler Variable/String mit einem Wert/Text beschrieben werden. date_time.DSB
  20. Welche Bedeutung hat diese Zahl? (vergangene ms seit 1970 o.ä.) Woher stammt diese?
  21. Hallo, danke, ich habe schon etwas getestet und es tritt auch bereits mit DASYLab 12 und 13 auf -- das deutet auf einen tief vergrabenen Fehler hin. Ich habe es entsprechend weitergeleitet.
  22. Hallo! Das Schaltbild ist leider interessanter, auch wenn man es nicht ausführen kann. Ist es mit DASYLab 2020 ursprünglich erstellt worden oder ist es ein "altes" Schaltbild, das mit einem anderen DASYLab erstellt und mit der "2020" geladen wurde?
  23. Hallo! Da mir nicht die passende Hardware zur Verfügung steht, kann ich nur die obere Modulkette (vier Schalter) analysieren. Mit dem angehängten Schaltbild kann ich die Signale im ersten Diagramm nicht reproduzieren, da dort das obere Signal (rot) nicht kurzzeitig von 0.0V nach 5.0V steigt, sondern sich umgekehrt verhält (5V mit Peak nach 0V). Die Signale drei (lila) und vier (grün) steigen bei Ausführung auch durchbetätigen die Schalter nicht auf 5.0V, sondern bleiben auf 0.0V. Beim Betätigen von Schaltern hat eine Änderung des Ausgabewerts immer nur bis zum nächsten ausgegebenen Datenblock (oder ab dem nächsten) eine Auswirkung. Die MCC-Zeitbasis in den Schaltern nutzt eine Blockgröße von 10 und eine Abtastrate von 100Hz, d.h. es gibt eine kurze Latenz von bis zu 0,1s. bei der Wertänderung. Beim Sollwertgenerator kann das auch dazu führen, dass der ausgegeben Wert z.B. bei einer Dauer für 3 Sekunden, erst beim nächsten ausgegebenen Datenblock einen geänderten Ausgabewert enthält. Probieren Sie bitte, wenn eine Dauer von 3.0s beabsichtigt ist, diese um die Abtastraten/Blockgrößen-Ratio zu verringern, hier wäre dies 0,1s (BG 10 / 100Hz --> 0,1[s]), sodass man sich die Dauer 2,9s anstatt 3,0s ergibt. Bei Aktionen passiert vergleichbares, da Module, die Ziel einer Aktion sind, idR nicht sofort reagieren können, sondern erst dann, wenn bei der Abarbeitung aller Module im Schaltbild, sie wieder an der Reihe sind. Das kann dann auch erst beim "nächsten Block" eine Auswirkung haben. Bei der Messhardware von MCC handelt es sich vmtl. um zwei einzelne USB-Module. Hier kenne ich die Hardware leider zu wenig, aber diese sind idR nicht miteinander synchronisiert, sodass es beim Zusammenspiel beider Geräte auch zu Latenzen kommen kann bzw. wird. Hierzu möchte ich Sie bitten, sich direkt an Measurement Computing zu wenden, da MCC das Verhalten der Hardware und des MCC-DASYLab-Treibers (wird von MCC gepflegt) in diesem Fall besser beurteilen kann.
  24. Können Sie bitte das Schaltbild anhängen in der Konfiguration bei der dieser Effekt auftritt?
×
×
  • Create New...