Ich habe nun einige einige Zeit mit der genialen Software Profilab gearbeitet und habe noch einen Vorschlag für zukünftige Versionen (den ich in einem anderen Thread auch schon beiläufig geäußert hatte): Besonders wünsche ich mir die Möglichkeit SCPI-Befehle (also beliebige Textketten) über LAN senden und die Feedback-Texte entsprechend empfangen zu können. Damit würde die Software automatisch mit einer ganzen Reihe professioneller Geräte funktionieren.
Der Workaround, die COM-Schnittstelle über einen virtuellen Treiber auf das LAN zu mappen, funktioniert leider nur teilweise.
Viele Grüße
Tom
Vorschlag: SCPI-Unterstützung über LAN
-
- Beiträge: 7
- Registriert: Freitag 27. Mai 2016, 10:31
-
- Beiträge: 102
- Registriert: Mittwoch 15. April 2009, 10:58
Re: Vorschlag: SCPI-Unterstützung über LAN
Könntest du dazu einige Einzelheiten bzw. auftretende Probleme hier beschreiben.HotTrigger hat geschrieben:Der Workaround, die COM-Schnittstelle über einen virtuellen Treiber auf das LAN zu mappen, funktioniert leider nur teilweise.
Ich würde ggf. die Problemlösungen gerne in meinem Profilab-Programm berücksichtigen,
welches ausgiebig von den SCPI Befehlen über LAN Gebrauch macht. Ein Profilab
SCPI-über-LAN Baustein wäre natürlich toll, aber ich möchte momentan nicht darauf warten.
Grüsse vom Messtechniker.
-
- Beiträge: 7
- Registriert: Freitag 27. Mai 2016, 10:31
Re: Vorschlag: SCPI-Unterstützung über LAN
Ich habe ein Problem damit dauerhafte Messungen hinzubekommen, die sowohl korrekt sind, als auch stabil laufen. Mit meinem Hameg HMC8012 Bench-Multimeter stellt sich das wie folgt dar:
Die Abfrage des Spannungsmesswerts über ein SCPI-Terminalprogramm gibt bspw. den String "3,10916496E-01" für 0,31….. V bzw. 310,91… mV zurück.
Wenn ich diesen Messwert über das Profilab COM-Modul mit 14 Zeichen abfrage, ich erhalte zunächst korrekte Werte, aber nach einigen Änderungen des Messwerts erscheint die Fehlermeldung „Ungültige Gleitkommaoperation“ und das Programm bricht ab. Anscheinend kommt im Puffer etwas durcheinander.
Wenn ich statt der 14 nur 8 Zeichen auslese, tritt der Fehler zwar nicht auf und das würde eigentlich auch ganz gut funktionieren, aber dann werden aufgrund der Exponentialschreibweise Messwerte unter 1,0 V erwartungsgemäß falsch interpretiert, da der Exponent ja nicht erfasst wird, so dass anstelle von bspw. 310.916 (mV) bzw. 0,310916 (V) natürlich 3,10916 (V) angezeigt wird. Daher bietet sich die Lösung nicht an, wenn Werte in diesem Bereich zu erwarten sind.
Zur Illustration habe ich hier mal eine Beispielapplikation angehängt, die dazu erstellt wurde Abweichungen von einem Referenzwert anzuzeigen, der automatisch auf Basis des aktuellen Messwerts beim Start erfasst wird und mit Druck auf die Taste 'Null' zur Laufzeit beliebig neu festgelegt werden kann.
Viele Grüße
Tom
Die Abfrage des Spannungsmesswerts über ein SCPI-Terminalprogramm gibt bspw. den String "3,10916496E-01" für 0,31….. V bzw. 310,91… mV zurück.
Wenn ich diesen Messwert über das Profilab COM-Modul mit 14 Zeichen abfrage, ich erhalte zunächst korrekte Werte, aber nach einigen Änderungen des Messwerts erscheint die Fehlermeldung „Ungültige Gleitkommaoperation“ und das Programm bricht ab. Anscheinend kommt im Puffer etwas durcheinander.
Wenn ich statt der 14 nur 8 Zeichen auslese, tritt der Fehler zwar nicht auf und das würde eigentlich auch ganz gut funktionieren, aber dann werden aufgrund der Exponentialschreibweise Messwerte unter 1,0 V erwartungsgemäß falsch interpretiert, da der Exponent ja nicht erfasst wird, so dass anstelle von bspw. 310.916 (mV) bzw. 0,310916 (V) natürlich 3,10916 (V) angezeigt wird. Daher bietet sich die Lösung nicht an, wenn Werte in diesem Bereich zu erwarten sind.
Zur Illustration habe ich hier mal eine Beispielapplikation angehängt, die dazu erstellt wurde Abweichungen von einem Referenzwert anzuzeigen, der automatisch auf Basis des aktuellen Messwerts beim Start erfasst wird und mit Druck auf die Taste 'Null' zur Laufzeit beliebig neu festgelegt werden kann.
Viele Grüße
Tom
- Dateianhänge
-
- Differenzanzeige HMC8012 Error.prj
- (7.71 KiB) 326-mal heruntergeladen
Re: Vorschlag: SCPI-Unterstützung über LAN
Es wäre gut zu wissen, welche Zeichenkette im Fehlerfall empfangen wurde.
$Senden und $Empfangen wäre eine Möglichkeit. Die Umwandlung eines Strings in EXP-Schreibweise
ist für ProfiLab eigentlich kein Problem, solange der String eine "vernünftige" Darstellung enthält.
$Senden und $Empfangen wäre eine Möglichkeit. Die Umwandlung eines Strings in EXP-Schreibweise
ist für ProfiLab eigentlich kein Problem, solange der String eine "vernünftige" Darstellung enthält.
ABACOM support
-
- Beiträge: 102
- Registriert: Mittwoch 15. April 2009, 10:58
Re: Vorschlag: SCPI-Unterstützung über LAN
So als ersten Schnellschußgedanken für einen Würgaroud:
Mit §Part und "E" als Trennzeichen die Zeichenkette in 2 Teile teilen.
Den numerischen Teil mit $Delete auf 8 Stellen begrenzen.
Dann den numerischen Teil fomelmäßig unter Brücksichtigung
des jeweiligen Exponenten weiter behandeln.
Mit §Part und "E" als Trennzeichen die Zeichenkette in 2 Teile teilen.
Den numerischen Teil mit $Delete auf 8 Stellen begrenzen.
Dann den numerischen Teil fomelmäßig unter Brücksichtigung
des jeweiligen Exponenten weiter behandeln.
-
- Beiträge: 7
- Registriert: Freitag 27. Mai 2016, 10:31
Re: Vorschlag: SCPI-Unterstützung über LAN
@abacom
Die Parallelausgabe des Messwerts auf ein normales Stringausgabe-Element zeigt keine Besonderheiten beim Auftreten der Fehlermeldung (s. Screenshot -> Feld 'Messwert als String'). Ist wahrscheinlich so, da die Programmausführung stoppt, bevor das Element aktualisiert wird. Das obere Fließkomma-Anzeigeelement zeigt beim Auftreten des Fehlers ">>>>>>>>>".
$Senden und $Empfangen habe ich nicht zum Laufen bekommen (Beispiel anbei). Das String-Ausgabefeld bleibt leer und die Sting-Ausgabe auf 'busy'.
Viele Grüße
Tom
Die Parallelausgabe des Messwerts auf ein normales Stringausgabe-Element zeigt keine Besonderheiten beim Auftreten der Fehlermeldung (s. Screenshot -> Feld 'Messwert als String'). Ist wahrscheinlich so, da die Programmausführung stoppt, bevor das Element aktualisiert wird. Das obere Fließkomma-Anzeigeelement zeigt beim Auftreten des Fehlers ">>>>>>>>>".
$Senden und $Empfangen habe ich nicht zum Laufen bekommen (Beispiel anbei). Das String-Ausgabefeld bleibt leer und die Sting-Ausgabe auf 'busy'.
Viele Grüße
Tom
- Dateianhänge
-
- HMC8012 $Senden und $Empfangen.prj
- (2.97 KiB) 227-mal heruntergeladen
-
- HMC8012 FehleranzeigeS.jpg (210.97 KiB) 6503 mal betrachtet
Re: Vorschlag: SCPI-Unterstützung über LAN
Alles deutet auf einen "Datenfehler" im eingehenden String hin. (Vielleicht länger als in Anzeige sichtbar, unvollständig oder mit Steuerzeichen "verseucht"?)
Vielleicht die redundanten Anzeigen einmal probeweise entfernen und Wert nur numerisch und/oder als String anzeigen.
Ein Überlauf ">>>" deutet auf einen ungültigen (sehr grossen) Eingangswert hin. Möglicherweise "spuckt" das Gerät unregelmäßig Zeichen aus,
die gar nicht per Request angefordert wurden?
Warum wird ständig "geflushed"? Evtl. falscher Zeitpunkt? Kommen da noch Daten hinterher? Welche? Besser direkt vor dem Request flushen!?
Vielleicht und falls möglich die Flusskontrolle beim HMC8012 auf "keine" einstellen?
Vielleicht die redundanten Anzeigen einmal probeweise entfernen und Wert nur numerisch und/oder als String anzeigen.
Ein Überlauf ">>>" deutet auf einen ungültigen (sehr grossen) Eingangswert hin. Möglicherweise "spuckt" das Gerät unregelmäßig Zeichen aus,
die gar nicht per Request angefordert wurden?
Warum wird ständig "geflushed"? Evtl. falscher Zeitpunkt? Kommen da noch Daten hinterher? Welche? Besser direkt vor dem Request flushen!?
...kann eigentlich nur am Trennzeichen (Sync) des Empfängers liegen. (Oder falsche COM-Parameter?)$Senden und $Empfangen habe ich nicht zum Laufen bekommen (Beispiel anbei). Das String-Ausgabefeld bleibt leer und die String-Ausgabe auf 'busy'.
Vielleicht und falls möglich die Flusskontrolle beim HMC8012 auf "keine" einstellen?
ABACOM support