Forum: Mikrocontroller und Digitale Elektronik Selbsttest eines Systems realisieren, wie?


von Patrick B. (p51d)


Lesenswert?

Hallo miteinander

In der heutigen Zeit werden die Systeme und Sensoren immer komplizierter 
und auch umfangreicher. In meinem Auto leuchtet sogar schon eine 
Warnleuchte, wenn z.B. eine Lampe defekt ist.

Nun ja, zu der eigentlichen Frage: Wie werden die Selbsttest umgesetzt? 
Wenn ich mir einmal den IO-Part ansehe, müssten ja für eine galvanisch 
getrennte Ausgangsstufe gleich alle Ausgänge nach den Treibern wieder 
abgegriffen werden und über Optokoppler zurück zum uC. Hier habe ich 
dann aber nicht die Sicherheit erhöht, da ich ja zusätzliche Bauteile 
hinzugefügt habe. Das einzige was sich erhöht sind die Kosten.

Oder wie wird das sonst gemacht?

Gruss
Patrick

von Erich (Gast)


Lesenswert?

Ist das jetzt eine ganz allgemeine (theoretische) Frage?
Oder ein konkrete Frage zu einer konkreten Anwendung?
Welche?
Gruss

von Ronny S. (duselbaer)


Lesenswert?

Allgemein würde ich sagen, dass Du zu jedem Aktor einen Sensor hast, der 
den Aktor überwacht. Natürlich ist dieser Sensor ggf. ein zusätzliches 
Bauteil, was auch kaputt sein kann.

Die Sicherheit wird erhöht,

   - wenn Dein Sensor (sofern er zusätzlich eingefügt wird) weniger oft 
kaputt geht, als Dein Aktor und Dein System damit einen kaputten Aktor 
erkennt
   - wenn ein defekter Sensor vom System erkannt wird (entweder als 
defekter Sensor, weil die gemessenen Werte Käse sind, oder weil dadurch 
der Aktor als defekt erkannt wird)

Verringert wird die Sicherheit m.E. in keinem Fall.

Im Falle der Lampen im Auto wird vermutlich einfach der Strom über einen 
Shunt oder Hall-Sensor gemessen. Wenn's anzeigt, dass Dein Rücklicht 
kaputt ist, ist es halt entweder kaputt oder der Sensor tut nicht mehr. 
Wenn's anzeigt, dass es noch geht, geht Dein Rücklicht oder nicht :) Bis 
jetzt hatte ich davon keinen False-Positive...

von amateur (Gast)


Lesenswert?

So etwas ist zu 124% von Deiner Anlage abhängig. Vor allem davon wie 
unabhängig die Kontrolle ausfallen soll. Darüber hinaus muss dieses 
natürlich schon von dem Bau eingeplant worden ein.
Willst Du z.B. ein echtes, unabhängiges "Gutachten" darüber haben, ob 
eine Leuchte eingeschaltet ist, so hilft nur ein Licht- oder 
Stromsensor. Willst Du wissen, ob ein Motor läuft, so brauchst Du, 
gestaffelt nach "Gewissheit", eine Signalüberprüfung, einen unabhängigen 
Schaltkontakt (Relais), einen Stromsensor oder einen Impulsgeber.
Ein komplexes System hochfahren ist bereits volles 
Mikroprozessorprogramm für sich, wobei vieles gar nicht geprüft werden 
kann bzw. darf.
Willst Du aber nur den Anwender beruhigen, so reicht eine Zählerschleife 
mit ein paar Leuchtdioden, die Du während einiger Sekunden, der Reihe 
nach, einschaltest. Und schon ist der Happy.

von Purzel H. (hacky)


Lesenswert?

Ja. Was soll denn getestet werden, was bringt ein Power up Test, was 
kostet ein Powerup Test im Vergleich zu einem externen Test, im 
Vergleich zum Ausfall des Prozesses, im Vergleich zu einem moeglichen 
Schaden ohne.
Welche Zuverlaessigkeit sollte man erreichen, welche kann man mit einem 
systeminternen Test erreichen ?

All diese Fragen kann nur der Poster beantworten.

von Patrick B. (p51d)


Lesenswert?

Konkretes Beispiel von einem Sensor:

Digitale  galvanisch getrennte Ein- und Ausgänge für eine SPS: Beim 
Systemstart die Optokoppler und Fets überprüfen, ob diese wirklich auch 
schalten. (Alterung der Optokoppler, Kurzschlusssichere Fets sind 
vorhanden, aber was wenn...)

Firmware überprüft Hardware über ein EEPROM das beim Bestücker 
programmiert wird, ob die Firmware überhaupt auf der HW laufen dar (oder 
ob etwas falsch lief beim Programmieren)

Quarz der nicht richtig schwingt und Zeitkritische Anwendung nicht 
richtig ausfürht oder das Programm nicht richtig startet, laufen lässt.

RAM-Test: Hier bieten sich die ARMs geradezu an, da gewisse das über 
Interrupts absichern

Schwingkreis testen, ob Treiberoszillator richtig läuft und die 
nachfolgende Auswertschaltung auch das macht, was sie soll.


Wieso das ganze:
Ich hatte einmal ein ganz unerfreuliches Erlebniss, dass Baugruppen vom 
Bestücker direkt zu uns ins Lager kamen ohne weitere Kontrolle (Firmware 
und alles war schon drauf). Dann wurde sie Ausgeliefert und die Monteure 
waren nicht zu frieden, weil die Baugruppen nicht liefen. Grund war eine 
reine Zufallsbestückung beim Bestücker. Zum Teil waren ICs auf dem Kopf 
(also Pins in der Luft und Schrift auf LP), Dioden 90° Verdreht 
aufgeklebt, Widerstände Senkrecht auf ein Pad gelötet... Alles ohne 
Muster.
Wenn jetzt der uC alles schnell durchtestet beim Starten, könnten viele 
aufwändige Stunden der Fehlersuche minimiert werden, da der Fehler 
eingegrenzt werden kann (z.B. Ausgangsstufe defekt)


Das ganze ist eine Allgemeine Frage, wie das gelöst wird. Da sich wie 
gesagt der Aufwand meines erachtens verdoppelt.

von Purzel H. (hacky)


Lesenswert?

Ihr solltet einen Eingangstest nach der Fabrikation einfuehren. Viele 
der beschriebenen Fehler kommen einmal vor, bis sie behoben sind. Viele 
kann man nicht mal testen. Du musst davon ausgehen, das Geraet laeuft. 
Aber die Peripherie, Aktoren, Sensoren kann schadhaft sein.

von Moritz A. (moritz_a)


Lesenswert?

Patrick B. schrieb:
> Wenn ich mir einmal den IO-Part ansehe, müssten ja für eine galvanisch
> getrennte Ausgangsstufe gleich alle Ausgänge nach den Treibern wieder
> abgegriffen werden und über Optokoppler zurück zum uC. Hier habe ich
> dann aber nicht die Sicherheit erhöht, da ich ja zusätzliche Bauteile
> hinzugefügt habe. Das einzige was sich erhöht sind die Kosten.

Wieso so kompliziert? Einfach einen Stromsensor an den gemeinsamen 
GNC/VCC des Treibers, und dann jeden Ausgang einmal kurz durchschalten 
und überprüfen, ob der Strom innerhalb der Toleranzen liegt.

Wenn du ganz Paranoid bist, schaltest du 2 Stromsensoren in Reihe, einen 
zweiten µC der den ersten überprüft, und irgendwann fliegst du damit zum 
Mond.

von Purzel H. (hacky)


Lesenswert?

Ein Selbsttest in der Anlage hat ganz andere Aufgaben. er stellt sicher, 
dass das Geraet sicher in der Anlage arbeiten kann. Die Applikations 
Software sollte natuerlich auch so ausgelegt werden, dass sie Fehler zur 
Laufzeit erkennt. Wenn nun mal im Betrieb ein Sensor kaputt geht, wie 
kann man das erkennen, und wie soll man reagieren .. usw. Allenfalls ist 
Abschalten eben keine Option. Sondern eher gezielt herunterfahren

von Schlumpf (Gast)


Lesenswert?

Wie Siebzehn mal Fuenfzehn ja schon sagte:
Ein Selbsttest hat eigentlich andere Aufgaben. Er überprüft das System 
beim Start oder zur Laufzeit, ob es noch funktioniert.
Was ich aber raushöre ist, dass ihr Probleme mit der Qualität eures 
Bestückers habt. Dafür werden üblichweise keine Selbsttests vorgesehen, 
da diese i.d.R mit einem Mehraufwand an Bauteilen und Software verbunden 
sind und somit die Kosten nach oben treiben.

Ob eine Leiterplatte korrekt bestückt und gelötet ist, lässt sich durch 
qualitätsichernde Maßnahmen in der Fertigung sicherstellen. Dazu gehören 
z.B. In-Circuit-Test (ICT) oder Automatische Optische Inspektion (AOI).

von Ulli B. (ulli-b)


Lesenswert?

Hallo Patrik,

Wir von der Steuerungstechnik (SPS) prüfen Sensoren dadurch, dass wir 
ihren Zustand abfragen und mit dem erwarteten Zustand vergleichen. Wenn 
also ein Sensor aus sein "müsste" aber nicht aus ist, dann wird eine 
Meldung ausgegeben. Das geht natürlich nur bei Sensoren, welche recht 
oft bzw. zyklisch an und aus schalten.
Ein Sensor ist immer so eingestellt, dass wenn das Verbindungskabel 
abreisst, möglichst zeitnah ein Fehlerzustand entsteht.

Ulli

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.