Forum: PC-Programmierung Wie gut kommt Windows mit mehreren Schnittstellen klar?


von Unwissender (Gast)


Lesenswert?

Hallo,

ich stehe vor der Aufgabe, Daten von mehreren Schnittstellen (bis zu 3 
serielle Schnittstellen und 3 Ethernet Schnittstellen) in einem PC 
Programm zu verarbeiten. Die Frage ist nun, wie gehe ich sowas am besten 
an?

Mein Ansatz wäre gewesen, die Daten von allen Schnittstellen mit einem 
(leistungsstarken) Mikrocontroller zu sammeln und dann gebündelt über 
eine Schnittstelle (z.B RS232) zum Windows PC zu übertragen. Die 
Vorteile wären meines Erachtens:

-) Wenn der PC mal abstürzt, dann kann ich die Daten auf dem 
Mikrocontroller über ein paar Stunden im Flash zwischenspeichern
-) Windows muss nur eine Schnittstelle verwalten (verminderte 
Fehleranfälligkeit)
-) Ich kann die Daten im Mikrocontroller bereits ein bisschen 
aufbereiten und erste Plausibilitätschecks der Daten machen.

Da ich aber immer mehr Systeme sehe, wo Windows für Anwendungen 
eingesetzt wird, wo ich eigentlich einen Mikrocontroller oder DSP 
erwartet hätte, bin ich nun doch etwas ins grübeln gekommen. Mache ich 
mir vielleicht zu viele Gedanken und Windows packt das ohnehin mit 
links? Wie würdet ihr das machen?

P.S: Die UARTs übertragen mit max. 19200 Baud und auf der Ethernet 
Schnittstelle werden max. alle 500ms Daten übertragen.

von (prx) A. K. (prx)


Lesenswert?

Unwissender schrieb:
> ich stehe vor der Aufgabe, Daten von mehreren Schnittstellen (bis zu 3
> serielle Schnittstellen und 3 Ethernet Schnittstellen) in einem PC
> Programm zu verarbeiten.

Mit einer solch immensen Zahl an Schnittstellen kamen die PCs schon vor 
30 Jahren mühelos zurecht. ;-)

Wenn dein PC oft genug abstürzt, um entsprechende Gedanken zu 
rechtfertigen, dann hast du den falschen PC.

von Dr. Sommer (Gast)


Lesenswert?

Mehrere serielle Schnittstellen und Netzwerk-Karten sind, korrekte 
Konfiguration vorrausgesetzt, kein Problem. Das einzige Problem ist dass 
du nicht wirklich realtime-artig schnell antworten kannst (wie das zB 
zur steuerung von CNC-Maschinen oder so nötig wäre). Der Datendurchsatz 
an sich ist aber unkritisch.
Der Vorteil von einfach nur Windows zu verwenden ist, dass die 
Programmierung dort vermutlich viel unaufwändiger ist, da man mehr 
Speicher hat und auch "einfache" Sprachen wie ruby verwenden kann.
Gleiches gilt natürlich auch für Linux. Das könnte man dann auch auf was 
kleineres wie ein Cubieboard o.ä. packen.

von Unwissender (Gast)


Lesenswert?

A. K. schrieb:
> Mit einer solch immensen Zahl an Schnittstellen kamen die PCs schon vor
> 30 Jahren zurecht. ;-)

Ich weiß auch nicht, vielleicht bediene ich Windows einfach falsch, aber 
an meinem PC kommt es immer mal wieder vor, dass Windows aus mir 
unerfindlichen Gründen ein Schnittstelle nicht kennt. Meistens hilft 
dann ein einfaches aus - und wieder einstecken, in seltenen Fällen 
geht's dann nur noch mit einem Neustart. Da wäre es dann schon ganz toll 
wenn in der Zwischenzeit die Daten irgendwo zwischengespeichert werden.

von (prx) A. K. (prx)


Lesenswert?

Unwissender schrieb:
> Ich weiß auch nicht, vielleicht bediene ich Windows einfach falsch, aber
> an meinem PC kommt es immer mal wieder vor, dass Windows aus mir
> unerfindlichen Gründen ein Schnittstelle nicht kennt.

Vor 30 Jahren gab es auch noch kein USB. ;-)

Nimm eine serielle Schnittstellenkarte, dann bist du den Zirkus mit 
unsauberen Treibern von USB-Seriell-Karten los. Oder nimm saubere 
USB-Konverter mit sauberen Treibern.

von K. (Gast)


Lesenswert?

Oh ha ...
3 (in Worten drei)serielle Schnittstellen und dann auch noch Daten vom 
Ethernet (wieder drei an der Zahl, dazu noch im 500ms-Takt)

Hölle-Hölle!

Da wirste sicher 'n high-end Multi-Core System mit nicht unter 22.0000 
GHz brauchen. Gut - vielleicht nur 10.000; der 
Mikrocontroller-Datenkonzentrator reisst es schon raus. So eine geballte 
Rechenleistung sollte man wirklich nicht unterschätzen!

Mal ehrlich, hast du auch nur den blassesten Schimmer von dem was du da 
tust?

Mein Rat ist: Lass einfach die Finger davon: Was immer du da mit deinem 
halben Dreiviertelwissen verzapfst, es wird Probleme ohne Ende machen.

Such dir jemanden der es kann und dir zum Festpreis liefert (sollte 
wirklich nicht schwer sein). Macht das Leben einfacher und du blamierst 
dich nicht bis auf die Knochen ...

K.

von Unwissender (Gast)


Lesenswert?

Nur mal langsam! Wenn du meinen Beitrag aufmerksam gelesen hättest, dann 
hättest du vielleicht gemerkt, dass ich in keinem Wort erwähnt habe, 
dass Windows dafür zu langsam ist...

Und keine Sorge, ich blamier mich schon nicht. Zum Glück gibt es ja so 
kompetente Leute wie dich, die mit hilfreichen Ratschlägen nur so um 
sich werfen.

@A.K: Danke, werde deine Ratschläge beherzigen. Jetzt wo ich so darüber 
nachdenke, wird mir klar, dass ich eigentlich immer nur mit billigen USB 
Konvertern Probleme hatte. Die mit nem FTDI Chipsatz funktionierten 
eigentlich immer recht problemlos.

@ Dr. Sommer: Realtime ist bei den Datenübertragungsraten wirklich kein 
Thema, das stimmt. Ich denke ich werde es einfach mal darauf ankommen 
lassen und das einfach mal implementieren und ausprobieren. In Python 
sollte das ja recht schnell erledigt sein.

K. schrieb:
> Oh ha ...
> 3 (in Worten drei)serielle Schnittstellen und dann auch noch Daten vom
> Ethernet (wieder drei an der Zahl, dazu noch im 500ms-Takt)
>
> Hölle-Hölle!
>
> Da wirste sicher 'n high-end Multi-Core System mit nicht unter 22.0000
> GHz brauchen. Gut - vielleicht nur 10.000; der
> Mikrocontroller-Datenkonzentrator reisst es schon raus. So eine geballte
> Rechenleistung sollte man wirklich nicht unterschätzen!
>
> Mal ehrlich, hast du auch nur den blassesten Schimmer von dem was du da
> tust?
>
> Mein Rat ist: Lass einfach die Finger davon: Was immer du da mit deinem
> halben Dreiviertelwissen verzapfst, es wird Probleme ohne Ende machen.
>
> Such dir jemanden der es kann und dir zum Festpreis liefert (sollte
> wirklich nicht schwer sein). Macht das Leben einfacher und du blamierst
> dich nicht bis auf die Knochen ...
>
> K.

von COM (Gast)


Lesenswert?

Ich kann aus langjähriger Erfahrung mit Windowsanwendungen im 
Dauerbetrieb nur unterstreichen, dass es sinnvoll ist, die ca. 100 EUR 
für eine serielle Schnittstellenkarte zu investieren (z.B. von Moxa).

von amateur (Gast)


Lesenswert?

Wie viel Daten, wie schnell?

Wie schon an anderer Stelle gesagt: Windoof kommt schon sehr lange mit 
mehreren Schnittstellen(karten) zurecht.
Wenn Du Angst vor Verlusten hast, stecke ein paar Cleverle rein, mit 
eigenem Speicher und Controller.

Früher war es mal üblich, wenn Dein Rechner abstürzt, nach der Ursache 
zu suchen. Wenn's natürlich nicht stört...
Eine gute Karte, eine ordentliche Konfiguration, dann kannst Du diese 
als Ursache ausschließen.

von Karl H. (kbuchegg)


Lesenswert?

K. schrieb:

> So eine geballte
> Rechenleistung sollte man wirklich nicht unterschätzen!

:-)
Ja, gell. Ist immer wieder lustig.

Ein Nasenpopel-PC vom Aldi hat heutzutage die x-zig-fache Rechenleistung 
eines Grossrechners von vor 30 Jahren.
Der einzige Unterschied: Den PC hast du für dich alleine, während der 
Grossrechner in einer Versicherung gleichzeitig alle 1023 
Versicherungsvertreter an ihren Terminals bedienen musste und das auch 
hingekriegt hat.
Ach ja, einen Unterschied gibts noch: Der PC kostet 300 Euro. Der 
Grossrechner hat damals ab 300-tausend DM aufwärts gekostet.

von (prx) A. K. (prx)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ach ja, einen Unterschied gibts noch: Der PC kostet 300 Euro. Der
> Grossrechner hat damals ab 300-tausend DM aufwärts gekostet.

Einen weiteren Unterschied gibts aber auch noch: Der Grossrechner hatte 
keine seriellen Schnittstellen mit zeichenweiser Interaktion. Sondern 
Blockmode-Terminals, die zudem zunächst mit Vorrechnern kommunizierten. 
So dass der Grossrecher nur in grösseren Abständen vom 
Versicherungsvertreter behelligt wurde, nicht bei jedem einzelnen 
Tastendruck und jedem einzelnen ausgegebenen Zeichen.

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.