RS232 Spectrophotometer (Gretag Spectrolino) ansprechen

#1234021
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.php?url=class.php?action=class¬class=COMPort]

Serial Interface "HOW TO" für Spectrolino  > 
[http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_serial_5-en.pdf]
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.php?url=class.php?action=class¬class=DLL]

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
#1234676
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.php?url=class.php?action=class¬class=COMPort]
>
> Serial Interface "HOW TO" für Spectrolino  >
> [http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_serial_5-en.pdf]
> 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.
#1234719
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 :-)
#1237411
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren