Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Wir wollen Sensoren (Durchflussmesser) mit DASYLAB verbinden. Als Kommunikationsprotokoll verwenden die Sensoren HART. Wir sehen zur Zeit keine Moeglichkeit diese Geraete mit Dasylab zu verbinden. Gibt es einen speziellen Treiber fuer HART Protokolle vergleichbar mit dem Modbus treiber modul?
  3. Last week
  4. Earlier
  5. Danke dafür. Ja , das könnte so gehen. Gruss
  6. 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.
  7. 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
  8. Hallo, kann beim Modul Diagram keine Functionbar für Gitternetzlinien, Strichstärken etc. finden. ??? Gruss
  9. Hallo, folgende Aufabe: Am Anfang der Messung wird ein Referenzdatensatz erstellt ( 2000 Werte) , auf den die dann laufenden Messungen permanent zugreifen. Dieser Referenzdatensatz muss aber von Zeit zu Zeit erneuert werden. Ich bräuchte also ein Datenfeld , in das ich die Daten ab und zu schreiben und auch wieder wiederholt auslesen kann; also sowas wie "Read und Write globale Variable " aber eben für ein Datenfeld. Wie mache ich das am besten? Schonmal danke im vorraus
  10. danke für die Antwort. Ich kaempf mich mal durch.
  11. 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
  12. Guten Morgen, wie kann ich die RS232 so formatieren , daß ein String z.B. " 0xa1 0xc3" als Hex Zeichen gesendet wird und empfangene Hex Zeichen auch als Hex in einem String gespeichert werden?
  13. Hallo, SUPER! Das funktioniert perfekt!!! Vielen Dank für die großartige Hilfe hier im Forum! LG, Schub
  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. Hallo, Ich habe hin und her probiert, aber leider bekomme ich es nicht hin. Kann man ev. eine Art "wenn"-Funktion erstellen, dass der Ausgang einen anderen String sendet, wenn der Handregler Werte unter 10000 generiert. Also so: Werte über 10000 - sende String Nr. 1(wo dann a mit dem Wert verknüpft ist), Werte unter 10000 - sende String Nr.2( wo a0 mit dem Wert verknüpft ist). Oder gibt es vielleicht ein andere Lösung? Vielen Dank, Schub1609
  16. 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
  17. Hallo, ich wollte das jetzt mal probieren. Ich gebe im Icom-Modul die IP des Yokogawa-Gerätes ein, leider kann ich aber den ICOM-Monitor nicht öffen? VG, Schub
  18. Anhang zum letzten Beitrag vergessen
  19. Hallo, So, ich habe es nun doch geschafft, indem ich den Befehl G05 i05 f9 axxxxx über die Variablen/String-Verknüpfung senden konnte. Funktioniert sehr gut, allerdings gibt es noch ein kleines Problem. Das Gerät braucht zwingend 5 Stellen nach dem "a" für 0-10 V wobei 20000 für 10V steht(daher auch die Umrechnung von 1-10 auf 0-20000). Wenn jedoch z.B. 2,5V ausgegeben werden sollen, sendet der String a5000, es müssten in diesem Fall aber a05000 gesendet werden. Also alle Werte kleiner 5 Stellen müßten am Anfang (nach dem "a") mit Nullen aufgefüllt werden. Weiß jemand wie man das hinbekommt? VG, Schub
  20. Bei Verwendung des Vector CAN Treibers in DASYLab mit neueren CAN Netzwerk Interfaces von Vector (z.B. VN 1610) kann es dazu kommen, das bestimmte Telegramme mit Extended IDs (29 Bit IDs) von DASYLab nicht korrekt erkannt werden. DASYLab scheint dann nichts oder nicht alles zu empfangen, obwohl die entsprechenden Telegramme korrekt ankommen. Das Problem ist hierbei, das diese neueren CAN Netzwerk Interfaces zusätzliche Informationen bereitstellen. Der Dasylab Treiber erwartet diese jedoch nicht und interpretiert diese Informationen als Fehler. Das entsprechende Telegramm wird dann nicht ausgewertet. Für Dasylab 2016 und Dasylab 13 steht nun ein Update des CAN Treibers zur Verfügung, der dieses Problem löst. Sollten Sie davon betroffen sein, melden Sie sich bitte beim Dasylab Support der measX oder hier in Forum. Wir werden Ihnen dann umgehend den passenden CAN Treiber für Ihre DASYLab Version zur Verfügung stellen.
  21. 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!
  22. Hallo, Ich habe es mir gerade angesehen, werde aber nicht schlau daraus. Kannst Du ev. noch bißchen was dazu erklären? Was ist x02 und x03? Wie müßte ich das bei mir machen? LG, Schub1609
  23. Hallo, Ok, mach ich. Vielen Dank!!!
  24. 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
  25. Hallo zusammen, Ich habe hier ein weiteres kniffliges Anliegen. Und zwar möchte ich über einen RS232-Ausgang ein Ausgabegerät ansprechen, dass es mir auf einem bestimmten Kanal ein Stromsignal zwischen 0-20mA ausgibt. Das kann ich entweder am Gerät einstellen oder über einen Befehl, z.B. G05 i05 f9 a15000, wobei G05 die Geräteadresse und i05 der Port 5 am Gerät ist. a15000 steht für 15,000mA. Als einzelnes Kommando funktioniert das, aber ich möchte eigentlich einen Handregler oder Sollwertgenerator erstellen und den eingestellten Wert über den RS232-Ausgang an das Gerät senden. Möglichst so, dass wenn am Handregler oder Sollwertgenerator ein neuer Wert vorgegeben wird dieser zeitgleich auch am Gerät ausgegeben wird. Vielen Dank! mfG, Schub1609
  26. Super! Vielen Dank! Ich probiere das mal aus! mfG, Schub1609
  27. 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
  1. Load more activity
×
×
  • Create New...