В процессе обмена данными на канальном уровне предусматривается небалансная процедура, имеющая три класса диалоговых процедур, построенных на базе кадров переменной длины формата FT3 (ГОСТ Р МЭК 870-5-1-95, ГОСТ Р МЭК 870-5-2-95):
класс S1 - посылка без ответа;
класс S2 - посылка с подтверждением;
класс S3 - запрос-ответ.
1. Формат кадра
Стартовая комбинация
0x05
0x64
заголовок фиксированной длины
L
C
A
B
CRC
данные переменной длины
D 16 байт
CRC
...
D до 16 байт
CRC
L – длина посылки от 3...255, включающая C, A, B и данные D; С – поле управления; А – адрес получателя 0...15 (255 – для всех (broadcast ) в процедурах класса S1); В – адрес отправителя 0…15; CRC – 2 байта - (инверсные) контрольные разряды циклического кода образуемого полиномом X16+X13+X12+X11+X10+X8+X6+X5+X2+1
Алгоритм вычисления CRC приведен в приложении 1.
2. Структура поля управления
от первичной станции контроллеру
27
26
25
24
23
22
21
20
R
1
FCB
FCV
КОД
R – резерв; FCB - бит счета кадров: 0/1 чередуются отдельно для S2, S3 при FCV=1; 0 для S1; FCV - законность бита FCB: 0 - изменение бита FCB неверно; 1 - изменение бита FCB правильно;
Значения поля «КОД» приведены в таблице 1.
Код
Класс
Назначение функционального кода
0
S2
Сброс канала (установка FCB в 0)
1
S2
Сброс данных класса 2
3
S2
Установка (запись) данных
4
S1
Корректировка таймера
5
S1
Общий сброс
10(0x0A)
S3
Запрос данных класса 1
11(0x0B)
S3
Запрос данных класса 2
12(0x0C)
S3
Запрос данных
13(0x0D)
S3
Адресный запрос (FCV всегда 0)
Примечание. После сброса канала, первую команду следует подавать с FCB=1.
от контроллера первичной станции
27
26
25
24
23
22
21
20
R
0
ACD
0
КОД
Для процедур класса S3 предусматриваются два класса данных (изменений параметров КП) по приоритету передачи: класс 1 и класс 2.
ACD = 1, если контроллер располагает данными класса 1 и готов их передать.
Значения поля «КОД» приведены в таблице 2.
Код
Класс
Назначение функционального кода
0
S2
Положительная квитанция
1
S2
Отрицательная квитанция
8
S3
Данные
9
S3
Отрицательная квитанция (запрошенные данные отсутствуют)
3. Диалоговые процедуры
При получении некорректного поля L, А или С или искаженного кадра контроллер игнорирует его и не квитирует.
Бит счета кадров FCB предназначен для защиты от потерь или дублирования посылок сообщений. Первичная станция при каждой новой операции S2 или S3, направленной к одному и тому же контроллеру, изменяет значение бита FCB. Если ожидаемый ответ отсутствует или искажается, то операции S2 или S3 повторяются с тем же FCB.
Команда «Корректировка таймера» (S1 - код 4) выдается в начале часа.
В случае команды класса S2 «Установка данных» (код 3) поле D содержит последовательность данных вида: Z0P0 ... ZnPn, где Zi - позиционный адрес параметра:
215
214
213
212
211
210
29
28
27
26
25
24
23
22
21
20
n
k
g
g - номер группы, k - номер объекта, n - номер параметра, Pi - параметр (длина и значение зависит от типа параметра).
При обработке команды помимо установки параметров контроллер переносит информацию поля D в данные класса 1. В случае обнаружения ошибки в адресе или параметре обработка прекращается и выдается отрицательная квитанция (код 1 табл.2).
Команды класса S3 (код 10, 11, 12 табл.1) получают либо отрицательную квитанцию (код 9 табл.2), если данных нет, либо данные в виде блока событий в поле D. Причем, в ответ на “ Запрос данных” (код 12 табл.1) данные класса 2 передаются в случае, если нет данных класса 1. Блок событий содержит информацию, относящуюся к одному часу и, имеет следующую структуру: