# Programm zum COM Port überwachen



## steinche (29 Januar 2010)

Hallo zusammen,

ich bin jetzt schon einige Programme durchgegangen, habe aber noch nicht das passende gefunden. Ich muss den Datenstrom zwischen einem PC und einem externen Gerät protokollieren. Dazu möchte ich mich mit einem zweiten PC (zwei Com Ports)  in die Datenleitung hängen. Mit welchem Programm ist das machbar?
Mit eine den bisherigen Programmen kann ich auf dem Protokoll-PC die Daten nicht zwischen Com1 und Com2 koppeln.

Viele Grüße
steinche


----------



## bimbo (29 Januar 2010)

Gib in Google "Sniffer" ein!


----------



## bimbo (29 Januar 2010)

http://www.download3000.com/download_8838.html


----------



## steinche (29 Januar 2010)

Hallo Bimbo,

vielen Dank für die schnelle Antwort.
Den Port Monitor habe ich schon installiert, jedoch kann den Protokoll Analyser nicht in der Free Version starten :-(

Viele Grüße
steinche


----------



## Rainer Hönle (29 Januar 2010)

Der hier funktioniert bei mir einwandfrei.


----------



## steinche (29 Januar 2010)

Hallo Rainer,

mit der Free Version kann ich keine zwei COM Ports koppeln. Habe jetzt die Trial zum testen und es funktioniert einwandfrei und bereits herausgefunden dass in der Doku zum Protokoll ein Zeichen gefehlt hat ..... ob das Zufall ist 

Viele Grüße
steinche


----------



## Rainer Hönle (29 Januar 2010)

Was verstehts Du unter koppeln? Nullmodemkabel zwischen den beiden Ports? Warum dann beide überwachen? Stehe irgendwie  auf dem Schlauch.


----------



## Perfektionist (29 Januar 2010)

*glaskugelauspack* Gehts eventuell darum, den Datenverkehr beider Richtungen gleichzeitg abzuhören?


----------



## steinche (29 Januar 2010)

Hallo Rainer,

aaalso. Wir haben

PC mit Sondersoftware (PC1)
BlackBox (BB)
mein PC (PC2) mit zwei Com Ports

Normal ist die Verbindung:
PC1 <--> BB

Zum testen:

PC1 <--> PC2 <--> BB

Mit dem Tool habe ich eine Brücke meiner beiden COM Ports hergestellt und den kompletten Datenverkehr darüber laufen lassen.

Viele Grüße
steinche


----------



## argv_user (29 Januar 2010)

steinche schrieb:


> Hallo Rainer,
> 
> mit der Free Version kann ich keine zwei COM Ports koppeln. Habe jetzt die Trial zum testen und es funktioniert einwandfrei und bereits herausgefunden dass in der Doku zum Protokoll ein Zeichen gefehlt hat ..... ob das Zufall ist
> 
> ...



Was meinst Du denn mit "koppeln"?

Ich verstehe das so, dass Du die Kommunikation zwischen bestehenden Geräten analysieren möchtest.

Beim Einsatz eines Beobachtungsrechners brauchst Du neben der Software auch noch die leidige Harware; will sagen, um eine Fullduplex-Kommunikation extern mitzuschneiden braucht es einen PC mit ZWEI seriellen Schnittstellen, eine passende Anzapfschaltung, und ein möglichst echtzeitfähiges Betriebssystem. Früher war das DOS.


EDIT: Ich war wohl etwas langsam, aber wo ist denn eigentlich jetzt Dein Probelm?


----------



## Rainer Hönle (29 Januar 2010)

Perfektionist schrieb:


> *glaskugelauspack* Gehts eventuell darum, den Datenverkehr beider Richtungen gleichzeitg abzuhören?



Glaskugel zuhäng. Das Tool protokolliert selbstverständlich Sende- und Empfangsdaten.


----------



## Rainer Hönle (29 Januar 2010)

steinche schrieb:


> Hallo Rainer,
> 
> aaalso. Wir haben
> 
> ...


Ist meiner Meinung nach überflüssig. Mit dem Tool einfach PC1 <--> BB und das Tool auf PC1 installieren. Dann siehst Du, was alles hin- und hergeht. 
Die Variante die Du dargestellt hast, war zu DOS-Zeiten notwendig. Seit Win32 ist dieser Aufwand nicht mehr notwendig.


----------



## Perfektionist (29 Januar 2010)

Rainer Hönle schrieb:


> ... und das Tool auf PC1 installieren. ...


*mitglaskugelnachrainerschmeiss* ja, natürlich, wenn man in den PC eingreift und nicht nur lauscht, dann ...


----------



## Rainer Hönle (29 Januar 2010)

*Glaskugelauffang und fallen lass* Natürlich die Software direkt auf dem PC installieren. Der Rest ist viel zu aufwändig. Beispiel: Du hast zwei serielle Schnittstellen am Lausch-PC, bei denen die Empfangsleitung jeweils mit der Sende- bzw. der Empfangsleitung des Datenverkehr-PCs verbunden ist. Wenn es nun darum geht, die Kommunikation  mitzuprotokollieren, dann hast Du das Problem, dass Du von der Schnittstelle zwei Interrupts bekommst, zwei getrennte Empfangspuffer hast und nicht genau sagen kannst, ob der zeitliche Zusammenhang, der Dir angezeigt wird auch dem tatsächlichen Verkehr entspricht. Wie gesagt war das unter DOS die einzige Möglichkeit (und da habe ich mir ein solches Programm selbergeschrieben und kenne die damit verbundene Problematik gut) ist aber heute einfacher zu lösen.


----------



## Perfektionist (29 Januar 2010)

steinche schrieb:


> ...
> PC mit Sondersoftware (PC1)
> ...


*glaskugelaufrainersfussauftrifft* 
ne, mal nichts für ungut - aber ich hab nirgenswo gelesen, was für ein Betriebssystem auf diesem PC läuft ... (ich muss allerdings auch zugeben, dass ich mich nicht drum gekümmert habe, auf welchen Plattformen das Tool funktionsfähig ist).


----------



## Rainer Hönle (29 Januar 2010)

Perfektionist schrieb:


> *glaskugelaufrainersfussauftrifft*


So große Füße hab ich nicht.


> ne, mal nichts für ungut - aber ich hab nirgenswo gelesen, was für ein Betriebssystem auf diesem PC läuft ... (ich muss allerdings auch zugeben, dass ich mich nicht drum gekümmert habe, auf welchen Plattformen das Tool funktionsfähig ist).


Warten wir mal ab, was Steinche dazu schreibt. Das Tool läuft übrigens auf Win32-Betriebsystemen.


----------



## Perfektionist (29 Januar 2010)

Rainer Hönle schrieb:


> So große Füße hab ich nicht.
> ...


*schmunzel* der war gut - da kann ich jetzt nicht mehr mithalten ...


----------



## steinche (29 Januar 2010)

Hallo Zusammen,

hätte nicht gedacht, so eine Lawine auszulösen 

Dann kommt jetzt doch eine ausführliche Schilderung der ganzen Situation. Ich arbeite in einem Großtanklager, eine der wichtigsten Messgrößen ist hier der Füllstand. Auf einem WindowsXP PC läuft eine, vor vielen Jahren, geschriebene Software, die an verschiedene Messsysteme sowie an die SPS ankoppeln kann. Da dass System jedoch etwas in die Jahre gekommen ist und der Programmierer nicht mehr so die Muse hat, es zu entwickeln, haben wir uns entschlossen, alles in die SPS zu verlagern. Für 64 Füllstande, die mit Schwimmen und Schlitzinitiatoren arbeiten habe ich 8 FM350-2 Zählerbaugruppen via Profinet an die SPS angebunden. Somit haben wir diese Füllstände schonmal direkt in der SPS. Zwei Radargeräte sind auch schon direkt aufgelegt aber dann haben wir noch unsere Sorgenkinder. Die Proservos der Firma E+H, die via Rackbus untereinander verbunden sind. Insgesamt haben wir 4 Rackbus-Segmente mit z.T. 9 Slaves pro Bussegment. Am Ende jedes Segments sitzt ein sogenannter Rackbus Master. Dies ist auch ein Eigenbau des Programmierers, der die PC Software geschrieben hat. Die Kommunikation zwischen den Proservo Füllstandsmessern und dem PC Programm erfolgt über den Rackbusmaster, wobei dieser nur die Telegramme umsetzt. Der PC schickt also an den Rackbusmaster den Befehl zum Auslesen des Füllstandes an den Proservo Slave 1. Am liebsten hätten wir den Rackbus direkt an eine RS485 CP der SPS angebunden, jedoch haben weder die Fa. E+H noch der Programmierer Informationen über den Telegrammaufbau! Es besteht jedoch eine Dokumentation wie das Telegramm zwischen PC und Rackbusmaster aufgebaut ist und auch in welchen Adressregistern des Proservos die gewünschten Daten zu finden sind. Mittels dieser Informationen wollte ich mit einem zweiten PC die Kommunikation nachbilden um sicher zu gehen. Das die Informationen stimmen. Und da kam es nun dazu, dass er nicht funktioniert hat. Deswegen wollte ich den Datenverkehr zwischen PC und Rackbusmaster unter die Lupe nehmen. Auf dem WindowsXP PC mit der Tankdatensoftware wollte ich nichts installieren, da das Personal bei diesem Rechner etwas "komisch" ist. Als Lösung kam mir die Idee, mich zwischen die beiden Kommunikationspartner zu klemmen und so den Datenfluss zu protokollieren. Mit der 14 Tage Trial Version der Software konnte ich dann auch eine Bridge zwischen meinen beiden Com Ports herstellen und den Datenfluss (mit Zeitstempel) protokollieren. So war sofort erkennbar, dass in der Dokumentation des Protokolls ein 'c' gefehlt hat.

Jetzt habe ich generell noch eine Verständnis-Frage. Der PC mit der Tanksoftware öffnet ja den COM Port. Könnte trotzdem noch eine zweite Software den Datenverkehr mitprotokollieren? Es kommt dazu, dass die COM Schnittstelle über einen MOXA Server laufen (8 COM Ports via Ethernet am PC) Die einzelnen COM Ports sind also nicht im Geräte Manager zu sehen.

Viele Grüße und allen ein schönes Wochenende
steinche


----------



## Gerhard Bäurle (29 Januar 2010)

Hallo,

soweit ich mich erinnern kann, ist *PG-Fox* von PI ganz brauchbar,
wenn man eine serielle Kommunikation "von außen" analysieren 
möchte.


----------



## kermit (29 Januar 2010)

Hihi, jetzt kann Perfektionist die Scherben seiner Kugel vor Rainers Füßen aufkehren


----------



## Question_mark (29 Januar 2010)

*Habe ich denn nun das Problem wenigstens richtig verstanden*

Hallo,

zuerst mal habe ich immer noch nicht so ganz das Problem vom steinche verstanden, also noch nicht so ganz ...

Da gibt es zum einen die Möglichkeit, wie von Rainer Hönle vorgeschlagen, eine Software auf dem PC zu installieren, die die Com Ports des PCs überwacht und den Datenverkehr über den COM Port protokolliert. Aber anscheinend sind diese COM Ports auf dem PC nicht wirklich vorhanden (und anscheinend auch nicht mal virtuell) da über den Moxa Server (was immer das sein mag) auf Ethernet umgeleitet wird.
Das könnte man m.E. dann trotzdem mit Wireshark mitschreiben.

Die andere Variante ist eben einen PC zum Protokollieren physikalisch in die Schnittstelle zu integrieren, wie von Gerhard vorgeschlagen. Und ich denke mal, das ist genau die Intention des TE, da die Softwarelösung zum Überwachen vom TE wegen und weil 



			
				steinche schrieb:
			
		

> da das Personal bei diesem Rechner etwas "komisch" ist.



anscheinend nicht in Frage kommt (warum auch immer).

Und wenn ich mir das ganze so durchlese, dann möchte steinche gerne sich mit einem 2. PC pysikalisch in die TTY oder RS232 Schnittstelle einklinken. Aber bitte korrigiert mich, wenn ich das evtl. falsch verstanden habe.

Also entweder mit Wireshark auf dem PC1 die durch den Moxa Server von den 8 COM-Geräten auf der Ethernet Ebene protokollieren. Oder aber sich mit einen PC2 in eine der 8 RS232 (oder TTY) - Schleifen physikalisch einschleifen. Dazu ist die Software SIOCheck für mich die erste Wahl, die Hardware dazu kann man sich leicht selber zurechtbasteln.

Gruß

Question_mark

PS : Ich hoffe mal, ich habe das Problem vom steinche richtig verstanden


----------



## Rainer Hönle (30 Januar 2010)

Installiert der Moxa-Server nicht virtuelle COM-Ports, damit der Server von jedem normalen Programm aus verwendet werden kann? Diese können mit dem von mir erwähnten Tool selbstverständlich auch überwacht werden.
Wireshark würde ich bei Remote-Seriell-Servern nicht empfehlen. In der Regel wird zwischen PC und Remote-Server ein RFCxxx-Protokoll gefahren, das erst einmal eliminiert werden muss, damit man den Verkehr sieht. Über Spezialsequenzen werden dann die Steuerleitungen und sonstige Schnittstelleneinstellungen gesetzt und abgefragt. Das stört zusätzlich. Also nur verwenden, wenn nichts anderes mehr geht ...


----------



## Perfektionist (30 Januar 2010)

kermit schrieb:


> Hihi, jetzt kann Perfektionist die Scherben seiner Kugel vor Rainers Füßen aufkehren


geh Du mal brav in den Forenteil zurück, wo Du hingehörst ...



steinche schrieb:


> ...
> Auf dem WindowsXP PC mit der Tankdatensoftware wollte ich nichts installieren, da das Personal bei diesem Rechner etwas "komisch" ist.
> ...


Dann scheint ja dieser Rechner sehr wichtig zu sein. Was passiert, wenn dieser Rechner ausfällt (mein Hintergedanke: dann muss ja schnellstens ein Ersatzrechner her)? Für diesen Fall müsste doch Vorsorge getroffen sein. Kann diese Vorsorge dafür missbraucht werden, temporär mal was auf dem Rechner zu installieren und ihn danach wieder in seinen Ursprungszustand zurückzuversetzen?


----------



## Senator42 (31 Januar 2010)

*RS232 mitschneiden*

hallo
gute erfahrung habe ich mit Binterm gemacht.

PC1 ---Txd--------------o------------------- Rxd
      --- Rxd----------o----------------------- Txd
                              !    !
                              !    !
                              !    +----- Rxd COM1
                              +--------- Rxd COM2

PC2 mit Binterm und 2 Com (RS232-USB-Wandler geht auch)

GND habe ich nicht eingezeichnet, muss natürlich überall angeschlossen werden.
RTS,CTS usw. auch falls nötig.

ach ja,  Binterm kostet nix.







steinche schrieb:


> Hallo zusammen,
> 
> ich bin jetzt schon einige Programme durchgegangen, habe aber noch nicht das passende gefunden. Ich muss den Datenstrom zwischen einem PC und einem externen Gerät protokollieren. Dazu möchte ich mich mit einem zweiten PC (zwei Com Ports)  in die Datenleitung hängen. Mit welchem Programm ist das machbar?
> Mit eine den bisherigen Programmen kann ich auf dem Protokoll-PC die Daten nicht zwischen Com1 und Com2 koppeln.
> ...


----------



## argv_user (31 Januar 2010)

Senator42 schrieb:


> hallo
> gute erfahrung habe ich mit Binterm gemacht.
> 
> PC1 ---Txd--------------o------------------- Rxd
> ...



Kleiner Hinweis:

Gerade bei etwas längeren Leitungen ist nicht unbedingt davon auszugehen, dass RS232 Verwendung findet; eher RS422 oder wenn die Anlage schon etwas älter ist sogar eine Stromschleife aka 20mA TTY. Vor allem in Industrieanlagen...


----------



## Question_mark (31 Januar 2010)

Hallo,



			
				argv_user schrieb:
			
		

> Gerade bei etwas längeren Leitungen ist nicht unbedingt davon auszugehen, dass RS232 Verwendung findet



*ACK*

Bei Leitungslängen > 10 Meter ist mit RS232 (bei manchen auch V24 genannt) sowieso Schicht im Schacht ... Im Umfeld von störenden Einflüssen manchmal auch schon früher.

Gruß

Question_mark


----------



## Question_mark (31 Januar 2010)

*Ich werde  zum Fragezeichen ...*

Hallo,



			
				Rainer Hönle schrieb:
			
		

> Installiert der Moxa-Server nicht virtuelle COM-Ports, damit der Server von jedem normalen Programm aus verwendet werden kann?



Das war auch mein erster Gedanke...
Aber dann habe ich das hier gelesen :



			
				steinche schrieb:
			
		

> Die einzelnen COM Ports sind also nicht im Geräte Manager zu sehen.



Und erstarre hiermit zu einem riesigen Fragezeichen (nomen est omen). Kann aber auch daran liegen, das ich den Moxa-Server nicht kenne ?
Vielleicht hat der Moxa-Server ein eigenes OS, erstellt dort die *echten* ComPorts und schiebt das ganze über Ethernet in den PC ? Nur eine Vermutung von mir, da kann ich auch völlig falsch liegen. 

Gruß

Question_mark


----------



## Rainer Hönle (1 Februar 2010)

Egal ob sichtbar oder nicht, Hauptsache mit CreateFile lässt sich der COM-Port öffnen. Ansonsten wäre das Teil ja komplett unbrauchbar für eine normale Anwendung. Denn wer schreibt schon ein Software, die dann ausschließlich mit einem MOXA-Server und nicht mit physikalischen oder "normalen" virtuellen COM-Ports läuft.


----------



## Senator42 (1 Februar 2010)

*RS422,485, TTY mitschneiden*

TTY lässt sich auch mitschneiden, einfach die 2 Dioden vom Optokoppler in die Rx und Tx Leitung einschleifen. Man muss da aber passenden Stecker zusammenlöten.
Prinzipiell könnte das auch mit RS422 funktionieren. Mit 485 zu 99% denn der kann ja Bus (Profibus, DMX und CAN)
Die entsprechenden Wandler (Interface) gibts sicher am Markt. (Helmholz, Vipa, RS-Elektronic, vielleicht auch Reichelt)
Auf der Verpackung der RS-Interface Converter 422,485 steht Monitoring drauf.




argv_user schrieb:


> Kleiner Hinweis:
> 
> Gerade bei etwas längeren Leitungen ist nicht unbedingt davon auszugehen, dass RS232 Verwendung findet; eher RS422 oder wenn die Anlage schon etwas älter ist sogar eine Stromschleife aka 20mA TTY. Vor allem in Industrieanlagen...


----------



## steinche (3 Februar 2010)

Hallo zusammen,

dann werde ich versuchen, alles etwas zu entwirren.
Für den MOXA Server gibt es eine Software, die, ich denke mal, virtuelle Com Ports erstellt. In der Software wird die IP Adresse des MOXA Servers eingetragen und die Zuordnung der 8 Ports zu COM Adressen.
Der PC ist hier eine heilige Kuh. Es gibt noch einen zweiten als Ersatz, aber da darf man so einfach auch nicht ran. Da es aber immer wieder Probleme damit gibt entweder das sich Windows aufhängt, oder das Programm selbst. Möchte ich die ganze Funktion des PCs in die SPS verlagern. Dort ist sie meiner Meinung nach auch besser aufgehoben, denn letztendlich reagiert die SPS nur auf Werte die vom PC kommen.
Wie schon geschrieben liegen die Werte von 3/4 der Standmessungen bereits der SPS bereit. Durch das Mitschneiden der RS232 Kommunikation zwischen PC und Rackbusmaster ist der nächste Schritt, zwei CP 441-2 mit den vier Rackbusmastern über RS232 zu verbinden und so das letzte viertel des Messtechnik direkt an die SPS anzubinden. Dann sterben PC und MOXA Server. Eigentliches Ziel war, auch die Rackbusmaster zu eliminieren und die CPs direkt an den Rackbus anzuschließen. Dies ist eine RS485 Verbindung und hier wäre die nächste Frage zur Protokollierung gekommen. Aber da sich der Thread hier so schön entwickelt hat, komme ich mit den vorhanden Infos bestimmt schonmal weiter.

Viele Grüße
steinche

P.s.: Der Rackbusmaster macht die Umsetzung von RS232 auf Rackbus. Rackbus ist ein Bus der Firma E+H, der jedoch seitens der Firma E+H begraben wurde und auch keine Informationen mehr darüber vorhanden sind :-(


----------

