Ik ben bezig met een systeem waarbij de veiligheid en juistheid van het systeem de prioriteit heeft. Ik heb daarom ook besloten om de controllers redundant uit te voeren, met de intentie om de een controller de andere te controleren. Maar dit gaat natuurlijk niet zo makkelijk.
Ik vroeg me dus af of iemand hier ervaring in heeft. Hoe kan ik dit het beste uitvoeren, hoe dienen de controllers te controleren (SPI bijv.)?
Ik heb 2 sensoren die via CAN zijn verbonden met de controller aan de hand van deze waardes dient hij een waarde te berekenen en uit te sturen.
Is het handig om beide deze vertaal slag te doen en dan zeg maar na elkaar de waardes te sturen om het zo te controleren. Of 1 dit te laten bereken en de andere laten kijken of de waarde mogelijk is, en steeds te kijken of de andere controller nog 'alive' is en indien niet een error frame uit te sturen?
Bart Hiddink
Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.
Voordat je naar een oplossing zoekt, denk eerst even na over de waarde van je idee.
Elk elektronisch systeem maakt fouten en gaat een keer stuk.
Je kunt dit opvangen door een tweede systeem ernaast te zetten om zo de betrouwbaarheid te verhogen. Althans, dat is het doel. Maar is dat ook wel zo?
Het tweede systeem, hetzelfde opgebouwd, heeft hetzelfde probleem als het eerste systeem; het maakt fouten en gaat een keertje stuk. Maar welk systeem is dan defect en wie beoordeelt dat dan?
De verdubbeling van de schakeling geeft een zeer beperkte toename in veiligheid of juistheid van de gegevens als je het er gewoon naast zet en beide systeem hetzelfde werk laat doen.
Het is gewoon tweemaal hetzelfde.
Een extra controller om de andere controller te controleren voegt nog minder zoveel toe, het kost alleen maar geld.
Overtolligheid is lastige materie met erg veel valkuilen.
Lees dit maar eens.
Google ook eens op de term MTBF.
(Mean Time Between Failures)
Je kunt overigens prima afstuderen op een onderwerp als dit. Het bewijs zit nl. tegenover mij.. 
Bedankt ik zal dat eens doorlezen. Het idee was wel om 2 verschillende controllers te gebruiken dus niet exact dezelfde (ivm silicon bugs etc). Maar in vliegtuigen (fly-by-wire) wordt toch ook van alles dubbel uitgevoerd om zo de bedrijfszekerheid en juistheid te garanderen.
Het gaat er om dat als er gedacht wordt dat er iets niet klopt dat het systeem uitgaat, het is dus niet zo dat hij echt moet zorgen dat alsnog de juiste data verstuurd wordt.
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Je haalt volgens mij twee zaken door elkaar. Redundant wil zeggen dat het systeem blijft funktioneren als er een deel uitvalt. Dus bij bedrijfs kritische toepassingen, medische toepassingen of waar mensen levens in gevaar kunnen komen.
Wat jij bedoelt is een failSafe construtie. Dus een proces moet stoppen wanneer 1 van de funkties uitvalt of niet goed funktioneerd.
Dat kun je doen door bijvoorbeeld de sensoren dubbel uit te voeren, dus de sensor paren moeten gelijke waardes vertonen. Of nog beter sensoren met een verschillend detectie principe (indien mogelijk)
Je kunt ook meerdere inteligente onderdelen toepassen. In bijvoorbeeld brandmeldsystemen, worden inteligente voedingen gebruikt. De voeding praat met de hoofdprocessor, zodat een fout door 1 van de beide processoren wordt herkent.
Kijk wel heel goed uit als je hiermee aan de gang gaat. Ik neem aan dat je de foutmelding 'foutmelding: er was geen foutmelding' wel eens gezien hebt?
Op 3 oktober 2007 11:48:14 schreef alex278:
Kijk wel heel goed uit als je hiermee aan de gang gaat. Ik neem aan dat je de foutmelding 'foutmelding: er was geen foutmelding' wel eens gezien hebt?
Nee eigelijk niet?
Marcob.. je hebt gelijk het is de bedoeling dat het systeem zeg maar op een soort van inactief-mode wordt gezet indien er verwacht wordt dat er iets niet klopt. Er dient dan een melding aan de gebruiker gegeven worden zodat hij er bewust van is dat het systeem niet meer runt, en dat er iets niet klopt.
Je zou zo toch wel 2 controllers kunnen gebruiken die beide de zelfde berekening uitvoeren met als input 2 sensoren waardes. Dat ze daarna de waardes met elkaar vergelijken.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bij dubbel uitgevoerde besturingen krijg je, indien beide besturingen verschillend reageren ook het probleem erbij dat je dan moet gaan bepalen welke er gelijk heeft...
(Eigenlijk zou je dan een derde moeten hebben om de andere twee te controleren...
)
Wij hebben ook klanten gehad, die er op stonden dat alles in een installatie redundant werd uitgevoerd. Als je dan vervolgens ging uitleggen wat dat allemaal inhield en ook extra ging kosten, hoefde het vaak niet meer zo nodig...
Vaak ging het om telefoonapparatuur die redundant moest werken. Men dacht dan dat alleen de apparatuur dubbel moest worden uitgevoerd. Als je dan vroeg "Maar wat gebeurt er dan als de telefoonkabel buiten beschadigd raakt?" Meestal hoorde je dan alleen maar "Tsja..."
In dat soort gevallen worden dan ook twee telefoonkabel naar binnen gebracht aan verschillende zijden van een pand, zodat ze niet beide tegelijk kunnen worden beschadigd en er altijd eentje heel blijft...
En zo zijn er natuurlijk meer punten, zoals noodvoeding (die dan eigenlijk ook dubbel moet, enz...)
Op 3 oktober 2007 15:46:58 schreef Arco:
Bij dubbel uitgevoerde besturingen krijg je, indien beide besturingen verschillend reageren ook het probleem erbij dat je dan moet gaan bepalen welke er gelijk heeft...
(Eigenlijk zou je dan een derde moeten hebben om de andere twee te controleren...)
Klopt misschien is het topic titel wat misleidend. Het is dus de bedoeling als de waardes niet gelijk zijn dat het duidelijk is dat er ergens iets niet klopt. Waar dat is, is niet relevant want het systeem moet hoe dan ook op inactief gesteld worden. Daarom is het bij dit systeem geen noodzaak dat er nog een 3de controller bij komt.
Op 3 oktober 2007 15:41:04 schreef Drazzic:
[...]Nee eigelijk niet?
'never intercept an error situation which you don't know how to handle'.
Oftewel, als je teveel errorchecking gaat inbouwen, dan kom je in 't domein waar een foutmelding alleen maar onduidelijkheid geeft, omdat je niet weet *wat* er precies is mis gegaan, en hoe ernstig dat nu is. Lang niet iedere fout is zo kritiek dat je daarvoor de besturing maar plat moet gooien.
Stel je voor dat je een CNC-besturing hebt ontworpen, en dat je detecteert dat je aan het einde van je geleiders zit. Waarbij je opeens een of andere rare waarde van je sensors terugkrijgt. Het laatst wat je dan wilt is dat je software je frees (die op full speed draait) een noodstop geeft.
[Bericht gewijzigd door alex278 op (23%)]
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Om zeker te zijn dat bepaalde zaken kloppen, moet je een soort vergelijk hebben. Dus twee sensoren dubbel, eventueel twee processoren dubbel. En met elkaar laten vergelijken, is er een verschil, process laten stoppen.
Maar je moet niet gaan overdrijven, kosten & baten tegen elkaar afwegen. je moet in het hele process gaan kijken waar het als eerste mis kan gaan, en dat controleren.
Op 3 oktober 2007 16:06:44 schreef marcob:
Om zeker te zijn dat bepaalde zaken kloppen, moet je een soort vergelijk hebben. Dus twee sensoren dubbel, eventueel twee processoren dubbel. En met elkaar laten vergelijken, is er een verschil, process laten stoppen.Maar je moet niet gaan overdrijven, kosten & baten tegen elkaar afwegen. je moet in het hele process gaan kijken waar het als eerste mis kan gaan, en dat controleren.
Dat is ook wat ik ga doen, maar lang niet alles kan ik dubbel uitvoeren ivm ruimte beschikbaar en daarnaast natuurlijk ook geld. Het zal niet zo kritiek moeten zijn zoals bij en fly-by-wire systeem ofzo (3 dubbel uitgevoerd) maar het moet wel zeker zijn dat hij een onmogelijke/ongewenste waarde gaat uitsturen, dus als hij niet kan garanderen dat het klopt wil ik dat hij niks uitstuurt.
jovak
meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
Op 3 oktober 2007 16:26:46 schreef Drazzic:
[...]Dat is ook wat ik ga doen, maar lang niet alles kan ik dubbel uitvoeren ivm ruimte beschikbaar en daarnaast natuurlijk ook geld. Het zal niet zo kritiek moeten zijn zoals bij en fly-by-wire systeem ofzo (3 dubbel uitgevoerd) maar het moet wel zeker zijn dat hij een onmogelijke/ongewenste waarde gaat uitsturen, dus als hij niet kan garanderen dat het klopt wil ik dat hij niks uitstuurt.
Dit kan je dus nooit 100% garanderen.
Wat voor soort systeem ga je op deze manier aansturen.
In dit soort systemen moet je ook kijken naar het gedrag van je sensoren en actuators.
simpel voorbeeld : Bij een gasbrander waar de sturing van uitvalt, een klep gebruiken die open gaat bij uitval is niet verstandig. Dit kan een gevaarlijke situatie op leveren.