Protocoles et données

IEC 60870-5-101 et IEC 60870-5-104 : quelles différences ?

IEC 101 et 104 : interrogation série, TCP 2404, paramètres k/w/t0–t3, tailles de champs, horodatages, codage des points et tunnels.

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-101IEC 60870-5-104
TransportSérie : RS-232, RS-485, modem ou radioTCP/IP sur Ethernet ou WAN
Adressage du posteAdresse de liaison sur 0, 1 ou 2 octetsAdresse IP et port TCP, 2404 par défaut
Procédure de liaisonNon équilibrée (le poste primaire interroge) ou équilibrée (chaque extrémité peut émettre)Client et serveur sur TCP, avec STARTDT et STOPDT
TrameFT1.2 : trame fixe commençant par 0x10, trame variable par 0x68 L L 0x68 ; toutes deux se terminent par 0x16APCI : octet initial 0x68, un octet de longueur et quatre octets de contrôle
Contrôle de fluxUne trame non confirmée au plus ; confirmation ou caractère unique 0xE5Jusqu’à k trames I numérotées non confirmées ; temporisations t0 à t3
Cause de transmission1 ou 2 octets2 octets
Adresse commune1 ou 2 octets2 octets
Adresse d’objet1, 2 ou 3 octets3 octets
Types horodatésCP24Time2a (3 octets) et CP56Time2a (7 octets)CP56Time2a seulement : types 30 à 40 pour la surveillance, 58 à 64 pour les commandes
Liaisons courantesSérie point à point, radio, lignes louées, lignes multipoints avec plusieurs postes distantsRé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ètreValeur par défautSignification
k12 trames INombre maximal de trames I envoyées mais non encore confirmées. À k, l’émetteur s’arrête.
w8 trames ILe destinataire doit confirmer au plus tard après w trames I. Recommandation : w ne dépasse pas les deux tiers de k.
t030 sDélai maximal d’établissement de la connexion
t115 sDélai maximal de confirmation d’une trame I ou U envoyée. À t1, l’émetteur ferme la connexion.
t210 sDélai maximal de confirmation lorsqu’aucune donnée ne doit être envoyée. t2 doit être inférieur à t1.
t320 sTemps 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 :

Trame hexadécimale
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     QDS

L’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 :

Trame hexadécimale
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 fin

L’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.

Tunnel IEC 101 et convertisseur IEC 101 vers IEC 104 En haut, un serveur série transporte le flux IEC 101 de la RTU sur un réseau TCP ; le centre de conduite a encore besoin d’un maître IEC 101. En bas, un convertisseur interroge la RTU en IEC 101 et exécute un serveur IEC 104 côté réseau ; il reconstruit chaque ASDU aux tailles IEC 104 et ajoute heure et date aux horodatages. tunnel RTU poste IEC 101 Serveur série octets inchangés Centre de conduite maître IEC 101 FT1.2 101 sur TCP convertisseur RTU poste IEC 101 Convertisseur associe les points Centre de conduite client IEC 104 IEC 101 IEC 104 Les deux parlent encore IEC 101 Reconstruit chaque ASDU : 11 puis 14 octets, et ajoute heure et date à CP24Time2a
Un tunnel transporte les octets IEC 101 sur TCP jusqu’à un maître IEC 101. Un convertisseur parle IEC 101 à la RTU et IEC 104 au centre de conduite, puis reconstruit chaque ASDU.

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 convertisseurCe que voit le centre de conduiteEssai
Reconstruit CP24Time2a avec l’heure de sa propre horlogeÉvénements proches du passage à l’heure suivante, décalés d’une heureProvoquer 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éceptionHeures 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 validesDé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éeValeurs 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 RTUACTCON 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.