Forum: Mikrocontroller und Digitale Elektronik RS232 zu Agilent E3640A


von Thomas (Gast)


Lesenswert?

Hallo,

weiß von euch jemand wie man RS232 zu einem Agilent Netzteil hinbekommt?

Ich habe mir einen Logilink FTDI RS232 Adapter + Nullmodemkabel besorgt 
und versuche das Ganze unter Linux mit minicom zu verbinden.
Als Verbindungsparameter habe ich 9600 Baud, None 8 Bits konfiguriert.

Alles was ich vom Agilent da bekomme ist ein Piepsen und ERROR.

Ich tippe schon langsam darauf dass das Agilent Netzteil nicht mit einem 
gewöhnlichen Nullmodemkabel funktioniert?

von hp-freund (Gast)


Lesenswert?


von hp-freund (Gast)


Lesenswert?


von Dietrich L. (dietrichl)


Lesenswert?

Thomas schrieb:
> Ich tippe schon langsam darauf dass das Agilent Netzteil nicht mit einem
> gewöhnlichen Nullmodemkabel funktioniert?

Im Manual
http://www.utsc.utoronto.ca/~quick/PSCB01H3S/Documentation/HPE3640.pdf
ist auf Seite 60 das Kabel beschrieben.
Leider gibt es manchmal unterschiedliche "Interpretationen" von 
"Nullmodemkabel". Klingel dein Kabel doch mal durch, ob es mit dem 
beschriebenen übereinstimmt.
Weitere mögliche Probleme, die mit spontan einfallen:
- die Baudrate ist verändert und nicht mehr auf "factory setting".
- wahrscheinlich arbeitet die Schnittstelle mit Hardware Handshake. Ist 
das so eingestellt?
- Probleme mit Logilink?
- ...

Gruß Dietrich

von Thomas (Gast)


Lesenswert?

Die USB Adapter sind ja klasse... liefern eine CD mit aber mein Notebook 
hat kein Laufwerk mehr. Online findet man alle möglichen verseuchten 
Treiber-Installer-Viren.

Agilent sollte da besser anfangen etwas nachzubessern und ihre Netzteile 
kompatibel machen ... RS232 bewerben und dann nicht mit Standard-RS232 
Hardware funktionieren besser geht's nicht :-(

von Dietrich L. (dietrichl)


Lesenswert?

Dietrich L. schrieb:
> - wahrscheinlich arbeitet die Schnittstelle mit Hardware Handshake. Ist
> das so eingestellt?

das "wahrscheinlich" nehme ich zurück: im Manual steht, das es wirklich 
so ist.

Gruß Dietrich

von g457 (Gast)


Lesenswert?

> Agilent sollte da besser anfangen etwas nachzubessern und ihre Netzteile
> kompatibel machen ... RS232 bewerben und dann nicht mit Standard-RS232
> Hardware funktionieren besser geht's nicht :-(

Laut Diagramm und Speck im Handbuch ist das standardkonformes RS-232. 
Wenns nicht funktioniert hast Du ein kaputtes Kabel oder einen kaputten 
USB-RS232-Wandler erwischt. Oder einfach die falschen Einstellungen. 
Oder das Gerät ist defekt.

Nix für ungut.

von Dennis (Gast)


Lesenswert?

Ich geh auch davon aus das der Fehler auf deiner Seite liegt, nix für 
Ungut

von Selbsternannter Weltverbesserer (Gast)


Lesenswert?

Hallo,

Thomas schrieb:
> Die USB Adapter sind ja klasse... liefern eine CD mit aber mein Notebook
> hat kein Laufwerk mehr. Online findet man alle möglichen verseuchten
> Treiber-Installer-Viren.

Hol Dir die Treiber vom der Seite des Chipherstellers 
http://www.ftdichip.com/Products/Cables/USBRS232.htm

> Agilent sollte da besser anfangen etwas nachzubessern und ihre Netzteile
> kompatibel machen ... RS232 bewerben und dann nicht mit Standard-RS232
> Hardware funktionieren besser geht's nicht :-(

Jammer nicht rum, überprüfe lieber die Belegung Deines Nullmodemkabels, 
setzte die Übertragungseinstellungen am PC und am Netzteil auf gleiche 
Werte und schicke die richtigen Befehle an das Netzteil, dann geht's.

Mit freundlichen Grüßen
Selbsternannter Weltverbesserer

von Thomas (Gast)


Lesenswert?

Es funktioniert mit dem Connection Expert.

Deren Samplecode für Linux funktioniert anscheinend nicht oder es 
benötigt irgendeine komische Initialisierung die ich noch nicht kenne.
Anscheinend macht der Connection Expert genau das richtige ...  habe 
aber auch über den Connection Manager schon ERRORS am Netzteil 
getriggert....

von Thomas (Gast)


Lesenswert?

Nach einigem rumspielen funktioniert es jetzt auch so halbwegs unter 
Linux.
Die Ansteuerung ist grausam, erinnert mehr an irgendwelche 
unzuverlässige Schnittstellen von diversen Firmen von vor 15 Jahren.
Aktuell hängt die Kommunikation einfach nach einiger Zeit, es wird wohl 
noch irgendwelche Timing Probleme geben.
Am Besten wäre es wohl wenn Keysight dafür eine Bibliothek ausliefern 
würde welche die ganzen Kommunikations-Fehler auf der Softwareseite 
überdeckt - wenn sie RS232 schon nicht ordentlich hinbekommen.

So richtig zufrieden macht das alles nicht, da gibt's deutlich bessere 
und billigere Lösungen um das zu erledigen was ich möchte. Zudem das 
Netzteil auch ein lästiges 50Hz Brummen und einen Lüfter mit sich bringt 
(das günstigere China NT das ich hier habe ist passiv gekühlt und hat 
auch kein Brummen).

Die Agilent Ausführung finde ich für den Preis sehr schwach...

von Thomas (Gast)


Lesenswert?

Die Lösung für das Problem:

http://stackoverflow.com/questions/17073969/agilent-66332a-dc-source-rs232-ubuntu-12-04-scpi

while :; do echo -en ':MEASURE:VOLT:DC?\n' > /dev/ttyUSB0; sleep 0.5; 
done

in einem anderen Fenster
cat /dev/ttyUSB0

Es werden einige Befehle einfach nicht ausgeführt.

Auch in den Kommentaren von dem nicht funktionierenden Beispiel findet 
sich
// Receives a character from the serial port,
// or times out after 10 seconds.
// success = 0 if timeout, 1 if successful


Sprich die Kommunikation ist unzuverlässig, habe es in einem C Programm 
implementiert - dort ist das Verhalten gleich.

von Mike A. (Gast)


Lesenswert?

g457 schrieb:
> Wenns nicht funktioniert hast Du ein kaputtes Kabel oder einen kaputten
> USB-RS232-Wandler erwischt.

Der USB-RS232-Wandler muss gar nicht kaputt sein. Schon wenn er kein 
Hardware-Handshake unterstützt, wird die Kommunikation unzuverlässig 
oder funktioniert gar nicht.

von Thomas (Gast)


Lesenswert?

Entweder man benutzt die Buttons am NT oder die RS232 Schnittstelle, 
beides benutzt wohl den gleichen Pfad intern und kann sich in die Quere 
kommen.

Ich habe die Auslese-Geschwindigkeit noch etwas runtergesetzt jetzt 
scheint's besser zu funktionieren.

Als Adapter verwende ich diesen hier:
[134836.631129] usb 8-1: Product: USB-Serial Controller D
[134836.631134] usb 8-1: Manufacturer: Prolific Technology Inc.
[134836.633215] pl2303 8-1:1.0: pl2303 converter detected
[134836.645370] usb 8-1: pl2303 converter now attached to ttyUSB0

von Mike A. (Gast)


Lesenswert?

Thomas schrieb:
> Als Adapter verwende ich diesen hier:
Du darfst hier auch Links verwenden :-(

Google findet nichts ( z.B. "[134836.631134]")

Steht da explizit bei, dass die die vom Agilent verwendeten 
Handshake-Leitungen Treiber- und Hardwareseitig unterstützen? Die 
Fähigkeiten der verwendeten Bausteine und der Aufbau des Adapters sind 
noch zwei verschiedene Dinge.

von g457 (Gast)


Lesenswert?

> Der USB-RS232-Wandler muss gar nicht kaputt sein. Schon wenn er kein
> Hardware-Handshake unterstützt [..]

Das fällt in die Kategorie 'kaputt', Hardwareflusskontrolle ist 
Bestandteil von RS-232.

> Es werden einige Befehle einfach nicht ausgeführt.

Hast Du das Timing beachtet? Einfach wild drauflosballern wie in einer 
while-schleife z.B. ist nicht vorgesehen, zumindest nicht mit allen 
Kommandos. Wo kommt bei Dir der führende Doppelpunkt her? Der hat dort 
üblicherweise auch nichts verloren.

> Sprich die Kommunikation ist unzuverlässig,

Ja, auf ∗Deiner∗ Seite :-)

von g457 (Gast)


Lesenswert?

Nachtrag: Frag auch regelmäßig mal die Fehlerschlange ab, die gibt u.U. 
Hinweise, was Du flasch machst. Und zum Üben solltest mit was einfachem 
wie IDN anfangen, erst wenn Du das hundert mal hintereinander 
zuverlässig abfragen kannst, hast Du die Kommunikation auf Deiner Seite 
halbwegs im Griff.

HTH
</ingrid>

von Georg (Gast)


Lesenswert?

Thomas schrieb:
> Auch in den Kommentaren von dem nicht funktionierenden Beispiel findet
> sich
> // Receives a character from the serial port,
> // or times out after 10 seconds.
> // success = 0 if timeout, 1 if successful
>
> Sprich die Kommunikation ist unzuverlässig

Das spricht für vollkommenes Unverständnis: dass ein Programm zur 
Datenübertragung eine Fehlerbehandlung hat, ist ein Zeichen für die 
Qualität des Programms, bzw. eigentlich selbstverständlich, und beweist 
keineswegs dass die Kommunikation nicht funktioniert.

Georg

von Wolfgang (Gast)


Lesenswert?

g457 schrieb:
> Das fällt in die Kategorie 'kaputt', Hardwareflusskontrolle ist
> Bestandteil von RS-232.

'kaputt' ist er nur, wenn er sich nicht so wie die anderen "heilen" 
Geräte einer Serie verhält. In deinem Sinne wäre USB-RS232-Wandler, die 
die Hardware-Handshake-Leitungen nicht unterstützen, gar keine 
USB-RS232-Wandler. Nur kommen damit Millionen von Geräten gut zurecht, 
weil sie SW-Handshake benutzen und damit nur einen Teil der möglichen 
Übertragungsarten. So 'kaputt' können die dann wohl nicht sein.

von g457 (Gast)


Lesenswert?

> In deinem Sinne wäre USB-RS232-Wandler, die die Hardware-Handshake-
> Leitungen nicht unterstützen, gar keine USB-RS232-Wandler. Nur kommen
> damit Millionen von Geräten gut zurecht [..]

Wie Du siehst eben nicht. Wer RS-232 daufstehen hat soll als 
universeller Controller auch RS-232 vollständig unterstützen. Teilmengen 
davon kann man immernoch vereinbaren. Ein Controller, der das trotzdem 
draufstehen hat obwohl er es nicht kann ist ab Werk kaputt (nicht 
notwendigerweise defekt). Endgeräte dürfen jederzeit eine Teilmenge 
implementieren.

Aber wir schweifen vom eigentlichen Thema ab, den programmatischen 
Fehlern bei der Kommunikation beim TO.

von Georg (Gast)


Lesenswert?

g457 schrieb:
> Wer RS-232 daufstehen hat soll als
> universeller Controller auch RS-232 vollständig unterstützen

Das ist Unsinn, denn eine solche Definition gibt es schlicht nicht. 
Serielle Schnittstellen können eine ganze Menge Statussignale haben, 
oder eben auch nicht - RI z.B. kann einem Modem melden, dass jemand 
anruft, das geht aber auch ohne das Signal mit dem Hayes-Kommandosatz, 
bloss ist der genausowenig genormt, und ausserdem war er zu Zeiten der 
Bundespost in Deutschland verboten. Andere Normen waren z.B. X25, aber 
eben für Modems und nicht für irgendein "RS232". Heute vermisst niemand 
RI und auch nicht eineges andere, was es auf dem 25poligen Stecker gab.

Georg

von g457 (Gast)


Lesenswert?

> Serielle Schnittstellen können eine ganze Menge Statussignale haben [..]

Klar, heissen dann aber nicht notwendigerweise RS-232. SPI zum 
Bleistift. Oder TWI. Oder SATA.

> Andere Normen waren z.B. X25 [..]

Da steht nicht nur zufällig nicht RS-232 drauf ;-)

Aber lass uns endlich zum Thema zurückkehren und gespannt auf des TOs 
Entwicklungen warten. Falls Du weiter über serielles diskutieren 
möchtest und warum eine UART alleine kein RS-232 macht, dann mach doch 
bitte einen eigenen Fred in OT auf.

von Thomas (Gast)


Lesenswert?

Nach dem pl2303 Adapter hab ich's noch mit dem FTDI RS232 Adapter 
versucht, bei beiden gibt's derzeit nach ca 2-3 Stunden Fehler wenn die 
Stromstärke alle 200ms ausgelesen wird. Als Error bekomme ich invalid 
character. Wenn der Intervall auf 100ms gesetzt wird gibt's nur noch 
Fehler.

Werde versuchen das Delay noch etwas hochzusetzen, zuverlässig sieht für 
mich aber anders aus. Das sind doch nur 9600 Baud, die Adapter werden 
üblicherweise mit embedded Geräten und 56k verwendet und da gibt's 
keinerlei Probleme..

von Markus H. (traumflug)


Lesenswert?

Nur 9600 Baud, dafür 20 (10 hin, 10 zurück) Datensätze/Sekunde? Da 
dürfen schon mal (theoretisch!) max. 48 Bytes pro Datensatz anfallen. 
Verarbeitungszeit am jeweiligen Ende nicht mit eingerechnet.

Dazu noch geschätzt 10 ms Delay im Adapterchip pro Richtungswechsel. 
Diese Chips versuchen intelligenter als der Benutzer zu sein und 
speichern z.B. erst mal in einen Puffer.

Das dann noch aus der relativ lahmen Shell heraus? Bei einer anderen 
Anwendung, die nur Datensätze schickt und auf ein "ok" wartet, bevor sie 
den nächsten Satz schickt, komme ich auf bestenfalls 5 
Datensätze/Sekunde, trotz 115200 Baud. Die Shell (Bash) ist für solche 
Zwecke relativ lahm. Aus einem Python-Skript heraus geht's deutlich 
schneller, doch immer noch weit unter dem theoretischen Maximum.

Ausserdem ist 1 fehlerhaftes Zeichen von einer Million nicht so völlig 
aus der Welt. Solche Geschichten sind auch oft für GND-Schleifen 
anfällig, da Sender und Emfänger zwar an verschiedenen Netzteilen 
hängen, aber auf der Übertragungsstrecke nicht galvanisch getrennt sind. 
Es ist also Fehlertoleranz gefragt.

von Thomas (Gast)


Lesenswert?

Mit einem 250ms Intervall scheint es nun stabil zu sein 9 Stunden ohne 
Fehler.

Somit ist mein Problem gelöst, schade das Agilent/Keysight das nicht 
besser gelöst hat. Für den Preis doch etwas schwach.

von Markus H. (traumflug)


Lesenswert?

Thomas schrieb:
> schade das Agilent/Keysight das nicht
> besser gelöst hat.

Auf das Problem zwischen Stuhl und Bildschirm haben die relativ wenig 
Einfluss.

von Thomas (Gast)


Lesenswert?

Ich geb auf, das Netzteil bereitet irgendwie schon wieder Probleme hin 
und wieder liefert es jetzt Werte; Aber meist meldet es invalid 
character.
Es hat mal ne Zeit lang funktioniert aber jetzt nach einer Woche wo ich 
es wieder benötigen würde geht's wieder nicht.

Kennt jemand ein Labornetzteil mit USB oder RS232 und das auch 
funktioniert?

Von Agilent will ich nichts mehr, ich hatte in den letzten Jahren sehr 
viel mit RS232 und Embedded Systemen zu tun und hatte noch nie solche 
Probleme. Für die Schwierigkeiten ist Agilent einfach zu teuer.

von hp-freund (Gast)


Lesenswert?

Ok.
Ich könnte ihm lebenslanges Wohnrecht bieten ;-)

von Thomas (Gast)


Lesenswert?

Agilent ist unfähig RS232 funktionabel zu implementieren, wenn der 
Puffer voll ist sollten sie einfach einen Errorcode zurückliefern aber 
nein sie überschreiben den internen Puffer. Die Knöpfe sind zudem nicht 
vom RS232 Port entkoppelt.

Das NT an sich ist nett aber RS232 wurde von den größten Pfuschern bei 
Agilent implementiert.

von Thomas (Gast)


Lesenswert?

Es wundert mich doch immer wieder wenn ich dieses Agilent Netzteil 
anrühren muss.

Sind die Agilent Netzteile wirklich so unzuverlässig und sollte man in 
Wirklichkeit eher die Finger von Netzteilprodukten dieser Firma lassen?

Eigentlich hatte ich den Eindruck das die Firma einen guten Ruf hat 
(aber auch teuer ist), die Erfahrungen mit dem Netzteil sind derart 
schlecht das ich praktisch gesehen das Ganze Jahr über mein billiges 
chinesisches Netzteil verwendet habe.
Ich würd's ja einsehen wenn das Problem vor dem Bildschirm sitzen würde, 
aber die ganzen RS232 Adapter welche ich besitze funktionieren nun mal 
einwandfrei mit anderen Systemen - nur Agilent zickt da rum, man darf 
diese Netzteile blos nicht überfordern (und das ist nicht das erste 
Agilent Netzteil das ich getestet habe).
Selbst Biterror durch Masseschleifen (wenn das Notebook über die 
Batterie läuft) sind zu 100% ausgeschlossen. Das einzige Problem das 
hier noch sein könnte wäre dass das Agilent Netzteil für Störungen 
sorgt.

Kann diese seriellen Probleme mit Agilent Netzteilen jemand bestätigen? 
Dann kann ich die Fehlersuche endgültig aufgeben.

von Thomas (Gast)


Lesenswert?

Hier ein schönes Beispiel bei 9600 baud:

mehrmals *IDN?
Alent Tehnologies,E3640A,01.8-5.0-.0
Agilent Technologies,E3640,0,1.8-5.0-1.0
Agilent TechnologesE3640A,0,1.8-5.0-1.0
Agilent Tchnolges,E3640A,0,1.85.-10
Agilen Technologies,E3640A,0,1.8-5.0-1.0

Was Agilent hier produziert hat (und Keysight übernommen hat) ist 
absoluter Schrott der sein Geld nicht wert ist, mit jedem Arduino 
schwätze ich ohne Verlust 115kbit. Diese Netzteile schaffen ja nicht mal 
9600 ordentlich (und das ist bereits das Maximum). Es ist nicht nur ein 
Netzteil sondern es sind wohl alle Netzteile dieser Serie davon 
betroffen. Da ich das bei mindestens 3 getestet habe und alle das 
gleiche Resultat liefern.

Das Netzteil wird von einem Notebook angesteuert, also nichts da mit 
Groundloop, alle anderen Geräte funktionieren ja auch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.