Ich habe eine Symbox und möchte Daten eines Gerätes auslesen, welches einige Meter von der Box entfernt steht.
Das Gerät hat eine serielle Schnittselle. Dazu habe ich mir einen Schnittstellenwandler Adamtech 4571l gekauft.
Diesen kann man ins Netzwerk integrieren und über einen virtuellen Comport Daten auslesen.
Könnte ich diesen auch nutzen, um Daten in der Symbox zu verarbeiten?
Ich habe nun einen ClientSocket genutzt, IP und Port eingetragen. Das Öffnen klappt erst einmal. Keine Fehlermeldung.
Ich habe ein Meßgerät angeschlossen. Wenn man dann ein „D“ sendet, sollte der Istwert der Anzeige zurückkommen. Leider kommt garnichts zurück.
Wenn ich das Meßgerät an einen PC hänge und „D“ sende, kommt der Wert zurück.
Leider sehe ich in den Einstellungen des Wandlers nicht, in welcher Betriebsart dieser ist.
Was kann ich noch testen?
Den Hersteller habe ich schon angeschrieben, ob man den Wandler in den TCP Server Modus bringen kann.
In den Settings kann ich zur Zeit nur „Virtual Com Mode“ wählen.
Eventuell fehlt nur ein Steuerzeichen hinterher, zB CR LF welches Du in Windows mit übergibst aber in dem Fenster nicht siehst.
Genaueres steht vielleicht in Deinem Geräte Handbuch oder PDF.
Gruß Helmut
Danke für den Hinweis.
Dies habe ich nun auch probiert, leider aber ohne Erfolg.
Nach vielen Recherchen sieht es so aus, als wenn die Firmware (1.15) zu alt ist für Server Mode. Ich bekomme demnächst noch ein solches Teil. Mal sehen, ob das einen neueren Stand hat.
Auch werde ich Adamtech mal anschreiben, ob man da eine neue Firmware draufbekommt.
In dem Konfig Programm kann ich ein Firmwareupdate nicht anwählen, obwohl dies in der Anleitung beschrieben ist.
Ich habe Adamtech kontaktiert. Die Module sind relativ alt und können kein TCP Server mode.
Was geht, wäre VCOM mode. Kann dies auch für meine Symbox genutzt werden?
Je nachdem wie der Modus aussieht - vielleicht. Aber eher nein. Ich würde das Teil einfach weiterverkaufen und etwas nehmen, dass auf jeden Fall geht. z.B. einen Exsys EX-6030
Ich habe mir nun einen EX-6030 gekauft und möchte Daten aus meinem Meßgerät M3640D holen.
Dazu muss ich ein „D“ senden und es sollten 14 Bytes zurückkommen. Leider kommt immer nur ein Byte zurück.
Im Debug Modus kommt bei Transmit #44 rüber, als Ergbnis nur ein Byte mit #00
Baudrate ist 1200, 7,no, 2
Muss ich noch etwas in den Settings ändern?
Mit einem Terminalprogramm habe ich dann noch DTR auf ON gesetzt und RTS auf OFF.
Kann ich das irgendwie auch übertragen?
Der Clientsocket läßt sich auch ohne Probleme öffnen.
Vielleicht mal 1200 8 2 N eistellen, Ascii Textcodierung verwirrt mich ein wenig, weil Ascii Codierung ist meist immer 7Bit
Deshalb kann die Schnittstelle trotzdem 8 Databits haben
Gruß Helmut
Nur wenn ich DTR auf ON setze und RTS auf OFF, dann läuft die Datenübertragung an einem Terminalprogramm.
Ich habe dann die Möglichkeiten des EX-6030 probiert
Interface of serial I/O : RS232, RS232(RTS/CTS) und RS232(RTS/CTS, DTR/DSR), aber keine der Möglichkeiten funktioniert.
Wenn man über den Wandler die Signale per Hand setzen könnte, würde das bestimmt funktionieren. Aber das wird wohl nicht gehen.
Das Originalkabel habe ich genutzt.
Es scheint hier eine Spezialbeschaltung zu sein. Unter https://www.reinhardweiss.de/german/metex.htm habe ich die Beschaltung gefunden. Ist zwar nicht 100%ig mein Geärt, aber sollte passen.
Ich muss DTR auf ON bekommen und RTS auf OFF, da die Signale dann die +12/-12V liefern, die dann genutzt werden, um RXD dann auf die Pegel zu bekommen.
Ich werde versuchen, die beiden Signale durch die Interface Möglichkeiten so bereitzustellen, wie oben beschrieben.
So nun habe ich mal alles durchgemessen und die Infos oben genutzt.
Mit dem 3640 muss man noch folgenden Adapter bauen:
Buchse - Stecker
2 - 2
3 - 3
5 - 5
7 - 4
9 - 7
Dann kommen die Werte auch an. Das war ein wenig tricky, da ich keine Möglichkeit gefunden habe, DTR und RTS so zu setzen, dass es passt.
Hilft vielleicht dem Nächsten auch.
Schönen Feiertag.
PS: Jetzt muss ich nur noch sehen, wie ich die Daten verarbeiten kann. Bis jetzt habe ich die Wert nur im Debugmodus gesehen. Wie komme ich aber an die Werte ran? Sind das dann Registervariablen?
Wie kann ich eine solche erstellen? Unter dem Client Socket kann ich nichts anlegen.