mikrocontroller.net

Forum: PC-Programmierung RS232 Spectrophotometer (Gretag Spectrolino) ansprechen


Autor: Serge Berlin (sergeberlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte eine "quick and dirty" Lösung programmieren, mir der man die 
Messdaten ansehen und weiterverarbeiten kann. Es gibt schon so ein 
Programm (KeyWizard von GretagMacBeth - der Hersteller des Gerätes) - 
macht genau das selbe. Speichert oder zeigt die Daten sofort an. Ich 
will aber meine eigene, eher experimentelle Version programmieren.

Ich versuche gerade über serielle Schnittstelle mit dem 
Spektralmessgerät zu kommunizieren.
Ich benutzte hierfür Flash+Zinc (Compiler für exe) mit ComPort API > 
[http://www.multidmedia.com/support/livedocs/index....]

Serial Interface "HOW TO" für Spectrolino  > 
[http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_s...]
Anhand dieser Dokumentation habe ich versucht das Gerät zu 
initialisieren usw. - es klappt nicht so richtig. Das Gerät sollte 
eigentlich auf die Befehle reagieren (reply) aber da tut sich nichts und 
beim manuellen Auslösen der Messtaste am Gerät liefert der sehr knappe 
Daten. Hm... Die ComPort API ist auch so ziemlich abgespeckt - da fehlen 
einige Befehle - ich habe die Trace-Protokolle vom Herstelleprogramm und 
meinem vergliechen  - wichtige fehlende SET Befehle

IOCTL_SERIAL_SET_TIMEOUTS
IOCTL_SERIAL_SET_WAIT_MASK
IOCTL_SERIAL_SET_HANDFLOW

Es ist möglich mit Zinc DLL API eine dll anzusprechen und steuern > 
[http://www.multidmedia.com/support/livedocs/index....]

Was würdet ihr mir empfehlen wie es fortzufahren ist: eine Möglichkeit 
wäre z.B. mit Delphi und einer COM Komponente eine DLL zu kompilieren 
oder gibt es schon kompilierte (mit Dokumentation) die ich einfach 
nutzen kann? Falls nicht - welche Komponente würdet ihr mir empfehlen 
damit es übersichtlich bleibt und auch funktioniert.

Welche Methoden wären vielleicht sogar besser?

Ich danke euch

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Problem scheint also viel weniger die Kommunikation mit dem Gerät 
zu sein, sondern eher, wie man aus Flash heraus die serielle 
Schnittstelle anspricht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Serge Berlin wrote:

> Ich versuche gerade über serielle Schnittstelle mit dem
> Spektralmessgerät zu kommunizieren.
> Ich benutzte hierfür Flash+Zinc (Compiler für exe) mit ComPort API >
> 
[http://www.multidmedia.com/support/livedocs/index....]
>
> Serial Interface "HOW TO" für Spectrolino  >
> [http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_s...]
> Anhand dieser Dokumentation habe ich versucht das Gerät zu
> initialisieren usw. - es klappt nicht so richtig.

Ich geh normalerweise so vor:
Bevor ich auch nur 1 Zeile Code schreibe, hänge ich das Gerät an die 
Serielle Schnittstelle, starte Hyperterm oder was ich sonst als 
Terminalprogramm vorrätig habe und versuch erst mal das Gerät 'mit der 
Hand' über die serielle anzusprechen.
Das gibt normalerweise einen guten Überblick darüber, wie sich das Gerät 
verhält, klärt Unklarheiten in der Doku, zeigt auf wo die Doku 
fehlerhaft ist etc. Auch kann man so leicht und schnell ausprobieren, 
wie sich Konfigurationsänderungen auswirken, wie das Gerät antwortet, 
was im Fehlerfall passiert, etc.

Nach einer Zeit des Spielens kristallisieren sich dann die Sequenzen 
heraus, die ich zu benutzen gedenke. Und erst dann wird Editor + 
Compiler angeworfen.

Autor: Serge Berlin (sergeberlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...
so oder so ähnlich hatte ich zuerst auch gemacht. Ich hatte über 
Terminal (simples Delphi Beispiel) versucht erst ein Mal das Gerät zu 
initialisieren, Terminal, was ich mit Flash+Zinc (DLL API) selbst 
programmiert habe, wo man Codes bzw. Code-Sequenzen ausführt und auch im 
Serial Interface Tracer(Serial Port Monitor von eltima) - das Gerät 
antwortet nicht.

Decimal Initialisierungssequenz:

; 0#13#10
; 43#13#10
; 90 1 4 5#13#10

@kbuchegg : ich versuch über Hyperterm und berichte später

Danke für den Einsatz :-)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest die Kommunikation zwischen der bestehenden Software und dem 
Gerät abhören, dann findest Du am leichtesten heraus, wie die Feinheiten 
des Protokolles aufgebaut sind.

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das #13#10 sieht verdammt nach einem \r\n aus - bist du dir sicher 
dass du die Daten korrekt sendest?
Baudrate richtig eingestellt? Verwende einmal hterm, damit solltest du 
schonmal weiterkommen.

Autor: Serge Berlin (sergeberlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich danke euch für die Hilfe - habe die Ursache gefunden - es lag 
alleine an der Baudrate, zwar unterstützt das Gerät von 110-57600, aber 
funktionieren tut es nur mit 19200.

Seltsam, aber wahr! Auf jeden Fall funktioniert jetzt alles.

Gruss

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich gar nicht so seltsam. Oftmals hast du einen Befehl im Gerät 
mit dem du die Baudrate umstellen kannst (trotzdem ist sie immer auf 
eine eingestellt).
Ausnahme war nur mal ein HP Switch, der konnte mit ein paar 
Tastendrücken (Enter) die Baudrate automatisch einstellen :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.