Guten Tag,
ich stecke im Moment in der Planung eines Projektes und da ich noch
nicht so viel Erfahrung mit Hardware-Ansteuerung (reiner
Software-Entwickler) habe, wollte ich hier mal Meinungen einholen.
Vorweg; das System wird mehr als 10 Jahre bestehen bleiben und die
verwendete Hardware sollte noch verfügbar sein oder einfach zu ersetzen
sein.
Es geht um die Ansteuerung eines Messplatzes innerhalb eines Labors. Der
Messplatz hat 4 Motoren (4x PWM ist nötig für die Treiber) und 5
Sensoren (digital) verbaut. Die Steuerung soll dann über eine GUI auf
einem PC laufen.
Ich habe grundsätzlich zwei Ideen; entweder einen LabJack T7 oder einen
Arduino. Bei dem Arduino bin ich skeptisch, ob diese in 10 Jahren immer
noch verfügbar sind. Außerdem wäre wahrscheinlich der
Entwicklungsaufwand höher, da der Arduino selber zu programmieren wäre.
Im Gegensatz hat der T7 eine mitgelieferte Bibliothek, die die Steuerung
aus einer Reihe von gängigen Sprachen ermöglicht. Zudem zielt LabJack
ausdrücklich darauf ab, über einer langen Zeitraum verfügbar zu sein und
hat keine Pläne die Geräte einzustellen, bevor nicht dessen Komponenten
nicht mehr verfügbar sind und diese wurden von Herstellern mit dem Ruf
einer langen Verfügbarkeit ausgewählt. So explizit habe ich das bei
Arduino nicht gefunden.
Eine weitere Möglichkeit mit dem T7 wäre es, ihn nicht über die
mitgelieferte Bibliothek zu steuern, sondern via Modbus (wäre mehr
Programmieraufwand, aber immer noch weniger als beim Arduino meiner
Einschätzung nach). Das hätte den Vorteil, dass der T7 mit geringem
Aufwand auch durch ein Gerät eines anderen Herstellers (Modbus
vorausgesetzt) ausgetauscht werden kann.
Deswegen spricht aus meiner Sicht viel für den T7 und auch der hohe
Preis wäre gerechtfertigt, jedoch kann ich das mangels fehlender
Erfahrung nicht gut einschätzen und würde mich über Feedback freuen.
Oder gibt es noch eine komplett andere Lösung, die ich noch nicht
betrachtet habe?
VG Tobias
Tobias schrieb:> Bei dem Arduino bin ich skeptisch, ob diese in 10 Jahren immer noch> verfügbar sind.
Es gibt sie schon 17 Jahre, und es ist kein Ende in Sicht.
Zudem kann man sie nachfertigen, alle Produktionsunterlagen sind open
source.
Vergiss LabJack.
Tobias schrieb:> Es geht um die Ansteuerung eines Messplatzes innerhalb eines Labors.> ...> Ich habe grundsätzlich zwei Ideen; entweder einen LabJack T7 oder einen> Arduino. Bei dem Arduino bin ich skeptisch, ob diese in 10 Jahren immer> noch verfügbar sind.
Warum willst du ausgerechnet in 10 Jahren die Ansteuerung tauschen?
Auch in 10 Jahren wird es kleine Prozessoren geben, wie sie auf Arduino
Boards sitzen. Es gibt übrigens nicht "den Arduino".
https://store.arduino.cc/collections/boards
Für den Preis eines LabJack T7 kannst du dir ungefähr 10 bis 200 Arduino
(kompatible) Boards auf Lager legen. Wenn es, wie du schreibst, um einen
Messplatz geht, sollte das doch möglich sein. Nur das Programm solltest
du dann wieder neu aufspielen, weil sich der Inhalt des
Programmspeichers im Flash nicht ewig hält.
Abhängig davon was für "digitale Sensoren" das sind und was für ein
Protokoll sie verwenden würde ich sagen: nimm eine fertige
Kleinsteuerung der Industrie.
Die bekommst du je nach Hersteller auch noch in 20 Jahren.
Ansonsten sehe ich es so wie Wolfgang. Kauf halt ein paar von den
Dingern und lege sie auf Lager. Der Preis für das 10 Jahre einlagern
wird den Kaufpreis deutlich übersteigen.
Je nach dem was für Motoren bzw. Sensoren es sind wirst du aber
vielleicht auch noch eine Außenbeschaltung deines Arduino benötigen.
Eigene Platine?
Freifliegend?
Gehäuse?
Stecker?
Edit: Typo
Es kommt drauf an, wenn du es auf einem Arduino Uno implementieren
kannst, würde ich eindeutig den Uno einem LabJack vorziehen.
Bei manchen Arduinos wäre ich mir nicht sicher was die
Langzeitverfügbarkeit angeht, wobei dir natürlich die Möglichkeit bleibt
2-3 Arduinos auf Lager zu legen. Den Uno wird es vermutlich noch in
vielen Jahren geben, bzw. eine komplett kompatible Variante. Immerhin
ist der Arduino Uno auch noch mit den ersten Arduinos vor 15 Jahren
kompatibel.
Aus meiner Sicht kann man beides nicht vergleichen. LabJack ist ein
fertiges System um Ein- und Ausgänge über den PC zu steuern.
Man kann das mit Arduino nachprogrammieren. Die HW braucht man trotzdem,
die muss man auch Entwicklen. Die ist nicht ganz trivial. Also
Eingangsbeschaltung, Relais, Netzwerk usw. usw.
Der Entwicklungsaufwand ist relativ groß. Erst mal machen.
Daher WENN ich solche Bausteine wie LabJack für etwas brauche, dann
kaufe ich sie. Und fange nicht an die zu bauen.
Vielen Dank für die schnellen und hilfreichen Antworten.
Wolfgang schrieb:> Es gibt übrigens nicht "den Arduino".> https://store.arduino.cc/collections/boards
Ein passendes Modell habe ich mir bei Arduino noch nicht rausgesucht.
Wolfgang schrieb:> Warum willst du ausgerechnet in 10 Jahren die Ansteuerung tauschen?
Das wird natürlich nur der Fall sein, wenn die verwendete Hardware dann
den Geist aufgibt.
MaWin schrieb:> Es gibt sie schon 17 Jahre, und es ist kein Ende in Sicht.
Ja, aber nach meiner Information nicht die gleichen Modelle und es wäre
in dem Fall nicht sicher gestellt, dass das selbe Programm drauf läuft.
Oder liege ich da falsch? Es könnte ja sein, dass andere Register für
eine bestimmte Funktion geschrieben werden müssen, das war auf jeden
Fall mein Gedanke.
N. M. schrieb:> e nach dem was für Motoren bzw. Sensoren es sind wirst du aber> vielleicht auch noch eine Außenbeschaltung deines Arduino benötigen.
Also die Motoren werden über einen Treiber gesteuert und der braucht ein
PWM Signal. Die Sensoren sind einfache Endschalter. Also das dürfte für
einen Arduino (welcher auch immer es dann wird) kein Problem sein.
Findet Ihr denn grundsätzlich einen Arduino (z.B. ATmega 2560) als die
beste µC-Lösung oder kennt Ihr noch andere µC, die ich mir anschauen
könnte?
Tobias schrieb:> aber nach meiner Information nicht die gleichen Modelle
Na ja, Uno mit 328 ist aber auch schon 15 Jahre alt. Nur den 8er gibt es
nicht mehr zu kaufen - aber sehr wohl selbst zusammenzustecken.
Tobias schrieb:> Findet Ihr denn grundsätzlich einen Arduino (z.B. ATmega 2560) als die> beste µC-Lösung
Grundsätzlich ist die beste Lösung die, die zum Problem passt, über das
du NATÜRLICH nichts schreibst.
Aber um 10 Jahre einen PC mit einer 700 EUR Erweiterung laufen zu lassen
muss das ja schon ein sehr lang laufendes Laborexperiment sein bei dem
Kosten keine Rolle spielen.
MaWin schrieb:> Aber um 10 Jahre einen PC mit einer 700 EUR Erweiterung laufen zu lassen> muss das ja schon ein sehr lang laufendes Laborexperiment sein bei dem> Kosten keine Rolle spielen.
Es könnte ein Prüfplatz für ein Produkt sein, dessen Lebensdauer 10
Jahre betragen sollte.
MaWin schrieb:> Grundsätzlich ist die beste Lösung die, die zum Problem passt, über das> du NATÜRLICH nichts schreibst.
Ich bitte um Entschuldigung. Welche Informationen fehlen Dir zu dem
Problem? Ich wollte den Beitrag nicht in die Länge ziehen.
Wie gesagt, es geht um eine Messstation, in der die genannten
Komponenten verbaut sind. Die Motoren verfahren einen Messtisch, der bis
zu bestimmten Position verfahren werden soll, das erreichen der
Positionen wird über die Endschalter erkannt.
Die Motoren sollen nach Auswahl des Benutzers über eine GUI (via C#)
gesteuert werden. Je nachdem, ob die Endschalter aktiviert sind, müssen
die Motoren gestoppt werden.
Es handelt sich um eine Messstation, an der im Dienstleistungsbetrieb
Kalibrierungen durchgeführt werden.
Tobias schrieb:> Welche Informationen fehlen Dir zu dem Problem?
Du verrätst weder etwas zu den PWM-Signalen (Frequenz (-bereich), Pegel,
Änderungsgeschwindigkeit), noch etwas zu den Sensoren (Schnittstelle,
Abtastfrequenz, Pegel).
Für Schlittenverstellung wären doch Schrittmotoren die einfachste Sache,
damit der Controller direkt die Hoheit über die Position besitzt.
Einfach Motor am Endschalter stoppen funktioniert als
Sicherheitsschaltung, aber nicht für saubere
Positionssteuerung/-regelung (Systemträgheit).
Schnittstellen (nach aussen ) klar definieren.
Dann spielt es keine Rolle mehr, was (innendrin) werkelt.
Alternative: Hardware horten - in der Hoffnung dass sie nach >10 Jahren
noch tut. Hast halt Lagerkosten
Tobias schrieb:> Es handelt sich um eine Messstation, an der im Dienstleistungsbetrieb> Kalibrierungen durchgeführt werden.
Ok, Geld spielt keine Rolle ..
Wenn der PC sowieso laufen muss (der hält aber keine 10 Jahre, und hat
auch kein RS485).
ein PC hält auch locker 20 Jahre, man muss ja nicht eine gnadenlos
übertaktete Gamer Kiste nehmen.
Ich hätte eher Bedenken das der Labjack so lange lieferbar ist. Und wenn
man eine konkrete Anwendung mit spezieller Peripherie hat, dann ist eine
eigene Platine doch sowieso sinnvoll. Arduino Software kann man ja
trotzdem nutzen wenn es unbedingt sein muss.
MaWin schrieb:> Ok, Geld spielt keine Rolle ..>> Wenn der PC sowieso laufen muss (der hält aber keine 10 Jahre, und hat> auch kein RS485).
Mal wieder sinnlos; which MaWin today?
Johannes S. schrieb:> ein PC hält auch locker 20 Jahre, man muss ja nicht eine gnadenlos> übertaktete Gamer Kiste nehmen.
Die Schwachstellen beim PC sind Massenspeicherlebensdauer,
Schnittstellenkompatibilität und OS-Kompatibilität.
Da sieht das über 20 Jahre betrachtet ganz schlecht aus, jedenfalls wenn
der nicht völlig abgekoppelt irgendwo ein Eremitendasein fristet und
halbwegs 24/7 läuft.
Wolfgang schrieb:> Tobias schrieb:>> Welche Informationen fehlen Dir zu dem Problem?>> Du verrätst weder etwas zu den PWM-Signalen (Frequenz (-bereich), Pegel,> Änderungsgeschwindigkeit), noch etwas zu den Sensoren (Schnittstelle,> Abtastfrequenz, Pegel).> Für Schlittenverstellung wären doch Schrittmotoren die einfachste Sache,> damit der Controller direkt die Hoheit über die Position besitzt.> Einfach Motor am Endschalter stoppen funktioniert als> Sicherheitsschaltung, aber nicht für saubere> Positionssteuerung/-regelung (Systemträgheit).
Dir soll es ausreichend sein wenn der TO das sowohl \so\ also auch so
lösen kann, denn Du sollst nicht sein Pflichten oder gar Lastenheft
schreiben sondern eine Antwort geben was aus Deiner Sicht sinnvoller
ist.
iaW da ist Erfahrung gut und nicht pedantisch bis ins letzte Detail
nachfragen um dann doch keine Antwort liefern zu wollen.
@TO: Machs mit einem Arduino, egal ob auf AVR oder ARM-Basis und
dokumentiere den Krempel ordentlich, schreib die SW auf einer Linuxkiste
und packe diese Maschine in eine VM damit Du ggfs "nur" den Unterbau der
VM austauschen kannst. BTDT und so können wir Projekte die 15Jahre alt
sind problemlos weiterbetreuen.
MiWi schrieb:> schreib die SW auf einer Linuxkiste> und packe diese Maschine in eine VM
VM sind keine exklusive Linux Erfindung. Wenn man kein Linux know how
hat, dann kann man 'sein' OS durchaus weiter benutzen. Und es gibt genug
portable IDE Lösungen die auch einen OS Wechsel oder paralelles Nutzen
möglich machen.
Wolfgang schrieb:> Die Schwachstellen beim PC sind Massenspeicherlebensdauer,> Schnittstellenkompatibilität und OS-Kompatibilität.
ein bisschen Pflege ist da schon nötig, ein Auto lässt man auch nicht 20
Jahre ohne Wartung laufen. Backup oder Raid 0 sind auch Möglichkeiten um
HDD Ausfällen den Schrecken zu nehmen.
Tobias schrieb:> Im Gegensatz hat der T7 eine mitgelieferte Bibliothek, die die Steuerung> aus einer Reihe von gängigen Sprachen ermöglicht.
...wenn du in 10 Jahren dafür noch Treiber bekommen kannst!
Wenn das System wirklich so lange laufen soll, würde ich da eine
Trennung einziehen und dokumentieren: Simple digitale Signale für die
Motorsteuerung und I/Os, sauber auf Klemmleiste o.ä.
Welche Steuerung da dran hängt, ist dann am Ende egal. PWM und binäre
Signale wirst du in 10 Jahren wohl irgendwie erzeugen können. Eine
sorgfältige Doku der Abhängigkeiten usw. wird dir auch heute schon beim
Entwickeln helfen.
Eine Alternative wäre eine netzwerkfähige Steuerung, die eine
Web-Oberfläche ausliefert.
Browser und TCP/IP wird es wahrscheinlich noch deutlich länger geben als
USB Treiber Support für ein Nischenprodukt.
Labjack hat hingegen zu arduino externe dioden bei jedem io. Widerstande
fehlen bei beiden.
Nimm firmata zur Ansteuerung. Das braucht kein Code schreiben auf
Arduino.
Johannes S. schrieb:> MiWi schrieb:>> schreib die SW auf einer Linuxkiste>> und packe diese Maschine in eine VM>> VM sind keine exklusive Linux Erfindung. Wenn man kein Linux know how> hat, dann kann man 'sein' OS durchaus weiter benutzen. Und es gibt genug> portable IDE Lösungen die auch einen OS Wechsel oder paralelles Nutzen> möglich machen.>
Stimmt...
doch bedenke: ein schön verpacktes Linux ist auch ohne weiteres
Lizenzgetöse in 10 Jahren in einer VM nutzbar.
Bei einem aktuellen Windows mit seinem Bedürfniss die Lizenzserver
regelmäßig kontatkieren zu wollen bin mir mangels Erfahrung nicht so
sicher ob das in 10 Jahren in einer VM noch zufriedenstellend läuft.
Meiner Meinung nach sind 2 weitere Spezifikationen wichtig:
1.) welche Stückzahl
2.) Wie sind die Sensoren aufgebaut: analog oder digital
Bei Stückzahl 1 und analogen Sensoren mit hohen Anforderungen an die
Genauigkeit ist m.E. ganz klar der Labjack im Vorteil. Ab Stückzahl 100
und geringen oder gar keinen Anforderungen an die Analoggenauigkeit
punktet der Arduino, aber für mehr als 12bit Analoggenauigkeit wirds
aufwendig.
Je nach Budget kann man einen Versuchsaufbau mit Labjack (war das früher
Labview?) machen und dann schauen ob man das ganze nicht in einem µC
implementieren kann.
Ich würde auf den Arduino setzen. Wir haben genug proprietäre Systeme im
Einsatz, für die es vom - noch existierenden - Hersteller keinen Support
mehr gibt. Ein stetiger Quell der Freude...
1. OpenHardware, d.h. man kann den einzelnen Arduino im Notfall sogar
nachbauen, solange noch Chips verfügbar sind.
2. Durch die OpenHardware existieren viele Klone, so daß die Chance
besteht, daß zumindest noch ein Klon verfügbar ist, wenn Arduino selbst
keine Lust mehr auf das Board hat.
3. Um ganz sicherzugehen, eine gewisse Anzahl Arduinos als ET einlagern.
Die kosten ja nicht so viel.
4. Die Programmierung kann i.d.R. über ISP oder USB erfolgen. Wenn es
das Budget erlaubt, dann einen einfachen PC nur für diese Aufgabe
"wegstellen". Ebenso einen Programmer.
5. Die Arduino-IDE abstrahiert die Hardware schon ziemlich, d.h. es wäre
vermutlich später auch relativ problemlos möglich, das Programm auf
einen anderen Arduino zu portieren.
6. 10 Jahre sind keine uendlich lange Zeit. Irgendwann wir es ohnehin
irgendein ET geben (kann auch im mechanischen Teil stecken), das nicht
mehr lieferbar ist, dann ist ohnehin improvisieren angesagt.
zu 1. Ich würde auf einen Arduino mit Atmel-Chip setzen. Microchip/Atmel
sind dafür bekannt, daß sie i.a. lange Produktlaufzeiten haben oder
zumindest pinkompatible Nachfolgemodelle liefern.
Den 8051 gibt es ja nun schon über 40 Jahre - und auch da ist noch kein
Ende in Sicht...
Klar macht es Spaß so etwas mit einem Arduino zu machen. Aber es scheint
kein Hobbyprojekt zu sein sondern eine Firma will damit einen (vmtl.
einzigen) Messplatz aufbauen um damit Geld zu verdienen. Vermutlich will
die Firma am liebsten das ganze die nächsten 10 Jahre auch nicht mehr
anfassen müssen. Damit sind für mich sowohl PC-basierte als auch selbst
gebaute Lösungen raus. Wie oben bereits von jemanden anderen
vorgeschlagen würde ich dafür eine SPS verwenden. Schau mal bei Siemens,
Eaton und Co nach einer passenden SPS.
Tobias schrieb:> einen LabJack T7
Was ist das?
Nicht, dass ich das nicht selber googeln könnte, aber letztlich ist das
halt eine fertige Kiste mit fertigen Modulen, die auf einem heutigen OS
mit heutiger PC-Hardware läuft.
Und genau diese Hardware musst du samt Software im Zweifelsfall als
Backup für die nächsten 15 Jahre instandhalten und bevorraten.
> Zudem zielt LabJack ausdrücklich darauf ab, über einer langen Zeitraum> verfügbar zu sein und hat keine Pläne die Geräte einzustellen, bevor nicht> dessen Komponenten nicht mehr verfügbar sind
Das kann also schon morgen sein, wenn es der neuen Geschäftsleitung
gefällt und ein Widerstand auf der Leiterplatte abgekündigt wird.
Solnage du eine Verfügbarkeitserklärung nicht schriftlich und
rechtssicher auf dem Papier hast (und das wirst du nicht bekommen), sind
solche Erklärungen gut gemeinte Verkaufsargumente und unmittelbar nach
dem Verkauf nur noch heiße Luft.
Tobias schrieb:> Deswegen spricht aus meiner Sicht viel für den T7
Wenn du unbedingt den T7 nehmen willst, dann nimm ihn. Denn sonst wird
bei jedem noch so kleinen Problem immer der Arduino Schuld sein.
> und auch der hohe Preis wäre gerechtfertigt
Wir verwenden für unsere Testumgebung für Fertiggeräte Beckhoff
Panel-CPU mitsamt der darauf TwinCat-SPS, damit wenigstens die
Testsoftware einen Generationswechsel bei der Steuerung halbwegs
anstandslos überlebt.
Und klar ist auch, dass man da schon mal 10-20k€ für so einen Testplatz
hinlegt...
Tobias schrieb:> Zudem zielt LabJack> ausdrücklich darauf ab, über einer langen Zeitraum verfügbar zu sein
Hast aber schön das PR Dokument auswendig gelernt.
Vorschlag:
Lass Dir vom Hersteller eine Garantie geben das Du die nächsten 10J
Geräte, Ersatzteile und Support bekommst.
Vertragsstrafe 100K$
Machen die nicht?
Tja, dann ist das Geseiher nichts wert.
Garantien auf 10J Verfügbarkeit wurden mir von Kontron schon innerhalb
des ersten Jahres gestrichen. Ab dem Datum gab es nichts. Lagerbestand
NULL, Produkt abgekündigt, Last Time Buy fiel aus wegen ist nicht.
Da standen wir mit unseren beiden Prototypen und durften völlig neu
anfangen. Das sind nur Worte, von Verkäufern, die Umsatz wollen.
Also entweder legst Du Dir alles für 10-20J hin, inkl. der Rechner, SW
Dongels etc. pp. oder Du setzt auf etwas das Du komplett selbst in der
Hand hast und jederzeit nachentwickeln kannst.
Auch Schnittstellen verschwinden mit der Zeit, Treiber laufen nicht mehr
unter neuem OS, das alte OS läuft aber nicht auf neuer HW.
Der auf 10J projektierte Messplatz soll in ein paar Jahren nun doch noch
drei mal gebaut werden und ist auch nach 20J doch noch okay...
Arduinos sind nur MCUs mit minimaler Beschaltung.
Nein, ich würde keinen Arduino dafür nehmen.
Ich würde mir gleich die MCU meiner Wahl schnappen und alles darum herum
bauen.
Der Lab jack T7 ist ein Plastikbomber aus USA der mit tollen Angaben
protzt aber wenn Du dann selber feststellst das die Unterlagen aus USA
oft nicht das Papier wert sind auf dem sie gedruckt wurden, stehst Du da
und kannst nichts machen.
Definiere mal ganz genau was für Sensoren, welche Anzahl wovon,
potentialgetrennt oder nicht.
Skizziere den kompletten Messplatz und dann weist Du was Du wirklich
brauchst.
Und such dir nen HW Entwickler.
HW Design ist weit mehr als offensichtliche ICs hintereinander zu pappen
und irgendwie mit Kupferbahnen zusammenzuknüddeln.
Gerade wenn Du nicht nur eine hohe Auflösung sondern dabei auch noch
eine akzeptable GENAUIGKEIT haben willst und eine Qualität die auch 10J
durchhält.
>Arduinos sind nur MCUs mit minimaler Beschaltung.>Nein, ich würde keinen Arduino dafür nehmen.
Ich würde nichts mehr anderes als was Arduino-artiges nehmen. Open
Source, Treiber gut abstrahiert, mit Sicherheit ewig verfügbar und
selbst anpassbar.
Und wenn's um die Beschaltung geht, gibt es Adaptershields in allen
Farben und Formen:
https://www.rugged-circuits.com/24v-industrial/24v-industrial-shield