Jump to content

dlabdev

Mitglieder
  • Gesamte Inhalte

    11
  • Benutzer seit

  • Letzter Besuch

Über dlabdev

  • Rang
    Member

Profile Information

  • Gender
    Male
  1. dlabdev

    DASYLab/Python Workshop: Fragen

    Fehler und Vorschläge Die während des Workshops gefundenen Fehler und Ihre Vorschläge habe ich in unsere interne Fehlerdatenbank eingetragen. Ich werde Sie jeweils kommentieren, sobald ich sie konkret bearbeite. Wenn möglich, werde ich dann jeweils einen Mini-Patch dazu anfertigen und hier im kleinen Kreis zum Test veröffentlichen. Bitte haben Sie Verständnis dafür, dass ich keine konkreten Zeiten nennen kann. Die Arbeiten daran werden sich über die nächsten Monate verteilen. Fragen Die im Verlauf des Workshops entstandenen Fragen werde ich hier nun versuchen zu beantworten: Hilfe zu pySerial: Bislang habe ich nur die Online-Hilfe dazu gefunden. Sie befindet sich hier: http://pyserial.sf.net/ .encode im Beispiel-Skript zur seriellen Schnittstelle: Die Funktion encode() ist Teil der String-Klasse in Python. Mit ihr kann der Text in verschiedene Zeichenkodierungen gewandelt werden. Mit Python 2.6 ist die Verwendung nicht notwendig, sie stört aber auch nicht. In Python 3.0 war sie vermutlich deswegen notwendig, um die Strings von Unicode zu ASCII zu wandeln. Hilfe-Erstellungs-Tools: Sie hatten mich gefragt, welche Tools wir zur Erzeugung von Hilfe-Dateien im CHM-Format wir verwenden. Es ist das Programm FAR. Der Preis liegt zur Zeit bei 53 Euro. Es handelt sich um Shareware und kann daher zuvor getestet werden (FAR Download-Seite). Alternativ können Sie auch den kostenfreien HTML-Help Workshop von Microsoft verwenden (HTML-Help Workshop Download-Seite). Da meine Erinnerungen an die Handhabung leider verblasst sind und meine Kollegen aus der Doku es nicht verwenden, kann ich leider nur auf etwaige Tutorials im Internet verweisen. Sollte ich eine Frage vergessen haben, schreiben Sie mir bitte. Sollten neue Fragen auftauchen, posten Sie bitte einfach hier in das Forum in den Python-Bereich. Mit freundlichen Grüßen Andreas Kästner
  2. dlabdev

    ASCII-Zahlen verknüpfen

    Gegeben sei ein Eingang, z.B. OPC, mit 10 Kanälen. Auf jedem Eingang empfängt DASYLab einen Zahlenwert zwischen 48 und 57. Dies entspricht in der ASCII-Zeichentabelle den Ziffern "0" bis "9". Aneinandergehängt könnten diese Ziffern z.B. die Identifikationsnummer eines Werkstückes ergeben, die in einem Layout angezeigt werden soll. Hierzu soll die Identifikationsnummer in einem globalen String gespeichert sein. Im Anhang ist ein sehr einfaches Schaltbild zu finden, in dem der Eingang mit Schiebereglern simuliert wird. Die empfangenen Werte werden dann in den globalen Variablen 1 bis 10 gespeichert. In den erweiterten Einstellungen der Strings 1 bis 10 werden jeweils aus den Zahlen Ziffern erzeugt, d.h. Strings mit der Länge 1. ZB. würde die Zahl 50 in die Ziffer "2" konvertiert werden. Ein Blick auf eine ASCII-Tabelle macht dies verständlich. In String 15 werden dann die Ziffern aneinandergehängt, so dass eine 10-stellige Zeichenkette entsteht. String 15 könnte dann also in diesem Beispiel dazu verwendet werden, im Layout angezeigt zu werden. - dlabdev - join_numbers.zip
  3. dlabdev

    Black-Box umbenennen

    Hallo, ja, kann man. Dazu muss man sich bereits in der Black-Box-Ebene befinden. Dann im Hauptmenü Bearbeiten->Black-Box-Modul->Black-Box-Eigenschaften auswählen. In dem Eigenschaften-Dialog kann dann der Modulname geändert werden. Gruß dlabdev
  4. dlabdev

    RS485 & Modbus Analog Modul???

    Hallo, dem Protokoll nach sendet das angeschlossene Gerät nach einer Datenanfrage keine Antwort mehr bis es zu einem Timeout kommt (auch wenn die Fehlermeldung etwas anderes vermuten läßt). Die Weiterleitungsverzögerung definiert die Wartezeit zwischen den Anfragen an die Hardware in Millisekunden. Diese scheint z.Zt. auf einem recht niedrigen Wert zu stehen. 50 ms reichen normalerweise aus. Versuchsweise könnte man sie auch einmal auf 100 ms setzen. Die Empfangsverzögerung definiert wie lange auf eine Antwort gewartet wird, bis ein Timeout eintritt. Möglicherweise sind also entweder Weiterleitungsverzögerung und/oder Empfangsverzögerung zu klein. Vielleicht handelt es sich aber auch um ein Hardware-Problem. Gruß, dlabdev
  5. dlabdev

    RS485 & Modbus Analog Modul???

    Ja, wenn diese über COM1: usw. zu erreichen ist. Einen RS232 auf RS485 Konverter zu verwenden ist prinzipiell korrekt. Wie lange ist einige Zeit? Ist ein Hardware-Problem ausgeschlossen? Mir ist nicht klar, was damit gemeint sein soll. Auf der Rechner-Seite benötigt man eine Schnittstelle, die über COMx: erreichbar ist. Ob das dahinter RS232 oder eine RS485-Karte ist, weiss das DASYLab-Modbus-Modul nicht. Ist es RS232, dann benötigt man noch einen Konverter auf RS485. Die Daten die an diese Schnittstelle gesendet werden, sind immer gleich. Der Punkt, auf den es hier ankommt ist, dass man an den RS485-Leitungen mehrere Geräte anschließen kann und man hierdurch ein Bus-System erhält. Der erste Wert, der z.B. bei einer Datenanfrage gesendet wird, ist die Adresse des Modbus-Gerätes, dass sich dadurch angesprochen fühlt und auch die restlichen Daten in Empfang nimmt, während weitere angeschlossene Geräte die Daten ignorieren. Zusatz-Schnittstellenkarten, wie z.B. COM-Erweiterungs-Karten, RS485-Karten, USB-auf-COM-Karten usw. machen teilweise Probleme. Es lohnt sich also, es einmal mit dem eingebauten COM-Port zu probieren. Gruß, dlabdev
  6. dlabdev

    Vorzeichen und 16-Bit-Werte

    Aufgabe: Interpretieren eines 16-Bit-Wertes ohne Vorzeichen (Wertebereich 0 bis 65535) als 16-Bit-Wert mit Vorzeichen (Wertebereich -32767 bis 32768). Lösung: Blackbox, dass die entsprechende Konvertierung vornimmt. Dies geschieht durch Bildung des 2er-Komplements. Beschreibung: Das Blackbox-Modul uint2int erwartet als Eingabe einen Wert zwischen 0 und 65535. Dies ist der gesamte mit 16 Bit darstellbare Zahlenbereich. Es prüft, ob in der binären Darstellung des Eingabewertes das Bit 15 den Wert 1 hat. Wenn ja, wird das 2er Komplement gebildet und an den Ausgang durchgereicht. Falls nicht, wird der Wert unverändert an den Ausgang des Moduls weitergegeben. Installation/Anwendung: Die Datei uint2int laden und in das Blackbox-Verzeichnis kopieren. Reiter Blackbox im DASYLab Explorer-Fenster klicken Das Blackbox-Modul uint2int in das Schaltbild ziehen und verwenden. Anmerkungen: Das Blackbox-Modul wurde mit DASYLab 10.0.1 erstellt. Das Blackbox-Modul wurde nur zu Demonstrationszwecken erstellt und kann Fehler enthalten. Es wird daher keine Garantie für die Ladbarkeit, Funktionstüchtigkeit etc. übernommen. Die Nutzung geschieht auf eigene Gefahr. uint2int.zip
  7. dlabdev

    RS232 - Messuhr Mahr 1082

    Hallo, um eine vollständige Antwort geben zu können, fehlt leider noch das Datenformat, in dem die Messuhr die Daten liefert. Sollte es ein Wert im ASCII-Format sein, der von einem <CR> abgeschlossen wird, sollte die Voreinstellung funktionieren. Ggf. einfach mal ausprobieren. Nun zu den anderen Einstellungen: Schnittstellenparameter eintragen (Button Schnittstelle öffnet entsprechenden Einstellungs-Dialog) In den Options-Dialog gehen (Button Optionen öffnet den entsprechenden Einstellungs-Dialog) Dort in der Fragebox "Datenanforderung notwendig" den Radiobutton "Ja" auswählen. Ggf. den Abtastabstand in dem darunterliegenden Feld anpassen. Den Optionen-Dialog mit OK verlassen. Nun im Feld "Messdaten-Anforderung" ein \x20 eintragen. Dies ist die Notation für ein Leerzeichen (Hex 20 entspricht Dez. 32) Den Modul-Dialog mit OK verlassen und testen, ob es funktioniert. Alternativ im Dialog bleiben und RS232-Monitor anklicken. In dem nun geöffneten Dialog auf "Kan. 0" klicken. Dies sendet die in Kanal 0 eingestellte Messdatenanforderung. Falls alles funktioniert sollte im unteren Bereich die Antwort des Gerätes zu sehen sein. Wie gesagt, es kann sein, dass das Messdatenformat noch nicht passt. Ggf. nochmal hier ins Forum posten. Weiterhin hab ich das jetzt aus meinen Erinnerungen niedergeschrieben, ich hoffe also, dass ich nichts vergessen hab... Viel Erfolg - dlabdev -
  8. Es gibt hier sicherlich mehrere Möglichkeiten. Eine davon, mit einem Positionsschalter und einem Skalierungsmodul, ist im Anhang zu finden. Bitte die Datei Beispiel.dpf in das Verzeichnis "devices" kopieren. Die anderen Dateien enthalten das Schaltbild, einmal im DSB- und einmal im ASCII-Format, falls das DSB-Format Probleme bereiten sollte (DASYLab 10.0): Funktionsweise: Die Datei Beispiel.DPF enthält die eigentliche Tabelle, die vom Skalierungsmodul ausgewertet wird, während der Positionsschalter zum Indizieren der Tabelle verwendet wird. Viel Erfolg dlabdev TableExample.zip
  9. dlabdev

    Fehlermeldung

    Hallo, die erste Fehlermeldung besagt, dass mindestens eines der nachfolgenden Module die ankommenden Daten nicht hinreichend schnell verarbeiten kann. Vielleicht ist die Datenmenge einfach zu hoch, da es bei 3 Eingängen ja noch funktioniert hat. Evtl. ist aber auch nur ein Engpass in den einem oder mehreren der verwendeten Module. Letzteres kann man z.B. herausfinden, in dem man im Menü die Option Ansicht->Animation->Block-Status aktiviert. Der nun an den Modul-Ausgängen sichtbare Balken bewegt sich jedesmal, wenn ein Datenblock ausgegeben wird. Bewegt er sich nicht oder langsamer als die der anderen Module könnte das entsprechende Modul der Verursacher des Datenstaus sein. Die zweite Meldung ist nur ein Folgefehler. MfG dlabdev
×