Детальная информация о драйвере МЭК

Настоящий раздел предназначен для опытных пользователей «КАСКАД Цифра», в нем приводится подробное описание режимов передачи кадров и их сопоставление в «КАСКАД Цифра».  

На следующей диаграмме показана структура ASDU (блок служебных данных приложения = пакет данных) в соответствии со стандартом. Отдельные октеты адресов и идентификаторов изображены прямоугольниками.

Рисунок. Структура ASDU — блока служебных данных приложения

Согласно стандартов, блок служебных данных приложения (ASDU) состоит из поля идентификации блока данных и следующих параметров:

Отдельные октеты кадров имеют структуру, изображенную на схеме (один октет соответствует одному прямоугольнику). Подробное описание октетов см. в стандартах.

Ниже, UI [1..8] всегда обозначает один байт в диапазоне 0-255 бит, UI[1] — 2^0, UI[8] — 2^7. BS[1] означает, что в первую позицию октета может быть помещен ровно один бит.  

Идентификация типа

Октет идентификации типа описывает структуру, тип и формат информационного объекта.   

Идентификатор типа UI [1…8]<1..255>

2^7      2^0

<1..127>: совместимый диапазон для спецификаций стандарта
<128..135>: зарезервировано для маршрутизации сообщений («частный» диапазон)
<136..255>: для специальных приложений («частный» диапазон)

Детальную информацию по идентификаторам типов, используемым в «КАСКАД Цифра», см. в разделе Совместимость.

Квалификатор структуры переменной

Квалификатор структуры переменной содержит ряд информационных объектов или элементов и бит SQ («Single»/»Sequence» — единичный/последовательность), определяющих тип адреса следующих информационных объектов или элементов.

Октет квалификатора структуры:

SQ      2^0
  • Число: UI7[1..7]<0..127>: 0 означает отсутствие информационного объекта, а <1..127> — число информационных объектов.
  • SQ: BS1[8]<0..1> единичный/последовательность
    <0>: Адрес одиночного элемента или сочетания элементов ряда информационных объектов одного типа.
    <1>Адрес последовательности информационных элементов в одном объекте блока ASDU.

    SQ<0> и N<0..127>: Число информационных объектов
    SQ<1> и N<0..127>: Число информационных элементов в одном объекте блока ASDU.

Квалификатор структуры переменной задается/интерпретируется драйвером. Поэтому он не требует настройки и не касется пользователя.

Причина передачи

ASDU отправляет причину передачи (незапрашиваемая, периодическая и т. д.) конкретной прикладной задаче (программе) для дальнейшей обработки. Октет содержит причину, подтверждение задания (положительное, отрицательное), тестовый бит (для проверки передачи без нарушения хода процесса) и адрес отправителя:

TP/N2^5    2^0
Адрес отправителя
  • Причина: UI6 [1..6]<0..63>; 0 — не определено, <1..63> — идентификатор причины, <1..47> — для совместимого диапазона (согласно стандарта), <48..63> — частный диапазон для специального использования
  • P/N: BS[7]<0..1>; 0 — положительное подтверждение, 1 — отрицательное подтверждение
  • T: BS[8]<0..1>; 0 — без проверки, 1 — с проверкой
  • Адрес отправителя: UI8[9..16]><0..255>; <0> — не указано, <1..255> — номер адреса отправителя

Детальную информацию о совместимом диапазоне см. в. разделе Совместимость . Подробное описание причин передачи см. в стандартах.

Причина передачи либо задается драйвером автоматически либо задается пользователем. Стандартное поведение реализовано следующим образом:

Причина передачи 6 (активация) используется, когда драйвер посылает команды (сообщения C_*). Когда драйвер посылает сообщения (сообщения M_*), причина передачи — 3 (без запроса).

Причина передачи на стороне приема реализована следующим образом:

20 <= COT <= 36 …Причина сообщения — GA (установлен бит GA на панели PARA)

COT == 5 …Причина сообщения — одиночный запрос (установлен бит EA на панели PARA)

другой COT — незапрашиваемое сообщение или другая причина (биты не установлены).

Для различения сообщений (сообщений M_*), обычно отправляемых «КАСКАД Цифра» (причина отправки в этом случае — без запроса = 3), и сообщений, отправленных в результате IGQ (инверсного общего запроса), в файле config существует запись useCOTGQ (см. также возможные записи драйвера МЭК в файле config). Если значение записи в файле config — «Yes» (по умолчанию — «No»), используется COT (= Cause of Transmission — причина передачи) № 20 (запрошено через GA) для всех сообщений, отправленных в результате IGQ, COT 37 (запрошено общим запросом счетчика) используется для сообщений со счетчиками. По умолчанию причина передачи имеет значение 3.

Существуют две варианта ручного сопоставления COT:

Использование информационных байтов

Использование адреса COT имеет один недостаток: требуется дополнительная точка данных со специальным адресом периферии COT (см. тип адреса в п. Панель ввода адресов периферии для драйвера МЭК).

Адрес COT

Начиная с версии «КАСКАД Цифра» 3.8, появилась возможность сопоставлять «Причину передачи (Cause Of Transmission)» (COT) информационным байтам. В дальнейшем этот метод должен использоваться вместо адреса COT.

Для сопоставления COT и исходного адреса «КАСКАД Цифра» на стороне ввода, в качествет значений записей UserByteCOT и UserByteOrigin в файле config необходимо задать номер используемого информационного байта. По умолчанию используется значение 0, при котором сопоставление не работает. Следующие записи в файле config позволяют сопоставить COT информационному байту 3, а исходный адрес — байту 4.

UserByteCOT = 3

UserByteOrigin = 4

Для встраивания значений информационных байтов в телеграмму на стороне отправки, записям ConnUserByteCOT и ConnUserByteOrigin в файле config должен быть задан номер используемого информационного байта. Как и в случае с сопоставлением через ConnUserByteQ, каждое изменение соответствующего информационного байта (или содержащегося в нем информационного бита) приводит к созданию прямой ссылки и отправке значения на адрес периферии. Чтобы избежать отправки нескольких телеграмм, параметры _original.._value и соответствующий _original.._userbyte<x> должны быть переданы в dpSet() для каждого приложения. Это значит, что если значение, COT и исходный адрес должны быть изменены одновременно, это должно делаться функцией dpSet(), во избежание создания телеграмм с промежуточными состояниями.

Вариант совместимости адресов COT в информационном байте

На стороне ввода:

До настоящего момента существовала возможность настройки для каждой COT и исходного адреса «адреса периферии COT». Эта возможность присутствует и сейчас, даже если параметры UserByteCOT или UserByteOrigin не равны 0, однако не имеет смысла сочетать их варианты в новом проекте.

На стороне вывода:

До настоящего момента «адреса периферии COT» были и на стороне вывода. Они продолжают использоваться, если парамерам ConnUserByteCOT и ConnUserByteOrigin заданы нулевые значения. Если значение записи не равно 0, в телеграмму добавляется только информация из пользовательского байта.
Если информационный байт для COT имеет значение 0, будет использована COT, заданная в драйвере по умолчению.

Общий адрес ASDU = регион, компонент

Общий адрес является общим для всех объектов в ASDU. Глобальный адрес — это адрес, используемый для отправки на все станции конкретной системы.

Общий адрес: UI8[1..16]<0…65535>

2^7      2^0
2^15      2^8

<0>: не используется

<1…65534>: адрес станции

<65535>: глобальный адрес

Ответ на блок ASDU с «адресом для всех» в направлении управления должен отправляться в направлении монитора с использованием ASDU, содержащим указанный общий адрес (адрес станции).   

Информационный объект = Адрес информационного объекта

Адрес информационного объекта (1, 2 или 3 октеты) используется в качестве адреса назначения в направлении управления и в качестве исходного адреса в направлении монитора. В зависимости от числа октетов, адрес информационного объекта может быть следующим:

2^7      2^0
2^15      2^8
2^23      2^16

UI [1…8]<1…255>: HB
UI [1-16]<1…65535>: MB
UI [1-24]<1…16777215>: LB

Подробное описание см. в стандарте МЭК 60870-5-104.

Число портов для переподключения.

В теории, количество портов (последовательных интерфейсов), с которыми может работать драйвер МЭК 101, зависит от количества возможных последовательных интерфейсов соотвествующей операциронной системы. В Windows количество портов (последовательных интерфейсов) ограничено числом 255.

Теоретическое количество ведомых устройств в несбалансированном режиме определяется максимальной величиной адреса канала.

Эта спецификация — «теоретическая», т. к. в большинстве случаев максимальное число плохо влияет на производительность.

В случае отключения от адреса периферии, драйвер будет периодически пытаться восстановить подключение.

Общий запрос

Автоматический запуск общего запроса в драйвере или переключение на резерв МЭК

Свойства общего запроса задаются записью autoGQ в файле config (детальную информацию см. в разделе Возможные записи драйвера МЭК в файле config). Работа драйверов МЭК 104 и 101 идентична. Исполнение общего запроса требует явного указания общих адресов объектов в локальном/глобальном списках, т. е. без знаков подстановки.

Доступ к разными типам кадров через субиндекс

В следующей таблице приводится информация о существующих типах кадров и полях кадров, к которым можно получить доступ через субиндекс. При этом следует учитывать следующее:

Описатель качества

Описатель качества в направлении команд (в направлении команд также могут отправляться типы кадров C_* и M_*) строится для некоторых кадров как связь «ИЛИ» для значения, указываемого через субиндекс. Значение строится с помощью значения из адреса (например, M_SP_NA_1 или C_SC_NA_1). Это происходит, если данные или часть данных и описатель качества включаются в один байт. В случае с другими диаграммами значение может быть построено только из адреса через описатель качества (например, M_BO_NA_1 или C_SE_NA_1).
Когда описатель качества сопоставлен информационным битам на стороне ввода, информационные биты будут установлены на всех соответствующих субиндексах.

Тип элемента точки данных

Тип элемента точки данных не требуется задавать, как показано в таблице, т. к. выполняется приведение типов. Таким образом можно, к примеру, использовать тип int вместо bool. Int может иметь значения 0 или 1. В случае несовместимости типов во время приведения будет вывыдено сообщение об ошибке. Разумеется, вы должны использовать типы, приведенные в таблице, если нет причин в обратном.

Специальные субиндексы

Для некоторых типов данных предусмотрены специальные субиндексы, которые упрощают доступ к данным. Таким образом, к примеру, возможно получить доступ к полю DPI как «unsigned int» через субиндекс 8 в случае телеграммы M_DP_NA_1. Это значит, что вам не придется задавать два элемента точки данных для бита 0 DPI и бита 1 DPI.

IconПРИМЕЧАНИЕ

Значение информационного байта из элемента точки данных с самым низким субиндексом записывается на стороне вывода в элементы точки данных с более высокими субиндексами.

ПРИМЕЧАНИЕ

При вводе адреса периферии необходимо указать направление «Output (group)» для следующих типов (перечислены в таблице)!

ТелеграммаПередачаЭлементСУТип эл. точки данныхПримечание
M_SB_NA_1 (1)M_SB_TA_1 (2)M_SB_TB_1 (30)SIQSPI0boolБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
BL4bool
SB5bool
NT6bool
IV7bool
M_DP_NA_1 (3)M_DP_TA_1 (4)M_DP_TB_1 (31)DIQБит DPI 00bool 
Бит DPI 11bool 
BL4boolБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
SB5bool
NT6bool
IV7bool
DPI типа uint8uintDPI типа unsigned integer, значения 0-3
M_ST_NA_1 (5)M_ST_TA_1 (6)M_ST_TB_1 (32)VTIvalue0intValue (Значение)Биты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
T1boolОтображение промежуточной позиции
M_BO_NA_1 (7)M_BO_TA_1 (8)M_BO_TB_1 (33)BSIbit[i] 0-31 boolБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
OV32bool
BL36bool
SB37bool
NT38bool
IV39bool
набор битов 40bit32полная комбинация битов
M_ME_NA_1 (9)M_ME_TA_1 (10)M_ME_ND_1 (21)M_ME_TD_1 (34)NVAvalue0floatБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
OV1bool
BL5bool
SB6bool
NT7bool
IV8bool
M_ME_ND_1 (21)NVAvalue0floatТип 21 не имеет информации о качестве
M_ME_NB_1 (11)M_ME_TB_1 (12)M_ME_TE_1 (35)SVAvalue0intБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
OV1bool
BL5bool
SB6bool
NT7bool
IV8bool
M_ME_NC_1 (13)M_ME_TC_1 (14)M_ME_TF_1 (36)R32value0floatБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
OV1bool
BL5bool
SB6bool
NT7bool
IV8bool
M_IT_NA_1 (15)M_IT_TA_1 (16)M_IT_TB_1 (37)BCRзначение счетчика0intБиты CY, CA и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода, включая SQ, могут быть сопоставлены информационному байту ConnUserByteQ.SQ не может сопоставляться на стороне ввода, т. к. это целочисленное значение.
SQ1uint
CY2bool
CA3bool
IV4bool
M_EP_TA_1 (17)M_EP_TD_1 (38)SEPБит ES 00boolНа сегодняшний день доступ к ES как int не поддерживается. Такая функциональность не реализована.
Бит ES 11bool 
EI3boolБиты BL, SB, NT и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
BL4bool
SB5bool
NT6bool
IV7bool
прошедшее время8time 
9unint (bit32)Позволяет сопоставить ссылочные данные из телеграмм элементу точки данных типа uint (bit32). Таким образом, биты ES, EI, BL, SB, NT и IV могут быть сопоставлены элементу точки данных типа bit32.
M_EP_TB_1 (18)M_EP_TE_1 (39)SPEGS0bool 
SL11boolБиты SL1, SL2, SL3, SIE и SRD на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
SL22bool
SL33bool
SIE4bool
SRD5bool
время реле 8time 
9unint (bit32)Позволяет сопоставить ссылочные данные из телеграмм элементу точки данных типа uint (bit32). Таким образом, биты GS, SL1, SL2, SL3, SIE и SRD могут быть сопоставлены элементу точки данных типа bit32.
M_EP_TC_1 (19)M_EP_TF_1 (40)OCIGC0bool 
CL11boolБиты CL1, CL2 и CL3 на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ .
CL22bool
CL33bool
время открытия реле8time  
9unint (bit32)Позволяет сопоставить ссылочные данные из телеграмм элементу точки данных типа uint (bit32). Таким образом, биты GC, CL1, CL2 и CL3 могут быть сопоставлены элементу точки данных типа bit32.
M_PS_NA_1 (20)BSIbit[i]0-31boolодиночные биты
  набор битов40bit32полная комбинация битов
C_SC_NA_1 (45)C_SC_TA_1 (58)SCOSCS0bool 
Бит QU 02boolБиты QU и S/E на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.Должны использоваться субиндексы на стороне ввода.
Бит QU 13bool
Бит QU 24bool
Бит QU 35bool
Бит QU 46bool
S/E7bool
C_DC_NA_1 (46)C_DC_TA_1 (59)DCOБит DCS 00bool 
Бит DCS 11bool 
Бит QU 02boolБиты QU и S/E на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.Должны использоваться субиндексы на стороне ввода.
Бит QU 13bool
Бит QU 24bool
Бит QU 35bool
Бит QU 46bool
S/E7bool
DCS8uintDCS типа unsigned integer, значения 0-3
C_RC_NA_1 (47)C_RC_TA_1 (60)RCOБит RCS 00bool 
Бит RCS 11bool 
Бит QU 02boolБиты QU и S/E на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.Должны использоваться субиндексы на стороне ввода.
Бит QU 13bool
Бит QU 24bool
Бит QU 35bool
Бит QU 46bool
S/E7bool
RCS8uintRCS типа unsigned integer, значения 0-3
C_SE_NA_1 (48)C_SE_TA_1 (61)NVAvalue0floatQL1-7    -> субиндекс 1-7S/E      -> субиндекс 8
C_SE_NB_1 (49)C_SE_TB_1 (62)SVAvalue0intQL1-7    -> субиндекс 1-7S/E      -> субиндекс 8 Биты QU и S/E на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.Должны использоваться субиндексы на стороне ввода.
C_SE_NC_1 (50)C_SE_TC_1 (63)R32value0floatQL1-7    -> субиндекс 1-7S/E      -> субиндекс 8 Биты QU и S/E на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.Должны использоваться субиндексы на стороне ввода.
C_BO_NA_1 (51)C_BO_TA_1 (64)BSIbit[i]0-31boolодиночные битыЭтот тип не имеет описателя качества.
набор битов40bit32полная комбинация битов
C_IC_NA_1 (100)ЗапросQOI0uint 
C_CI_NA_1 (101)ЗапросQCC0uint 
C_RD_NA_1 (102)ПустоboolДанные в кадре жестко закодированы При получении кадра этого вида в точку данных заносится значение 1.
C_CS_NA_1 (103)CP56CP56 time0time 
C_TS_NA_1 (104)C_TS_TA_1 (107)FBPboolДанные в кадре жестко закодированы При получении кадра этого вида в точку данных заносится полученное значение.
C_RP_NA_1 (105)ЗапросQRP0uint 
      
P_ME_NA_1 (110)NVAvalue0floatКвалификаторы параметров KPA, LPC и POP на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.
P_ME_NB_1 (111)SVAvalue0intКвалификаторы параметров KPA, LPC и POP на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.
P_ME_NC_1 (112)R32value0floatКвалификаторы параметров KPA, LPC и POP на стороне вывода могут быть сопоставлены информационному байту ConnUserByteQ.
P_AC_NA_1 (113)Пусто— — boolДанные в кадре жестко закодированы При получении кадра этого вида в точку данных заносится значение 1.
M_IT_ND_1 (230)M_IT_TD_1 (231)8-байтовое значение счетчика с плавающей запятойзначение счетчика0float 
 SQ1uintПорядковый номерSQ на стороне вводе не может сопоставляться информационным битам, т. к. это целочисленное значение.
 CY2boolБиты CY, CA и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода, включая SQ, могут быть сопоставлены информационному байту ConnUserByteQ.
 CA3bool
 IV4bool
M_IT_NC_1 (240)M_IT_TC_1 (241)6-октетный BCD 0double6-октетное значение счетчика
6-октетный BCD 1uintПорядковый номерSQ на стороне вводе не может сопоставляться информационным битам, т. к. это целочисленное значение.
6-октетный BCDCY2boolБиты CY, CA и IV на стороне ввода также могут быть сопоставлены соответствующим информационным битам.Биты качества на стороне вывода, включая SQ, могут быть сопоставлены информационному байту ConnUserByteQ.
6-октетный BCDCA3bool
6-октетный BCDIV4bool
C_SE_NZ_1 (242)6-октетный BCD 0double6-октетное значение счетчика
6-октетный BCD 1uintне используется
6-октетный BCD 2boolне используется
6-октетный BCD 3boolне используется
6-октетный BCD 4boolS/E

Частные типы кадров

Тип кадра 135 отноится к частным типам. Т. е. передается содержимое элемента точки данных BLOB без интерпретации данных. Это относится к драйверу МЭК 101 и 104.

Этот тип кадра работает только с элементами точки данных типа blob. Кроме того, необходимо задать адрес информационного объекта 0.0.135.

Проверка целостности кадров

МЭК 101

Проверяются следующие элементы:

  1. Целостность заголовка кадра
  2. Контрольная сумма

В случае ошибки производится переподключение.

МЭК 104

Проверяются следующие элементы:

  1. Целостность заголовка кадра

В случае ошибки производится переподключение.

ПРИМЕЧАНИЕ

При ошибке проверки контрольной суммы производится переинициализация подключения. В этом случае выводится нормальное сообщение об ошибке с уведомлением о потере подключения. На уровне отладки «-dbg 27» можно подробнее узнать об ошибке проверки контрольной суммы.

Оптимизация пропускной способности

Телеграммы при отправке упаковываются в одну телеграмму. Система проверяет, соответствуют ли TYP, COT (= причина передачи) и COA (общий адрес объекта) последней телеграммы текущей телеграмме. Если соответствуют, информационный объект добавляется в в последнюю телеграмму в очереди, если это возможно с учетом длины. Будет произведена попытка добавить IOA из последней телеграммы в очередь, чтобы не допустить повторной отправки телеграммы.  

Возможные сообщения об ошибках при эксплуатации драйвера МЭК

WCCOAiec    (1), 2005.02.26 17:27:25.622, PARAM,SEVERE,  54, Unexpected

state, IecResources, DP-Element does not exist ,  _Iec_1.FileTransfer.Command:_original.._value

WCCOAiec    (1), 2005.02.26 17:27:25.623, PARAM,SEVERE,   54, Unexpected state, IecResources, DP-Element does not exist ,  _Iec_1.FileTransfer.Status:_original.._value

Эти сообщения указывают на несоответствие между версией драйвера и внутренними точками данных или типами точек данных.

WCCOAiec    (1), 2005.02.27 16:27:19.990, PARAM,WARNING,  54, Unexpected state, IecTgLayer, generalQuery, Check format of local/global list entry,  COA not correctly specified *.*.*.*.*

*.*.*.*.* указывается в глобальном/локальном списках МЭК. В журнал это сообщение заносится как предупреждение. Общий запрос через внутреннюю точку данных или через запись в файле config autoGQ > 0 невозможен. Для общего запроса обе записи (Region + Component) не должны иметь значения «*».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *