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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.