PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino uno + w5100 + rs232 signalconverter



sasnero
11.01.2017, 23:53
Hallo Arduino Community,

zu erst mal bin totaler Arduino Neuling! Auch hab ich bis jetzt nur Maschinensteuerungen von Siemens programmiert die jedoch in anderen Sprachen! Leider hatte mir auch keinerlei Suche (weder im Forum noch beim Gockel) ein ergebnis gebracht. Da dachte ich schreib es einfach mal ins Forum vielleicht hat einer eine Idee.

Nun würde ich für den örtlichen Skiclub einen Signalconverter für die Zeitmessung benötigen und dachte da an Arduino.

Zeitmessuhr TagHeuer CP540 (192.168.0.17:7000 TCP) -> Arduino (Wandeln des Codes in ein für die Anzeige lesbares Format) -> RS232 (9600,8,n,1) 7segment Anzeige.

Arduino Daten:
Arduino Genius UNO R3
Ethernet Shield W5100
RS232 zu TTL-Konverter

Bin leider gleich schon am Anfang mit der Ethernetverbindung gescheitert egal was ich verwendete (Modifiziertes TelnetClient oder im Internet gefundenes TCP auslese sketch) es konnte nie eine Verbindung zwischen CP540 und Arduino aufgebaut und den Wert im SerMonitor angezeigt werden.
Aus der Anleitung der CP540 hab ich "Ethernet:
IP by default 192.168.000.017
Port 7000
Frame format: Data + CR + LF
CS16 Sum of all data bytes modular 65536 (cod in 4 hexa digit) in ASCII
TAB 0x09
CR 0x0D
LF 0x0A"

Wenn die Verbindung steht sollte der Arduino per Ethernet aus dem Code den z.B Zeitwert auslesen und in den RS232 Data String der Anzeige einfügen + an Anzeige senden.
Data String der Anzeige: "<STX> L 0 <HT> A _ _ _ <HT> _ _ _ _ _ 2 9 2 . 5 9 0(z.B Zeitwert) <HT><CR><LF>"

Schnittstellenbeschreibung CP540 32341

Zum Schluss ja man könnte auch alles umgehen und eine neue Zeitmessanlage mit passender Anzeige kaufen jedoch ist das leider nicht im Budget!

Danke schon mal.

sasnero

Mxt
12.01.2017, 10:08
Hallo,

grundsätzlich dürfte das so möglich sein. Wie du aber schon festgestellt hast, ist die Umsetzung nicht ganz einfach.

Bei Ethernetgeräten gehe ich normalerweise so vor, dass ich erstmal versuche vom PC aus darauf zuzugreifen und zu verstehen, wie die Kommunikation abläuft.

Danach überlege ich mir welche Embeddedplatform dafür geeignet ist. Normalerweise lande ich dann entweder bei Linux (Raspi oder Beaglebone) oder bei ARM Mikrocontrollern mit eingebautem Ethernet. Um diese per Shield angedockten Netzwerkinterfaces mache ich normalerweise einen Bogen, da hat man zu wenig Einfluss darauf, was da passiert.

Ein weiterer Knackpunkt bei deiner Hardwareauswahl ist der RS232 Konverter und sein Anschluss an dern Uno. Soll da SoftSerial verwendet werden ? Der einzige serielle Anschluss vom Uno an den Pins 0 und 1 ist auch mit dem USB-Interface verbunden. Die Programmierung und der serielle Monitor laufen darüber. Da einen RS232 Wandler anzuschliessen ist keine so gute Idee, man müsste ihn immer abstecken, wenn man den USB benutzt.

sasnero
12.01.2017, 19:32
Hallo Mxt,

die Auswahl von Arduino war eigentlich spontan. Wollte mich vor einiger Zeit mal damit beschäftigen und hatte dafür ein Board mit W5100 gekauft. Aus Zeitgründen hatte ich dieses Projekt jedoch noch nicht begonnen. Nun stellte sich dieses Problem mit der Zeitmessung und ich überlegte ob das nicht auch damit ging.
Werde mich morgen nochmal hinsetzen und erst mal Verbindungen zum Pc testen. Das müsste ja mit dem Telnet Beispiel recht gut gehen.

Hab ich das richtig verstanden der uno schreibt mit dem befehl seriell.println das auch immer gleichzeitig auf usb ttl rs232 und seriell monitor?

Danke Gruß
sasnero

Mxt
13.01.2017, 08:13
Ja,

der Controller auf dem Uno hat nur einen Hardware UART, der liegt an den Pins 0 und 1 und geht gleichzeitig zum USB-Interface IC. Er ist nur über die Pins 0 und 1 verwendbar, wenn keine Verbindung über USB verwendet wird.

Auf eine funktionsfähige Diagnoseausgabe wird man bei dem Projekt aber angewiesen sein.

Mit Tipps für die Arduino Ethernet API tue ich micht schwer, ich habe keine passende Hardware. Außerdem die API anders aufgebaut, als übliche Socket-APIs unter Windows, Linux oder ARM mbed. Deswegen mache ich bei Ethernet eigentlich immer einen Bogen um Arduino.

Mir fallen nur die üblichen Tipps zu Ethernet ein. Stimmen IP und Netzmaske auf beiden Seiten, ist die Verkabelung korrekt usw. ?

Ceos
13.01.2017, 08:29
ich frage mich gerade warum so ein kompliziertes beispiel und obendrein noch mit prüfsumme usw.

würde es nicht erstmal reichen einen popeligen server aufzusetzen der ein hallo welt zurück gibt wenn du den browser aufmachst um zu verifizieren das es überhaupt klappt?