Hallo Zusammen,
ich will ein Relais (über Transistor) zur Sicherheit nur dann
einschalten, wenn der Mikrocontroller dauerhaft ein Rechtecksignal
erzeugt.
- Wie könnte ich so etwas realisieren ???
- Und wie realisiert man mit einem Mikrocontroller z.B. eine
Sicherheitsfunktion z.B. das nicht aus versehen ein Tor oder eine Presse
zufährt ???
Gruß Jo
P.S. Oder gibt es eine Sicherheitsfunktion schon in Mikrocontrollern
z.B. PIC18FXXXX Integriert ???
Ach ja und bei einer Presse im Automobilbau z.B. gibt es dann noch
zusätzlich eine diskret verdrahtete Lichtwand + Fußschalter +
Zweihandauslöser (mit Totmannüberwachung um dauerhaftes Festklemmen zu
unterbinden), das ganze wird dann noch 2x pro Schicht von einem
Sicherheitsbeauftragten auf korrekte Funktion überprüft, war zumindest
früher mal so, bei Robotern ist man da heutzutage etwas weniger
zimperlich.
z.B. eine Schrottpresse u.s.w
im Bereich Elektro Hardware gibt es ja Schütz Verriegelungen,
Not-Aus-Relais u.s.w. Aber wie werden Fehler von einem Mikrocontroller
behandelt z.B. durch einen Defekt schaltet PORTX einfach???
> Aber wie werden Fehler von einem Mikrocontroller> behandelt z.B. durch einen Defekt schaltet PORTX einfach???
So schnell gehen die nicht kaputt, aber ein Restrisiko bleibt natürlich.
Allerdings dürfte die Wahrscheinlichkeit für einen Defekt in einem
korrekt verbauten Mikrocontroller so dermassen gering sein gegenüber der
Wahrscheinlichkeit, dass irgendwo sonst in der Elektromechanik etwas
sicherheitsrelevantes kaputt geht, dass man es vernachlässigen kann.
(Von Softwarefehlern mal ganz zu schweigen, deshalb: So einfach wie
möglich programmieren!)
> ich will ein Relais (über Transistor) zur Sicherheit nur dann> einschalten, wenn der Mikrocontroller dauerhaft ein Rechtecksignal> erzeugt.>> - Wie könnte ich so etwas realisieren ???
Wie wäre es mit einem flankengetriggertem, retriggerbarem Monoflop?
> - Und wie realisiert man mit einem Mikrocontroller z.B. eine> Sicherheitsfunktion z.B. das nicht aus versehen ein Tor oder eine Presse> zufährt ???
Am Besten gar nicht, jedenfalls nicht ohne eine zusätzliche Sicherung.
Softwarefehler gibt es ja auch dort und der Betatest könnte schmerzhaft
werden.
Wenn es in den Bereich Automatisierungstechnik geht, dann muss jede
Sicherheitsfunktion, bei der es um mögliche Personenschäden geht mit
Sicherheitsrelais etc. abgesichert werden. Dort reicht dir kein
Mikrocontroller.
Stichwörter währen Risikobeurteilung und Maschinenrichtlinie.
Hallo Jo,
Du kannst (z. B.: bei einer Schrottpresse) die Ansteuerung des
Hydraulikmotors auf den Controller zurückführen. Und wenn die Presse
sich schließt, ohne dass der Controller das Signal dazu gegeben hat,
wird Not-Aus ausgelöst.
Man benutzt auch zwei verschiedene Controller mit unterschiedlichen
Programmiersprachen (Um Hardware-/Compiler- und Programmierfehler
auszuschließen). Die zwei Controller überwachen sich gegenseitig. Und
wenn die berechneten Ergebnisse (Ausgänge) nicht übereinstimmen, dann
Not-Aus!
Und da man z. B. in einem Flugzeug, das sich in der Luft befindet, nicht
einfach Not-Aus drücken kann, sind sicherheitsrelevante Systeme dort
dreifach vorhanden. Wenn ein System zu einem anderen Ergebnis kommt,
wird das gemacht was die beiden anderen Systeme berechnet haben.
Gruß
John
>o schnell gehen die nicht kaputt, aber ein Restrisiko bleibt natürlich.>Allerdings dürfte die Wahrscheinlichkeit für einen Defekt in einem>korrekt verbauten Mikrocontroller so dermassen gering sein gegenüber der>Wahrscheinlichkeit, dass irgendwo sonst in der Elektromechanik etwas>sicherheitsrelevantes kaputt geht, dass man es vernachlässigen kann.
lass das mal nicht den TÜV und die BG wissen. Sonst sitzt du schneller
im Knast als du schauen kannst.
Kurzum: für sogenannte Failsafe-Funktionen wie NOT-Aus, Schutztüren,
Lichtgitter etc. sind spezielle Überwachungsgeräte,
Sicherheitsschaltgeräte oder Sicherheitssteuerungen ZWINGEND notwendig!
Ich mach hier echt keinen Spass:
Lass bitte die Finger von irgendwelchen Basteleien an
Pressensicherheitsfunktionen! Überlass das den Profis. Da steckt sehr
viel Know-How dahinter, wie eine solche Funktion wirkich sicher gemacht
wird.
Ganze Normen beschäftigen sich mit diesem Thema. Diese
Überachungssysteme sind mehrkanalig mit umfangreichen und sehr
ausgeklügelten Selbsttestfunktionen.
Wenn im Zusammenhang mit einer von dir selber gebastelten
Sicherheitsfunktion ein Unfall passiert, dann bist du so fürchterlich
dran, dass du dir bis an´s Lebensende wünschst, du hättest die Finger
davon gelassen!
Ich überteibe hier nicht!
Wenn dich aber das Thema interessiert dann lohnt sich das Studium der EN
61508.. sehr umfangreich, aber vielleicht gibt es dir einen Einblick in
die Komplexität des Themas!
>Aber wie werden Fehler von einem Mikrocontroller>behandelt z.B. durch einen Defekt schaltet PORTX einfach???
Hallo,
ich kenne das so:
Man überlegt sich (FMEA) welche einzeln auftretende Fehler zu einem
kritischen Zustand führen können und legt entsprechende Schaltungsteile
redundant aus.
Da ein einzelner Transistor auch mal mit einem Kurzschluß bei
Überlastung reagieren kann, brauchst Du 2 unabhängige Schalter für das
Relais oder sogar 2 Relais in Reihe.
Das ganze kann dann so aussehen:
Dein Prozessor schaltet das Relais auf der Low-Side mit einem NPN
Transistor. (oder N-Kanal-FET).
Du hast ein externes Überwachungsmodul (intelligenter Watchdog), das
unabhängig vom Prozessor die Relaisansteuerung mit einem 2. Transistor
auf der High-Side deaktiviert und so einen sicheren Zustand herstellt.
Zwischen Prozessor und dem Überwachungsmodul findet eine Kommunikation
statt.
Das Überwachungsmodul stellt z.B. alle paar ms dem Prozessor eine Frage.
Der Prozessor generiert aus der Frage zusammen mit den Ansteuer-Routinen
für das Relais (sicherheitskritischer SW-Pfad) eine Antwort. Die Antwort
wird kryptografisch so verschlüsselt daß sie nur dann korrekt ist wenn
alle Ansteuerroutinen in der richtigen Reihenfolge durchlaufen wurden.
Das Überwachungsmodul prüft dann ob die Antwort korrekt ist und ob die
Antwortzeit des Prozessors innerhalb eines definierten Zeitfensters
liegt.
Im Fehlerfall (falsche Antwort oder falsches Zeitfenster) wird ein
Fehlerzähler erhöht und ab einem Level dann die Endstufe deaktiviert.
Selbstverständlich sind noch weitere Sicherheitsmaßnahmen notwendig
damit ein Einzelfehler nicht zu einem Totalausfall führen kann:
- Das Überwachungsmodul braucht eine auf Unter- und Überspannung
überwachte Versorgung. (im Fehlerfall abschalten).
- Prozessor und Überwachungsmodul haben unterschiedliche Taktquellen.
(z.B. Prozessor mit Quarz, Überwachungsmodul mit Resonator oder
RC-Takt).
- Der Prozessor überwacht dann zusätzlich noch das Überwachungsmodul
(durch gezieltes einstreuen falscher Antworten oder falscher
Zeitfenster).
- Die Endstufen müssen auf Kurzschluß und Unterbrechung diagnostiziert
werden. (Eventuell auch die Relais auf klebenbleiber oder
Kontaktunterbrechung).
- Bei jedem Einschalten findet im Prozessor ein POST (power on self
test) statt der das RAM auf Beschreibbarkeit und das Flash auf
ungewollte Veränderung prüft. Je nach Sicherheitslevel wird noch ein
Befehlstest des Prozessors (= Check der ALU) sowie die Speichertests zur
Laufzeit des Programms zyklisch geprüft.
Ein paar dieser Routinen sind hier
http://ww1.microchip.com/downloads/en/AppNotes/01229A.pdf
Natürlich kannst Du je nach Sicherheitslevel nicht einfach irgendeinen
Compiler verwenden. Der Compiler muß dann für diese Anwendung z.B.
TÜV-zertifiziert sein.
Gruß Anja
Nochmal Jo, lass bitte die Finger davon, wenn du planst, sowas in eine
Maschine zur Überwachung von Funktionen einzubauen, die potenziell
gefährlich sein können!!!!!
Auf deine Frage, WIE solche Dinge in käuflichen Geräten gelöst ist,
wirst du hier keine Antwort bekommen, denn das ist genau das Know-How
des jeweiligen Herstellers.
Hinzu kommt noch, dass man in kritischen Bereichen die implementierten
Sicherheitssysteme kontrollieren muss. Ein solches Monoflop nützt
nichts, wenn es seit Jahren defekt ist ohne dass man es merkt.
Wenn man unabhängige Mehrfachausfälle nicht berücksichtigen muss, dann
nur, wenn die nicht schleichend einer nach dem anderen kommen können und
man es erst beim letzten Ausfall merkt.
Danke Anja,
das hatten wir vor kurzem im Studium (Automatisierungstechnik).
Das dies auch auf Mikrocontroller so anzuwenden ist mir jetzt erst
aufgefallen.
Gruß Jo
@Jo:
>ich will ein Relais (über Transistor) zur Sicherheit nur dann>einschalten, wenn der Mikrocontroller dauerhaft ein Rechtecksignal>erzeugt.
Ich habe in meiner Heizungssteuerung was drin:
Beitrag "Re: Heizungssteurung im Eigenbau"
Suche hier im PDF das Signal +12V_Rel und REL_Ein. Der Schaltungsteil
mit T18/T19 machen genau das was Du brauchst.
Sobald die CPU steht schalten die Ausgänge ab.
Nach VDE müssen kritische Ausgänge bei einem Fehler abschalten.
Mit dieser Schaltung wird ein Ausgang garantiert aus geschaltet, wenn
die CPU "hängt". Die CPU kann auch abschalten, wenn der Ausgang der CPU
defekt ist, kann die CPU den Takt weg nehmen und das Relais fällt auch
ab.
Wenn man debugt, gehen natürlich die Ausgänge auch aus, ist ja klar.
@Jo
Wenn Du dich näher damit beschäftigen willst führe dir dann
die IEC 61508 und/oder eine der gerätespezifischen Sub-Normen zu Gemüte.
Weitere Stichworte sind z.B. "3-Ebenen Modell" "SIL-Level" "CMMI-DEV"
"SPICE NORM"
>Wenn man unabhängige Mehrfachausfälle nicht berücksichtigen muss, dann>nur, wenn die nicht schleichend einer nach dem anderen kommen können und>man es erst beim letzten Ausfall merkt.
Eine Einzelfehlerbetrachtung ist natürlich nur dann möglich wenn alle
Einzelfehler sicher automatisch diagnostiziert werden können und zu
entsprechenden Ersatzreaktionen führen.
Hey Jo, dann ist ja alles in Butter.. ich dachte nur, ich reiss hier mal
an der Notbremse, bevor sich hier jemand in´s Unglück stürzt!
Wie du sicher selber weisst, hat man eben hier keine Ahnung, wer am
anderen Ende sitzt und was dem so alles im Kopf rumspukt ;-)
Aber gut zu wissen, dass du weisst, was du tust.
in diesem Sinne, viel Spass beim Basteln.