Partez en vacances en toute sécurité
24 Mars
1999
24 Mars
1999
© AP Photo/Stefano Sarti/Sipa © AP Photo / SIPA
Benjamin MARRON
Gentleman coder since 1996
Dev Lead
X/Twitter : @bmarron
Bluesky : bmarron.bsky.social
Linkedin : marronbenjamin
Conséquences
• Prise de conscience de la dangerosité potentielle
des ouvrages
• Etat des lieux des tunnels français
• Evolution de la réglementation au niveau européen
• examen périodique,
• obligation d'exercices de sécurité réguliers
Conséquences
• Génie civil
• Equipements
• Système
Anatomie
d’un tunnel
Equipements
Dynamiques
Automates
Automates
Automates
Supervision
Supervision
Système
d’Aide à
l’Exploitation
Système
d’Aide à
l’Exploitation
Architecture
propriétaire
OPC/UA socket
Rénovation des IHM
Ancien système
• Client lourd
• Langage propriétaire
• Difficultés de création de
nouvelles IHM
• Utilisation de taches C sur le
poste opérateur
• Communication via socket
Nouveau système
• Client léger
• Java11 (SpringBoot)/Angular
• IHM guidée par le paramétrage
• Communication asynchrone
• Projet global de refonte du SAE
Rénovation des IHM
Rénovation des IHM
Problématiques à résoudre
• 19 ouvrages
• Plusieurs vues par ouvrage : Signalisation, Ventilation, Eclairage, …
• Affichage des données en temps réel pour la vue concernée
Filtrage des données transmises à l’IHM par ouvrage et domaine
Backend
Cache de données
Traiter les données en temps réel
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
public void receiveMessage(Object message) {
ConnectorStateEvent connectorEvent = new ConnectorStateEvent(this);
connectorEvent.setTechnicalState(TechnicalState.NORMAL);
applicationEventPublisher.publishEvent(connectorEvent);
}
public void processConnectorStateEvent(ConnectorStateEvent connectorEvent) {
// Processing the event
…
}
Publication
Réception
Afficher les données en temps réel
@Autowired
SimpMessagingTemplate template;
public void broadcastConnectorStateEvent(ConnectorStateEvent connectorEvent) {
template.convertAndSend("/topic/ALM", connectorEvent);
logger.info("Envoi message", connectorEvent.getTechnicalState());
}
ngOnInit() {
this.rxStompService.watch('/topic/ALM').subscribe((message: Message) => {
this.receivedMessages.push(message.body);
});
}
Publication
Réception
https://stomp-js.github.io/
Filtrer les données
2 Commande d’envoi
11 Exécution d’une commande
1 Domaine Signalisation
31 Commande à exécuter sur le système destinataire
7 Identifiant du tunnel
20 Type d’équipement (20 = PMV)
320 Identifiant du panneau
1 Identifiant du message
0 Fin du message
XXX Identifiant retour
Génération des vues
Architecture
Backend
HTTP
WS
Simuler l’état des équipements
Connecteur Terrain
Simulateur
Connecteur OPC/UA
Résilience
Résilience
Site 1
App App
Site 2
App App
Site 2
App App
Site 1 Backup
Et la suite ?
• Déploiement de la solution chez d’autres
concessionnaires
• Création d’un logiciel de supervision pour nos
clients
Merci
https://openfeedback.io/rivieradev24/0/270

Sécurite Tunnels routiers RivieraDev 2024

Notes de l'éditeur

  • #3 53h 1000°C 36 véhicules : 34 poids lourds, 9 voitures, 1 moto, 2 secours 39 victimes : 1 pompier français et 1 secouriste italien (spadino) Conclusions du procès : capacité d'extraction des fumées toxiques limitée, mauvaise utilisation des conduits d'extraction, fonctionnement inadapté des feux de signalisation, absence de galerie de sécurité, mauvaise coordination des postes de commande franco-italiens, consignes de sécurité inadaptées, moyens d'intervention insuffisants
  • #4 53h 1000°C 36 véhicules : 34 poids lourds, 9 voitures, 1 moto, 2 secours 39 victimes : 1 pompier français et 1 secouriste italien (spadino) Conclusions du procès : capacité d'extraction des fumées toxiques limitée, mauvaise utilisation des conduits d'extraction, fonctionnement inadapté des feux de signalisation, absence de galerie de sécurité, mauvaise coordination des postes de commande franco-italiens, consignes de sécurité inadaptées, moyens d'intervention insuffisants
  • #7 Génie civil : galeries de sécurité, usine d’extraction de fumées, niches de sécurité, lits d’arrêts, etc … Equipements : Remplacement par des équipements plus performants, Ajout d'équipements pour renforcer la sécurité Système : Modernisation des systèmes pour prendre en compte les nouvelles réglementations et équipements, Création de Système d'aide à l'exploitation
  • #8 Création de galeries de sécurité, percement de tubes pour accès secours Création de niches, de galerie transverses pour évacuation Création d'un PC sécurité au milieu du tunnel du Mont Blanc par ex
  • #11 Génie civil (double galerie, niche, tunnels d'évacuation) Visibles : Eclairage, signalisation, ventilation, niches de sécurité Invisibles : Anémomètre, capteur de vibration, pompe de relevage, locaux techniques, bassins de rétention Plus gros : accélérateur Plus petit : capteur de porte
  • #12 Composants électro mécaniques Interface électrique (tout ou rien) ou analogique (thermomètre) Monde des électriciens
  • #13 Lien entre équipements et systèmes informatiques Implémentation de logique métier critique Monde des automaticiens Schneider, Siemens, Rockwell
  • #14 Programme grafset
  • #15 Programme type code Automaticiens implémente scénario désenfumage fournir par aerolicien
  • #16 Connaitre l’état (fonctionnel et technque) de chaque équipement dans un ouvrage Algo de calculs (alarmes, synthèse) Monde des mainteneurs Progiciel
  • #18 Connaitre l’état synthétique d’un ouvrage (fonctionnel et technique) Déclenchement de procédures d’exploitation (fermeture de voies, incendie, etc…) Monde des superviseurs
  • #19 Date de 1994 Exemple : La Baume,Sud de la France, 350m, 375 équipements dynamiques, environ 1500 points de données Mont Blanc : plus de 11 000 équipements dynamiques
  • #20 Projet de rénovation : Exploitant 20aine de tunnels, 2 sens pour la plupart, des vues différentes (sig, ventil, eclairage, etc …)
  • #21 Projet de rénovation : Exploitant 20aine de tunnels, 2 sens pour la plupart, des vues différentes (sig, ventil, eclairage, etc …)
  • #22 Angular/Material Animation et fond de plan en SVG Pilotage de l’affichage par le backend ISO Fonctionnalité avec le legacy
  • #25 Besoin d’un cache de données pour - affichage immédiat des derniers états connus - garder les états même si personne n’est connecté Utilisation pub/sub pour du temps réel Si redis n’est plus dispo, rien ne marche
  • #26 Commande unitaire passée pour le domaine signalisation du tunnel Las Planas sens 2 pour les panneaux 320 en position 1 et 520 en position 1 :
  • #27 Spring Events dans le back Websocket+stomp pour comm front-back
  • #28 Commande unitaire passée pour le domaine signalisation du tunnel 7 sens 2 pour les panneaux 320 en position 1 et 520 en position 1 :
  • #29 Base de données de référence interne déjà existante Générateur de vues SVG
  • #31 Connecteur OPC/UA pour se passer de la supervision
  • #32 Connecteur OPC/UA pour se passer de la supervision
  • #33 Connecteur OPC/UA pour se passer de la supervision