Professional Documents
Culture Documents
Functionality in a Tram
2
Rotterdam Citadis
3
The Project
O Built by
O Alstom Ridderkerk, NL: electronics, traction
O Alstom La Rochelle, F: the rest
4
The Dead Man Switch
5
Dead man electronics
Dead man
switch
Relay
PLC
6
Braking a Tram
O Recuperating brakes
O Brake discs
O Rail brakes
7
Recuperating Brakes
Pantograph
Brake resistor
Switch
Inverter
Motor
M
8
Pantograph
9
Inverter
10
Communication PLC to Inverter
O MVB – Vehicle Bus
O Vehicle Wires (fail-safe), e.g.:
O Torque
O No_Emergency_Brake
O No_Brake
O Torque_100%
11
Dependability Requirements
O Apply EN50126: Railway applications; The
specification and demonstration of dependability,
reliability, availability, maintainability and safety
(RAMS)
12
Activities
O FMEA
O Fault Tree
O Model Checking Using SMV
13
Observations from FMEA
O Large amount of work
O But necessary: gives safety engineer insight
O Leads to fruitful discussions with design team
O Some failure modes difficult to detect: acceptable?
14
Observations from FTA
O Almost no redundancy: acceptable?
O Improvement by automatic testing
O Software is single point of failure
O Comparison to state-of-the-art
15
Model Checking Using SMV
O SMV is very suitable for modelling PLC software
O Properties proved:
O If dead man switch is released, then PLC will command
braking action
O If dead man switch is always closed, then PLC will
command braking action
16
Greater-than Translation
module gt_int(in1, in2, _out) {
INPUT in1, in2: -_max.._max;
OUTPUT _out: boolean;
case{
in1>in2: _out:=1;
default: _out:=0;
}
}
17
Off-timer Delay Translation
module tof(_in, q) {
INPUT _in: boolean;
OUTPUT q: boolean;
state_tof: {idle, wait, active};
init(state_tof):=idle;
case{
state_tof=idle & _in=0: next(state_tof):=wait;
state_tof=wait & _in=0: next(state_tof):={wait, active};
state_tof=active & _in=0: next(state_tof):=active;
default: next(state_tof):=idle;
}
case{
state_tof=idle: q:=1;
state_tof=wait: q:=1;
state_tof=active: q:=0;
}
}
18
Properties
deadman18_mode1: assert (
(F (IDeadmanIn & (X G ~IDeadmanIn)) &
F (NIDeadmanInMc1 &
(X G ~NIDeadmanInMc1)) &
(G MCabinActive) & G MCabinID))
-> F G (~QEmerTorque1 & ~QEmerTorque2 & ~QNoBrake));
using fair_tof_163_10, fair_tof_163_74 prove deadman18_mode1;
19
Observations from Model Checking
20
Conclusion
O Model checking PLC gives evidence for safety claim
O Model checking work appreciated by client
21