Seriellen Port von SymBox aus ansprechen

Guten Tag,

ich würde gern deine Davis Vantage2 direkt mit der SymBox verbinden und auslesen. Das soll ein RS-232 auf LAN Wandler machen.

Leider scheiter ich schon am Anfang. 2010 hat der Forumnutzer aag einige Scripts dafür hier eingestellt. Zu finden hier.

Ich habe aag mein Problem schon geschildert und er sagt das es wahrscheinlich ein PHP Problem und er nicht weiß, in wie weit die Symbox mit den Befehlen umgehen kann.

Im ersten Script z.B. kommt der Befehl

ComPort_SetDTR(44862 /*[SerialPortWetterstation]*/, true); 

Sollte der in auf der SymBox so laufen, oder ist das veraltet?

Im Zweiten Script kommt meckert IPS „undefined function“ auf der folgenden Zeile:

if ($IPS_SENDER == "RegisterVariable") // wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
{

//      $data  = RegVar_GetBuffer($IPS_INSTANCE); // bereits im Puffer der RegisterVariable-Instanz vorhandene Daten in $data kopieren
    $data = $IPS_VALUE; // neu empfangene Daten an $data anhängen 

Bei „RegisterVariable“ habe ich meine ID der RegVar eingefügt - sonst nichts geändert.

Insgesamt eingerichtet habe ich das ganze, wie aag es und die anderen im dem Thread gemnacht haben circa so:

I/O Instanz angelegt für den Lan Wandler
und bei Splitter Instanzen einen Cutter hinzugefügt wie beschrieben, die auf die I/O Instanzt zeigt.

Dann eine RegVar unter meiner „Davis“ Kategorie erstellt, unter der ich dann das Script eingefügt habe.

Ich weiß nicht, ob der Platz hier richtig ist, oder es besser im Davis Vantage Thread aufgehoben ist, oder unter PHP der Symbox.

Netten Gruß und einen schönen Samstag allerseits!

Du wirst leider über einen Socket DTR nicht setzen können. Das ein extra Pin auf der RS232, den es über Netzwerk dann so nicht gibt. Evtl. kannst du den Hardwaretechnisch überbrücken, aber das ist außerhalb meiner technische Kenntnisse :wink:

Ansonsten musst du mindestens $IPS_SENDER zu $_IPS[‚SENDER‘] machen, wobei du dich primär um das erste Problem kümmern müsstest.

paresy

DTR geht auch über das Lan, allerdings muss es einen Treiber geben, der das Lan Protokoll wieder auf ein serielles Device im Betriebssystem mapped. Die Moxa Nports können das zum Beispiel. Bei mir hängt eine WS2500PC dahinter, das genauso mit DTR arbeitet. Auf der Symbox geht das wahrscheinlich nicht, weil man da keine Treiber installieren darf, auf einem Raspberry z.B. schon.

Tommi

Ich habe z.Zt. zwei Lan Converter und in den PDFs dazu, wird bei RS232 nur von TX RX und GND was beschrieben zur Verkabelung. Diese Geräte liegen beide circa um 65€.

Auf parseys Antwort hin, hab ich dann danach gesucht und z.B. bei startech punkt com, die mehrere im Angebot haben,welche gefunden, die bei den Spezifikationen auf die Flussregelung eingehen und dort gibt es dann, natürlich die hochpreisigen, welche die RTS/CTS unterstützen.

Auch dasjenige von Tommi wird in der Beschreibung als Alleskönner mit „Flow Control:
RTS/CTS and DTR/DSR (RS-232 only), XON/XOFF“ beschrieben.

Diese Spezifikationen kann ich bei meinen nicht finden und hoffe nun, dass es damit zu tun hat?

Meinst du parsey, dass die Symbox das schafft mit dem korrekten Wandler?
Ich schraube meinen gleich mal auf und hoffe, dass die Pins gar nicht belegt sind:rolleyes: und ich noch einen Lichtblick habe…

Nein. Wie Tommi sagte… Wir können den DTR nicht über den ClientSocket setzen. Du musst das DTR hardwaretechnisch Brücken falls das überhaupt geht.

Moin,
wenn DTR (Data Terminal Ready) High sein soll, kann man den mit DSR (Data Send Ready) verbinden. DTR ist bei der DB9 auf Pin4 und DSR auf Pin6.

Würde mich wundern, wenn DSR nicht gesetzt wird, da DTR ja auch ausgewertet wird… Sollte also zu 99% so laufen :wink:

//Sven

Hey danke Sven!
Das hätte ich auch ohne Rücksicht auf Verluste einfach mal getestet, nachdem ich das hier gestern am frühen Abend gefunden habe mit parseys Stichworten.

„Gibt es für das ipEther232 mit RS232 Schnittstelle auch eine 2 Draht Lösung?
Ja. Es werden lediglich Pin 2 (RXD Receiver Data), Pin3 (TXD Transmit Data) und Masse (GND) benötigt. Außerdem kann es erforderlich sein im Configtool „NoModemSignals“ zu aktivieren. Dies kann alternativ auch durch ein dauerhaftes Brücken von Pin 4(DTR Data Terminal Ready) und Pin 6 (DSR Data Set Ready) erfolgen. Die Steckerbelegung entnehmen Sie bitte dem Handbuch“

Ich habe zwar nicht genau diesen ipEther, aber solte ja ähnlich sein.

Und dein Post macht mir Mut:)

Sollte das klappen mit der Brücke, wie müssten die Scripst denn geöndert werden?
Das Script welches aag als erstes anführt, ist für en DTR status zu setzten, wenn ich das richtig verstehe?

Dort kann ich ComPort_SetDTR wegkommentieren denke ich.

Generell die Befehle COMPORT_xxxx funktionieren auf der Symbox? Oder muss ich das abändern? Als Instanz Id gebe ich dort den Client Socket an?

Im zweiten Script müsste ich dann mindestens ersteinmal die alten Befehle gegen die neuen tauschen.
z.B. $IPS_Sender zu $_IPS[‚SENDER‘] wie parsey schrieb und dann logischerweise das selbe mit dem $IPS_VALUE.

Ich kann das leider erst heut Abend angehen, aber bin gespannt wie ein Flitzebogen, ob es doch irgendwie klappt und meine Idee nicht hier endet die Davis einzubinden.

hmmmm,

ich habe den Wandler mal aufgeschraubt und da könnte man natürlich eine Lötbrücke reinlöten.
Zum Glück habe ich dann mal den Davis Seriell Stecker aufgeklammert und siehe da… Die Pin’s sind schon gebrückt?!
und auch noch andere.

Ich habe das mal versucht zu dokumentieren. Vielleicht kann da jemand was zu sagen. Für meine Begriffe sind somit die Pins 4 und 6 schon gebrückt und ich bin wieder ratlos:mad:
Von dem blauen Davis Stecker gehen 4 Adern weiter zum Datenlogger der Konsole. Die Pinne habe ich mit dem X auf der linken Seite der Beschriftung gekennzeichnet.

Mit freundlichen Grüßen und einen schönen Sonntag allerseits