ANF "Utilisation du framework EPICS pour le contrôle-commande de nos instruments"

Europe/Paris
Centre Paul Langevin

Centre Paul Langevin

24 Rue du Coin 73500 Aussois
Description

EPICS

EPICS (Experimental Physics and Industrial Control System) est un ensemble d'outils logiciels open-source pour réaliser des systèmes de contrôle distribués sur des installations comme les accélérateurs de particules, les télescopes ou d'autres grandes infrastructures scientifiques. Il est par exemple utilisé en France sur le projet ITER ou au GANIL à Caen.

En savoir plus : https://en.wikipedia.org/wiki/EPICS ; https://epics-controls.org/

Objectifs de l'école :

Cette école est une formation de base au développement d'un système de contrôle avec EPICS.

Son objectif est de former des développeurs EPICS dans les laboratoires au-delà des équipes spécialisées des très grands instruments, de façon à ce que la technologie EPICS bénéficie à des installations expérimentales de moindre envergure d'une part, et à ce que tous les laboratoires soient plus à même de contribuer au développement de très grands instruments d'autre part.

Elle vise aussi à créer un réseau d'échanges et d'entraide entre les participants.

A l’issue de la formation les stagiaires seront capables de :

  • Maitriser les concepts de base d'EPICS,
  • Concevoir et réaliser un système simple de contrôle-commande avec EPICS,
  • Interfacer des instruments ou automates usuels avec EPICS,
  • Identifier les compétences requises pour mettre en oeuvre un système complet (administration système, administration réseau, développement de drivers…).
  • Trouver des informations complémentaires pour progresser,

Programme général :

  • Axe 1 : Notions de base d'EPICS (protocole CA, base de données temps-réel distribuée, IOC, soft IOC, systèmes cibles, composants du développement : application, modules, extensions, drivers…, historique rapide et évolutions récentes et actuelles du développement open source d'EPICS, outils spécifiques pour le développement tels que CSS-Studio, cas d'utilisation, spécificités par rapport aux frameworks logiciels concurrents ou ressemblants)...
  • Axe 2 : Mise en place d'une application type capable de piloter différentes sortes d'appareils : un instrument par messages (typiquement SCPI sur RS232 ou Ethernet), un module d'entrées-sorties générales (typiquement NI DAQ), un automate (typiquement Siemens S7). Distribution du contrôle entre IOC "soft" et un IOC "real time". Mise en place d'autres composants usuels (typiquement : interface graphique utilisateur, archivage, gestion d'alarmes...).

Public :

Développeurs spécialistes des systèmes de contrôle-commande sur des instruments scientifiques ou des installations expérimentales de moyenne ou grande taille (ingénieurs des services instrumentation, électronique, informatique, accélérateurs…).

Prérequis :

Les stagiaires doivent posséder une bonne expérience dans le développement de systèmes programmables de contrôle-commande. A défaut (par exemple simple utilisateur EPICS désireux de participer au développement informatique), le participant doit justifier de solides connaissances en programmation, en instrumentation et en informatique système et réseau.

Formateurs :

Paul LOTRUS *, Olivier DELAHAYE **, Alexis GAGET *, Victor NADOT *, Stéphane TZVETKOV *.

* CEA / IRFU / LDISC (Laboratoire de Développement et Intégration de Systèmes de Contrôle, Saclay)
** Groupe Contrôle commande et Automatisme (GANIL, Caen)

Matériel nécessaire :

Les participants devront venir avec un ordinateur portable sur lequel ils auront préalablement installé une machine virtuelle (fichier image fourni). Des informations complémentaires seront envoyées aux participants suite au Comité de Sélection.

En effet, des TP sont prévus durant l'école afin que les participants puissent utiliser concrètement les logiciels et les techniques présentées. Le PC n'a pas besoin d'être spécialement performant, mais l'école ne pourra pas fournir un ordinateur aux participants.

Consignes sanitaires :

Les consignes sanitaires en vigueur à la date de l'ANF seront strictement appliquées. L'organisation de l'école prendra toutes les mesures nécessaires pour garantir la sécurité des participants.

Dans ce cadre, le pass vaccinal peut être demandé pour accéder à l'école.

Fichiers d'inscription
    • 15:00 15:30
      Historique EPICS 30m

      Open source, Accélérateurs de particules, Communauté active (meeting, ICALEPCS, Codethon), v3, v4, v7, Où trouver la doc (site web, tech-talk), Où trouver la base

    • 15:30 16:00
      Principe de fonctionnement 30m

      Channel Access, Base de données, Architecture distribuée, Clients de base (caget, pvget, camonitor, caput), Clients langage (Python, LabVIEW, C, Java, ...) et applications (Phoebus, Archivage, ...)

      Vocabulaire (IOC, Soft IOC, PV, CA server, CA client, Record, Processer)

    • 16:00 16:30
      Pause café 30m
    • 16:30 17:30
      Notions de la base de données 1h

      Variable (champs prédéfinis)

      AI/AI, BI/BO, Les champs communs à tous les PVs, SCAN, I/O Intr, SEVR

    • 17:30 18:30
      Mon premier IOC 1h

      Créer un top (projet), créer une application, créer un IOC, explication de la structure et du cmd, caget, caput (sans détail)

    • 19:30 21:00
      Dîner 1h 30m
    • 08:30 09:00
      Base EPICS, support, extension 30m

      Notions (CONFIGURE, RELEASE), ajouter un driver EPICS, caget, caput, camonitor…

    • 09:00 09:30
      TP mon premier IOC 30m
    • 09:30 10:30
      Piloter du matériel en SCPI 1h

      StreamDevice, autosave

    • 10:30 11:00
      Pause café 30m
    • 11:00 12:30
      TP mon premier appareil 1h 30m

      Kameleon

    • 12:30 14:00
      Déjeuner 1h 30m
    • 14:00 14:30
      TP mon premier appareil 30m

      Kameleon

    • 14:30 15:30
      Comprendre Channel Access 1h

      Etablissement de la comm, beacon, wireshark ou tcpdump, CA Gateway, security

    • 15:30 16:00
      Pause café 30m
    • 16:00 17:00
      Communiquer avec un automate 1h

      Modbus/TCP, S7 PLC, OPC/UA

    • 17:00 18:00
      TP mon premier automate 1h

      Modbus/TCP

    • 19:30 21:00
      Dîner 1h 30m
    • 08:30 09:30
      Davantage de type et champs EPICS 1h

      waveform, alarm

    • 09:30 10:30
      Client GUI 1h

      Créer un interface avec Phoebus (synoptique, courbe) Paramétrage réseau, vue alarme, solution Web

    • 10:30 11:00
      Pause café 30m
    • 11:00 12:00
      TP GUI 1h
    • 12:00 12:30
      Davantage de type et champs EPICS 30m

      calc, FLNK, sub, conversion, PID

    • 12:30 14:00
      Déjeuner 1h 30m
    • 14:00 15:00
      Temps libre 1h
    • 15:00 15:30
      Simplifier la programmation EPICS 30m

      Macro, template

    • 15:30 16:30
      TP template 1h
    • 16:30 17:00
      Pause café 30m
    • 17:00 18:00
      IOC séquenceur 1h

      SNL, Python

    • 19:30 21:00
      Dîner 1h 30m
    • 08:00 10:00
      Développer un driver EPICS 2h
    • 10:00 10:30
      Pause café 30m
    • 10:30 11:30
      TP 1h
    • 11:30 12:00
      Echanges 30m
    • 12:00 12:30
      Déjeuner : paniers pique-nique 30m