Le développement du logiciel sur C 90-40

Le développement initial

Nous n’avons pas retrouvé suffisamment d’informations sur les développements initiaux pour compléter les informations de l’article principal, aussi nous focaliserons nous sur les développements complémentaires qui ont émaillé toute la longue vie des C 90-40.

Il est à noter qu’en dehors du développement de modèles de calcul de réseau effectué par la Direction des Etudes et Recherches, les autres développements ont été effectués par les équipes régionales avec très ponctuellement un soutien externe de CII.

Les développements ultérieurs

Le besoin

Les besoins étaient issus des exploitants du système électrique ou de la partie informatique. Dans les deux cas le besoin pouvait présenter un caractère local, mutuel ou national. Dans tous les cas, une information mutuelle et réciproque était mise en place et permettait le partage des bonnes pratiques et des bonnes idées.

L’analyse

Une fois le besoin globalement exprimé, venait une phase d’analyse qui au-delà de la simple analyse du logiciel concerné, comportait un volet important sur l’impact sur les ressources mémoire vive (place, cartographie mémoire), ressources disque (place, cartographie disque), sur les ressources CPU. Compte tenu de l’optimisation poussée des ressources, l’ajout d’un simple marqueur tenant sur un bit, pouvait amener à des chamboulements des implantations, voire à une reprise globale de la cartographie disque ou mémoire, ce qui était toujours une opération très risquée, car elle impactait tous les sources des programmes, mais aussi éventuellement les performances en jouant sur les temps d’accès au disque.

Pour les programmes au cœur du système comme le scheduler, l’optimisation allait jusqu’à comparer le nombre global de temps de cycles machine de séquences réalisant le même objectif, mais avec des codages différents.

Le codage

Quasiment toutes les tâches tournant en temps réel étaient écrites en assembleur. Les autres, de moindre récurrence, étaient écrites en Fortran II temps réel, qui permettait d’inclure des séquences d’instructions assembleur. Il nous souvient que les temps globaux (analyse, codage, tests, intégration) pour la production d’un programme en assembleur étaient de l’ordre de 15% supérieurs à ceux de la production en Fortran. Par contre la maintenance évolutive ultérieure était beaucoup plus laborieuse en assembleur qu’en Fortran.

La production

Saisie
Après écriture sur papier du code, la saisie, que ce soit en assembleur ou en Fortran, se traduisait par la perforation sur cartes, à raison d’une ligne de code par carte, sur un perforateur de cartes disposant d’un clavier de type machine à écrire, et sans aucun écran.. La perforation se faisant en direct, toute faute de frappe signifiait une nouvelle frappe complète de la carte, ce qui amenait à être méticuleux dans la préparation et la frappe.

A chaque programme ou sous programme correspondait un paquet de cartes qui était la référence de base pour les modifications ultérieures et qu’il fallait donc conserver dans son intégrité. (Quelques anecdotes sur le développement du logiciel )

Assemblage ou compilation
Une fois la saisie terminée, les cartes étaient placées dans le lecteur perforateur et une commande depuis la console système (une télétype de type KSR, petite merveille de mécanique et de tringlerie puis de type ASR) lançait la lecture des cartes puis l’assemblage ou la compilation. Il en sortait un ruban binaire dont l’adresse d’implantation pouvait être fixe ou translatable. Si le programme comportait des sous-programmes, l’opération devait être répétée à l’identique pour chacun d’eux.

Pour un logiciel écrit en FORTRAN, le mode opératoire était légèrement différent de celui utilisé pour l’assembleur. Comme le compilateur FORTRAN ne tenait pas en mémoire, le dérouleur de bande était utilisé comme mémoire auxiliaire et la compilation s’effectuait en plusieurs passes.

Comme dans les temps actuels, assembleur et compilateur détectaient les erreurs de syntaxe, mais de façon beaucoup moins performante.

Edition de liens
Une autre commande lançait l’édition de liens ; il fallait alors lire les différents rubans obtenus dans l’étape précédente ainsi que la table des symboles qui permettait de faire le lien entre les références externes du programme (routines système, adresses physiques des données résidentes en mémoire, adresses des fichiers, etc). L’édition de lien se terminait par la production de l’exécutable sur un ruban perforé à partir d’un lecteur perforateur de ruban. Une fois la perforation terminée, le rouleau obtenu qui pouvait atteindre une taille importante, devait être remonté sur le lecteur perforateur. Une dernière commande lançait la lecture du ruban perforé et l’installation de l’exécutable sur disque. La lecture du ruban perforé s’accompagnait d’un contrôle de parité. Il suffisait alors d’une seule erreur de perforation pour que l’opération échoue. Dans ce cas, le ruban partait à la poubelle et il fallait recommencer.

La mise au point
La mise au point était laborieuse en l’absence d’outils de débogage et de plateforme de tests.
La procédure consistait à d’abord à lancer le programme dans un environnement figé sur le calculateur scientifique, puis une fois les limites de cette méthode atteinte, de passer, après avoir obtenu l’accord du dispatching, sur la machine fonctionnant en temps réel tout en gardant celle utilisée en secours avec la version ancienne, au cas où…
En cas de problème, dans les deux cas cités ci-dessus, le mode opératoire consistait tout d’abord à ajouter des traces (impression papier ou écriture dans un espace mémoire dédié à cet effet). L’ajout de traces pouvant modifier le fonctionnement du programme (décaler un écrasement en mémoire par exemple et le rendre non détectable), la deuxième méthode consistait à insérer dans le programme des instructions « HLT » (halte). Le calculateur s’arrêtait. On pouvait alors, en actionnant une clé, faire fonctionner le calculateur en pas à pas et consulter au pupitre les registres de calcul matérialisés par 24 lampes (parmi les registres on pouvait visualiser selon la position d’une molette, le registre C contenant l’instruction en cours de décodage, les registres A (accumulateur principal), B (extension de l’accumulateur), X (registre d’index), P (compteur qui indiquait l’emplacement mémoire de l’instruction en cours)).

A l’aide de l’accessibilité à ces registres on pouvait visualiser des zones mémoire, faire des patches en mémoire (en savoir plus). Cette méthode amenait les ingénieurs qui maîtrisaient cette technique à connaître par cœur les codes (en octal ) des instructions les plus courantes et à savoir effectuer avec une certaine dextérité les opérations courantes en base huit pour recalculer les emplacements mémoire visés.

Pendant tout ce temps les dispatcheurs devaient se contenter du synoptique, des enregistreurs et du téléphone….

Maigre consolation, les dumps mémoire étaient de taille raisonnable et relativement facile à décrypter en l’absence de structures systèmes complexes.

architecture du palier C 90-40

L’architecture initiale du système basée sur les CAE C 90 xx  était une architecture doublée.
Toutefois les deux calculateurs, lorsqu’ils existaient – il n’y eu qu’un seul calculateur à Brive jusqu’à la disparition du site et Marseille a fonctionné très longtemps avec un seul calculateur – étaient différents.
S’ils possédaient un certain nombre de périphériques communs (partagés ou identiques) tels que disques rapides, console système, lecteur et perforateur de rubans, accès télécom, système de visualisation, imprimante ligne, centrale de sons d’alarme, le C1 prioritairement réservé au temps réel ne comportait pas de dérouleurs de bandes, pas de lecteur de cartes, pas de table traçante…
Le C2 dit « calculateur scientifique », en dehors des périodes où il servait de secours automatique au C1, était utilisé pour le développement et la mise au point de programmes, pour des travaux statistiques, pour la facturation des clients nationaux (raccordés en haute et très haute tension)…

Insérer schéma config

En fonctionnement temps réel complet à deux calculateurs, le calculateur secours reprenait la main en cas de détection de panne du principal (absence de réarmement d’un watchdog). Lors de cette reprise, un certain nombre d’actions opérateurs pouvaient avoir été perdues, le processus de synchronisation entre les deux calculateurs n’étant globalement effectué que toutes les demi-heures.
Pour des raisons économiques et ou d’opportunité matérielle, il arrivait que les deux calculateurs soient encore plus différents. A Lille, il y avait un 90-10 et un 90-40, ce qui, malgré une certaine compatibilité des machines, amenait à des versions logicielles aménagées. A Paris, le C1 disposait de 32 Kmots de mémoire vive et le C2 uniquement de 24 Kmots. Un certain nombre de données se trouvaient donc à une certaine adresse en mémoire basse (C2) et à une adresse translatée de 16 Kmots – en mémoire haute – (C1). Selon que l’on exécutait le programme sur le C1 ou le C2, un test permettait d’armer ou non l’extension, ce qui permettait de disposer du même code sur les deux machines et d’un espace supplémentaire en mémoire basse (la seule ou l’on pouvait mettre les instructions) pour exécuter des tâches gourmandes en ressources et jugées moins indispensables à l’exploitation du réseau électrique d’alors (calcul de répartition par exemple) sur le C1.

Compte tenu de la durée de vie du système, des détails de l’architecture ont évolué, mais ses principes sont restés les mêmes.

Les évolutions les plus marquantes ont porté sur  :

  •  Le système de visualisation. Les premiers écrans étaient des écrans alphanumériques monochromes permettant d’afficher des listes ou des pseudo-représentations de postes électriques à l’aide de quelques caractères disponibles (*, – etc).

images écrn llille

Paris a disposé assez tôt d’écrans graphiques monochromes à balayage cavalier permettant notamment l’affichage de schémas de postes. Puis l’apparition de consoles semi graphiques couleurs a révolutionné le look du système moyennant de nombreux développements, dans un univers contraint en place et en puissance, pour ajouter les données nécessaires aux nouveaux tracés et aux informations de couleurs.

  • Les communications. Les calculateurs étaient raccordés initialement aux ERC, l’arrivée des CACQ s’est traduite par de nombreuses modifications au niveau des protocoles de communication, mais aussi sur la logique même de traitement. Les ERC émettaient toutes les informations en mode cyclique 10 secondes, le CACQ qui les a remplacés n’envoyait les télésignalisations que sur changements d’états. De plus lors des redémarrages, il fallait désormais effectuer une vérification globale de toutes les signalisations (contrôle général). Les calculateurs temps réel ont également eu à communiquer informatiquement avec le monde des prévisionnistes et des statisticiens, alors que les premières communications se faisaient par listing papier ou par telex (*). D’autant qu’il nous en souvienne ces modifications importantes dans un système vieillissant et contraint furent globalement une réussite sans que cela ne surprenne grand monde….
    (*) Pour envoyer de façon journalière et « automatique » le programme de marche aux centrales thermiques, on générait une bande telex depuis le calculateur scientifique du dispatching, puis ce ruban était envoyé via un telex classique. Comme il n’y avait pas de perforateur de ruban telex sur nos 90 40, on se servait du perforateur de ruban du 90 40. Mais les codes telex étaient à cinq trous et ceux du calculateur à huit trous. Une ingénieuse pièce métallique placé sur le perforateur permettait de caler le ruban telex d’un côté du perforateur et un travail de conversion de code avait permis de d’éditer les codes ordinateur correspondants aux codes telex souhaités.
  • Le remplacement des machines à écrire qui assuraient les logs d’exploitation. Les machines de type ASR furent remplacées par des machines à boule. Bien que ceci apparaisse comme une évolution de bien peu d’importance, elle a donné pas mal de fil à retordre aux développeurs de l’époque. Le pilotage de ces machines était, en effet, effectué directement au niveau du calculateur central. Il a donc fallu pour effectuer les modifications se replonger dans du vrai temps réel avec gestion des interruptions, et des temps d’attente de la frappe des caractères. Le retour chariot ou le changement de couleur du ruban encreur n’ayant pas le même temps de réponse que la frappe d’un simple caractère…

Les calculateurs C 90-xx : outils des premiers dispatchings transport informatisés en France

Des calculateurs américains vendus par CAE

Les calculateurs de la série C 90-xx (C90-10, C90-40, C90-80) vendus sous la marque CAE ont été le fruit d’un accord commercial. CAE, conscient des retards de l’industrie naissante des semi conducteurs en France  par rapport à celles des Etats Unis  a renoncé à construire ses propres calculateurs et a reporté ses efforts sur l’ingénierie. Il a choisi de commercialiser des calculateurs de la gamme 9 séries de Scientific Data System (SDS) (to know more about SDS) .

Cette gamme était composée d’une série de calculateurs, conçus dans les années 60, et apparus successivement dans le temps tout en fournissant aux utilisateurs une compatibilité ascendante. Cette compatibilité sera utilisé par EDF pour passer des C90-10 (SDS 910) initiaux trop justes pour répondre aux besoins aux C90-40 (SDS 940).

La gamme SDS 9 series comportait les 910 (1962), 920 (1962), 930 (1964) et 940 (1965)

Un C 90-40 dans sa version dépouillée  avec ses armoires et son pupitre.

Les caractéristiques

Caractéristiques matérielles

Les calculateurs de la série 9xx (en savoir plus) étaient des machines basées sur des transistors au silicium, ce qui à l’époque était une technologie récente et une certaine garantie en matière de fiabilité.

Caractéristiques générales

Les calculateurs étaient à mots de 24 bits, et disposaient de plusieurs registres : A, accumulateur principal, B, extension de l’accumulateur. Selon les instructions exécutées, A et B pouvaient être utilisés chacun comme des registres indépendants ou bien groupés (par exemple sur certaines instructions de permutation circulaire).  X, registre d’index;  C, registre qui contenait l’instruction qui allait être exécutée au pas suivant.  P, compteur ordinal (14 bits) qui indiquait l’adresse mémoire en cours.  W et Y registres utilisés pour les entrées-sorties.

Il y avait aussi un indicateur de débordement (1 bit) pour gérer les dépassements de capacité lors des opérations arithmétiques.

Il est à noter que les registres étaient visualisables à l’aide de lampes sur le pupitre de l’ordinateur. Une molette permettait de sélectionner le registre visualisé. Cette visualisation n’avait, bien évidemment, de sens que lorsque le calculateur était dans l’état iddle (figé). Elle permettait notamment la mise au point et des programmes et l’introduction manuelle de patches.

 en savoir plus sur le pupitre du 90-40

Les entiers naturels étaient codés en complément à deux sur 24 bits, les flottants étaient codés sur deux mots (48 bits) avec 39 bits (dont celui de signe) pour la mantisse et 9 bits (dont celui de signe) pour l’exposant.

Le format des instructions était le suivant : ………….E..X…P…Opcode…..I……..Adresse mémoire Bit n°…. 0..1…2…3——–8….9….10————————-23 Bit 0 (E) Positionné à 1, ce bit indiquait que la référence mémoire était dans l’extension (au-delà des 16 premiers Koctets) pour peu qu’une commande (sharm) ait activé son fonctionnement. Si la commande n’avait pas été passée la référence de l’adresse était la partie basse (16 premiers Koctets) Bit 1 (X) Positionné à 1, ce bit indiquait que la référence mémoire était indexée, le contenu du registre d’index était ajouté à la référence mémoire présente dans la partie adresse. Bit 2 (P) Positionné à 1, ce bit indiquait que l’instruction était un POP (Programme Operator). Ces POP étaient des pseudos instructions (en fait des séquences de codes développées par les utilisateurs) Bits 3 à 8 (opcode) Code de l’instruction ou du POP (selon la valeur du bit 2) Bit 9 (I) Positionné à 1, ce bit indiquait que la référence mémoire était indirecte à savoir que la référence mémoire visée n’était pas celle contenue dans la partie adresse de l’instruction, mais celle contenue dans la mémoire dont l’adresse était contenue dans la partie adresse de l’instruction. Cette indirection était très utilisée combinée avec l’indexation qui dans ce cas s’effectuait avant l’indirection. Bits 10 à 23 (adresse)Ces bits contenaient l’adresse qui servait de base pour l’instruction. Machines destinées au temps réel et au contrôle de processus, elles étaient dotées d’un nombre important d’interruptions.

La mémoire

La mémoire était du type mémoire à tores magnétiques avec un temps de cycle de 8µs. Elle était physiquement limitée à 32 Koctets. (en savoir plus sur les mémoires à  tores )

Ces mémoires étaient très sensibles à la température de fonctionnement, ce qui impliquait de nombreux réglages de la tension des alimentations des fils d’écriture. Faute de quoi, des erreurs de parité mémoire survenaient et « plantaient » le calculateur concerné. Sur le site de Monceau, et malgré de nombreuses interventions, un des calculateurs fonctionnait mieux avec les portes de l’armoire mémoire ouvertes et l’autre avec les portes de l’armoire mémoire fermées. Je me souviens aussi que, jeune ingénieur analyste, lors d’une intervention sur panne électrique un dimanche, j’avais dû attendre près de trois quart d’heure après la remise sous tension, pour que le calculateur atteigne sa température de fonctionnement et ne présente plus de parité mémoire.

Les disques

Les disques utilisés dans les dispatchings étaient des disques amovibles à plusieurs plateaux dont la capacité totale était de 4 millions de caractères. Mais le codage des caractères s’effectuant sur 6 bits (BCD – 6 bits), cela correspondait à volume effectif de 3 Méga Octets.

3 millions d’octets… Comparez avec votre dernière clé USB!

Autres périphériques

en plus des périphériques cités, ci-dessus, les C 90-40 disposaient :

  • d’imprimantes rapides à rouleau de 132 caractères par ligne
  • de machines à écrire
  • de lecteurs enregistreurs de bandes magnétiques
  • de lecteurs perforateurs de ruban papier
Le dérouleur de bandes. Placer la bande dans les bras demandait une certaine habitude. Le lecteur perfo de ruban : A droite, la partie perfo avec le bac pour récupérer les petits confettis.  A gauche, la partie lecteur en haut la mécanisme enrouleur-dérouleur, et en bas le lecteur lui-même.

Ils disposaient aussi d’interfaces de communication et d’entrées sorties de type tout ou rien.

La gestion de certains périphériques était décentralisée par le biais de « canaux » (Disques, imprimante rapide… La gestion des autres s’effectuait directement au niveau de l’unité centrale (console, machine à écrire…)

Caractéristiques logicielles

Le système était notamment livré avec

  • Un système d’exploitation basique mono tâche permettant d’accéder aux ressources des calculateurs et des périphériques(Monarch) de type Batch.
  • Un macro assembleur (Meta symbol), qui était le langage le plus utilisé compte tenu des faibles capacités mémoire et de la puissance très limitée des calculateurs. (en savoir plus sur les assembleurs)
  • Un compilateur Fortran II temps réel. Ce compilateur avait la particularité de pouvoir inclure directement dans le code Fortran des instructions assembleur, ce qui permettait notamment des traitements efficaces au niveau des bits ou des quartets, relativement fréquents compte tenu de l’optimisation poussée de la place dévolue aux données. (en savoir plus sur le FORTRAN)
  • Un éditeur de lien
  • Un ensemble de drivers et handlers permettant l’accès aux divers périphériques
  • Un ensemble de programmes de tests permettant de tester classiquement les périphériques, la mémoire mais aussi chaque instruction. Une petite anecdote, j’ai vécu une panne pour laquelle les techniciens de maintenance n’arrivaient pas à lancer les programmes de tests. Après de longues heures de recherche nous avons découvert que tous les tests commençaient par l’instruction BRX (décrémentation du registre d’index et branchement à l’adresse indiquée lorsque la valeur de l’index était nulle) et en avons déduit que la carte abritant cette instruction était en panne.

Pour permettre un fonctionnement temps réel, les grands principes mis en œuvre étaient les suivants :

  • Un certain nombre de traitements était déclenchés sur interruption (fin d’entrée sortie, traitement d’acquisition, horloge…)
  • Un scheduler avait été développé. Lancé toutes les 400ms, il scrutait des tables contenant notamment des informations sur les demandes d’activation, les attentes… pour déterminer la tâche éligible.

Les tâches pouvaient être soit résidentes en mémoire centrale, soit à charger depuis le disque. Pour ces dernières trois zones de mémoire banalisées étaient réservées. Ces zones étaient nommées ZBP1, ZBP2, ZBP3. Elles étaient implantées à des adresses fixes et de tailles fixes mais différentes ZBP1 était la plus petite et ZBP3 la plus grande. A chaque programme non résident, les responsables de l’application attribuaient une des zones, ce qui influait sur l’édition de lien de la dite tâche pour lui définir une adresse d’implantation en mémoire cohérente avec celle de la zone banalisée concernée. Lors de la demande d’activation, si la zone banalisée correspondante était disponible, la tâche était chargée en mémoire et son exécution était lancée. Pour les tâches trop grosses pour tenir en ZBP3 on avait recours à la technique des overlays. On chargeait une première partie du code, puis une fois celui-ci exécuté, on écrasait ce code devenu inutile par la suite du code et ainsi de suite. Cette technique nécessitait beaucoup de soin pour organiser son code (et notamment les sous-programmes et tables de travail) afin de ne pas écraser malencontreusement des parties encore utiles.

Lâchez-vous, devenez un pro du C 90-40 : Accédez au manuel de reference 90 40 octobre 69!

Le premier palier de dispatchings transport en france (1967-1988)

Cet ensemble d’articles présente la genèse des dispatchings de transport en France fin des années 1960, début des années 70.

Le contexte du projet

Le contexte d’exploitation du système électrique

Le développement important du réseau (en savoir plus), la mise en construction d’un parc de production de plus en plus centralisé, les exigences croissantes en matière de sûreté, de qualité et d’économie nécessitaient de mettre à disposition des dispatchings de plus en plus d’informations que l’on peut classer en deux catégories :

  • Les informations utilisées directement par les dispatcheurs en temps réel (télémesures, télésignalisations mais aussi informations obtenues par téléphone auprès du personnel des postes et centrales électriques),
  • Des informations supplémentaires utilisées pour élaborer
    o  les prévisions de consommation et les programmes de production (les traitements prévisionnels),
    o  les statistiques et la facturation des clients alimentés en THT/HT (les traitements a postériori).

Le premier type d’informations était acheminé depuis les postes et centrales par des équipements traditionnels basés sur l’analogique qui se sont révélés insuffisamment performants en terme de capacité, de précision et de disponibilité.
Quant au deuxième type, il faisait essentiellement l’objet d’une collecte manuelle puis d’un traitement sur machine à calculer qui n’était plus adapté au volume à traiter.

Le virage du numérique

Alors que la France des années soixante découvrait le rock’n’roll et le confort apporté par les débuts de l’électroménager grand public (en savoir plus), EDF, de façon novatrice a entamé le virage du numérique. En matière de système électrique, Il a porté sur deux volets, l’acheminement des informations au dispatching et les moyens de calculs, et s’est déroulé en 3 étapes :

    •  1961 : décision d’approvisionner un calculateur pour le dispatching national.
 

 Au début des années 60, les moyens de calcul dont disposait le dispatching national se réduisaient à une table à calcul à courant continu, utilisée pour des calculs de répartition de charge, les calculs de puissance de court-circuit et pour l’élaboration de plans optimaux de production (minimisation des pertes) (En savoir plus). Toutefois, le développement du réseau à 380 KV, l’arrivée de centrales de production à coûts marginaux (1) voisins  ont rapidement rendu ces moyens de calcul très insuffisants (en savoir plus).

 

La mise sur le marché des premiers ordinateurs à vocation scientifique, la naissance en France de compétences sur le développement de logiciels « temps réel », (au sein notamment de la CAE) ainsi que l’évolution prévisible des capacités de rapatriement des informations depuis les postes et les centrales (cf infra le projet « infos codées ») ont conduit la direction d’EDF à approuver la commande d’un premier ordinateur le 25 octobre 1961. Ce fût un CAE 510 (2) , construit par la Compagnie Européenne d’Automatisme Electronique (CAE) sous licence américaine .Il était livré sans système d’exploitation avec quasiment comme seul outillage un compilateur Fortran ! Il a été installée en 1963 au Dispatching national pour y accueillir les modèles de calcul développés par la Direction des Etudes et Recherches d’EDF (DER).

Un RW 530 grand frère du CAE  530.

on voit ici le pupitre et le lecteur perforateur de ruban papier et au deuxième plan les deux armoires du calculateur et celle du dérouleur de bande.

.

Il été remplacé ultérieurement par un CAE 90-80.

 

Il était prévu une montée en puissance de son utilisation en 3 étapes :
– Assurer la sécurité : implantation de calculs de réseaux (calculs de répartition, analyse de sécurité (impacts des déclenchements et calculs de courts-circuits (3)),

 

– Optimiser la production : implantation d’un modèle fournissant un plan de production des usines thermiques et hydrauliques pour le lendemain,
– Automatiser le réglage de la production : il s’agissait d’implanter l’algorithme du réglage secondaire fréquence-puissance (4) dans le calculateur

    • 1962 : lancement du projet « informations codées » (en savoir plus) dont l’objectif était le suivant :

 – Permettre le rapatriement en nombre au dispatching de télémesures avec une précision garantie de 1% et dans un délai de l’ordre de 10 secondes,
– Offrir à l’arrivée un format à la fois analogique pour présentation sur des enregistreurs (dont un certain nombre existaient) et numérique pour acquisition et traitements automatisés par un ordinateur.

 

L’offre de marché étant insuffisante, EDF a été conduite à faire réaliser des matériels sur la base de spécifications propres. Après la réalisation d’un prototype installé à Nantes en 1964, la fabrication en série a été lancée en 1965 et le déploiement s’est étalé de 1966 à 1971. La pièce maîtresse du dispositif était l’ERC (5) capable d’acquérir puis de transmettre toutes les 10 secondes 20 mesures ou 160 signalisations.

les ERC au poste des Tanneurs, site pilote, près de Nantes.

Les premiers à bénéficier de cette nouvelle technologie ont été les synoptiques qui outre les positions des organes de coupure pouvaient désormais afficher des valeurs de mesures sous forme de quartiles.

La salle du dispatching de Lille en 1962.

Il n’y a pas encore d’ordinateur, mais le tableau synoptique a pris de l’ampleur et les enregistreurs se sont multipliés.

    • Décision d’équiper tous les dispatchings en SCADA

 La mise à disposition aux dispatchings par le projet « infos codées » de mesures au format numérique a ouvert la voie à l’informatisation de tous les dispatchings. Décision fût donc prise vers 1964 d’équiper le dispatching national et les huit dispatchings régionaux d’un système informatique permettant l’acquisition des données en provenance du terrain, la présentation à l’opérateur de ces données, leur surveillance et la réalisation de post-traitements sur celles-ci ou des données introduites par ailleurs.

La réalisation

Les calculateurs retenus

Les calculateurs retenus ont été des calculateurs vendus par la CAE/CII de la série 90-XX. .

Dans son positionnement stratégique CAE s’était axé sur la réalisation de logiciels orientés temps réel à valeur ajoutée, Elle avait établi, à cet époque, que l’industrie des composants en France ne pouvait rivaliser avec celle des Etats-Unis, et que la construction de ses propres ordinateurs était trop risquée, alors que d’autre part, ses compétences en logiciels pointus était une opportunité à saisir, notamment avec le contrôle commande de la production thermique (classique et filière graphite gaz), les dispatchings et le domaine militaire. CAE/CII s’est donc associé avec Wooldridge dans un premier temps (RW530) puis avec SDS (Scientific Data System) dont elle a  commercialisé la gamme C 900.
Les calculateurs finalement retenus furent des C 90-10 (SDS 910) qui ont été remplacés par des C 90-40 (SDS 940) avec la particularité de disposer d’un C 90-80 au niveau du dispatching national.

Au fond sur la gauche l’imprimante ligne et des dérouleurs de bandes qui n’étaient pas ceux utilisés dans les dispatchings.

Les C 90-40 étaient des machines à circuits (faiblement) intégrés et à transistors répartis sur des cartes de petit format, elles-mêmes enfichées sur des fonds de paniers répartis dans plusieurs armoires. La mémoire était une mémoire à tores magnétiques. Les mots étaient de 24 bits, mais l’adressage n’était que sur 14 bits, ce qui donnait une capacité mémoire adressable de 16 Kmots (soit seulement 48 Koctets). La mémoire physique pouvait monter à 32 Kmots, les 16 Kmots supplémentaires pouvaient être utilisés, moyennant une astuce système, pour stocker des données mais ne pouvaient pas contenir d’instructions directement exécutables. (en savoir plus sur les 90-40)

L’architecture retenue

L’architecture retenue est maintenant classique pour les SCADA, à savoir deux calculateurs fonctionnant en permanence, avec reprise automatique des traitements temps réel par la seconde machine en cas de panne de la première. Cependant l’architecture n’était pas symétrique tant du point du vue matériel que logiciel. Une machine était réservée aux traitements temps réel et l’autre aux traitements différés. Ces traitements différés s’exécutaient hors ligne, ce qui signifiait que l’automaticité du secours n’était pas assurée lorsqu’ils étaient en cours. Il était alors nécessaire d’arrêter les traitements et de relancer la machine en mode temps réel. Il est à noter que les dispatchings de Brive et de Marseille ne disposaient au début, que d’une seule machine. Pour ces dispatchings, les traitements hors ligne nécessitaient donc l’arrêt du temps réel. Les dispatcheurs étaient alors amenés à conduire le réseau avec le synoptique, les enregistreurs, le téléphone et bien entendu le schéma de quart. (En savoir plus sur l’architecture).

Salle des calculateur de Lille en 1967. On peut voir sur la gauche un écran alphanumérique, puis à moitié cachée, une imprimante ligne, un perforateur de cartes le long du pilier, et au fond en arrière plan une autre imprimante ligne.

Sur la droite au premier plan, l’arrière d’une des consoles système, une unité de disque (3 MO pour mémoire), un peu plus loin la console système de l’autre calculateur tournée vers le lecteur perforateur de ruban papier et le pupitre. On voit les armoires des calculateus eux-mêmes complètement sur la droite.

Le développement

Le développement de ce premier palier fût mené de concert entre le fournisseur retenu (CAE/CII) et EDF. Plus de quarante ans plus tard, la réussite de ce développement nous laisse encore admiratifs. Envisager que l’on puisse faire tenir, OS compris, les fonctionnalités d’un vrai SCADA de base avec moins de 100 Koctets de RAM semble aussi impossible que l’existence de la « fourmi de 18 mètres avec un chapeau sur la tête » de Robert Desnos. La réussite s’est notamment appuyée sur :

  • la mise en œuvre de concepts simples mais efficaces servis par une excellente connaissance des capacités de la machine.
  • l’optimisation au niveau du bit pour les tables système, mais aussi pour les données utilisateur.
  • l’optimisation, pour les instructions déroulées dans le scheduler, faite au niveau du nombre de cycles machine et non du nombre d’instructions. (En savoir plus sur les schedulers).
  • l’optimisation des mouvements des bras de lecture du disque et donc des temps d’accès. La taille et l’emplacement des fichiers, y compris ceux contenant les exécutables des programmes, étaient gérés manuellement, les emplacements étant choisis pour que les mouvements des bras des disques soient minimisés (ainsi, par exemple, les programmes de récurrence minute, étaient positionnés non loin des stockages « minute » puis venaient les programmes de récurrence dix minutes et les fichiers correspondants et ainsi de suite).
  • une répartition judicieuse entre mémoire vive et disque, tant pour les programmes que pour les données.

L’exploit est d’autant plus grand que les tâches de production et de tests des logiciels étaient particulièrement lourdes et sans outillage d’aide (En savoir plus sur les développements du logiciel)

La gestion des données

En l’absence de Système de Gestion de la Base de Données et de Système de Gestion de Fichiers, tout était manuel.
Les cartes perforées constituaient le support initial des données de téléconduite et des données d’imagerie.  Un utilitaire permettait de lire ces cartes et de constituer des fichiers qui étaient ensuite versés sur disque.

Comme nous l’avons vu plus haut, la gestion des emplacements des fichiers sur disque était manuelle : un fichier correspondait à une localisation et un nombre défini de secteurs. Lire ou écrire un fichier consistait donc à lire ou écrire un nombre défini de secteurs à un emplacement défini sur le disque (numéro de tête, de cylindre et secteurs).
Ce travail nécessitait une grande méticulosité :

    •  La cohérence des données reposait entièrement sur les épaules des opérateurs de saisie,
    • Il en était de même pour la gestion des espaces disque : une erreur sur la taille d’un fichier et on allait écraser le fichier du voisin.

Le déploiement

Le déploiement aura lieu de 1967 à 1971.

A l’issue du développement initial et du déploiement ainsi que d’une formation adaptée, EDF reprendra rapidement la maintenance du logiciel (y compris celle du superviseur) qui sera répartie de façon originale entre les équipes des différents dispatchings (national et régionaux) pour la partie SCADA et Direction des Etudes et Recherches pour la partie modèles)

Les fonctionnalités offertes au dispatcheur

Les fonctionnalités de départ

Chaque dispatcheur disposait d’un poste de travail à 1 ou 2 écrans alphanumériques monochromes et d’un clavier alphanumérique complété par des touches de fonction, le tout lui permettant :

  • D’afficher des schémas de poste simplifiés (représenté à l’aide des caractères disponibles),
  • D’afficher des listes de mesures par poste,
  • De mettre en ou hors surveillance des mesures,
  • De modifier des états de télésignalisations réputés faux (fonction masquage),
  • De consulter la liste des alarmes et des dépassements de seuils.

La salle de dispatching de Nancy en 1971. Outre le synoptique de plus en plus imposant, et la présence d’un nombre réduit d’enregistreurs, on remarquera les postes de travail à deux écrans.

Les évolutions

Les C 90-10, limités en termes d’acquisition de mesures, ont rapidement été remplacés par des C 90-40 dans les dispatchings régionaux sauf dans celui de Lille, qui disposait d’un réseau plus petit, et qui a gardé un C 90-10 en parallèle avec un nouveau C 90-40. Le dispatching national bénéficiera en parallèle avec le C 90-40 d’un C 90-80 pour toutes les applications scientifiques.
Compte tenu de leur durée de vie et des évolutions de l’exploitation du système électrique de nombreuses évolutions ont été développées ; nous ne retiendrons ici que quelques unes :

  •  Evolution du poste opérateur : Les écrans des dispatcheurs, furent remplacés par des écrans couleur semi-graphiques disposant d’une bibliothèque de symboles graphiques (écrans MP 1000). Ceci permettait d’afficher de véritables images de poste (schémas de poste renseignés avec les mesures de puissance actif/réactif, les mesures de tension et les positions des organes de coupure), et surtout de différencier par la couleur les niveaux de tensions et la gravité des alarmes.
  • Introduction de la télécommande sur le réseau de transport : Le dispatching de Lille qui avait à gérer de nombreux couplages et découplages des groupes des Houillères, tôt le matin et tard le soir a développé la possibilité de télécommander depuis les calculateurs temps réel quelques organes de coupures.
  • Introduction de la télécommande sur des moyens de la production hydraulique : Le dispatching de Toulouse a été amené à développer des automates pour gérer la production de quelques centrales des Pyrénées et notamment le délicat problème des démarrages dans les centrales comportant plusieurs groupes.
  • Introduction de modèles de calcul de réseau : analyse de sécurité dans l’approximation du courant continu :
    • Calcul de répartition. Il a pour objectif le calcul des transits sur les ouvrages à partir des injections aux nœuds électriques. Il a été développé en assembleur à cause des ressources limitées des calculateurs. Il a fonctionné de façon satisfaisante au niveau algorithme. Son fonctionnement effectif en exploitation s’est heurté au fait que trop de positions d’organes de coupure (disjoncteurs, sectionneurs) étaient manuelles et que la moindre erreur (erreur réelle ou décalage dans la mise à jour) de position entrainait des problèmes de convergence ou l’apparition de résultats faux.  L’effort de mise à jour en temps réel a longtemps été trop important pour que l’utilisation de ce nouvel outil soit régulière.
    • analyse de sécurité dans l’approximation du courant continu. Il s’agit d’un programme simulant tour à tour un certain nombre de déclenchements pour en évaluer les conséquences sur les transits dans les autres ouvrages. Le modèle utilisé dit dans « l’approximation du courant continu » traite très schématiquement les problèmes de chute de tension qui résultent des déclenchements.
    •  Appréciation d’état. Alors que le réseau THT (225 kV et 400 KV) avait un plan de télémesures convenable, les réseaux HT (63 KV et 90 kV) étaient faiblement télémesurés.  Pour palier cet état de fait, l’idée est venue de mettre en place un modèle qui donnerait une évaluation de la situation sur ces réseaux faiblement télémesurés.  Le principe de base était le suivant : on partait des prévisions de consommations sur les points de livraison et on effectuait un calcul de répartition. Ce calcul donnait des transits sur toutes les liaisons (lignes et transformateurs THT/HT). Là où il existait des mesures (notamment sur les transformateurs THT/HT), on comparait les résultats du calcul avec les mesures et on ventilait les écarts en fonction d’une notion de zone d’influence. Ceci donnait un nouveau point de départ pour les consommations et l’on itérait jusqu’à ce qu’un critère sur l’ensemble des écarts soit atteint.
La salle de dispatching de Lyon  en 1971. Le synoptique est encore plus imposant que celui de Nancy (CF supra).On remarquera les postes de travail à un seul écran.

Compte-tenu de leur durée de vie, les 90-40 ont été amenés à suivre les évolutions de leur environnement informatique, et à s’ouvrir à l’extérieur :

 
 
  • Le Système de Gestion Energétique Prévisionnel (SGEP) sera déployé de 1972 à 1975. Il reprendra à son compte une partie des travaux effectués sur la machine de traitement différé. Une passerelle, basée sur un Mitra 15, sera mise en place dans chaque dispatching pour permettre la transmission, du 90-40 vers le SGEP, des réalisations (CPRC et Photos) (6)
  • Des Calculateurs d’Acquisition (les CACQ), jouant le rôle de frontaux pour les 90-40, seront déployés de 1977 à 1981 dans le cadre du SDART (en savoir plus sur le SDART),
  • Le Réglage Secondaire de Tension (7) sera déployé de 1979 à 1984. Les 90-40 seront chargés d’acquérir la valeur du niveau de réglage et de le réémettre vers les centrales hydrauliques.

L’exploitation et la maintenance

La maintenance matérielle

Historiquement assurée par CAE, puis CII, CII-HB et BULL au gré des rachats et fusions, elle a été reprise dans les années 80 par les services télécom des CRTT qui ont dû former des technicien à des technologies, certes passionnantes, mais déjà obsolètes.. On trouvait encore à cette époque deux types de maintenance : la maintenance préventive et la maintenance corrective. Les mauvaises langues, fortes de quelques années d’expérience et qui plus est dotées d’un certain humour, aimaient à dire que la maintenance préventive c’était juste avant que la panne arrive et la corrective juste après.

La maintenance préventive consistait

  • à nettoyer les appareils (lecteurs, bandes, disques, télétypes, perforateur…)
  • à recaler les jeux divers dans tout ce qui était mécanique : lecteur de cartes, dérouleur de bandes, télétype, bras des disques… Dans ce dernier cas il fallait assurer la compatibilité des réglages entre les différentes unités pour pouvoir monter n’importe quel disque sur n’importe quelle unité.
  • à ré-étalonner toutes les valeurs des alimentations et plus particulièrement celles des mémoires à tores.

La maintenance corrective intervenait suite à incident pour trouver la panne et y remédier. Pour ce faire les techniciens disposaient de programmes de tests qui leur permettaient en général de trouver le sous-ensemble en panne. Ensuite c’était le règne de l’oscilloscope à déclenchement. La carte suspectée était mise au bout d’un prolongateur et à l’aide du schéma électronique de la carte, le mainteneur suivait la propagation des signaux en pas à pas. Un fois le composant en panne détecté, il était changé au fer à souder. Si cela peut sembler totalement archaïque au vu des méthodes actuelles, cela était l’occasion d’acquérir des connaissances sur le fonctionnement profond d’un ordinateur, connaissances qui furent utiles à un certain nombre d’entre nous pour les projets ultérieurs. Au fur et à mesure du temps, la récupération de pièces sur des calculateurs en fin de vie a permis d’alléger les tâches de réparations immédiates en jouant sur les stocks de cartes existant.

La maintenance logicielle et l’exploitation

La maintenance logicielle a été rapidement reprise en main par le Service des Mouvements d’Energie. Dans chaque région, une équipe traitement de l’information comportait aux alentours de quatre analystes-programmeurs et deux techniciens. Les techniciens s’occupaient principalement des tâches d’exploitation courantes : mise à jour des données, aide aux tâches de facturation, de statistiques… Les analystes outre le développement des programmes et leur insertion en exploitation, étaient en charge de la maintenance logicielle et intervenaient en et hors des périodes d’heures ouvrables en cas de pannes. Généralement, hors heures ouvrées, les dispatchers effectuaient le redémarrage du système (au moins un des calculateurs) à partir d’une procédure pré-établie et, en cas d’échec, ils faisaient appel aux analystes. Ceux-ci venaient redémarrer le système, éventuellement après une tentative à distance au téléphone (c’était notamment le cas à Paris compte tenu d’un éloignement plus grand des analystes). L’obsolescence du matériel et une exploitation du réseau plus tendue ont conduit certaines régions à mettre en place une astreinte informatique.

Cette organisation un peu atypique a rempli pleinement ses objectifs en permettant une maintenance évolutive proche de l’exploitant des dispatchings et une continuité du service offert grandement satisfaisante le tout en s’appuyant sur des matériels somme toute assez fragiles et fortement contraints en place et en puissance. Par ailleurs, le potentiel acquis tant au niveau informatique que fonctionnel a été un des piliers sur lequel le palier SIRC s’est appuyé pour sa réussite.

 

notes de bas de page
(1) Pour une centrale en fonctionnement, le coût marginal est le coût de production d’un kw/h supplémentaire.
retour

 

(2) Le CAE 510 est une adaptation pour le marché civil du RW 530 de la société Ramo-Wooldridge.
retour

 

(3) Calcul de court-circuit : calcul permettant de calculer la puissance amenée par le réseau lors d’un court-circuit franc et les chutes de tension dans les postes électriques qui en résultent. Une puissance de court circuit élevée permet une meilleure résistance du réseau aux perturbations (déséquilibre, flicker, creux de tension…) mais elle doit rester dans les limites du matériel (jeux de barres des postes, pouvoir de coupure des disjoncteurs…)
retour

 

(4) Mécanisme contribuant au respect de l’équilibre production-consommation. Il élabore et envoie toutes les 10 secondes aux centrales participant à ce réglage, un ordre de production : le niveau. Ce niveau est élaboré à partir des écarts entre la fréquence de consigne et la fréquence mesurée et les échanges programmés aux frontières et les échanges mesurés. Le niveau variait de -1 (insuffisance de production) à +1 (surproduction.)
retour

 

(5) Emetteur Récepteur Cyclique composé d’un système de captation/émission dans chaque poste et de récepteurs au dispatching
retour

 

(6) Courbes a posteriori de Réalisation de Charges : série de 48 moyennes ½ horaires pour des rubriques portant sur les différents types de production, la consommation et les échanges. Les photos sont des situations instantanées du réseau (TM + TS + topologie). Ces données sont ensuite agrégées au niveau France.
retour

 

(7)  Dispositif destiné à maintenir la tension à une valeur de consigne dans des postes appelés points pilote. Des régulateurs situés dans les dispatchings élaborent un ordre de production de réactif (le niveau de RST) qui est ensuite envoyé dans les centrales qui participent à ce réglage.
retour 

 

Le développement des logiciels SIRC

 

Les moyens de développements

Pour les développeurs qui avaient pratiqué les 9010/9040, les progrès étaient indéniables. Les consoles alphanumériques offraient un embryon d’interface homme-machine et surtout disposaient d’un éditeur de texte ligne à ligne (1) Il sera utilisé pour la saisie du code et des données.
Pour la mise au point des logiciels, GCOS 6 offrait la possibilité de lancer un programme en mode « Mise au point » (DEBUG) ; on pouvait alors positionner des points d’arrêt, et sur un point d’arrêt, dumper les registres et des zones mémoires.
Revers de la médaille, l’exploitation des dumps mémoire requerrait des connaissances systèmes approfondies et un dump complet représentait beaucoup de papier.

Les moyens de tests

En phase d’étude préalable, les tests de qualification de l’application SIRC n’avaient pas fait l’objet d’une réflexion approfondie, tant sur les méthodes que sur les moyens à mettre en œuvre. De ce fait, le projet a été confronté au problème dès la phase de tests unitaires puis en phase d’intégration. Faute d’anticipation, l’équipe de projet aura dû se contenter des outils existants ou développer, dans l’urgence, des outils sommaires.

Les tests unitaires

Les développeurs ne disposaient au départ ni d’une base de données (cf. supra), ni d’une interface graphique (la mise en parallèle des développements et les difficultés liées à la réalisation du logiciel graphique LGIVD), Ils ont dû, dans un premier temps, se contenter, en guise de données, de DATA dans les programmes et, en guise d’IHM, d’utilitaires qui restituaient les résultats. Devant la nécessité de disposer d’une base de données renseignée, l’équipe projet commença à développer des utilitaires pour créer et instancier les tables et fichiers nécessaires pour les mener à bien les tests.  Ces développements qui prendront de l’ampleur au fur et à mesure de l’avancement des tests, seront l’embryon du logiciel final de génération de la base de données des SIRC.

Les tests d’intégration

Pour valider les échanges avec la téléconduite, un CACQ fût installé en plate-forme. Ce CACQ pouvait être alimenté soit par un émulateur de réseau, soit directement par la téléconduite (il avait été rendu destinataire d’un modeste sous-ensemble des téléinformations de la région Normandie-Paris, qui correspondait à la mini-base de données). Cela limita notablement la portée des tests d’intégration pour ce qui concerne les tests à pleine charge et la validation des modèles de calcul de réseau.
Le nombre de postes opérateur de la plate-forme était un autre facteur limitatif ; il ne représentait pas le tiers de l’équipement d’un CIME.
C’est donc un SIRC testé dans des conditions très éloignées de celles d’une exploitation réelle en marche nominale (et encore plus de celles d’incidents réseau) qui fût installé à Nancy, ce qui entraina la découverte tardive de l’ampleur des problèmes de charge UC et de mémoire.

Il est à noter que pour la génération suivante des SCADA, la problématique des recettes sera prise en compte dès la phase d’étude préalable. Une politique de recette sera définie et les moyens d’essais disponibles ou à développer identifiés.

Les particularités logicielles

Les extensions systèmes

Les études de marché et de produits réalisées dans le but de choisir le matériel avaient bien identifié le fait que des développements complémentaires seraient nécessaires d’une part pour disposer de fonctions non disponibles dans GCOS 6 et d’autre part pour obtenir des performances acceptables. C’est donc sous le pilotage serré de l’équipe projet que des prestataires de BULL et de SODETEG TAI réaliseront les développements suivants :

 
  • Le fonctionnement en système doublé (surveillance des machines, gestion des basculements et des échanges entre les calculateurs Maître et Esclave),
  •  Plusieurs drivers : liaison inter calculateurs, liaison CACQ-SIRC, liaison avec l’horloge externe,
  • Un système de gestion de fichiers en temps réel performant et adapté à la gestion des journaux de bord et des stockages, (il s’agissait en fait d’un jeu de primitives qui permettaient entre autres de gérer des fichiers dit circulaires à un ou 2 niveaux et des lectures/écritures de plusieurs articles/sous-articles à la fois),
  • Une gestion de files d’attentes pour l’échange de messages courts entre programmes,
  • Le contournement des protections mémoires pour que l’ensemble des applications puissent accéder aux tables  (2) (utilisation détournée de l’exception « reference to unavailable resource »). (complément à faire par PO)

L’optimisation des codes

Alors que de nos jours les giga-octets de mémoire vive et les téraoctets de mémoire de masse garnissent les gondoles des supermarchés, il est difficile d’imaginer qu’à la fin des années 1970, les informaticiens couraient encore après les bits ou les octets. C’est dans cet esprit de pénurie et dans l’objectif de garantir les performances que la conception puis le codage ont été réalisés.

La recherche de performance s’exercera dans 2 directions principales :

  •  Minimiser les accès disques : c’est dans ce but qu’ont été créées les tables (cf. supra). Le système de gestion de fichiers spécifique y contribuera également en permettant de lire ou d’écrire plusieurs articles à la fois, ou de ne réécrire que la partie variable d’un fichier (exemple : les seuils pour lesquels le descriptif et l’état courant sont contenus dans un même fichier, mais dont seule la partie état courant est réécrite sur disque après traitement de la récurrence ad hoc). Enfin le nombre de chargements de modules en mémoire a été limité en rendant résidant les modules dont la récurrence est inférieure ou égale à 10 secondes et ceux qui sont les plus fréquemment appelés comme les modules d’acquisition de téléinformations.
  • Minimiser la consommation de mémoire : Plutôt que de dimensionner la base de données pour couvrir l’ensemble des besoins des 7 CIME, un astucieux système de dimensionnement variable, ajusté à la taille de chacun des types d’ouvrage du réseau de chaque CIME, a été développé. Au prix d’une certaine complexité, Il va permettre de réduire la taille des fichiers et des tables et donc de minimiser l’encombrement en mémoire vive et sur disque  (3) . L’optimisation du remplissage des fichiers et des tables a également contribué à économiser la mémoire (on s’efforçait d’occuper les 16 bits d’un mot au détriment plus tard de l’évolutivité). L’écriture en assembleur de la plupart des modules résidants complètera ces mesures.

L’installation du SIRC sur le site pilote mit en évidence des problèmes de charge de l’Unité Centrale, et des manques de mémoire vive, ce qui enclencha de nouveaux travaux d’optimisation : réécritures de sous-programmes en assembleur et simplification des codes (ce fut notamment le cas pour LGIVD).
Ultérieurement d’autres travaux d’optimisation furent nécessaires, en particulier lorsque l’on constata  que le SIRC s’effondrait en cas d’incident réseau.

Le logiciel LGIVD

Le langage graphique a souffert de quelques maladies de jeunesse : outre la correction de bugs divers et variés, il a nécessité une optimisation approfondie pour pouvoir animer l’ensemble des PO d’un dispatching, soit en tout une vingtaine d’écrans. Une fois ces difficultés surmontées, il a rendu le service attendu et s’est même révélé efficace dans la construction d’automates de dialogue.

Fin de l’article

 Zone de note de bas de page

(1)  L’éditeur de texte est un peu l’ancêtre du traitement de texte. Il permettait d’éditer sur console (écran ou genre machine à écrire) un certain nombre de lignes à partir d’un endroit donné. On pouvait aussi sur un nombre de lignes spécifié, faire des opérations comme par exemple substituer une chaine de caractère par une autre. Cela n’avait rien à voir avec la souplesse des éditeurs pleine page actuels, mais c’était déjà d’un confort sans pareil par rapport à la gestion des paquets de cartes perforées… et trente ans après les codes des opérations les plus courantes sont encore connus d’un certain nombre d’anciens…

retour
 

(2) Il s’agissait d’une zone en mémoire vive qui contenait des données fréquemment utilisées par les programmes applicatifs comme les valeurs des télémesures et les états des télésignalisations. L’objectif était d’éviter des accès disque, couteux en temps pour les consulter ou les modifier.

retour

(3) Le principe était le suivant : on commençait par fixer les paramètres de dimensionnement : certains étaient les mêmes pour tous les CIME (comme le nombre de télémesures pouvant être acquises), d’autres propres à chaque CIME (exemple nombre de postes, de lignes, de groupes thermiques, de groupes hydrauliques, de postes opérateur, etc.).Un utilitaire calculait à partir de ces paramètres la taille et le nombre d’articles de chaque fichier, la taille des tables et générait les commandes de création de ces fichiers. L’utilitaire générait également une table de symboles contenant la longueur de chaque fichier, article et table. Le développeur n’avait pas à manipuler de nombre, il utilisait cette table de symboles pour réserver dans son programme les espaces pour lire les fichiers. Il y avait néanmoins un petit inconvénient : la réservation symbolique ne fonctionnait qu’en assembleur, ce qui nécessitait de doter les programmes FORTRAN d’une racine en assembleur.

retour

Architecture et matériels des SIRC

L’architecture

C’était une architecture classique des SCADA de type Maître-Esclave.

La machine Maître était reliée aux deux CACQ (qui fonctionnaient également en Maître/Esclave) et assurait tous les traitements temps réel. La machine Esclave accueillait les modèles de calcul de réseau et le configurateur de données.
Les deux machines étaient reliées entre-elles par une liaison parallèle  à grande vitesse (LIC) utilisée pour rapatrier sur le Maître les résultats des modèles de calcul de réseau et pour tenir à jour l’Esclave (actions opérateurs, journaux de bord, stockages).

Les deux machines étaient également reliées à une Unité de Contrôle et de Commutation (le CCU). Son rôle était de surveiller l’activité des deux machines (réarmement du watchdog) et de commander les basculements. Si le Maître cessait de réarmer son watchdog, le CCU envoyait un signal à l’esclave pour lui signifier de se recharger en Maître. Le CCU commandait également le basculement des liaisons avec les CACQ et avec la centrale de son du Dispatching.
Les deux machines Maître et Esclave étaient reliées à 4 ou 5 contrôleurs graphiques selon les sites, par des liaisons parallèles à grande vitesse. Les différents postes de travail, dont ceux des dispatcheurs à 3 écrans, étaient alors répartis entre les contrôleurs de façon à ce que la perte d’un contrôleur minimise l’impact sur les dispatchers.
Dans sa version initiale, le SIRC était relié, côté Téléconduite aux CACQ et côté Entreprise au SGEP et au Service des Statistiques.

Au fil des évolutions, la liste des correspondants du SIRC s’est étoffée avec :

Côté Téléconduite :

  • le Système d’Alerte et de Sauvegarde (SAS) (transmission des ordres de blocage des régleurs à destination du GRD),
  • le Réglage Secondaire Coordonné de tension (RSCT) (transmission de la topologie nodale dans un sens, récupération du niveau de RSCT dans l’autre),
  •  le Réglage Secondaire de Tension (récupération du niveau de RST dans un sens, transmission de ce niveau aux PHV dans l’autre).

Côté entreprise :

  • Le Serveur de Stockage Long terme (SLT) (transmission des historiques),
  • L’Analyse de Sécurité Réseau (chaîne cyclique et mode étude des calculs de réseau).

Les Matériels CII

L’origine des Mini 6

Il faut remonter en 1967, date à laquelle le Général de Gaulle lança le plan calcul, visant, face à la domination américaine, à doter la France d’une solide industrie informatique. Le lancement du plan calcul s’est accompagné de la création d’un institut de recherche en informatique, l’IRIA qui deviendra l’INRIA et d’une société informatique, la Compagnie Internationale pour l’Informatique ou CII. La CII a commencé par fabriquer, comme la CAE dont sont issus les 9010/9040, des ordinateurs sous licence SDS (la série des SIGMA qui donnera le 10020 et le 10070). A partir de 1971 elle a développé ses propres modèles pour donner naissance à la série des MITRA et des IRIS. La fusion avec Honewell-BULL a apporté les produits «  Level  6 » composés des ordinateurs Mini 6 et du Système d’Exploitation GCOS 6. CII-HB en a poursuivi le développement pour donner la gamme des DPS6, 7 et 8. En 1982, CII-HB est nationalisée et est devenu la société BULL.

Le choix des Mini-6

Pour accueillir les logiciels SIRC, ont été étudiées en collaboration avec DER/IMA et DER/SER les solutions suivantes :

 

Le choix s’est porté sur les Mini-6 essentiellement pour des raisons de coût.  Les modèles retenus au départ ont été des Mini 6/53 dotés d’une mémoire de 512 Kmots de 16 bits, mémoire qui en cours de projet a été upgradée à son maximum 1024 Kmots.
Chaque calculateur disposait de 3 ou 4 unités de disque de 67 MO ; certains ont été remplacés ultérieurement pas des unités de 300 MO.
Imprimantes rapides, dérouleurs de bandes et terminaux alphanumériques destinés aux opérateurs et informaticiens complétaient la configuration.

Contrairement à la génération précédente, les calculateurs n’étaient pas livrés nus mais avec un ensemble d’outils pour le développement et l’exploitation :

  • Le système d’exploitation GCOS6 MOD 400 offrait déjà un ensemble de possibilités intéressantes : la gestion des niveaux de priorité, le multi tâche, la synchronisation par sémaphore, une protection de la mémoire par anneaux, etc.
  • L’assembleur disposait d’un jeu d’instructions scientifiques qui s’exécutaient sur un processeur dédié. Il était complété par une bibliothèque de macro-instructions qui facilitaient la gestion des tâches, des Entrées/Sorties et de toutes les ressources système.
  • une bibliothèque de commandes et un éditeur de texte complétaient le tableau.

 Un des deux Mini 6 de Nancy avec armoire UC + CCU, dérouleur de bande, armoire de communication et unités de disque.


Disque de 300 MO. On est loin des téra-octets disponibles désormais dans les matériels grand public. La manipulation de ces « gamelles » nécessitait quelques muscles (photo musée ST-Amour)

Le passage de l’application SIRC sur DPS6

 

Sur le papier, la migration de l’application SIRC sur DPS6 ne présentait pas de difficulté. Il suffisait de recompiler les programmes et le tour était joué. Et pourtant l’opération prit environ un an. D’abord, il fallut modifier certains protocoles de communication (passage du LAP A au LAP B). Mais le passage obligé du FORTRAN 77 au FORTRAN Avancé fut la source des plus gros ennuis : Dans certains cas, les compilateurs ne donnaient pas les mêmes résultats (4) , ce qui nécessita une revue complète du code FORTRAN. On profita de la bouffée d’oxygène apportée par le DPS6 pour rapatrier les calculs de réseau sur la machine Maître, ce qui améliora notablement la disponibilité de cette fonction.  Anecdote :Le passage du Mini 6 au DPS 6 ou le paradoxe de la puissance et du temps de réponse

Les matériels graphiques

Le poste de travail d’un dispatcheur se composait de 3 écrans. 2 étaient utilisés pour la consultation et les dialogues, le troisième était réservé à l’affichage des alarmes. Comme moyens de dialogue, le dispatcheur disposait d’un clavier alphanumérique complété par des touches de fonction, d’une boule roulante pour désigner des objets sur les images et d’un petit clavier dédié à la gestion des alarmes.

Un écran SIRC et ses moyens de dialogue

 

Les écrans, modèle VG 2100, avaient la particularité d’être à balayage cavalier (5)   et à pénétration (6) , technologie permettant, en principe, une grande finesse de trait et donc bien adaptée au tracé de réseaux électriques. La définition était de 1024 par 1024 points (on ne parlait pas encore de pixels à cette époque). Par contre le jeu de couleurs se limitait à 4 (3,5 selon les mauvaises langues) et la luminosité était faible. Ce type de matériel était, dans sa forme circulaire, utilisé pour le contrôle aérien.
Un système de recopie d’écran monochrome complétait la configuration.

Le portage du SIRC

Suite à l’arrêt du projet CRC, il devenait nécessaire de prolonger d’au moins 10 ans la durée de vie des SIRC, ce qui menait à 2005 au lieu de 1995. Il est clair que des mesures cosmétiques ne suffiraient pas, en particulier pour le matériel de visualisation qui donnait déjà des signes de faiblesse et dont la maintenance coûtait très cher.
Le SIRC, fort heureusement, a bénéficié d’un contexte favorable. D’une part, les périphériques de stockage se miniaturisaient et leurs capacités croissaient de façon exponentielle, d’autre part, les serveurs sous UNIX envahissaient le marché. Bull entendait bien se positionner sur ce créneau et lançait la fabrication de serveurs fonctionnant sous l’OS AIX, qui n’était autre que l’UNIX développé par IBM.
Or les Mini 6 et DPS6 avaient été diffusés à des milliers d’exemplaire dans le monde et BULL souhaitait conserver cette clientèle. C’est pourquoi il lançait en 1992 le développement d’un logiciel qui permettait de faire tourner sur un serveur AIX une application développée pour GCOS 6 : l’émulateur HVX. C’était l’opportunité de réaliser un portage de l’application SIRC à « peu de frais », avec néanmoins des paris sur la façon dont l’émulateur allait prendre en compte les particularités « système » du SIRC.

La rénovation des SIRC se réalisera en 3 étapes :

  • Remplacement des unités de disque et de bande par des appareils sous technologie SCSI. La capacité des disques durs passera ainsi à 1 GO,
  • Remplacement des systèmes de visualisation par des stations de travail alimentées sous IP,
  • Portage de l’application sur des serveurs sous AIX/HVX : les serveurs seront choisis dans la gamme ESCALA de BULL. L’opération aboutira en 2000 et sera un franc succès. Malgré l’adjonction de la couche HVX, les performances seront multipliées par 10, rendant les réponses du système quasiment instantanées.

Habillée de neuf, l’application SIRC aura continué à tourner avec ses logiciels d’origine jusqu’à l’arrivée de la relève : ce qui donnera dans le cas de Nancy une durée de vie de 24 ans (1984-2008).

Fin….

 

« bas de page »

(1) Systems Engineering Laboratories : firme implantée en Floride, rachetée par Gould Electronics en 1981.
retour

(2) Digital Equipment Corporation : firme américaine qui prendra par la suite le nom de DIGITAL. Elle sera rachetée par COMPACQ en 1998 qui lui-même fusionnera en 2002 avec Hewlett Packard. Outre les PDP, ses produits les plus connus sont les ordinateurs VAX et le système d’exploitation VMS. retour

(3) Société Européenne de mini-informatique et de Systèmes. Filiale de Thomson CSF regroupant les activités mini-ordinateur de Télémécanique (SOLAR) et de CII (Mitra). Passe sous le contrôle de BULL en 1982.
retour

 

(4) Exemple : le compilateur FORTRAN 77 initialisait par défaut les variables à zéro, alors que compilateur FORTRAN Avancé ne les initialisait pas du tout
retour

(5) Dans un écran cathodique standard, le faisceau d’électron balaie systématiquement toutes les lignes de l’écran (en fait d’abord les lignes paires puis les lignes impaires : c’est le mode entrelacé). Dans un écran à balayage cavalier, le faisceau d’électron se comporte comme une machine à tracer retour
(5) Dans un écran couleur cathodique standard, chaque pixel est composé de 3 photophores rouge, vert et bleu. Trois faisceaux d’électrons sont alors utilisés pour exciter plus ou moins les photophores, ce qui donne par combinaison des 3 couleurs une palette illimitée. La face avant d’un écran à pénétration est recouverte de plusieurs couches de phosphore de couleur différente (deux dans notre cas : vert et rouge séparées par une barrière de potentiel). En jouant sur l’énergie du faisceau d’électron, on arrivait à obtenir 4 couleurs : rouge franc, vert franc, orange et jaune, les deux derniers étant difficilement discernables

retour

le nom du baptème du SIRC

Le projet de renouvellement des dispatchings régionaux a été lancé sous l’impulsion du CIME Nord et Paris. M Huard Directeur délégué du CIME a eu la lourde responsabilité de choisir  le nom du projet. Après de mûres réflexions en commun, deux noms sont ressortis : le SIRC (Système Informatique Régional de Conduite) et CIRCE (Centre Informatisé de Conduite du réseau Electrique).

Après recherches, il est apparu que sous le doux nom de CIRCE, se cachait une magicienne de l’île Æaea, connue entre autres, pour avoir tué son mari et pour avoir changé des compagnons d’Ulysse en pourceaux. Ce fût rédhibitoire et le nom de SIRC fût donc retenu.

Compte tenu des retards successifs et des difficultés qui sont apparues pour sa mise en place l’homophonie avec le Cirque n’a pas manqué d’être utilisée, avec plutôt le côté chapiteau et clowns que le côté Colisée…

Néanmoins, le temps ayant fait son œuvre et le système après un nécessaire rodage ayant démontré sa pertinence et sa robustesse, le sigle a perdu sa connotation défavorable pour devenir un terme lambda.

Il est à noter que le SGEP, à la même époque, était connu comme « Système Généralement En Panne ».  Seul le SYSDIC, qui a connu les mêmes affres à son démarrage que les autres, a résisté à cette manie du fait du choix judicieux d’un nom plus hermétique.

Pour revenir au texte principal cliquer sur la flèche retour du navigateur.

Le palier SIRC (1976 -2010)

Le palier SIRC a vu les dispatchings entrer dans l’ère des mini-calculateurs (calculateurs intermédiaires en termes de puissance de processeur et de taille mémoire entre d’une part les gros systèmes tel IBM 370 et d’autre part les micros en phase d’émergence) et aura marqué par sa longévité la vie des systèmes de conduite du système électrique français

Continuer la lecture

Le livre « Télétransmissions par ondes porteuses dans les réseaux de transport d’énergie à haute tension », 1946

 

CPL-1a-Chevalier

L’ouvrage « Télétransmissions par ondes porteuses dans les réseaux de transport d’énergie à haute tension,  Dunod, 1946,  111 pages, écrit par André Chevallier, ingénieur et professeur à l’ESE, fil conducteur de la série d’articles sur les CPL,  est aussi un texte de référence pour les télécommunications de l’époque et pour l’usage qui en est fait en appui de l’exploitation et de la protection d’un réseau de transport d’électricité, toujours d’actualité. 

En voici l’introduction en extrait, le livre est consultable à l’association ESTEL

INTRODUCTION (nous sommes en 1946 !)

L’interconnexion des grands centres producteurs français d’énergie électrique, possédant des régimes économiques différents, a rendu possibles entre eux des échanges d’énergie. Elle permet aussi par des boucles et doublements de lignes d’assurer la permanence du service, sans qu’il soit besoin de prévoir des réserves tournantes trop grandes.

L’exploitation de telles réseaux pose des problèmes de fourniture d’énergie, de répartition de charge, de contrôle d’exécution des programmes, de rétablissement de liaisons entre réseaux en cas d’incidents sur les lignes de transport, qui ne peuvent être résolus que par des organismes qualifies, connaissant à chaque instant l’état de fonctionnement des réseaux et ayant à leur disposition des moyens d action efficaces.

Ces organismes appelés « Dispatchings » ou Centres répartiteurs doivent posséder des téléphones les reliant aux usines génératrices et aux postes de transformation de leur zone de contrôle, ainsi que aux autres centres répartiteurs.

Ils doivent connaître à chaque instant les puissances produites dans la zone, la puissance réactive fournie par leurs centrales. Ils doivent connaître, en cas de rupture de liaison entre deux réseaux, la fréquence et les tensions entre les deux réseaux pour en ordonner le couplage. Ils doivent pouvoir assurer le réglage à distance des machines motrices pour annuler des écarts de fréquence, de puissance ou de fréquence-puissance.

Ils peuvent avoir besoin d’assurer le débouclage de certaines lignes ou de délester, en cas d’incidents graves, une partie de leur clientèle. Il est donc nécessaire qu’ils aient à leur disposition des commandes à distance et qu’ils connaissent en retour la position des disjoncteurs ou des sectionneurs.

Il est intéressant pour eux d’apprécier la stabilité d’un transport, qui leur est donnée par la valeur de l’angle des rotors des machines synchrones situées aux deux extrémités d’une longue ligne. Ils doivent pouvoir suivre, en cas de rupture de synchronisme, les oscillations entre groupes et pouvoir ainsi déterminer les machines qui ont tendance à la reprise de synchronisme et celles qui le perdent.

La permanence du service exige que les lignes soient munies de systèmes de protection permettant d’éliminer rapidement les sections de ligne défectueuses et de maintenir en service les lignes saines.

La connaissance des différents termes de mesure, la téléphonie, la protection, les commandes, la signalisation, exigent des transmissions dont les qualités primordiales sont la rapidité et la sécurité. Ces diverses télétransmissions doivent s’effectuer entre des points séparés par des distances qui peuvent être courtes, mais aussi pouvant atteindre 500 à 700 kilomètres.

Les moyens permettant de réaliser ces transmissions sont les conducteurs des lignes aériennes téléphoniques ou de câbles aériens ou souterrains, les ondes libres, les ondes dirigées sur les lignes à haute tension.

La solution qui consiste à utiliser des conducteurs de lignes ou de câbles téléphoniques présente l’avantage d’éviter les transformations nécessaires à l’attaque d’ondes porteuses : d’où une économie de matériels. Mais les lignes [téléphoniques] aériennes ne présentent pas la sécurité voulue. Elles sont soumises aux intempéries. Elles risquent d’être détruites par les intempéries. Elles demandent de plus un entretien continu. Par contre les câbles [téléphoniques] satisfont aux conditions de sécurité demandées, mais ils conduisent à des frais d’établissement extrêmement élevés.

Les ondes libres pourraient être utilisées, mais elles nécessitent, même avec des aériens directifs, pour obtenir des liaisons sûres, des puissances d’émissions relativement élevées, donc des installations importantes et un personnel spécialisé.

La solution qui consiste à utiliser la ligne haute tension elle-même comme milieu de propagation d’ondes de haute fréquence, est une solution qui satisfait à la fois aux conditions de sécurité et aux conditions économiques. La sécurité « mécanique » est du même ordre de grandeur que celle obtenue avec un câble souterrain. L’énergie est transmise au récepteur par un milieu conducteur au lieu d’être rayonnée. Les puissances d’émission, pour un même résultat sont infiniment moins grandes que dans l’emploi d’ondes libres.

D’une façon générale quand les distances sont courtes, la transmission par ondes porteuses sur la ligne haute tension est utilisée.

En France, comme en Amérique, en Allemagne en Russie et au Japon, ce moyen de transmission connaît un développement considérable.

En France, toutes les lignes à 220 kilovolts et à 150 kilovolts en sont équipées ainsi que de nombreuses lignes à 90 et 60 kilovolts. Il existe à l’heure actuelle, en France, environ 500 liaisons à haute fréquence. Le nombre en croit de façon constante.

Il semble que cette technique se soit développée simultanément en Amérique, en Allemagne, au Japon, en France. Marius Latour, dès 1920, en a été le promoteur en France, mais les matériels vraiment industriels n’ont été mis en service que vers 1928.

Retour à la série CPL