NISAL is een door General Railway Signal (GRS, later ook SASIB, nu beide Alstom) gepatenteerde set van technieken om een microprocessor gebaseerd platform te creëren waarmee beveiligingssystemen, zoals Vital Processor Interlocking, kunnen worden geïmplementeerd. Het is een door GRS in samenwerking met het Rochester Institute of Technology ontwikkelde methodiek waarmee beveiligingsdata, zoals de variabelen in booleaanse vergelijking worden gecodeerd en de integriteit van deze data en de werking van in- en output circuits constant wordt gecheckt en re-checkt.

NISAL is een uitbreiding van de eerder ontwikkelde en gepatenteerde Safety Assurance Logic (SAL). SAL omvat een reeks hardware- en softwaretechnieken waarmee een enkele microprocessor kon werken in een fail-safe systeemconcept. Deze reeks technieken was gepatenteerd als GRS Safety Assurance Logic (SAL®). Het eerste commerciële product dat werd uitgebracht met behulp van SAL-technieken op een microprocessor gecombineerd met een vitaal relais, was de MICROCHRON ® Timer in 1981. Ook de elektronische ATB codegever (VECT) van GRS was op het SAL principe gebaseerd

In 1978 begon GRS met de verdere ontwikkeling van NISAL®. Ze bedachten een aanpak om de SAL techniek uit te breiden tot een programmeerbaar interlocking platform voor algemeen gebruik, gebruikmakend van wiskundige principes uit de communicatiebeveiliging en uit cryptografie. Het resultaat is een monoprocessor-architectuur, waarbij elke voorwaarde is gecodeerd met een unieke numerieke waarde. De numerieke invoerwaarden worden vervolgens verwerkt en hun resultaat wordt geïnterpreteerd door het hercoderen van een uitvoercommando. Het resultaat van de bovengenoemde bewerkingen produceert een numerieke invariant controlewoord dat de juistheid ervan garandeert.

Deze controlewoorden worden in een onafhankelijk systeemdeel, de Vital Relay Driver omgezet in een dynamisch signaal dat als het signaal de juiste eigenschappen heeft via een speciaal filtercircuit, in staat is om een Vital Relay bekrachtigd te houden dat de output circuits van de benodigde spanning voorziet om seinen, wissels etc. aan te sturen.
De NISAL-logica wordt gekenmerkt door het feit dat alle numerieke transcoderings- en verwerkingsoperaties een analytisch kwantificeerbare foutkans hebben. De essentie van het veiligheidsargument is dat het daardoor mogelijk is om een bovengrens te berekenen voor de waarschijnlijkheid dat het Vital Relay bekrachtigd blijft terwijl niet aan de voorwaarden daarvoor voldaan is. Die bovengrens is kleiner dan de toegestane Tolerable Hazard Rate voor het op NISAL gebaseerde platform bijv. de VPI. Het principe wordt nog steeds toegepast in latere VPI versies, ASCV en Smartlock.

De Safety Assurance Logic verifieert de prestaties van de primaire logica door voorgeschreven tests uit te voeren. Deze tests zijn ontworpen om eventuele fouten aan het licht te brengen die kunnen leiden tot een onjuiste output of sturing. Het gebruikte mechanisme is het genereren van checkwords. Elk checkword certificeert de nauwkeurige voltooiing van een groep stappen. Correcte checkwords worden niet permanent opgeslagen in het processorgeheugen. Alle tests moeten in elke processor cyclus worden voltooid en er moeten nieuwe controlewoorden worden gegenereerd.
Daarom is een volledige en correcte set van checkwords het bewijs dat alle vitale tests zijn uitgevoerd en geslaagd.

De controlewoorden die tijdens de verwerkingscyclus worden gegenereerd, worden doorgegeven aan een onafhankelijke arbiter, bekend als een vital relay driver. Dit apparaat is zo ontworpen dat de uitgangsspanning voor de sturingen alleen mag worden geleverd als een voorgeschreven dynamisch signaal wordt gehandhaafd. Alleen een volledige en correcte verwerking van controlewoorden, periodiek gegenereerd in en gewist na elke cyclus, zal het mogelijk maken om de juiste dynamische output te behouden.

In wezen bevat de processor dus twee logische systemen: de primaire logica om de interlocking logica uit te voeren en de Safety Assurance Logic om ervoor te zorgen dat de primaire logica veilig wordt uitgevoerd.
Een doorontwikkeling van dat SAL-concept wordt NISAL of Numerically Integrated Safety Assurance Logic genoemd. NISAL is vergelijkbaar met de basislogica van Safety Assurance in die zin dat het checkwords gebruikt om te bewijzen dat de processen allemaal zijn uitgevoerd, de gebruikte gegevens actueel zijn, de outputs niet zijn vervalst, enz.
NISAL verschilt van SAL doordat de controlewoorden en gegevens zijn geïntegreerd. Elke parameter wordt vertegenwoordigd door een multibit-woord dat niet alleen de status van de parameter identificeert, maar ook de unieke identiteit ervan.

Daarom zijn er voor een Booleaanse parameter twee toepasselijke woorden, één voor de true waarde en de andere voor de false-waarde. Het systeem is zo ingericht dat de parameterrepresentaties worden beïnvloed door elke bewerking die moet worden gecontroleerd.

Een reeks correcte waarden van de parameter representaties is daarom het bewijs van de juiste werking dat permissieve outputs kunnen worden toegestaan.
De kans om het bestaan van een permissieve output ten onrechte toe te staan, is gerelateerd aan de lengte van de codewoorden die de parameters vertegenwoordigen. Hoe langer ze zijn, hoe kleiner de kans dat ze toevallig een van de toepasselijke woorden blijken te zijn wanneer er een storing is opgetreden.
Bij basis-SAL kunnen de controlewoorden worden beschouwd als afzonderlijk gegenereerd van de gegevensrepresentaties, terwijl bij NISAL de controles worden uitgevoerd binnen de gegevensrepresentaties.
De veiligheidsbewijsvoering voor het platform (nu zouden we de term Generic Product Safety Case gebruiken) bestond dus uit een wiskundige analyse op basis waarvan werd aangetoond dat de kans op een onveilige faalwijze van die zgn. Numerically Integrated Safety Assurance Logic (NISAL) als hierboven beschreven een bepaalde acceptabele bovengrens had.

Literatuur en Bronnen
GRS Centennial
Microprocessors in Fail-Safe Systems (doorzoekbare scan)- Paper 2 IRSE Proceedings 1986 (originele proceedings)- C.G. Shook
Rhody, H.E., Manoni, V., Hoelscher, J.R. (1993). Design and Analysis of a Failsafe Algorithm for Solving Boolean Equations. In: Górski, J. (eds) SAFECOMP ’93. SAFECOMP 1993. Springer, London
A vital digital control system with a calculable probability of an unsafe failure IEEE paper
Fail safe microprocessor interlocking-an application of numerically integrated safety assurance logic, IRSE International Conference "Safety Control and Automation towards the 21st Century", Rutherford D.,London sept. 1984 pp 72-76
US Patent US006009554A, SYSTEMS SAFETY VITAL ARBITER EMPLOYING NUMERICAL TECHNIQUES

Laatste aanpassing: 20 april 2023