Какво е IEC 60870-5-104
IEC 60870-5-104 (накратко IEC 104) е комуникационен протокол за телемеханика, който пренася данни за наблюдение и управление на електроенергийни системи по TCP/IP мрежи. Той е мрежовото продължение на серийния IEC 60870-5-101: същият приложен слой, но вместо по сериен канал, съобщенията се пренасят по Ethernet и интернет протоколи. Стандартът е публикуван от IEC и е широко разпространен в Европа, Азия и Близкия изток за връзка между RTU (Remote Terminal Unit) в подстанции, концентратори на данни и диспечерски центрове (SCADA/EMS).
Мястото на IEC 104 в семейството IEC 60870-5
| Стандарт | Транспорт | Предназначение |
|---|---|---|
| IEC 60870-5-101 | Сериен (RS-232/485), балансиран или небалансиран | Телемеханика по сериен канал; източник на приложния слой, който IEC 104 наследява |
| IEC 60870-5-102 | Сериен | Отчитане на електромери и профили на товара |
| IEC 60870-5-103 | Сериен | Защитни релета: събития, настройки, осцилограми |
| IEC 60870-5-104 | TCP/IP (порт 2404) | Същият приложен слой като 101, но по мрежа |
IEC 104 не замества напълно 101: серийната версия остава жива в стари подстанции и по радиоканали с ниска скорост. В нови проекти обаче IEC 104 е стандартният избор.
Архитектура
Протоколът работи в модел клиент–сървър с две роли:
- Controlling station (клиент, master) — диспечерският център или SCADA сървърът. Отваря TCP връзката, изпраща заявки за данни и команди за управление.
- Controlled station (сървър, slave) — RTU, шлюзът на подстанцията или концентраторът на данни. Слуша на порт TCP 2404, приема връзки и изпраща спонтанни данни и отговори.
Една controlling station може да поддържа връзки към много controlled stations. Обратното също е възможно: един RTU може да обслужва няколко master-а (например основен и резервен диспечерски център).
Транспортен слой
IEC 104 ползва TCP, обикновено на порт 2404. Самият TCP осигурява надеждна доставка и поредност на пакетите. Върху TCP протоколът добавя собствен механизъм за контрол на потока и потвърждаване на съобщенията (чрез номера за изпращане и приемане), за да може приложният слой да проследи кои съобщения са обработени от другата страна.
Структура на APDU
Всяко съобщение се нарича APDU (Application Protocol Data Unit) и се състои от две части:
- APCI (Application Protocol Control Information) — заглавка от 6 байта: стартов байт (0x68), дължина и четири контролни байта.
- ASDU (Application Service Data Unit) — полезният товар с телемеханичните данни. Присъства само в I-кадрите.
Видове кадри
| Тип | Предназначение | Съдържание |
|---|---|---|
| I-кадър (Information) | Пренася данни | APCI + ASDU; носи номер за изпращане (SSN) и номер за приемане (RSN) |
| S-кадър (Supervisory) | Потвърждава получени I-кадри | Само APCI с RSN; не носи данни |
| U-кадър (Unnumbered) | Управление на връзката | STARTDT (активиране на предаването), STOPDT (спиране), TESTFR (тест на връзката) |
Номерата SSN и RSN са 15-битови (0–32767). Когато получателят не потвърди навреме (параметри t1, t2, t3, k, w), връзката се счита за повредена и се затваря.
Параметри на контрола на потока
| Параметър | Функция | Типична стойност |
|---|---|---|
| t1 | Таймаут за потвърждение на I-кадър | 15 s |
| t2 | Максимално време преди изпращане на S-кадър | 10 s |
| t3 | Интервал за TESTFR при неактивност | 20 s |
| k | Максимален брой непотвърдени I-кадри (прозорец) | 12 |
| w | Брой приети I-кадри преди изпращане на S-кадър | 8 |
Структура на ASDU
ASDU съдържа:
- Type ID (1 байт) — тип на информационния обект (например единична сигнализация, измерена стойност, команда).
- Variable Structure Qualifier (VSQ) — брой обекти и дали адресите са последователни.
- Cause of Transmission (COT) (1 или 2 байта) — причина за предаването (спонтанно, по заявка, активация, потвърждение и др.).
- Common Address of ASDU (CA) (1 или 2 байта) — адрес на станцията.
- Информационни обекти — всеки с IOA (Information Object Address, 3 байта) и стойност, евентуално с времеви печат.
Типове информационни обекти
Стандартът дефинира десетки типове. Най-важните в практиката:
Наблюдение (посока: controlled → controlling)
| Type ID | Описание |
|---|---|
| M_SP_NA_1 (1) | Единична сигнализация без времеви печат |
| M_SP_TB_1 (30) | Единична сигнализация с CP56Time2a |
| M_DP_NA_1 (3) | Двойна сигнализация без печат |
| M_DP_TB_1 (31) | Двойна сигнализация с печат |
| M_ME_NA_1 (9) | Нормализирана измерена стойност (–1…+1) |
| M_ME_NB_1 (11) | Скалирана измерена стойност (цяло число) |
| M_ME_NC_1 (13) | Измерена стойност с плаваща запетая (short float) |
| M_ME_TF_1 (36) | Short float с CP56Time2a |
| M_IT_NA_1 (15) | Интегрален брояч (енергия) |
| M_IT_TB_1 (37) | Интегрален брояч с печат |
Управление (посока: controlling → controlled)
| Type ID | Описание |
|---|---|
| C_SC_NA_1 (45) | Единична команда |
| C_DC_NA_1 (46) | Двойна команда |
| C_SE_NA_1 (48) | Задаване на нормализирана стойност (setpoint) |
| C_SE_NB_1 (49) | Задаване на скалирана стойност |
| C_SE_NC_1 (50) | Задаване на стойност с плаваща запетая |
Системни
| Type ID | Описание |
|---|---|
| C_IC_NA_1 (100) | Обща заявка за данни (General Interrogation) |
| C_CI_NA_1 (101) | Заявка за броячи (Counter Interrogation) |
| C_CS_NA_1 (103) | Часова синхронизация |
Причини за предаване (Cause of Transmission)
| COT | Значение |
|---|---|
| 1 | Периодична |
| 2 | Фонова (background scan) |
| 3 | Спонтанна |
| 5 | По заявка (requested) |
| 6 | Активация |
| 7 | Потвърждение на активация |
| 8 | Деактивация |
| 9 | Потвърждение на деактивация |
| 10 | Край на активация |
| 20 | Отговор на обща заявка (station interrogation) |
| 37 | Отговор на заявка за броячи |
Режими на предаване
- Спонтанно предаване — controlled station изпраща данни при промяна на стойност или при пресичане на мъртва зона (deadband). Това е основният режим и генерира най-малко трафик.
- General Interrogation (GI) — master-ът поисква пълен снимък на всички сигнализации и измервания. Изпълнява се при стартиране и след прекъсване на връзката.
- Counter Interrogation (CI) — заявка за текущите стойности на всички броячи.
- Часова синхронизация — master-ът изпраща C_CS_NA_1 с текущото време. В по-нови системи синхронизацията се прави чрез NTP или PTP, а C_CS се ползва само за проверка.
- Команди — select-before-operate (SBO) или direct execute. SBO е по-безопасен: master-ът първо избира обекта, RTU потвърждава, и чак тогава master-ът изпраща изпълнение.
Качествени флагове
Всеки информационен обект носи качествени битове:
- IV (Invalid) — стойността не е валидна.
- NT (Not Topical) — стойността не е актуална (загубена връзка към сензора).
- SB (Substituted) — стойността е заменена ръчно от оператор.
- BL (Blocked) — обектът е блокиран за промяна.
- OV (Overflow) — стойността е извън обхвата на измерването.
SCADA системата показва тези флагове на оператора, обикновено с цветно кодиране.
Времеви печати
IEC 104 ползва формат CP56Time2a — 7 байта, съдържащи милисекунди, минути, часове, ден, месец и година. Времето е на контролираната станция и се допълва от SCADA с часа на получаване. Точността зависи от синхронизацията на RTU-то: при NTP е типично 1–10 ms, при PTP под 1 ms, а при C_CS — десетки милисекунди.
Резервиране (Redundancy)
IEC 104 поддържа множество TCP връзки между една двойка станции. Стандартът дефинира група от връзки (redundancy group) с роли:
- Само една връзка в групата е активна (предава ASDU).
- Останалите са в режим standby (STARTDT не е изпратен; поддържат се с TESTFR).
- При повреда master-ът активира резервна връзка с STARTDT act и изпълнява GI за актуализиране на данните.
Практически в повечето проекти се ползват два IP маршрута (например по две различни оптични трасета) и два TCP сокета, като master-ът превключва автоматично.
Сигурност
Оригиналният стандарт не предвижда криптиране или удостоверяване. Всяко устройство, което отвори TCP към порт 2404, може да подаде команда. Това е приемливо в затворени технологични мрежи, но е рисковано при свързване с WAN.
IEC 62351 добавя мерки за сигурност:
- IEC 62351-3 — TLS върху TCP за криптиране и удостоверяване с цифрови сертификати.
- IEC 62351-5 — удостоверяване на ASDU съобщения с HMAC (без криптиране на целия канал).
- IEC 62351-7 — мониторинг на мрежовата сигурност.
В практиката най-често защитата се осигурява чрез VPN, firewall и VLAN сегментиране, тъй като много от съществуващите RTU-та нямат поддръжка на TLS.
IEC 104 спрямо други протоколи
| Протокол | Транспорт | Модел | Основна област |
|---|---|---|---|
| IEC 60870-5-101 | Сериен | Master–slave | Телемеханика по сериен/радиоканал |
| IEC 60870-5-104 | TCP/IP | Клиент–сървър | Телемеханика по IP мрежи |
| DNP3 | Сериен или TCP | Master–slave (unsolicited) | Енергетика в Северна Америка |
| IEC 61850 (MMS) | Ethernet/TCP | Клиент–сървър, GOOSE, SV | Вътрешна комуникация в цифрови подстанции |
| Modbus TCP | TCP/IP | Клиент–сървър | Измервателни уреди, инвертори; липсва времеви печат |
IEC 104 е протоколът за вертикална комуникация (подстанция ↔ диспечерски център), а IEC 61850 — за хоризонтална (вътре в подстанцията). В много проекти те работят заедно: RTU или шлюзът в подстанцията събира данни по IEC 61850 (или по Modbus от по-прости уреди) и ги препредава по IEC 104 към SCADA.
Типично приложение
- Релейните защити и измервателните устройства в подстанцията са свързани към RTU или шлюз по IEC 61850, Modbus или по директни входове/изходи.
- RTU-то поддържа IEC 104 server. При промяна на стойност или състояние изпраща спонтанен I-кадър.
- Диспечерският център (SCADA) поддържа IEC 104 client, приема данните, показва ги на операторите и записва в историческа база.
- Операторът подава команда (включване/изключване на прекъсвач) — SCADA я изпраща като C_DC_NA_1 с SBO цикъл.
- При загуба на връзката SCADA превключва на резервна TCP сесия и изпълнява GI.
Въвеждане в експлоатация
- Дефиниране на точковата таблица (signal list): IOA, тип на обекта, описание, скала, мъртва зона.
- Настройка на мрежови параметри: IP адреси, порт, CA (Common Address).
- Настройка на таймаутите t1, t2, t3, k, w — при бавни канали (GPRS) стойностите се увеличават.
- Тест с протоколен анализатор (IEC 104 traffic analyzer или Wireshark с IEC 104 dissector) за проверка на правилната последователност: STARTDT → GI → спонтанни данни → команди.
- Проверка на качествените флагове и времевите печати.
- Тест на резервирането: разкачване на основната връзка и наблюдение на автоматичното превключване.
Типични проблеми
- Разминаване в точковата таблица между RTU и SCADA — IOA адресите не съвпадат.
- Несинхронизирано време — печатите идват с отклонение от секунди, защото RTU-то няма NTP.
- Прекъсване на връзката заради неподходящи таймаути при бавен WAN (GPRS, сателит).
- Липса на GI след превключване на резервна връзка — SCADA показва стари данни.
- Firewall или NAT блокира порт 2404 или нарушава TCP keep-alive.
- Некриптиран канал през публична мрежа без VPN — риск от подслушване и инжектиране на команди.
Кога се избира IEC 104
Когато трябва да се пренасят телемеханични данни между подстанции и диспечерски център по IP мрежа. В европейската енергетика IEC 104 е стандарт де факто. За вътрешна комуникация в подстанцията се допълва от IEC 61850, а за прости измервателни уреди — от Modbus. При нови проекти е добра практика да се предвиди IEC 62351 (TLS) или поне VPN за защита на канала.