IEC 60870-5-101 et IEC 60870-5-104 sont les protocoles de téléconduite que les gestionnaires de réseau et les services publics utilisent entre les centres de conduite et les postes distants : RTU dans les postes électriques, les parcs éoliens et solaires, les sites de batteries et les grandes charges. IEC 101 fonctionne sur des liaisons série. IEC 104 transporte le même genre de message applicatif sur TCP/IP, par défaut sur le port 2404. De nombreux postes utilisent IEC 61850 à l’intérieur et conservent IEC 104 pour la liaison avec le centre de conduite.
Les listes de points se ressemblent, mais les codages diffèrent en trois endroits déterminants pour une modernisation : la couche liaison, la taille des champs d’adresse et les horodatages autorisés.
Normes et éditions
La publication IEC 101 actuelle est IEC 60870-5-101:2003+AMD1:2015, édition consolidée 2.1. La publication IEC 104 actuelle est IEC 60870-5-104:2006+AMD1:2016, édition consolidée 2.1, qui comprend le corrigendum d’août 2023.
Chaque appareil possède une liste d’interopérabilité : un questionnaire issu de la norme qui indique les options implémentées. Obtenez-la pour les deux extrémités avant de rédiger la liste de points. Comparez d’abord les entrées suivantes. Toute incompatibilité empêche les deux extrémités de se comprendre :
- transmission équilibrée ou non équilibrée (IEC 101) ;
- nombre d’octets de l’adresse de liaison, de la cause de transmission, de l’adresse commune et de l’adresse d’objet (IEC 101) ;
- types horodatés envoyés et acceptés par l’appareil ;
- commandes horodatées qu’il accepte, et emploi ou non de la sélection avant exécution.
Comparaison
| IEC 60870-5-101 | IEC 60870-5-104 | |
|---|---|---|
| Transport | Série : RS-232, RS-485, modem ou radio | TCP/IP sur Ethernet ou WAN |
| Adressage du poste | Adresse de liaison sur 0, 1 ou 2 octets | Adresse IP et port TCP, 2404 par défaut |
| Procédure de liaison | Non équilibrée (le poste primaire interroge) ou équilibrée (chaque extrémité peut émettre) | Client et serveur sur TCP, avec STARTDT et STOPDT |
| Trame | FT1.2 : trame fixe commençant par 0x10, trame variable par 0x68 L L 0x68 ; toutes deux se terminent par 0x16 | APCI : octet initial 0x68, un octet de longueur et quatre octets de contrôle |
| Contrôle de flux | Une trame non confirmée au plus ; confirmation ou caractère unique 0xE5 | Jusqu’à k trames I numérotées non confirmées ; temporisations t0 à t3 |
| Cause de transmission | 1 ou 2 octets | 2 octets |
| Adresse commune | 1 ou 2 octets | 2 octets |
| Adresse d’objet | 1, 2 ou 3 octets | 3 octets |
| Types horodatés | CP24Time2a (3 octets) et CP56Time2a (7 octets) | CP56Time2a seulement : types 30 à 40 pour la surveillance, 58 à 64 pour les commandes |
| Liaisons courantes | Série point à point, radio, lignes louées, lignes multipoints avec plusieurs postes distants | Réseaux IP privés, WAN en fibre, liaisons cellulaires avec APN privé |
La taille des champs IEC 104 est fixée par la norme. Certains produits permettent de la modifier. Une fois configuré ainsi, l’appareil n’est plus interopérable avec un poste IEC 104 conforme.
Comment IEC 101 transmet les données
IEC 101 utilise le format de trame FT1.2. Une trame de longueur fixe ne contient qu’un champ de contrôle et une adresse de liaison ; elle sert aux fonctions de liaison comme l’interrogation. Une trame de longueur variable transporte une ASDU. Le caractère unique 0xE5 constitue une confirmation positive.
En mode non équilibré, le poste de conduite est le seul poste primaire. Il interroge tour à tour chaque poste distant, qui n’émet que sur demande. Les données se répartissent en classe 1 (priorité élevée, généralement les événements) et classe 2 (priorité basse, généralement les valeurs cycliques). Le poste distant active le bit ACD dans sa réponse lorsqu’il attend des données de classe 1 ; le poste de conduite demande alors ces données. Ce mode convient à une ligne multipoints avec plusieurs postes distants.
En mode équilibré, chaque extrémité peut initier un transfert : le poste distant envoie donc un événement dès qu’il se produit. Ce mode se limite aux liaisons point à point et aux ensembles de liaisons point à point.
Sur une ligne multipoints, le cycle d’interrogation fixe la latence des événements. FT1.2 transmet 11 bits par caractère ; à 9 600 bit/s, la réponse de 19 octets de l’exemple ci-dessous prend environ 22 ms sur la ligne. Chaque interrogation ajoute une requête de 5 octets, deux changements de sens et le délai de réponse du poste distant. Si chaque échange prend 60 ms, changements de sens compris, une ligne de 30 postes distants a un cycle d’environ 1,8 s.
Comment IEC 104 gère une connexion
Chaque trame IEC 104 (APDU) commence par une APCI de 6 octets : l’octet initial 0x68, un octet de longueur comptant le reste de la trame et quatre octets de contrôle. Une APDU ne dépasse pas 255 octets. Il existe trois formats :
- les trames I transportent une ASDU, avec un numéro de séquence d’envoi N(S) sur 15 bits et un numéro de réception N(R) sur 15 bits ;
- les trames S ne transportent que N(R), pour confirmer les trames I lorsqu’aucune donnée ne doit être renvoyée ;
- les trames U portent STARTDT et STOPDT, qui démarrent et arrêtent la transmission de données, et TESTFR, qui teste une liaison inactive.
Une nouvelle connexion TCP démarre à l’état STOPDT avec les deux numéros de séquence à zéro. Le poste contrôlé n’envoie aucune trame I avant de recevoir STARTDT act et de répondre STARTDT con.
IEC 60870-5-104 donne les valeurs par défaut suivantes :
| Paramètre | Valeur par défaut | Signification |
|---|---|---|
| k | 12 trames I | Nombre maximal de trames I envoyées mais non encore confirmées. À k, l’émetteur s’arrête. |
| w | 8 trames I | Le destinataire doit confirmer au plus tard après w trames I. Recommandation : w ne dépasse pas les deux tiers de k. |
| t0 | 30 s | Délai maximal d’établissement de la connexion |
| t1 | 15 s | Délai maximal de confirmation d’une trame I ou U envoyée. À t1, l’émetteur ferme la connexion. |
| t2 | 10 s | Délai maximal de confirmation lorsqu’aucune donnée ne doit être envoyée. t2 doit être inférieur à t1. |
| t3 | 20 s | Temps d’inactivité avant l’envoi d’un TESTFR |
Lorsque moins de w trames arrivent, le destinataire attend t2 avant d’envoyer une trame S. La confirmation parvient donc à l’émetteur après t2 plus le temps de transit. Avec les valeurs par défaut, il reste 5 s pour l’aller-retour avant que t1 ne ferme la connexion. Une liaison cellulaire avec un aller-retour de 1 s respecte cette marge. Une liaison qui se fige plus de 5 s sous charge ne la respecte pas ; on observe alors une connexion qui se ferme et se rouvre pendant des rafales d’événements. Augmentez t1 ou réduisez t2 pour que t1 dépasse t2 plus le pire aller-retour mesuré. Modifiez les valeurs aux deux extrémités en même temps.
Connexions redondantes
Un poste contrôlé peut accepter plusieurs connexions TCP, par exemple d’un centre de conduite principal et de son secours. Les connexions constituent un groupe de redondance avec une seule file d’événements ; une seule connexion du groupe est active (en état STARTDT) à la fois. Lors du basculement vers la connexion de secours, les événements envoyés mais non confirmés sur l’ancienne connexion doivent encore se trouver dans la file. Lorsque celle-ci est pleine, lib60870 supprime par exemple l’événement le plus ancien pour garder le nouveau. Convenez avec l’exploitant de la capacité de la file et testez un basculement pendant une rafale d’événements.
Une mesure sur les deux liaisons
Cet exemple transmet une exportation de puissance active du site de 12,5 MW sous forme de flottant court, type 13 (M_ME_NC_1), cause 3 (spontanée), adresse commune 1 et adresse d’objet 4001 (0x0FA1).
En IEC 104, comme trame I avec N(S) = 5 et N(R) = 3 :
68 12 0A 00 06 00 0D 01 03 00 01 00 A1 0F 00 00 00 48 41 00
APCI en-tête et adresse ASDU valeur QDSL’octet de longueur 0x12 (18) compte les quatre octets de contrôle et l’ASDU de 14 octets. Les octets de contrôle contiennent N(S) et N(R) décalés d’un bit vers la gauche : 5 devient 0x0A et 3 devient 0x06. La cause occupe 2 octets (03 00 : cause 3, adresse d’origine 0), l’adresse commune 2 octets (01 00) et l’adresse d’objet 3 octets (A1 0F 00). La valeur 12,5 est le flottant IEEE 754 simple précision 0x41480000, envoyé de l’octet faible au fort. QDS 0x00 indique une bonne qualité.
En IEC 101, en mode non équilibré avec une adresse de liaison d’un octet (5), une cause d’un octet, une adresse commune d’un octet et une adresse d’objet de deux octets, la même valeur est renvoyée en réponse à une demande de classe 1 :
68 0D 0D 68 08 05 0D 01 03 01 A1 0F 00 00 48 41 00 58 16
en-tête C A en-tête et adresse ASDU valeur QDS CS finL’ASDU occupe ici 11 octets contre 14 en IEC 104. Un convertisseur doit reconstruire chaque ASDU selon les tailles de champs de l’autre protocole. Il ne peut pas simplement transmettre les octets inchangés.
Un tunnel n’est pas un convertisseur
Un serveur d’appareil série peut transporter un flux d’octets IEC 101 sur un réseau TCP. Les deux extrémités parlent toujours IEC 101, avec ses trames FT1.2 et ses interrogations. La bibliothèque de MZ Automation décrit ce mécanisme comme un transport de tunnellisation IEC 101 distinct d’IEC 104. Le centre de conduite doit disposer d’un maître IEC 101 capable d’utiliser une socket TCP. Un client IEC 104 ne comprend pas ce flux.
Le tunnel ajoute aussi la latence du réseau à chaque interrogation et réponse. Les temporisations de liaison IEC 101 du maître doivent la prendre en compte, sous peine de déclarer le poste distant défaillant.
Un convertisseur de protocole implémente les deux normes. Il interroge ou accepte IEC 101 côté RTU, exécute un serveur IEC 104 côté réseau et associe chaque point.
L’horodatage demande une attention particulière. CP24Time2a ne contient que les millisecondes (de 0 à 59 999) et les minutes (de 0 à 59). Le convertisseur ajoute l’heure et la date, généralement à partir de sa propre horloge. Un événement survenu à 10:59:59,8 et reçu par le convertisseur à 11:00:00,3 reçoit la mauvaise heure si le convertisseur ne compare pas les minutes de l’étiquette à son heure courante. Synchronisez les horloges de la RTU et du convertisseur et testez le passage à l’heure suivante.
Testez les défaillances suivantes :
| Défaut du convertisseur | Ce que voit le centre de conduite | Essai |
|---|---|---|
| Reconstruit CP24Time2a avec l’heure de sa propre horloge | Événements proches du passage à l’heure suivante, décalés d’une heure | Provoquer un événement à xx:59:59 et lire son horodatage côté IEC 104 |
| Envoie les événements sans horodatage ou avec l’heure de réception | Heures des événements suivant le cycle d’interrogation, et non le procédé | Changer une entrée d’état et comparer le journal de la RTU au centre de conduite |
| Supprime les bits de qualité (IV, NT, SB, BL, OV) | Valeurs d’une RTU défaillante présentées comme valides | Déconnecter la RTU et vérifier IV ou NT sur ses points |
| Répond à une interrogation générale depuis son cache alors que la liaison RTU est coupée | Valeurs périmées avec cause 20 et bonne qualité | Couper la liaison série, envoyer C_IC_NA_1 et vérifier la qualité |
| Confirme une commande avant la RTU | ACTCON positif pour une commande ayant échoué | Envoyer une commande à une RTU qui la refuse |
Contrat applicatif
Les deux normes exigent une liste de points approuvée et la liste d’interopérabilité de chaque extrémité. Pour chaque point, indiquez :
- l’identifiant de type, par exemple M_ME_NC_1 (13) pour un flottant court ou M_ME_TF_1 (36) pour un flottant court horodaté avec CP56Time2a ;
- l’adresse commune et l’adresse de l’objet d’information ;
- l’unité, l’échelle et la convention de signe, par exemple exportation positive ;
- les causes de transmission utilisées : spontanée (3), périodique (1) ou réponse à une interrogation générale (20) ;
- pour les commandes, le type (par exemple C_SC_NA_1, 45, ou C_SC_TA_1, 58, avec horodatage), le recours à la sélection avant exécution ou à l’exécution directe, et le point qui rapporte le résultat.
Convenez de la source horaire. Le centre de conduite peut régler l’horloge du poste distant avec C_CS_NA_1 (103), ou les deux extrémités peuvent utiliser NTP. Convenez aussi du comportement au démarrage et après une perte de connexion. Une interrogation générale renvoie les valeurs actuelles. Les événements survenus pendant la coupure ne sont récupérés que si le poste distant les met en tampon. Le guide ASDU explique les champs, le guide des horodatages les heures et la qualité, et le guide des commandes la séquence de pilotage.
Sécurité
Les protocoles de base n’authentifient pas l’autre extrémité et ne chiffrent pas les données. Deux extensions normalisées existent :
- IEC 62351-3 est un profil TLS pour les protocoles sur TCP/IP. L’IANA enregistre le port TCP 19998 pour IEC 104 sécurisé.
- IEC TS 60870-5-7:2025 applique l’authentification IEC 62351-5 à la couche applicative d’IEC 101 et 104. Elle permet à un poste de vérifier qu’une ASDU provient d’un utilisateur autorisé et n’a pas été modifiée.
Demandez lesquelles sont implémentées par les équipements et testez-les à la mise en service. Si aucune n’est disponible, la protection vient du réseau : circuit ou APN privé, VPN IPsec entre les sites et règle de pare-feu n’acceptant TCP 2404 que depuis les adresses du centre de conduite. Un tunnel IEC 101 sur réseau partagé exige les mêmes contrôles.
Téléconduite et systèmes EpiSensor
Edge ne fournit pas d’interface IEC 60870-5-101 ni IEC 60870-5-104. Lorsqu’un gestionnaire de réseau exige la téléconduite d’un site, sa RTU ou une passerelle de poste assure cette fonction. Un système EpiSensor mesure et pilote le site derrière cette RTU. Par exemple, la RTU reçoit la consigne du gestionnaire par IEC 104, tandis qu’un contrôleur de réponse à la demande ZDR et des mesures par circuit rapportent la réponse effectivement fournie par le site. Inscrivez dans la liste de points la frontière entre les deux systèmes : quels signaux appartiennent à la RTU et lesquels proviennent du système EpiSensor par une interface distincte.
Questions fréquentes
Quelle différence entre IEC 101 et IEC 104 ?
IEC 60870-5-101 fonctionne sur liaison série, avec des trames FT1.2, une adresse de liaison et une procédure équilibrée ou non équilibrée. IEC 60870-5-104 fonctionne sur TCP/IP, avec une APCI de 6 octets, des trames numérotées et son propre contrôle de flux. Les messages applicatifs sont proches, mais non identiques : IEC 104 fixe la taille des champs d’adresse et n’autorise que les horodatages CP56Time2a. Un appareil configuré pour l’un ne communique pas avec l’autre sans convertisseur.
Quel port utilise IEC 60870-5-104 ?
Le port TCP 2404 par défaut. L’IANA enregistre aussi le port TCP 19998 pour IEC 104 sécurisé, utilisé avec TLS.
Que signifient k et w en IEC 104 ?
Ce sont les paramètres de contrôle de flux. k est le nombre maximal de trames I qu’un poste peut envoyer sans confirmation, soit 12 par défaut. w est le nombre de trames I après lequel le destinataire doit confirmer, soit 8 par défaut. La norme recommande que w ne dépasse pas les deux tiers de k. Si une trame I n’est pas confirmée avant t1 (15 s par défaut), l’émetteur ferme la connexion.
IEC 104 est-il sécurisé ?
Pas seul. Le protocole de base n’offre ni authentification ni chiffrement. IEC 62351-3 ajoute TLS et IEC TS 60870-5-7 applique l’authentification IEC 62351-5 à IEC 101 et 104. Si les équipements ne prennent en charge aucune des deux, la protection repose sur le réseau : circuit ou APN privé, VPN et règle de pare-feu pour le port 2404.