Драйвер оформлен в виде драйвера t12, протокол соответствует IEC 62056-21 (2002-05) в части режимов A-D (режим E не поддерживается).
Протокол обмена со счетчиком встроен в Micro TRACE MODE 6 для Windows CE. Если COM-порт с назначением Host OEM RS задан, Микро МРВ использует встроенный драйвер с полной поддержкой МЭК (только для профессионального формата). Если COM-порт не задан, Микро МРВ использует драйвер t12 с поддержкой МЭК посредством ручного конфигурирования переменных.
Кроме атрибутов, общих для всех источников/приемников (см. Редакторы источников (приемников) , а также Шаблоны каналов обмена ), в редакторе шаблона канала обмена задаются следующие атрибуты:
Порт – номер используемого СОМ-порта, уменьшенный на 1, однобайтное десятичное число;
Номер прибора – уникальный для каждого прибора номер, однобайтное десятичное число. Каждому номеру должна соответствовать своя строка-идентификатор;
ID прибора – идентификатор прибора в сети, строка длиной до 16 символов;
Стартовая скорость – начальная скорость обмена, значение выбирается из меню в соответствии с настройкой прибора. Если выбрано значение с окончанием "+", команды окончания сеанса и инициализации не посылаются (в начале очередного сеанса ID прибора посылается только в том случае, если он изменился или была ошибка обмена). Для значений без плюса команды инициализации и разрыва связи посылаются всегда;
Запрос – тип запроса к прибору, значение выбирается из меню (см. описание запросов ниже);
Параметр 1 – первый параметр запроса, значение зависит от типа запроса (см. ниже);
Параметр 2 – второй параметр запроса, значение зависит от типа запроса (см. ниже).
Типы запросов и их параметры (номер запроса – в соответствии с plc_ce6850m2.tmc):
0, CTIME – широковещательная команда коррекции хода часов, канал должен быть типа OUTPUT;
1, Exyst – запрос количества учтенной энергии, параметры имеют следующее значение:
Параметр 1 – набор битовых флагов, задающий условия чтения: значение битов 0 и 1 – интервал (0 – нарастающим итогом, 1 – за сутки, 2 или 3 – за месяц); бит 2 – активная (0) или реактивная (1) энергия; бит 3 – отпущенная (0) или потребленная (1) энергия. При запросах энергии за день и за месяц используется дополнительный параметр для указания номера дня (месяца) – см. EnerNparam;
Параметр 2 – номер тарифа, 0 – суммарная энергия, 1 – энергия по первому тарифу, 2 – по второму тарифу, …, 5 – энергия, накопленная в общем регистре;
2, Graph – запрос конкретного значения из графика нагрузки, дата для чтения графика задается с помощью запросов GraYear, GraMonth и GraDay. Значение параметров:
Параметр 1 – набор битовых флагов; бит 0 – активная (0) или реактивная (1) энергия; бит 1 – отпущенная (0) или потребленная (1) энергия;
Параметр 2 – номер архивной записи в сутках;
3, Gra25 – график нагрузки потерянного часа при переходе с летнего на зимнее время. Значение параметров:
Параметр 1 – набор битовых флагов, бит 0 – активная (0) или реактивная (1) энергия; бит 1 – отпущенная (0) или потребленная (1) энергия;
Параметр 2 – номер записи в архиве;
4, Ener3 – энергия за последний завершенный трехминутный интервал; Параметр 1 – тип энергии (0 – активная потребленная, 1 – активная отпущенная, 2 – реактивная потребленная, 3 – реактивная отпущенная);
5, Power – мгновенная мощность, значение параметров:
Параметр 1 – тип мощности (0 – полная, 1 – активная, 2 – реактивная);
Параметр 2 – фаза (0 – фаза A, 1 – фаза B, 2 – фаза C, 3 – суммарная мощность по всем фазам);
6, Curre – значение тока; Параметр 1 – номер фазы (0 – фаза A, 1 – фаза B, 2 – фаза C);
7, Volta – значение напряжения; Параметр 1 – номер фазы (0 – фаза A, 1 – фаза B, 2 – фаза C);
8, Cos_f – коэффициент активной мощности; Параметр 1 – номер фазы (0 – фаза A, 1 – фаза B, 2 – фаза C, 3 – ABC);
9, Sin_f – коэффициент реактивной мощности; Параметр 1 – номер фазы (0 – фаза A, 1 – фаза B, 2 – фаза C, 3 – ABC);
10, CorUU – углы между векторами напряжений; Параметр 1 – тип вектора (0 – между векторами A и B, 1 – BC, 2 – CA);
11, CorIU – углы между векторами тока и напряжения; Параметр 1 – фаза (0 – по фазе A, 1 – по фазе B, 2 – по фазе C);
12, Frequ – частота сети в герцах, дополнительные параметры не используются и должны быть равны 0;
13, Stat – состояние счетчика, 16-битное число, расшифровку значений отдельных битов см. в руководстве по эксплуатации счетчика электрической энергии ЦЭ6850М. Дополнительные параметры не используются и должны быть равны 0;
14, Elos – энергия потерь; Параметр 1 – тип потерь (0 – потери при отпуске, 1 – потери при потреблении);
15, EnerNparam – запрос для передачи номера дня (месяца) в драйвер (для запроса Exyst). Дополнительные параметры не используются и должны быть равны 0;
16, GraYear – запрос для передачи года в драйвер (для запроса Graph). Двухзначное число, последние 2 цифры номера года; дополнительные параметры не используются и должны быть равны 0;
17, GraMonth – запрос для передачи месяца в драйвер (для запроса Graph). Дополнительные параметры не используются и должны быть равны 0;
18, GraDay – запрос для передачи дня в драйвер (для запроса Graph). Дополнительные параметры не используются и должны быть равны 0;
19, Max
20, Rel_n
32, Powp
33, ENM_ARC
34, END_ARC
35, Ecmzt
36, Ecdzt
Канал запроса CTIME может быть только типа OUTPUT. Достаточно создать по одному такому каналу на каждый используемый COM-порт, т.к. запрос широковещательный и принимается всеми устройствами.
Для запроса значения из графика нагрузки необходимо создать 3 канала типа OUTPUT с запросами GraYear, GraMonth и GraDay (запись значений в эти каналы задает параметры запроса Graph) и сам канал с запросом Graph, указав тип запрашиваемой энергии (Параметр 1). Запрос Graph является блоковым и возвращает массив значений из архива за указанные сутки, номер конкретной записи в массиве задается параметром Параметр 2.
Каналы EnerNParam, GraYear, GraMonth, GraDay передают параметры запросов в драйвер и могут быть типов INPUT и OUTPUT; значения параметров сохраняются отдельно для каждого прибора. Каналы прочих типов запросов должны быть INPUT.
Например, канал для запроса мгновенной активной мощности, суммированной по 3 фазам, при связи с прибором с идентификатором 7777777777777777 через порт COM2 на начальной скорости 300 бод должен быть сконфигурирован следующим образом: Порт=1, Номер прибора=0; ID прибора=7777777777777777; Стартовая скорость=300, Запрос=Power, Параметр 1=1, Параметр 2=3, Тип=INPUT.
Запросы 48…62
Запросы 48…62 (USER_DEF_00…USER_DEF_14) используются, если прибор переключен в режим программирования.
Для этих запросов строка ID прибора задается следующим образом:
ID=<ID прибора>;N=<имя команды или параметра>;[TMOUT=<время бездействия после посылки команды, мс, DEC>;][FORMAT=<формат времени>;][PASSW=<пароль>]
Строка формата времени может содержать следующие символы:
D – день;
M – месяц;
Y – год;
h – часы;
m – минуты;
s – секунды;
x – пропустить значение времени;
v – интерпретировать как значение;
t – инициализировать приемную структуру (создается в памяти) текущим временем (DMY, символ "t" может быть указан только в нулевой позиции строки формата);
T – инициализировать приемную структуру текущим временем (DMYhms, символ "T" может быть указан только в нулевой позиции строки формата);
+ – интерпретировать полученное значение месяца 0…11 как 1…12 (символ "+" может быть указан только в нулевой, первой или второй позиции строки формата);
G – запрет коррекции с учетом зимнего/летнего времени (символ "G" может быть указан только в нулевой, первой или второй позиции строки формата).
Если возвращается массив, то для передачи его данных в каналы TRACE MODE можно использовать следующие способы:
создать необходимое число одинаково сконфигурированных каналов (в том числе с одинаковым значением атрибута Параметр 1). В каждый такой канал записывается число, которое в массиве имеет порядковый номер, равный значению атрибута Параметр 2 канала;
создать единственный канал и привязать его к каналу CALL.ChGroupReq – в этом случае данные массива записываются в аргументы CALL.ChGroupReq. Если элемент массива содержит как значение, так и метку времени, аргументы создаются парами (в первый записывается значение, во второй – метка времени). Если Параметр 2 равен 0, в аргументы записываются все данные массива, в противном случае – только те элементы, для которых остаток от деления их номера в массиве на Параметр 2 равен 0. Номер аргумента, с которого начинается запись, равен сумме значений атрибутов Номер прибора и 34; атрибут 34 задает шаг записи по аргументам (если 0, шаг равен 1 и т.д.).
Для запроса 60 выражение "N=…" задается следующим образом:
N=<имя параметра>([<команда>])
Команда представляет собой строку подстановок:
%<символ>%<символ>…
В канале INPUT могут использоваться следующие подстановки (временные параметры – из структуры времени (см. ниже)):
%P – <день месяца>.<номер месяца>.<2 цифры года>.<номер 30-минутного интервала с начала суток>;
%p – <день месяца>.<номер месяца>.<2 цифры года>.<номер 5-минутного интервала с начала суток>;
%E – <день месяца>.<номер месяца>.<2 цифры года>.<Параметр 2>;
%G – <Параметр 2>;
%g – <Параметр 1>;
%M – минуты;
%H – часы;
%S – секунды;
%d – день месяца;
%m – номер месяца;
%n – номер предыдущего месяца;
%y – 2 цифры года;
%Y – 4 цифры года;
%K – если Параметр 2 больше номера месяца – 2 цифры предыдущего года, в противном случае – 2 цифры текущего года;
%k – подстановка зависит от номера появления %k в строке:
первое появление – <Параметр 1>;
второе появление – значение младшего полубайта атрибута Параметр 2;
третье появление – 2 цифры года;
%N – <день месяца>.<номер месяца>.<2 цифры года>.<номер Параметр2-минутного интервала с начала суток>;
%B – зарезервировано;
%b – зарезервировано;
%<любой символ, кроме перечисленных выше> – указанный символ.
В канале OUTPUT могут использоваться: %G, %g, %M, %H, %S, %n, %m, %y, %Y, %d, %B, %b, %<любой символ, кроме перечисленных выше> и %P (в отличие от канала INPUT, вместо %P в канале OUTPUT подставляется выходное значение канала (9, Q)).
Для запроса 60 в отсутствие команды (скобки пусты) подставляется <Параметр 1>.<Параметр 2> (как в канале чтения, так и в канале записи).
Для запросов, отличных от 60, выражение "N=…" также может быть задано как N=<имя параметра>([<команда>]) (как в канале чтения, так и в канале записи). При этом скобки могут быть пусты или содержать %G или %<любой символ, кроме перечисленных выше>. Если скобки пусты или содержат %G, подставляется выходное значение канала (9, Q).
Структура времени по умолчанию инициализируется текущим временем. Для изменения используется команда "%∼", результат которой зависит от значения атрибута Параметр 1:
0 – <текущее время> - 1ч
1 – <текущее время> - 1 день
2 – <текущее время> - 86400*<текущий день>
3 – <текущее время> - 0.5ч
4 – <текущее время> - 10мин
5 – <текущее время> - 5мин
6 – <текущее время> - 1мин
16 – <текущее время> - (Параметр 2 + 1) ч
17 – <текущее время> - (Параметр 2 + 1) дней
33 – смещение на начало дня и на Параметр 2 дней назад
Запрос 63
Запрос 63, USER_DEF_15 используется, если прибор переключен в режим программирования.
Формат строки ID прибора для запроса 63, USER_DEF_15:
ID=<ID прибора>;N=<имя параметра>;…;N=<имя параметра>
В соответствии с заданным числом параметров, МРВ генерирует запросы к прибору и записывает полученные данные в каналы аналогично запросам 48…62.
Запросы 128…131
Запросы 128 (REQ_READ), 129 (PARSE_READ), 130 (MULTI_PARSE) и 131 (REQ_READ(file)) предназначены для обычного режима работы прибора. В этом режиме в приемную структуру (создается в памяти) считываются параметры, заданные производителем прибора.
Запрос 128 или 131 инициализирует обычный режим и считывает все данные (запрос 131, кроме того, записывает данные в файл с именем прибора).
Если канал с запросом 128, REQ_READ привязан к каналу CALL.ChGroupReq, то, кроме инициализации и считывания данных из прибора, из приемной структуры в аргументы CALL.ChGroupReq записываются параметры, заданные в строке ID прибора. Формат строки:
ID=<ID прибора>;N=<имя параметра>;…;N=<имя параметра>
Если канал с запросом 130, MULTI_PARSE привязан к каналу CALL.ChGroupReq, то из приемной структуры в аргументы CALL.ChGroupReq записываются параметры, заданные в строке ID прибора. Формат строки:
ID=<ID прибора>;N=<имя параметра>;…;N=<имя параметра>
Формат строки ID прибора для запроса 129, PARSE_READ:
ID=<ID прибора>;N=<имя параметра>;[FORMAT=<формат времени>]
Формат времени задается так же, как для запросов 48…63.
Если канал с запросом 129 привязан к CALL.ChGroupReq, данные записываются в аргументы CALL.ChGroupReq, в противном случае производится поиск каналов для записи.
Запросы 40…43
Формат строки ID прибора для запросов 40…43 (USER_ARC_00…USER_ARC_03):
ID=<ID прибора>;N=<имя, по которому считываются значения>;T=<имя, по которому считываются метки времени>;TF=<формат времени>
Строка формата времени может содержать те же символы, что и для запросов 48…63, за исключением символа "v".
Запросы 40 и 41 используются в режиме программирования прибора, 42 и 43 – в обычном режиме (для выборки из приемной структуры).
Канал должен быть привязан к CALL.ChGroupReq. Номер аргумента, с которого начинается запись данных, задается атрибутом Номер прибора (четный аргумент – значение, нечетный – метка времени).
Если число NT считанных меток времени меньше числа NV считанных значений, то выполняется коррекция меток времени:
Для всех запросов в атрибут 45, T канала CALL.ChGroupReq записывается время последнего успешного приема, а в атрибут 1, A – число считанных значений.