Ce que la IEC 61869-9 exige réellement, et où passe la frontière entre « encore synchronisé » et « plus synchronisé »
Cet article utilise la terminologie IEC pour les sources de flux SV :
- SAMU — Stand-Alone Merging Unit (dispositif distinct qui produit un flux SV à partir d'entrées analogiques conventionnelles) ;
- NCIT — Non-Conventional Instrument Transformer (transformateur de courant ou de tension avec sortie numérique propre selon IEC 61869-9).
Par souci de concision, nous écrivons SAMU/NCIT pour désigner la source générique d'un flux SV.
Par fonction de protection complexe, nous entendons une fonction qui satisfait simultanément aux deux conditions suivantes :
- le protection IED reçoit plusieurs flux SV indépendants provenant de différents SAMU/NCIT (par exemple, un SAMU séparé pour les courants et un NCIT séparé pour les tensions ; ou des courants de branches issus de SAMU différents) ;
- l'algorithme de protection compare vectoriellement les signaux entre ces flux — c'est-à-dire que le résultat dépend de leur alignement mutuel en temps et en angle.
Entrent dans cette catégorie, en particulier, les protections de distance, différentielles, directionnelles, etc. Si, en revanche, tous les signaux nécessaires (courants et tensions) proviennent du même SAMU/NCIT, l'état de sa synchronisation externe n'affecte pas le fonctionnement de la protection — la Section 6.904.6 de la IEC 61869-9 le formule explicitement :
Original : Regardless of whether the merging unit is synchronized to an external time source or not, all sampled values from the same merging unit shall be synchronized to each other.
Traduction : Que le SAMU/NCIT soit synchronisé à une source de temps externe ou non, tous les échantillons d'un même SAMU/NCIT doivent être synchronisés entre eux. (IEC 61869-9, §6.904.6)
Autrement dit, le problème abordé dans cet article est pertinent précisément dans une architecture multi-flux — lorsque la protection compose son tableau à partir d'échantillons produits par différents dispositifs physiques SAMU/NCIT.
Énoncé du problème
Deux questions liées reviennent fréquemment chez les concepteurs et chez les responsables de mise en service de la protection. Nous les résumons ici :
- Scénario 1. Tous les flux SV portaient initialement la marque de synchronisation globale (SmpSynch=2). À un moment donné, un SAMU/NCIT continue à publier SmpSynch=2 tandis qu'un autre passe à SmpSynch=1. Peut-on considérer ces SV comme mutuellement synchronisés pendant un certain temps ?
- Scénario 2. Un protection IED exécutant une fonction de protection complexe reçoit deux flux SV : courants — avec SmpSynch=2 (global), tensions — avec SmpSynch=1 (local). La fonction correspondante doit-elle être bloquée, ou les mesures se combinent-elles encore correctement pendant un certain temps ?
La réponse à ces deux questions découle directement de la Section 6.904 « Synchronization » de la IEC 61869-9. Nous parcourons ses dispositions ci-dessous et les confrontons aux idées reçues fréquentes dans les discussions.
Comment la norme décrit le SmpSynch
L'attribut SmpSynch est présent dans chaque ASDU d'un message SV et indique à l'abonné à quelle source de temps les échantillons sont rattachés. La IEC 61869-9, §6.904.4, définit quatre classes de valeurs :
| SmpSynch | Source de temps | Ce que cela signifie pour l'abonné |
|---|---|---|
| 0 | Non synchronisé | Les échantillons ne sont rattachés ni à des horloges globales ni locales avec la précision requise. Le signal de synchronisation n'a jamais été reçu, le holdover a expiré, ou la référence est perdue. |
| 1 | Horloge locale (source inconnue) | Le SAMU/NCIT est synchronisé à une horloge locale, mais l'identifiant de cette horloge n'est pas transmis. Par exemple, en synchronisation 1PPS — il n'y a tout simplement pas de champ pour l'ID de la source. |
| 2 | Horloge globale (UTC/TAI traceable) | Le SAMU/NCIT est synchronisé à une source elle-même traçable jusqu'aux références nationales de temps (GPS/GLONASS, serveurs NTP du NIST, etc.). Tous les flux portant SmpSynch=2 sont mutuellement synchronisés. |
| 5–254 | Horloge locale avec ID unique | Une horloge locale spécifique. Les flux portant le même ID sont mutuellement synchronisés ; avec des ID différents, il n'y a pas de garantie. |
Les principales prescriptions du §6.904.4 dans leur formulation originale (anglais) et traduites :
Original : While sampled values are synchronized to a global area clock to the degree required to meet the measuring accuracy class phase displacement limit, the value of the "SmpSynch" attribute in the SV messages shall be 2.
Traduction : Tant que les échantillons sont synchronisés à une horloge d'aire globale au degré requis pour respecter la limite de déphasage de la classe de précision de mesure, la valeur de l'attribut « SmpSynch » dans les messages SV doit être 2. (IEC 61869-9, §6.904.4)
Original : All sampled values synchronized to any global area clock are synchronized to each other.
Traduction : Tous les échantillons synchronisés à une horloge d'aire globale quelconque sont synchronisés entre eux. (IEC 61869-9, §6.904.4)
Original : While sampled values are synchronized to a local area clock to the degree required to meet the measuring accuracy class phase displacement limit, the value of the "SmpSynch" attribute in the SV messages shall be the unique identifier of the specific local area clock if known, or 1 if the identifier is not known.
Traduction : Tant que les échantillons sont synchronisés à une horloge d'aire locale au degré requis pour respecter la limite de déphasage de la classe de précision, la valeur de l'attribut « SmpSynch » doit être l'identifiant unique de l'horloge locale spécifique s'il est connu, ou 1 si l'identifiant n'est pas connu. (IEC 61869-9, §6.904.4)
Original : All sampled values synchronized to the same local area clock are synchronized to each other, but may not be synchronized to sampled values synchronized to some other clock.
Traduction : Tous les échantillons synchronisés à la même horloge d'aire locale sont synchronisés entre eux, mais peuvent ne pas être synchronisés avec des échantillons synchronisés à une autre horloge. (IEC 61869-9, §6.904.4)
Original : While sampled values are not synchronized to a global or local area clock to the degree required to meet the measuring accuracy class phase displacement limit, the value of the "SmpSynch" attribute in the SV messages shall be 0.
Traduction : Tant que les échantillons ne sont synchronisés ni à une horloge globale ni à une horloge locale au degré requis pour respecter la limite de déphasage de la classe de précision, la valeur de l'attribut « SmpSynch » doit être 0. (IEC 61869-9, §6.904.4)
Conclusion principale : la valeur de SmpSynch d'un flux isolé ne permet pas d'affirmer s'il est synchronisé avec un autre flux. Un abonné exécutant une protection complexe doit comparer les valeurs par paires entre tous les flux alimentant son algorithme (en particulier les ID d'horloge en cas de synchronisation locale).
Holdover et l'idée reçue habituelle
On entend souvent l'interprétation suivante : « après la perte de la synchronisation globale, le drapeau 2 reste pendant un certain temps puis passe à 1 ». C'est faux. La norme décrit un autre comportement. Voici le §6.904.5 cité textuellement :
Original : When the external synchronization signal is lost, the merging unit shall go into a holdover mode. For the duration of the holdover mode the merging unit shall continue to send samples maintaining the sample timing required for the measuring accuracy class. During holdover, the "SmpSynch" attribute in the SV messages shall remain unchanged, and the "SmpCnt" attribute in the SV messages shall increment and wrap as if a synchronization signal were present.
Traduction : Lorsque le signal de synchronisation externe est perdu, le SAMU/NCIT doit passer en mode holdover. Pendant la durée du holdover, le SAMU/NCIT doit continuer à émettre des échantillons en maintenant la précision temporelle exigée par la classe de précision. Durant le holdover, l'attribut « SmpSynch » dans les messages SV doit rester inchangé, et l'attribut « SmpCnt » doit s'incrémenter et boucler comme si le signal de synchronisation était présent. (IEC 61869-9, §6.904.5)
Original : The minimum holdover duration shall be 5 seconds under stable temperature conditions.
Traduction : La durée minimale du holdover doit être de 5 secondes dans des conditions de température stables. (IEC 61869-9, §6.904.5)
Autrement dit, pendant le holdover la valeur de SmpSynch reste égale à 2. Une fois le holdover expiré, le SAMU/NCIT passe en mode free-running (§6.904.6) et publie SmpSynch=0, et non 1. La norme énumère explicitement les causes de SmpSynch=0 :
- le signal de synchronisation n'a jamais été reçu ;
- le signal de synchronisation a été interrompu et le SAMU/NCIT fonctionne au-delà de son holdover déclaré ;
- le signal de synchronisation n'a pas été acquis ;
- la précision d'échantillonnage ne satisfait pas aux exigences de la classe.
En pratique, les fabricants annoncent des holdovers de quelques dizaines de secondes à plusieurs heures — selon la classe de l'oscillateur interne (TCXO, OCXO, rubidium). 5 secondes est la limite normative inférieure.
Symétrie de la règle de holdover
La formulation « SmpSynch shall remain unchanged » est délibérément générale et n'est pas liée à la valeur 2. La règle est donc symétrique pour toute valeur initiale :
- valeur 2 (Global) → perte du signal → holdover avec SmpSynch=2 → expiration → SmpSynch=0 ;
- valeur 1 (Local sans ID) → perte du signal → holdover avec SmpSynch=1 → expiration → SmpSynch=0 ;
- valeur 5–254 (Local avec ID) → perte du signal → holdover avec le même ID → expiration → SmpSynch=0.
Logique sous-jacente : SmpSynch reflète la classe de source à laquelle le SAMU/NCIT était asservi et il continue à maintenir la précision de la classe de mesure via son propre oscillateur interne. Pendant le holdover, l'oscillateur interne « se souvient » de la référence précédente et la maintient aussi longtemps que sa stabilité le permet.
Carte complète des transitions de SmpSynch pour un seul SAMU/NCIT :
stateDiagram-v2
direction LR
[*] --> S0: démarrage sans signal<br/>SmpSynch=0
S0: SmpSynch = 0<br/>(non synchronisé)
S2: SmpSynch = 2<br/>(Global / traceable)
S1: SmpSynch = 1 / 5–254<br/>(Local)
HOLD2: holdover (valeur 2 inchangée)<br/>dure T_h ≥ 5 s
HOLD1: holdover (valeur 1 inchangée)<br/>dure T_h ≥ 5 s
S0 --> S2: GM traceable apparu<br/>(timeTraceable=TRUE)
S0 --> S1: GM non-traceable apparu<br/>(timeTraceable=FALSE)
S2 --> HOLD2: signal PTP perdu
HOLD2 --> S2: PTP rétabli avant T_h
HOLD2 --> S0: T_h écoulé
S1 --> HOLD1: signal PTP perdu
HOLD1 --> S1: PTP rétabli avant T_h
HOLD1 --> S0: T_h écoulé
S2 --> S1: GM passé en clockClass 52<br/>(timeTraceable: TRUE→FALSE)
S1 --> S2: GM revenu en clockClass 6/7<br/>(timeTraceable: FALSE→TRUE)
Fig. 1. États et transitions de l'attribut SmpSynch pour un seul SAMU/NCIT. Observation clé : la transition 2 → 1 n'est pas possible « en interne » pendant le holdover — elle ne peut survenir que par changement d'état du grandmaster.
Alors quand apparaît SmpSynch=1 ?
La transition 2 → 1 est en effet possible, mais elle n'est pas une conséquence de la perte du GPS par le SAMU/NCIT lui-même — elle découle d'un changement d'état du grandmaster (serveur de temps) du domaine PTP auquel le SAMU/NCIT est connecté.
Le §6.904.2 de la IEC 61869-9 prescrit d'interpréter le signal de synchronisation en s'appuyant sur le drapeau timeTraceable du Power Profile :
Original : A synchronizing signal received with the Power Profile timeTraceable flag TRUE shall be deemed to be sourced by a global area clock. A synchronizing signal received with the Power Profile timeTraceable flag FALSE shall be deemed to be sourced by a local area clock.
Traduction : Un signal de synchronisation reçu avec le drapeau timeTraceable du Power Profile à TRUE doit être considéré comme provenant d'une horloge d'aire globale. Un signal reçu avec timeTraceable à FALSE doit être considéré comme provenant d'une horloge d'aire locale. (IEC 61869-9, §6.904.2)
La correspondance avec la valeur de SmpSynch est la suivante :
- signal avec timeTraceable=TRUE → le SAMU/NCIT publie SmpSynch=2 ;
- signal avec timeTraceable=FALSE → le SAMU/NCIT publie SmpSynch=1 (ou 5–254 si un identifiant de source d'un octet est transmis dans le TLV GRANDMASTER_ID).
Lorsque le grandmaster perd GPS/GLONASS et entre lui-même en holdover, selon les règles du Power Profile il finira au bout d'un certain temps par positionner timeTraceable=FALSE. À partir de ce moment, les SAMU/NCIT qui lui sont connectés passent à SmpSynch=1 — tout en restant physiquement synchronisés entre eux, puisqu'ils prennent le temps à la même source.
Lorsqu'il existe un grandmaster redondant, une partie des SAMU/NCIT peut rester sur le grandmaster « traceable » (SmpSynch=2), tandis qu'une autre partie peut basculer sur un grandmaster « non traceable » (SmpSynch=1). La synchronisation entre ces deux groupes n'est plus garantie.
Où sont transmis timeTraceable et clockClass
Les deux valeurs arrivent à l'abonné dans le même message PTP Announce. Ce message est émis par chaque grandmaster (Ordinary Clock) et chaque Boundary Clock ; sous Power Profile, il est répété à 1 Hz. Outre l'horodatage proprement dit, l'Announce porte des informations sur la qualité de la source que le BMCA (Best Master Clock Algorithm) utilise pour choisir le meilleur grandmaster du domaine, et que le SAMU/NCIT utilise pour dériver le SmpSynch.
timeTraceable : un bit dans flagField
Le drapeau timeTraceable n'est pas un message à part — c'est l'un des bits du flagField dans l'en-tête du message Announce. Concrètement, l'octet de poids faible du flagField, bit 4 (noté PTP_TIMETRACEABLE selon IEEE 1588-2008/2019, masque 0x10). Adjacent dans le même flagField se trouve le drapeau frequencyTraceable (masque 0x20) — il indique si la référence de fréquence est traçable ; sous Power Profile, sa valeur coïncide en général avec timeTraceable.
La valeur de timeTraceable est positionnée par le grandmaster lui-même selon son état interne :
- il est verrouillé sur une référence externe (par exemple GNSS) avec la précision exigée par Power Profile → timeTraceable=TRUE ;
- il est dans son propre holdover, et la précision est encore dans les limites → timeTraceable reste normalement TRUE ;
- la précision est sortie des limites normatives du Power Profile → timeTraceable=FALSE.
clockClass : un octet dans grandmasterClockQuality
L'attribut clockClass est transmis dans le corps du message Announce, au sein de la structure grandmasterClockQuality (selon IEEE 1588-2008/2019, §13.5). Cette structure occupe 4 octets et contient trois champs :
- clockClass — 1 octet (UInteger8) ; la « classe de qualité » du grandmaster — c'est elle qui nous intéresse ;
- clockAccuracy — 1 octet (Enumeration8) ; estimation grossière de la précision réelle (valeurs telles que « meilleur que 100 ns », « meilleur que 1 µs », etc.) ;
- offsetScaledLogVariance — 2 octets (UInteger16) ; caractéristique de la stabilité de l'oscillateur.
Le Power Profile (IEC/IEEE 61850-9-3 et IEEE C37.238) n'utilise que quatre valeurs normatives de clockClass :
- 6 — horloge verrouillée sur un PRC (Primary Reference Clock ; typiquement GNSS), précision réelle ≤ 250 ns ;
- 7 — horloge en holdover après verrouillage préalable sur un PRC, précision encore dans le profil (≤ 250 ns par rapport au dernier verrouillage) ;
- 52 — en holdover, précision dérive dans la plage 250 ns – 1 µs ;
- 187 — en holdover, précision pire que 1 µs.
Une plus petite valeur de clockClass correspond à une source de meilleure qualité, et le BMCA, à conditions égales, choisit le grandmaster ayant la plus petite clockClass.
Relation entre clockClass et timeTraceable
clockClass et timeTraceable sont deux champs indépendants du même message Announce, donc en théorie un grandmaster peut les positionner dans toute combinaison. Mais le Power Profile les lie normativement : timeTraceable=TRUE ne peut être positionné que lorsque la précision réelle satisfait aux exigences de traçabilité du profil. D'où la correspondance standard suivie tant par les grandmasters que par les abonnés :
| clockClass | État du grandmaster | Précision | timeTraceable (dans Announce) |
SmpSynch chez SAMU/NCIT |
|---|---|---|---|---|
| 6 | verrouillé sur PRC (typiquement GNSS) | ≤ 250 ns | TRUE | 2 (Global) |
| 7 | holdover, précision dans le profil | ≤ 250 ns | TRUE → FALSE après la fenêtre normative | 2 → 1 après expiration de la fenêtre |
| 52 | holdover, précision hors profil | 250 ns – 1 µs | FALSE | 1 (ou 5–254 si TLV GMID présent) |
| 187 | holdover, précision sévèrement dégradée | > 1 µs | FALSE | 0 (via le propre holdover du SAMU/NCIT) |
Tableau 1. Correspondance entre clockClass du grandmaster, drapeau timeTraceable dans Announce et valeur SmpSynch chez l'abonné SAMU/NCIT, selon Power Profile (IEC/IEEE 61850-9-3 et IEEE C37.238).
C'est pourquoi la transition d'un flux de SmpSynch=2 à SmpSynch=1 est, en substance, un indicateur que le grandmaster est passé de clockClass 6/7 à clockClass 52 : timeTraceable tombe à FALSE, et le SAMU/NCIT doit changer SmpSynch en conséquence.
Que transporte encore Announce et où c'est visible
En plus de timeTraceable et clockClass, l'abonné reçoit dans Announce un autre champ important :
- GMID (Grandmaster ID) — transmis comme TLV du Power Profile dans le message Announce. Son octet de poids faible, selon §6.904.2 de la IEC 61869-9, est copié dans SmpSynch pour les valeurs 5–254 — autrement dit, l'ID local que voit la protection complexe provient physiquement de ce TLV.
Un SAMU/NCIT abonné (et tout protection IED ayant sa propre pile PTP) ne réémet pas ces champs vers l'extérieur — il les utilise en interne pour dériver le SmpSynch. C'est pourquoi, lors de la mise en service d'un poste numérique, la chaîne « Announce → SmpSynch » se vérifie facilement avec des analyseurs PTP standard capables de décoder les messages Announce octet par octet (Wireshark avec le dissector PTPv2, instruments dédiés IEEE 1588 Time Test Set, logiciels professionnels de test PTP/SV, etc.).
La chaîne causale obtenue est : « état du grandmaster → ses clockClass et timeTraceable dans Announce → leur interprétation dans la pile PTP du SAMU/NCIT → SmpSynch dans le message SV → décision de la protection complexe ».
flowchart TB
GM["Grandmaster<br/><i>état de l'oscillateur interne</i>"]
ANN["Message Announce PTP<br/>(1 Hz par Power Profile)"]
FF["flagField · bit timeTraceable<br/>TRUE / FALSE"]
CC["grandmasterClockQuality.clockClass<br/>6 · 7 · 52 · 187"]
GMID["TLV GRANDMASTER_ID<br/>(IEEE C37.238)"]
PTP["Pile PTP du SAMU/NCIT<br/>interprétation de l'Announce"]
SV["Message SV<br/>attribut SmpSynch"]
DEF["Protection complexe<br/>comparaison de paires SmpSynch<br/>entre tous les flux"]
DEC{"Tous les flux<br/>mutuellement synchronisés ?"}
OK["Précision complète<br/>la fonction opère"]
BLK["Blocage / repli<br/>sur algorithme de secours"]
GM --> ANN
ANN --> FF
ANN --> CC
ANN --> GMID
FF --> PTP
CC --> PTP
GMID --> PTP
PTP --> SV
SV --> DEF
DEF --> DEC
DEC -->|oui| OK
DEC -->|non| BLK
style GM fill:#e8f4fd,stroke:#4a90d9
style ANN fill:#fff8e1,stroke:#e6a23c
style PTP fill:#f3e5f5,stroke:#9c27b0
style SV fill:#e8f5e9,stroke:#67c23a
style DEF fill:#fde8e8,stroke:#f56c6c
style OK fill:#e8f5e9,stroke:#67c23a
style BLK fill:#fde8e8,stroke:#f56c6c
Fig. 2. Chaîne causale depuis l'état du grandmaster jusqu'à la décision de la protection complexe. Chaque maillon est un point de défaillance distinct et un objet de test distinct.
Retour aux scénarios de la discussion
Scénario 1 : un SAMU/NCIT est resté à 2, l'autre est passé à 1
Réponse formelle de la norme : de tels flux ne peuvent pas être considérés comme mutuellement synchronisés. L'abonné n'a aucun moyen de savoir si la source locale du second SAMU/NCIT coïncide physiquement avec la source globale du premier.
Physiquement, cette situation signifie en général l'une de deux choses :
- Les deux SAMU/NCIT sont rattachés au même grandmaster, qui a perdu le GPS et positionne maintenant timeTraceable=FALSE. Dans ce cas, les deux flux restent en fait synchronisés (source commune), mais le second SAMU/NCIT aurait également dû passer à SmpSynch=1 — s'il ne l'a pas fait, l'un des dispositifs est défaillant.
- Les SAMU/NCIT sont rattachés à des grandmasters différents, l'un ayant encore le GPS, l'autre non. Une dérive de phase entre les flux apparaît alors, due à l'oscillateur local, et la précision de l'alignement se dégrade.
L'abonné ne pouvant distinguer ces deux cas à partir du contenu SV, il est plus sûr de traiter la paire « 2 + 1 » comme désynchronisée et de bloquer la protection complexe.
Scénario 2 : courants SmpSynch=2, tensions SmpSynch=1
C'est la situation typique où courants et tensions sont produits par des SAMU/NCIT différents — exactement l'architecture multi-flux pour laquelle la question de la synchronisation a un sens. Une protection complexe (par exemple, distance) calcule ses grandeurs par comparaison vectorielle de courant et tension, et toute erreur de phase entre eux se répercute directement sur le résultat.
La IEC 61869-9 ne décrit pas le comportement du protection IED — elle fournit seulement à l'abonné un moyen (l'attribut SmpSynch) pour prendre une décision. La décision elle-même est régie par les exigences de la fonction de protection et la logique du protection IED. La pratique courante est :
- si les deux flux ont SmpSynch=2 — la fonction opère ;
- si les deux flux ont SmpSynch=N (même ID local 5–254) — la fonction opère ;
- si un flux est à =2 et l'autre à =1, ou si les ID locaux diffèrent, ou si au moins un est à =0 — les fonctions de protection complexes sont bloquées.
Quand la question « combiner ou non » ne se pose pas
Si la protection complexe travaille avec un flux d'un seul SAMU/NCIT (autrement dit, courants et tensions sont produits par le même dispositif), la question de la synchronisation externe ne se pose pas — selon le §6.904.6 déjà cité, les échantillons d'un même dispositif sont toujours mutuellement synchronisés, indépendamment de l'état de sa synchronisation externe. La synchronisation externe n'est nécessaire dans ce cas que pour l'alignement « global » avec d'autres sous-systèmes (par exemple, des synchrophaseurs), mais n'affecte pas le fonctionnement de la fonction de protection elle-même.
Que doit faire le SAMU/NCIT à la perte de la source
Synthèse des exigences de §6.904.5–6.904.6 et du test §7.2.902 de la IEC 61869-9 :
- à la perte de la synchronisation externe, le SAMU/NCIT doit entrer en holdover et continuer à émettre des SV avec le SmpSynch précédent et un SmpCnt qui s'incrémente comme si rien n'avait été perdu ;
- la durée du holdover est déclarée dans la fiche technique du dispositif (attribut hold dans PhyNam.d, voir §6.903.5) ; le minimum est 5 s ;
- une fois le holdover expiré, le SAMU/NCIT passe en free-running, positionne SmpSynch=0 et maintient le taux d'échantillonnage à ±100 ppm du nominal ;
- en cas de restauration du signal avant expiration du holdover, le flux continue sans rupture ; en cas de restauration après — la norme admet un saut dans SmpCnt et/ou un changement de SmpSynch dans des ASDU adjacents, et l'abonné doit le détecter (NOTE 912 dans §6.904.7).
Graphiquement :
{
"title": {
"text": "Comportement du SAMU/NCIT lors de la perte du signal PTP",
"subtext": "SmpSynch et |Δt| cumulé · IEC 61869-9 §6.904.5 / 7.2.902",
"left": "center", "top": 8,
"textStyle": { "fontSize": 14, "fontWeight": "bold" },
"subtextStyle": { "fontSize": 11, "color": "#888" }
},
"tooltip": { "trigger": "axis" },
"legend": { "bottom": 8, "itemGap": 24, "data": ["SmpSynch", "|Δt| / limite de classe"] },
"grid": { "left": 70, "right": 70, "top": 75, "bottom": 70 },
"xAxis": {
"type": "value",
"name": "Temps (en fractions du T_h nominal)",
"nameLocation": "middle", "nameGap": 32,
"min": -0.4, "max": 1.6,
"axisLabel": { "formatter": "{value}·T_h" },
"splitLine": { "show": false }
},
"yAxis": [
{
"type": "value", "name": "SmpSynch",
"nameLocation": "middle", "nameGap": 38, "nameRotate": 90,
"nameTextStyle": { "color": "#409EFF", "fontWeight": "bold" },
"min": -0.3, "max": 2.6, "interval": 1,
"position": "left",
"axisLabel": { "color": "#409EFF" },
"splitLine": { "show": false }
},
{
"type": "value", "name": "|Δt| / limite de classe",
"nameLocation": "middle", "nameGap": 40, "nameRotate": -90,
"nameTextStyle": { "color": "#E6A23C", "fontWeight": "bold" },
"min": 0, "max": 1.6,
"position": "right",
"axisLabel": { "color": "#E6A23C" },
"splitLine": { "show": false }
}
],
"series": [
{
"name": "SmpSynch",
"type": "line", "step": "end", "yAxisIndex": 0,
"data": [[-0.4, 2], [0, 2], [0.95, 2], [0.95, 0], [1.6, 0]],
"lineStyle": { "width": 4, "color": "#409EFF" },
"symbol": "circle", "symbolSize": 8, "z": 10,
"markLine": {
"silent": true, "symbol": ["none", "none"],
"label": { "show": false },
"data": [
{ "xAxis": 0, "lineStyle": { "color": "#F56C6C", "type": "dashed", "width": 2 } },
{ "xAxis": 0.95, "lineStyle": { "color": "#F56C6C", "type": "dashed", "width": 2 } }
]
},
"markArea": {
"silent": true,
"label": { "fontSize": 12, "fontWeight": "bold", "color": "#555", "position": "insideTop", "distance": 6 },
"data": [
[{ "name": "Normal", "xAxis": -0.4, "itemStyle": { "color": "rgba(103,194,58,0.12)" } }, { "xAxis": 0 }],
[{ "name": "Holdover", "xAxis": 0, "itemStyle": { "color": "rgba(230,162,60,0.18)" } }, { "xAxis": 0.95 }],
[{ "name": "Free-running", "xAxis": 0.95, "itemStyle": { "color": "rgba(245,108,108,0.18)" } }, { "xAxis": 1.6 }]
]
}
},
{
"name": "|Δt| / limite de classe",
"type": "line", "smooth": true, "yAxisIndex": 1,
"data": [[-0.4, 0.04], [0, 0.04], [0.15, 0.10], [0.30, 0.22],
[0.50, 0.40], [0.70, 0.62], [0.85, 0.85], [0.95, 0.98],
[1.10, 1.18], [1.30, 1.32], [1.6, 1.45]],
"lineStyle": { "width": 2, "color": "#E6A23C" },
"areaStyle": { "color": "rgba(230,162,60,0.18)" },
"showSymbol": false,
"markLine": {
"silent": true, "symbol": ["none", "none"],
"data": [{
"yAxis": 1,
"lineStyle": { "color": "#909399", "type": "dotted", "width": 1.5 },
"label": {
"formatter": "limite de classe de précision", "position": "middle",
"fontSize": 11, "fontWeight": "bold", "color": "#555",
"backgroundColor": "rgba(255,255,255,0.9)",
"borderColor": "#909399", "borderWidth": 1, "borderRadius": 3,
"padding": [3, 8]
}
}]
}
}
]
}
Fig. 3. SmpSynch et erreur cumulée de l'horodatage |Δt| en fonction du temps après la perte du signal PTP. Zone verte — fonctionnement normal, orange — holdover (SmpSynch=2 inchangé, précision encore dans la classe), rouge — free-running (SmpSynch=0). Point clé : SmpSynch bascule à 0 avant que |Δt| ne dépasse réellement la limite de la classe de précision (selon §7.2.902).
Comment la valeur de holdover déclarée est vérifiée
La procédure de confirmation de la durée déclarée de holdover d'un SAMU/NCIT est décrite au §7.2.902 « Loss of synchronization tests » de la IEC 61869-9 — l'un des essais de type obligatoires. La norme la formule très brièvement, il vaut la peine de la citer textuellement :
Original : Verify under worst-case conditions that on loss of synchronizing signal, the merging unit continues to send samples maintaining the sample timing required for the measuring accuracy class for the published duration of the holdover period. Verify that over this period, the SmpSynch attribute in the SV messages remains unchanged, and the SmpCnt attribute in the SV messages increments and wraps as if synchronization signal were present. Verify that before the sample timing fails to meet that required for the measuring accuracy class, the SmpSynch attribute changes to zero.
Traduction : Vérifier, dans les conditions de pire cas, qu'à la perte du signal de synchronisation le SAMU/NCIT continue d'émettre des échantillons en maintenant la précision temporelle exigée par la classe de précision pendant la durée déclarée du holdover. Vérifier que, durant cette période, l'attribut SmpSynch reste inchangé, et que l'attribut SmpCnt s'incrémente et boucle comme si le signal de synchronisation était présent. Vérifier qu'avant que la précision du temps ne cesse de satisfaire la classe, l'attribut SmpSynch passe à zéro. (IEC 61869-9, §7.2.902)
De cette formulation se déduisent quatre affirmations que la vérification doit confirmer quantitativement : (1) la précision des horodatages des échantillons reste dans la classe pendant tout le T_h déclaré ; (2) sur cet intervalle, SmpSynch ne change pas ; (3) SmpCnt s'incrémente sans saut ni lacune ; (4) lorsque l'erreur temporelle approche de la limite de la classe, SmpSynch bascule à 0 — avant que la précision ne sorte effectivement de la limite.
Banc de test
L'idée du banc est d'alimenter le dispositif sous test simultanément avec un signal analogique stable et un PTP contrôlé, de couper le PTP à t = 0, et d'enregistrer le flux SV de sortie référencé sur une horloge externe. Ensuite, en post-traitement, on calcule pour chaque ASDU l'erreur d'horodatage, on la compare à la limite de classe et on vérifie les valeurs SmpSynch et SmpCnt.
flowchart LR
REF["Référence de temps<br/>Cs/Rb ou<br/>oscillateur asservi sur GNSS"]
GM["PTP grandmaster<br/>Power Profile<br/>(IEC/IEEE 61850-9-3)"]
CUT["Point de coupure PTP<br/>(ACL sur switch ou<br/>coupure physique)"]
SW["Switch réseau<br/>compatible PTP"]
AN["Source analogique<br/>(I/U calibré)"]
DUT["DUT — SAMU/NCIT<br/>holdover déclaré T_h"]
SVA["Analyseur SV<br/>(horodatage matériel)"]
PP["Post-traitement<br/>selon critères §7.2.902"]
REF -- "1 PPS / 10 MHz" --> GM
REF -- "1 PPS / 10 MHz" --> SVA
GM -- PTP --> CUT
CUT -- PTP --> SW
SW -- PTP --> DUT
AN -- "I, U" --> DUT
DUT -- "SV stream" --> SVA
SVA --> PP
style REF fill:#e8f4fd,stroke:#4a90d9
style GM fill:#fff8e1,stroke:#e6a23c
style CUT fill:#fde8e8,stroke:#f56c6c
style DUT fill:#f3e5f5,stroke:#9c27b0
style SVA fill:#e8f5e9,stroke:#67c23a
style PP fill:#e8f5e9,stroke:#67c23a
Fig. 4. Structure du banc pour l'essai de type holdover (IEC 61869-9, §7.2.902).
Éléments clés :
- Référence de temps — source Cs/Rb ou oscillateur asservi sur GNSS, avec stabilité 1–2 ordres de grandeur supérieure à celle du SAMU/NCIT sous test. Reste la vérité de fond même quand on retire la synchronisation au DUT.
- Grandmaster PTP contrôlé, synchronisé depuis la même référence. Alimente le DUT en PTP Power Profile (IEC/IEEE 61850-9-3).
- Point de coupure PTP — switch avec ACL, filtre programmable ou rupture physique de la ligne PTP. Important : la coupure ne doit affecter que le PTP, pas le canal SV du DUT (sinon la réception SV sera également interrompue).
- Source analogique — source calibrée de courant/tension à phase connue. La stabilité de phase doit être meilleure que l'erreur de la classe du canal sous test.
- DUT — le SAMU/NCIT lui-même, avec holdover déclaré T_h.
- Analyseur SV avec horodatage matériel, calé sur la référence par PPS/10 MHz. Enregistre chaque ASDU avec un horodatage de réception. En pratique, cela se fait avec un instrument dédié de test PTP/SV ou avec une carte réseau supportant PHC + Wireshark avec le dissector PTPv2/SV (cette dernière atteint typiquement ~50–100 ns).
- Post-traitement — calcule l'erreur de temps Δt = t_capture − (t_SmpCnt + t_d) pour chaque ASDU et la compare à la limite de classe. Ici t_d est le retard déclaré du SAMU/NCIT (attribut « delay » dans PhyNam.d, voir §6.903.5).
Scénario du test
Le scénario de base de §7.2.902 tient en quatre étapes :
- Étape 1. Stabilisation. On alimente le DUT en synchronisation et signal analogique. On attend le verrouillage (Lock), on vérifie que le flux SV a un SmpSynch correct (typiquement 2 pour le cas « Global ») et que Δt est dans la classe.
- Étape 2. Coupure PTP. À l'instant t = 0, au point de coupure, on rompt le PTP. Le signal analogique et le canal SV ne sont pas touchés. L'instant exact de coupure est consigné par rapport à la référence.
- Étape 3. Capture. Le flux SV est capturé pendant un intervalle ≥ T_h plus une marge (typiquement T_h × 1,5). En parallèle, la référence enregistre les marques PPS pour qu'on puisse attribuer un temps absolu de réception à chaque enregistrement.
- Étape 4. Analyse. À partir de l'enregistrement, on vérifie les quatre critères de §7.2.902 : |Δt(t)| ≤ limite de classe pour tout t ≤ T_h ; SmpSynch inchangé sur [0, T_h] ; SmpCnt sans saut ; SmpSynch bascule à 0 avant que |Δt| ne dépasse la limite de classe.
Il est aussi utile de vérifier le comportement à la restauration du signal : si restauré avant expiration du holdover, le flux doit continuer sans rupture ; si après — un saut dans SmpCnt et/ou un changement de SmpSynch dans des ASDU adjacents est admis (NOTE 912, §6.904.7), et l'abonné doit le détecter.
Ce que l'on entend par « conditions de pire cas »
§7.2.902 oblige à effectuer la vérification dans les conditions de pire cas. En pratique, cela signifie un ensemble de facteurs qui accélèrent la dérive de l'oscillateur interne :
- fonctionnement aux limites de la plage de température spécifiée du DUT (typiquement en chambre thermique aux limites inférieure et supérieure) ;
- pré-conditionnement à la température limite, pour exclure la phase initiale d'auto-échauffement ;
- le cas échéant — essai sous contrainte CEM (voir les sections CEM correspondantes de la IEC 61869-9).
Si le T_h déclaré ne l'est que pour « température stable » (formulation explicitement permise par le §6.904.5), la chambre thermique n'est pas obligatoire, mais l'absence de ces conditions doit être consignée dans le rapport.
Ce qui se passe en pratique
Un cycle complet de test de holdover est un essai de longue durée (pour des T_h de plusieurs dizaines de minutes ou heures, le temps réel d'essai est comparable) et n'est exécuté en totalité que dans des laboratoires accrédités (KEMA/DNV, VDE, KERI, etc.) lors de l'homologation de type — le résultat figure dans le certificat de type. Lors des essais de réception en usine et de mise en service du poste, on utilise généralement une version « courte » : on coupe le PTP pendant 5–10 secondes et on confirme que pendant ce temps le flux SV continue, que SmpSynch ne change pas et que SmpCnt avance sans saut. Cela confirme le fonctionnement du mécanisme de holdover, mais pas sa durée déclarée.
Un essai long (jusqu'au T_h complet) a du sens dans la spécification technique pour des prototypes, lors de la sortie d'une nouvelle génération et lors d'investigations expertes après incident où le comportement réel du holdover est suspecté. Notez aussi que le grandmaster PTP lui-même a son propre holdover, vérifié par une méthode analogue décrite dans IEC/IEEE 61850-9-3.
Ce que disent la IEC 61850-9-3 et le PTP Power Profile
La IEC 61869-9 décrit le comportement du SAMU/NCIT et les valeurs de SmpSynch, mais la qualité du réseau de synchronisation lui-même est régie par une autre paire de normes : IEC/IEEE 61850-9-3 (Power Profile pour PTP) et IEEE C37.238. Il est important de garder ce lien à l'esprit, sinon l'attribut SmpSynch est perçu comme une « chose en soi ».
Le Power Profile définit l'attribut clockClass au niveau du grandmaster (transmis dans Announce) et ses valeurs typiques pour les systèmes électriques :
- clockClass = 6 — horloge verrouillée sur une référence externe (typiquement GNSS), précision ≤ 250 ns. Les abonnés reçoivent un signal avec timeTraceable=TRUE → le SAMU/NCIT publie SmpSynch=2.
- clockClass = 7 — horloge en holdover après verrouillage préalable, précision toujours ≤ 250 ns. timeTraceable reste normalement TRUE ; SmpSynch chez le SAMU/NCIT reste 2.
- clockClass = 52 — holdover, précision dérive vers la plage 250 ns – 1 µs. timeTraceable=FALSE ; le SAMU/NCIT passe à SmpSynch=1 (ou 5–254 si un GRANDMASTER_ID est transmis dans le TLV).
- clockClass = 187 — holdover, précision pire que 1 µs. Le flux SV avec une telle synchronisation ne satisfait plus la classe du canal de mesure et doit être publié avec SmpSynch=0.
Autrement dit, une transition SmpSynch 2 → 1 (plutôt que 2 → 0) sur un flux n'est pas « le SAMU/NCIT a perdu son signal », mais « le grandmaster est passé de clockClass 7 à clockClass 52 ». Si le grandmaster se dégrade jusqu'à la clockClass 187, c'est le holdover du SAMU/NCIT lui-même qui prend le relais, et SmpSynch=0 apparaît selon la logique décrite plus haut.
D'où — recommandations typiques :
- Grandmasters redondants, chacun avec son récepteur GNSS, avec une BMCA coordonnée. La défaillance d'un récepteur ou d'un dispositif ne doit pas faire passer le domaine en clockClass 52.
- Boundary clocks dans chaque bâtiment de contrôle / salle GIS. En cas de rupture du lien entre bâtiments, la référence locale est préservée et le SAMU/NCIT n'a pas à changer de SmpSynch.
- Configuration uniforme du profil PTP : numéros de domaine, mécanisme de délai (E2E/P2P), fréquences Sync/Announce, priorités BMCA, comportement en holdover doivent être coordonnés entre grandmasters, switches PTP-aware, SAMU/NCIT et protection IEDs.
- Marge de holdover sur le réseau : les dispositifs avec OCXO thermostatés tiennent la clockClass 7 pendant des dizaines de minutes ; ceux avec Rb, pendant des heures. Critique pour les installations exposées à une perte totale de GNSS côté poste.
- Tester les transitions — non seulement la perte de signal au SAMU/NCIT (test §7.2.902 de la IEC 61869-9), mais aussi les transitions du grandmaster 6 → 7 → 52 → 187 — du côté de l'abonné, on teste la logique de réaction à 2 → 1 → 0 et aux sauts de SmpCnt.
Recommandations pratiques pour la conception et la mise en service
- Comparer des paires de SmpSynch, et non des valeurs isolées. Un abonné de protection complexe doit vérifier si les sources de tous les flux utilisés par son algorithme coïncident.
- Prévoir une marge de holdover. Les 5 secondes minimales de la norme sont la limite inférieure. Pour rendre les protections robustes aux défauts transitoires de PTP/1PPS, choisissez des SAMU/NCIT et grandmasters avec un holdover de plusieurs dizaines de minutes.
- Redonder la source de temps. Dupliquer le grandmaster, chacun avec son propre récepteur GPS/GLONASS.
- Viser une source unique par protection. Là où la topologie le permet, prendre les courants et tensions utilisés par une protection complexe au même SAMU/NCIT — ainsi la question de la combinaison de SmpSynch ne se pose plus.
- Configuration uniforme du profil PTP : numéros de domaine, mécanisme de délai (E2E/P2P), fréquences Sync/Announce, priorités BMCA, comportement en holdover — coordonnés entre grandmasters, switches PTP-aware, SAMU/NCIT et protection IEDs.
- Boundary clocks dans chaque bâtiment de contrôle / salle GIS. En cas de rupture du lien entre bâtiments, la référence locale est préservée et le SAMU/NCIT n'a pas à changer de SmpSynch.
- Tester les transitions. Le test §7.2.902 est une exigence sur le SAMU/NCIT ; côté abonné, testez votre propre logique de réaction à 2→0, 2→1, sauts de SmpCnt ; sur le réseau — transitions du grandmaster 6 → 7 → 52 → 187.
Conclusion
L'image « 2 → 1 → 0 » parfois énoncée dans les discussions simplifie le comportement réel du SAMU/NCIT et conduit à des conclusions erronées. La IEC 61869-9 décrit une autre transition : « 2 → (holdover, SmpSynch reste 2) → 0 », et la valeur 1 apparaît dans un autre scénario — lorsque l'état du grandmaster lui-même change, ce qui est physiquement véhiculé par le drapeau timeTraceable dans les messages Announce du domaine PTP.
Pour un abonné de protection complexe, cela donne une règle simple : la paire « SmpSynch=2 et SmpSynch=1 » n'est, en règle générale, pas considérée comme synchronisée, et dans cette combinaison les fonctions de protection qui s'appuient sur la comparaison entre flux doivent être bloquées.
Et un point d'architecture pour finir : la question « est-ce encore synchronisé ? » ne se pose pas du tout lorsque la protection complexe reçoit ses signaux d'un seul SAMU/NCIT. Aussi, lors de la conception d'un poste numérique, regardez non seulement le système de synchronisation lui-même, mais aussi la répartition des fonctions entre SAMU/NCIT — moins une protection a de dépendances inter-dispositifs, moins elle porte de points de défaillance liés à l'état de SmpSynch.