Hallo, wie bereits im Titel steht suche ich eine Art, wie man den Arduino sicherheitstechisch abfragen kann. Der Arduino ist in meiner Anwendung der zentrale Punkt meiner Steuerung und regelt alle Aus- und Eingänge. Bezüglich der Sicherheit muss ich aber jetzt in meiner Anwendung zum einen einen Not-Aus-Schalter verbauen, der Sofort die Stromversorgung für die Aktoren unterbricht. Jetzt wollte ich fragen, wie ich dies am besten Lösen kann. Meine erste Überlegung war die Verwendung eines Sicherheitsmoduls wie dieses hier: https://at.rs-online.com/web/p/sicherheitsrelais/8937745/?cm_mmc=AT-PLA-DS3A-_-google-_-CSS_AT_DE_Relais_Whoop_ME-_-(AT:Whoop!)+Sicherheitsrelais-_-8937745&matchtype=&aud-826607888547:pla-541117273877&gclid=CjwKCAjwmeiIBhA6EiwA-uaeFVParVYDAmeJwCRZfz7aS4tRLA_0jZS45uhx4iESViyMrcsU7hnyjhoCnZcQAvD_BwE&gclsrc=aw.ds Jetzt ist meine erste Frage, ob es für diese Anwendung bessere alternativen gibt. Zum anderen Suche ich aber auch einen zweiten Sicherheitsmechanismus, der zum einen überprüft, ob das Arduinoprogramm noch durchlaufen wird. Hierzu war die Idee, auf einem Ausgang immer am Ende des Programms einen Eingang kurz von LOW auf HIGH zu setzen und wenn dieses HIGH-Signal nicht in einem bestimmten Zeitbereich eingelesen wird, wird ein Fehler ausgegeben. Dazu wie ich das überprüfen kann, habe ich leider noch keine richtige Idee. Und die dritte Sicherheitsstufe ist, die Stromversorgung des Arduinos zu überprüfen. Das bedeutet, wenn dieser Stromlos wird, so soll das auch sofort erkannt werden und der Not-Mechanismus geschalten werden. Hierzu suche ich aber auch noch einen Weg, das zu detektieren. Ich weiß, dass es USV-Module gibt, die ein Signal ausgeben, wenn die Spannugnsversorgung verloren gegangen ist, aber finde tu ich dazu nichts richtiges. Zu ergänzen ist, dass die Sicherheit in meinem Projekt wichtig ist, da sonst jemand bei der Verwendung verletzt werden könnte. Die Aktoren und Sensoren, die an den Arduino angeschlossen werden, werden alle auf 24V betrieben. Damit der Arduino diese einlesen kann, werden einfache Spannungsteiler verwendet. Der Arduino wird von einem zusätzlichem Stromkreis mit 12V betrieben und es wird der Arduino Mega verwendet. Ich hoffe, dass mir jemand bei meinem Anliegen weiterhelfen kann. Sollte ich noch relevante Informationen vergessen haben, bitte gebt mir bescheid. Ich suche im ersten Schritt zunächst Möglichkeiten, wie ich diese Funktionen sicherheitstechnisch richtig umsetzen kann. Vielen Dank bereits im Vorraus MfG Jonas
Ich hoffe jetzt mal inständig, dass das nur eine Studienarbeit ist und nicht in die reale Welt losgelassen wird… Das was du willst nennt sich „Funktionale Sicherheit“ und der Aufwand der reingesteckt wird hängt immer vom Risiko ab. Grob: „Kratzer am Finger“ = kleines Risiko. „Tot“ = großes Risiko. Welchen SIL / PL willst Du erreichen? Davon hängt der Aufwand / die Maßnahmen ab. Schon mal was von IEC61508 gehört?
Jonas A. schrieb: > Ich hoffe, dass mir jemand bei meinem Anliegen weiterhelfen kann. Bisher klingt es einfach: Es reicht wohl, wenn NotAus die 24V abschaltet. Deine Mimik braucht wohl keine definierte Abschaltsequenz oder sonstige Aktion beim NotAus, einfach nur Sus, inmitten von allem. Dann bau da den Schalter direkt ein. Wenn der Arduino keinen Strom mehr hat, wird er auch keinen Ausgang mehr einschalten können (logisch high), sorge halt nur dafür dass alle Ausgänge nur aktivieren wenn sie auf high schalten (oder auf low mit Last hin zur VCC des Arduino). Schon führt ein Versorgungsspannungausfall zu demselben wie NotAus. Eine Stufe mehr Sicherheit wurde sich durch ein Relais ergeben das die 24V nur einschaltet, wenn der Arduino einen Ausgang aktiviert. Und wenn dann die Spannungsversorgung des Arduino gar aus diesen 24V gewonnen wird, ergibt sich eine Selbsthaltung, nur durch einen EIN-Taster über den Telaiskontakten überbrückbar. Bleibt der Impuls pro Schleifendurchlauf: das hat der Arduino eingebaut, den Watchdog, der schaltet ihn aus (reset) wenn er nicht reagiert. Man kann natürlich den Watchdog auch als MonoFlop an besagtes Relais bauen.
Suche mal zu den Stichworten: Monitoring/Watchdog-Relays von Pilz, Ziehl, Rockwell, usw. Wenn das was industrielles werden soll: Auf einer für Safety zertifizierbaren Plattform neuentwickeln, wo du auch beweisen kannst, dass das Programm korrekt funktioniert.
Zwei Anmerkungen: >Zum anderen Suche ich aber auch einen zweiten Sicherheitsmechanismus, der zum einen überprüft, ob das Arduinoprogramm noch durchlaufen wird. Nennt sich oft „zeitlicher und logischer Überwachung des Programmablaufs“. (Ein reiner Watchdog erkennt ggf nicht wenn Teile des Codes übersprungen werden.) Implementierung z.B. in dem an kritischen Stellen eindeutige Signaturen verechnet und am Ende jeder Schleife geprüft wird, ob das erwartete Ergebnis vorhanden ist. Und nur dann wird z.B. der interne CPU Watchdog zurückgesetzt, bzw. bei Fehler alle Ausgänge in den sicheren Zustand gesetzt. >Und die dritte Sicherheitsstufe ist, die Stromversorgung des Arduinos zu überprüfen. Das bedeutet, wenn dieser Stromlos wird,… Stromlos ist normalerweise kein Problem, wenn die Logik richtig umgesetzt ist. Keine Spannung Ausgang aus. Viel kritischer ist, wenn deine Versorgung außerhalb der zulässigen Baustein-Spannungen liegt, z.B. bei Überspannung. Dann ist nicht garantiert wie das System sich verhält. Du braucht ein Konzept für alle möglichen Fehler. Bevor Du dich um die Realisierung kümmerst müssen solche Punkte geklärt sein: 1.) Welche Risisken sollen durch eine Sicherheitsfunktion abgesichert werden? 2.) Welcher Sicherheitslevel wird dazu benötigt (SIL 1,2,3,4) 3.) Welche zeitlichen/… Anforderungen müssen eingehalten werden (Wie schnell muss reagiert werden?) 4.) Ist eine Realisierung als einkanaliges System überhaupt möglich? (Welcher Diagnosedeckungsgrad muss erreicht werden (abhängig vom SIL)) 5.) Starte mit einer Architektur, Analysiere die möglichen Ausfälle, definiere Mögliche Maßnahmen, Wurde nix vergessen? Ist das Konzept stimmig? Dann geht’s erst Richtung Realisierung. Und falls das nicht klar ist: das ist nix für ein Greenhorn. Du hast hoffentlich jemanden der klar weiss was er tut und der auch die Verantwortung trägt!
MaWin schrieb: > Bisher klingt es einfach: Es reicht wohl, wenn NotAus die 24V > abschaltet. Das sehe ich nicht so. Die Sicherheitsfunktion hat er nicht beschrieben. Wenn ein Arduino ein Presse steuert, hilft das Relais nicht: bei Fehler im Arduino ist die Hand ab, bevor du den Notaus bedienen kannst. Deshalb die Frage an den TO: * Was ist die Sicherheitsfunktion des Systems? * Wenn der Arduino ausfällt: was passiert im schlimmsten Fall?
Jonas A. schrieb: > Zum anderen Suche ich aber auch einen zweiten Sicherheitsmechanismus, > der zum einen überprüft, ob das Arduinoprogramm noch durchlaufen wird. Was passiert, wenn das Arduino-Programm normal läuft, aber die interne Berechnung fehlerhafte Werte ausgibt, z.B. weil du beim Programmieren einen Sonderfall nicht beachtet hast? Jonas A. schrieb: > Zu ergänzen ist, dass die Sicherheit in meinem Projekt wichtig ist, da > sonst jemand bei der Verwendung verletzt werden könnte. Funktionale Sicherheit ist ein weites Feld. Die Entwicklung und Zertifizierung sicherer Elektronik und Software ist sehr aufwendig und teuer. Wenn jemand anders verletzt wird, und herauskommt dass deine Arduino-Steuerung schuld ist, wird es sehr unangenehm für dich. Überhaupt einen Arduino für so etwas zu verwenden würde niemals zertifiziert werden. Da hilft es auch nicht, ein Sicherheits-Relais dran zu tackern. Vielleicht wäre eine Safety SPS hier doch der einfachere Weg das System zu sichern. Es gibt viele Dienstleister die dir so etwas programmieren.
Programmierer schrieb: > Überhaupt einen Arduino für so etwas zu verwenden würde niemals > zertifiziert werden. Ich würde behaupten, dass so etwas theoretisch sogar machbar wäre, aber nur mit vieeeeeeel Aufwand und vieeeeel Ahnung. Und vor allem nur mit Hardware Eigendesign. Ich kenne kein Arduino Board, das ausreichend Onboard Diagnose hat. Von Softwareanforderungen ganz zu schweigen... Wäre interessant ob es um ein Produkt geht, dass tatsächlich eine Baumusterprüfung o.ä. benötigt, oder ob da ein Hersteller mal schnell was per Eigenerklärung auf den Markt werfen will. Baumuster wäre witzig: würde gerne beim Meeting mit der zertifizierenden Stelle dabei sein.
BeBe schrieb: > Das sehe ich nicht so. Es gibt Blinde, die sehen halt nix. z.B. wie der Satz weiter geht den sie 'vergessen' haben zu zitieren. Da schlug vermutlich die Blindheit zu.
Sicherheit ist nichts, was man so eben mal dranbasteln kann. Es fängt mit der Programmgestaltung an. Das Programm muß modular aufgebaut sein und jedes Modul muß für sich vollständig testbar sein. Einen Spaghetticode, wo alles undurchdringlich mit allem verwoben ist und niemand mehr durchsieht, kann auch das beste Sicherheitsrelais der Welt nicht mehr retten. Ob dieses sehr teure Relais für Arduino-Programme Sinn macht, da habe ich so meine Zweifel. Ich lasse oft neben der Steuertask eine Prüftask parallel laufen. Die prüft nur auf alle möglichen Fehlerbedingungen und zwingt bei Bedarf die Steuertask in Notaus. Z.B. kann sie Versorgungsspannungen und Ströme prüfen, ob sie im erlaubten Bereich sind und auch den Stackverbrauch. Im EEPROM wird dann ein Record abgelegt, welcher Fehler den Notaus bewirkt hat. Daneben sind auch logische Prüfungen notwendig, z.B. dürfen 2 Endlagenschalter nie gleichzeitig aktiv sein. Alle Signale von außen können falsch sein. Sicherer Code darf keine Codedopplungen enthalten. Werden ähnliche Codesequenzen an mehreren Stellen benötigt, macht man daraus eine Unterfunktion, die man nur mehrfach aufruft. Damit vermeidet man bei Änderungen am Code, daß Stellen vergessen werden.
Vielen Dank zunächst mal für die vielen und raschen Rückmeldungen. Durch eure Anmerkungen habe ich gesehen, dass es sich hierbei um ein größeres Thema als erwartet handelt und ich mich darin noch viel einlesen muss. Ich werde die Tipps und Anregungen auf jeden Fall berücksichtigen und mich damit auseinandersetzen. Sollte ich danach noch immer Fragen haben, werde ich mich hier melden, da ich gesehen habe, dass es sich um eine sehr engagierte Community handelt. Danke
MaWin schrieb: > BeBe schrieb: >> Das sehe ich nicht so. > Es gibt Blinde, die sehen halt nix. Hi MaWin, dann erleuchte mich. Was habe ich übersehen?
Jonas A. schrieb: > der Sofort die Stromversorgung für die Aktoren unterbricht Das kann bei einem Hubmagneten fatale Folgen haben!
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.