РЕГИСТРЫ АДАПТЕРА
Вся информация хранится в регистрах общего назначения (holding registers) и нумерация регистров начинается с нуля. Адресное пространство разбито на следующие блоки:
0x0000-0x0005 – системные настроечные регистры
0x0105-0x017F – идентификационная карта запросов
0x1100-0x117F – регистры данных 1 счетчика
0x1180-0x11FF – регистры данных 2 счетчика
0x1200-0x127F – регистры данных 3 счетчика
0x1280-0x12FF – регистры данных 4 счетчика
Таблица 1. Регистровая структура адаптера (системные регистры)
№рег.
|
Содержание регистра
|
Тип
|
Доступ
|
0x0000-0x0001
|
Серийный номер устройства
|
Long
|
R
|
0x0002
|
Версия устройства
|
Short
|
R
|
0x0003
|
Настройка второго порта (порт для опроса электросчетчиков) *
|
Short
|
R/W
|
0x0004
|
Количество опрашиваемых электросчетчиков (от 1 до 4)
|
Short
|
R/W
|
0x0005
|
Управление выходом DOUT (0 – выключен, 1 – включен, другое значение – выход не используется)
В модификациях, где не используется выход, рекомендуется хранить в этом регистре значение, отличное от 0 и 1.
|
Short
|
R/W
|
*- Регистр 0x0003 побитно:
0-3 биты – код скорости: 0-300, 1-600, 2-1200, 3-2400, 4-4800, 5-9600, 6-14400, 7-19200, 8-38400, 9-56000, 10-57600, 11-115200, от 12 до 15 не используются, скорость выставляется 115200.
4 бит - если установлен, то 2 стоп бита, иначе 1 стоп бит.
5-6 биты 00 – нет контроля четности
01 – контроль четности четный
10 – контроль четности нечетный
11 – нет контроля четности
Остальные биты не используются.
Идентификационная карта запросов и регистры данных
В регистрах по адресу 0x0105-0x017F устанавливается очередность и номера запросов к электросчетчикам по идентификаторам запросов. Адаптер опрашивает электросчетчики, и полученные данные складывает в соответствующие регистры данных счетчиков (0x1100-0x117F , 0x1180-0x11FF и т.д.). Данные счетчиков располагаются в регистрах по адресам в соответствии с адресами запросов.
Таблица 2. Соответствия регистров запроса и данных
№рег. запросов
|
№рег. данных сч.1
|
№рег. данных сч.2
|
Данные счет.3
|
Данные счет.4
|
0x0105
|
0x1105
|
0x1185
|
0x1205
|
0x1285
|
0x0106
|
0x1106
|
0x1186
|
0x1206
|
0x1286
|
0x0107
|
0x1107
|
0x1187
|
0x1207
|
0x1287
|
0x0108
|
0x1108
|
0x1188
|
0x1208
|
0x1288
|
…
|
…
|
…
|
…
|
…
|
0x017E
|
0x117E
|
0x11FE
|
0x127E
|
0x12FE
|
0x017F
|
0x117F
|
0x11FF
|
0x127F
|
0x12FF
|
Например, если по адресу 0x0123 содержится значение 0x0007 (запрос напряжения), то для счетчика 1 данные (по напряжению) будут располагаться в регистрах, начиная с 0x1123; для счетчика 2 – начиная с 0x11A3 и т.д.
В зависимости от размера считываемых данных в последующие регистры запросов необходимо записывать заглушки 0xFFFF. Например, если по адресу 0x0123 содержится значение 0x0007 (запрос напряжения), то считанные данные должны занимать 3 регистра, в регистры 0x0124-0x0125 будут записаны заглушки 0xFFFF и следующий номер запроса можно будет записать в регистр 0x0126.
Идентификатор запроса состоит из 2-х байт: младший байт – номер запроса, старший – побитовое исключение параметров.
Например, по адресу 0x0123 содержится запрос с номером 0x0007, от электросчетчика вернутся следующие данные: напряжение фазы A, напряжение фазы B, напряжение фазы C, которые будут располагаться в регистрах 0x1123-0x1125. Например, нам не требуется напряжение фазы B, тогда в регистр 0x0123 записываем 0x0207, данные будут располагаться в регистрах 0x1123-0x1124.
Неиспользуемые регистры в регистрах запросов следует заполнить 0x0000.
Таблица 3. Идентификаторы запросов
Мл. байт – запрос
|
Запрос
|
Кол-во регистров
|
Ст. байт – биты исключения
|
0x01
|
Время
|
1рег.: мл.байт – сек
ст.байт – мин
|
0бит – если 1, то регистр не используется
|
1рег.: мл.байт – часы
ст.байт – день недели
|
1бит
|
1рег.: мл.байт – число
ст.байт – месяц
|
2бит
|
1рег.: мл.байт – год
ст.байт – лето\зима
|
3бит
|
0x02
|
Мощность активная*
|
Суммарная – 2 рег.
|
0бит
|
Фазы A – 2 рег.
|
1бит
|
Фазы B – 2 рег.
|
2бит
|
Фазы C – 2 рег.
|
3бит
|
0x03
|
Мощность реактивная*
|
Суммарная – 2 рег.
|
0бит
|
Фазы A – 2 рег.
|
1бит
|
Фазы B – 2 рег.
|
2бит
|
Фазы C – 2 рег.
|
3бит
|
0x04
|
Мощность полная*
|
Суммарная – 2 рег.
|
0бит
|
Фазы A – 2 рег.
|
1бит
|
Фазы B – 2 рег.
|
2бит
|
Фазы C – 2 рег.
|
3бит
|
0x05
|
Cos φ
|
Фазы A – 1 рег.
|
0бит
|
Фазы B – 1 рег.
|
1бит
|
Фазы C – 1 рег.
|
2бит
|
0x06
|
Ток*
|
Фазы A – 2 рег.
|
0бит
|
Фазы B – 2 рег.
|
1бит
|
Фазы C – 2 рег.
|
2бит
|
0x07
|
Напряжение
|
Фазы A – 1 рег.
|
0бит
|
Фазы B – 1 рег.
|
1бит
|
Фазы C – 1 рег.
|
2бит
|
0x08
|
Частота
|
1 рег.
|
0бит
|
0x09
|
Суммарная энергия от сброса
|
Акт. прямая – 2 рег.
|
0бит
|
Акт. обратная – 2 рег.
|
1бит
|
Реакт. прямая – 2 рег.
|
2бит
|
Реакт. обратная – 2 рег.
|
3бит
|
0x0A
|
Энергия по тарифу №1
|
Акт. прямая – 2 рег.
|
0бит
|
Акт. обратная – 2 рег.
|
1бит
|
Реакт. прямая – 2 рег.
|
2бит
|
Реакт. обратная – 2 рег.
|
3бит
|
0x0B
|
Энергия по тарифу №2
|
Акт. прямая – 2 рег.
|
0бит
|
Акт. обратная – 2 рег.
|
1бит
|
Реакт. прямая – 2 рег.
|
2бит
|
Реакт. обратная – 2 рег.
|
3бит
|
0x0C
|
Энергия по тарифу №3
|
Акт. прямая – 2 рег.
|
0бит
|
Акт. обратная – 2 рег.
|
1бит
|
Реакт. прямая – 2 рег.
|
2бит
|
Реакт. обратная – 2 рег.
|
3бит
|
0x0D
|
Энергия по тарифу №4
|
Акт. прямая – 2 рег.
|
0бит
|
Акт. обратная – 2 рег.
|
1бит
|
Реакт. прямая – 2 рег.
|
2бит
|
Реакт. обратная – 2 рег.
|
3бит
|
0xFFFF
|
Заглушка
|
Выставляется автоматич. при запросах на более чем 1 регистр
|
|
0x0000
|
Конец
|
Неиспользуемые регистры
|
|
* - в старшем слове 7 бит отвечает за направление активной мощности (0-прямое, 1-обратное). В старшем слове 6 бит отвечает за направление реактивной мощности (0-прямое, 1-обратное).
Значения считанных данных должны интерпретироваться в соответствии с приведенными формулами:
U(B) = Nu / 100; I(A) = Ni / 1000;
P, Q, S(Вт, Вар, ВА) = Np,s,q / 100;
F(Гц) = Nf / 100; cos φ = Nφ / 1000;
где: Nu, Ni, Np,q,s, Nf, N – коды, хранящиеся в регистрах данных с отмаскированными битами направления.
Перевод числа из формата внутреннего представления в энергию в кВтч или кВарч производится по формуле:
E(кВт*ч, кВар*ч) = N,
где: N – число в регистре учтенной энергии (4 двоичных байта – 2 регистра);
Таблица 4. Регистровая структура адаптера (данные электросчетчиков).
№рег.
|
Содержание регистра
|
Тип
|
Доступ
|
0x1100
|
Регистр статуса связи 1 счетчика (0бит если 1 то данные не готовы, 1бит если 1 то нет связи, 2бит если 1 то ошибка контрольной суммы)
|
Bits
|
R
|
0x1101
|
Регистр счетчика младший байт –сетевой адрес счетчика, старший байт – уровень доступа
|
2Byte
|
R/W
|
0x1102
|
Пароль доступа к счетчику; мл.байт - первый символ, ст.байт - второй символ
|
2Byte
|
R/W
|
0x1103
|
Пароль доступа к счетчику; мл.байт - третий символ, ст.байт - четвертый символ
|
2Byte
|
R/W
|
0x1104
|
Пароль доступа к счетчику; мл.байт - пятый символ, ст.байт – шестой символ
|
2Byte
|
R/W
|
0x1105
|
Данные электросчетчика 1, заполняются в соответствии с регистрами запросов 0x0105-0x017F
|
2Byte
|
R
|
0x1106
|
2Byte
|
R
|
0x1107
|
2Byte
|
R
|
0x1108
|
2Byte
|
R
|
…
|
…
|
…
|
0x117F
|
2Byte
|
R
|
0x1180
|
Регистр статуса связи 2 счетчика
|
Bits
|
R
|
0x1181
|
Регистр счетчика младший байт –сетевой адрес счетчика, старший байт – уровень доступа
|
2Byte
|
R/W
|
0x1182
|
Пароль доступа к счетчику; мл.байт - первый символ, ст.байт - второй символ
|
2Byte
|
R/W
|
0x1183
|
Пароль доступа к счетчику; мл.байт - третий символ, ст.байт - четвертый символ
|
2Byte
|
R/W
|
0x1184
|
Пароль доступа к счетчику; мл.байт - пятый символ, ст.байт – шестой символ
|
2Byte
|
R/W
|
0x1185
|
Данные электросчетчика 2, заполняются в соответствии с регистрами запросов 0x0105-0x017F
|
2Byte
|
R
|
0x1186
|
2Byte
|
R
|
0x1187
|
2Byte
|
R
|
0x1188
|
2Byte
|
R
|
…
|
…
|
…
|
0x11FF
|
2Byte
|
R
|
0x1200
|
Регистр статуса связи 3 счетчика
|
Bits
|
R
|
0x1201
|
Регистр счетчика младший байт –сетевой адрес счетчика, старший байт – уровень доступа
|
2Byte
|
R/W
|
0x1202
|
Пароль доступа к счетчику; мл.байт - первый символ, ст.байт - второй символ
|
2Byte
|
R/W
|
0x1203
|
Пароль доступа к счетчику; мл.байт - третий символ, ст.байт - четвертый символ
|
2Byte
|
R/W
|
0x1204
|
Пароль доступа к счетчику; мл.байт - пятый символ, ст.байт – шестой символ
|
2Byte
|
R/W
|
0x1205
|
Данные электросчетчика 3, заполняются в соответствии с регистрами запросов 0x0105-0x017F
|
2Byte
|
R
|
0x1206
|
2Byte
|
R
|
0x1207
|
2Byte
|
R
|
0x1208
|
2Byte
|
R
|
…
|
…
|
…
|
0x127F
|
2Byte
|
R
|
0x1280
|
Регистр статуса связи 4 счетчика
|
Bits
|
R
|
0x1281
|
Регистр счетчика младший байт –сетевой адрес счетчика, старший байт – уровень доступа
|
2Byte
|
R/W
|
0x1282
|
Пароль доступа к счетчику; мл.байт - первый символ, ст.байт - второй символ
|
2Byte
|
R/W
|
0x1283
|
Пароль доступа к счетчику; мл.байт - третий символ, ст.байт - четвертый символ
|
2Byte
|
R/W
|
0x1284
|
Пароль доступа к счетчику; мл.байт - пятый символ, ст.байт – шестой символ
|
2Byte
|
R/W
|
0x1285
|
Данные электросчетчика 4, заполняются в соответствии с регистрами запросов 0x0105-0x017F
|
2Byte
|
R
|
0x1286
|
2Byte
|
R
|
0x1287
|
2Byte
|
R
|
0x1288
|
2Byte
|
R
|
…
|
…
|
…
|
0x12FF
|
2Byte
|
R
|
Размерность одного регистра равняется 2 байта (short).
Регистры доступные на запись (с пометкой R/W) сохраняются в энергонезависимой памяти устройства и при перезапуске контроллера восстанавливают свое исходное значение.
Для чтения архивов из электросчетчика предусмотрены следующие регистры.
Таблица 5. Регистры чтения архивов
Номер
Регистра
|
Содержание регистра
|
Тип
|
Доступ
|
0x2000
|
Старший байт - статус\управление чтения архива (0бит – начать чтение архива, 1бит – данные готовы, 2бит – неправильно задано время, 3бит – неправильно выбран номер счетчика).
Младший байт – порядковый номер счетчика от 1 до 4.
|
2Byte
|
R/W
|
0x2001
|
Задание времени чтения.
Старший байт – час (с 0 по 23)
Младший байт – мин (c 0 по 59)
|
2Byte
|
R/W
|
0x2002
|
число месяца (с 1 по 31)
|
Short
|
R/W
|
0x2003
|
Задание даты чтения
Старший байт – год.
Младший байт – месяц (с 1 по 12)
|
2Byte
|
R/W
|
0x2004
|
Задание количества считываемых точек архива (количество часов - 24 максимум)
|
Short
|
R/W
|
0x2005
|
Время точки №1
Старший байт – час
Младший байт – мин
|
2Byte
|
R
|
0x2006
|
День точки №1
число месяца (с 1 по 31)
|
Short
|
R
|
0x2007
|
Дата точки №1
Старший байт – год.
Младший байт – месяц (с 1 по 12)
|
2Byte
|
R
|
0x2008
|
Считанная активная мощность прямая
|
Short
|
R
|
0x2009
|
Считанная активная мощность обратная
|
Short
|
R
|
0x200A
|
Считанная реактивная мощность прямая
|
Short
|
R
|
0x200B
|
Считанная реактивная мощность обратная
|
Short
|
R
|
0x200C
|
Время точки №2
Старший байт – час
Младший байт – мин
|
2Byte
|
R
|
0x200D
|
День точки №2
число месяца (с 1 по 31)
|
Short
|
R
|
0x200E
|
Дата точки №2
Старший байт – год.
Младший байт – месяц (с 1 по 12)
|
2Byte
|
R
|
0x200F
|
Считанная активная мощность прямая
|
Short
|
R
|
0x2010
|
Считанная активная мощность обратная
|
Short
|
R
|
0x2011
|
Считанная реактивная мощность прямая
|
Short
|
R
|
0x2012
|
Считанная реактивная мощность обратная
|
Short
|
R
|
…
|
…
|
…
|
…
|
0x214E
|
Время точки №48
Старший байт –Младший байт – час, если получасовой то старший бит 1.
|
2Byte
|
R
|
0x214F
|
День точки №48
число месяца (с 1 по 31)
|
Short
|
R
|
0x2150
|
Дата точки №48
Старший байт – год.
Младший байт – месяц (с 1 по 12)
|
2Byte
|
R
|
0x2151
|
Считанная активная мощность прямая
|
Short
|
R
|
0x2152
|
Считанная активная мощность обратная
|
Short
|
R
|
0x2153
|
Считанная реактивная мощность прямая
|
Short
|
R
|
0x2154
|
Считанная реактивная мощность обратная
|
Short
|
R
|
========
|
==================================
|
========
|
====
|
0x2155
|
Служебная информация архивов
адрес памяти счетчика1 (начало архива)
|
Short
|
R
|
0x2156
|
адрес памяти счетчика2 (начало архива)
|
Short
|
R
|
0x2157
|
адрес памяти счетчика3 (начало архива)
|
Short
|
R
|
0x2158
|
адрес памяти счетчика4 (начало архива)
|
Short
|
R
|
0x2159
|
адрес памяти счетчика1 (конец архива)
|
Short
|
R
|
0x215A
|
адрес памяти счетчика2 (конец архива)
|
Short
|
R
|
0x215B
|
адрес памяти счетчика3 (конец архива)
|
Short
|
R
|
0x215C
|
адрес памяти счетчика4 (конец архива)
|
Short
|
R
|
0x215D
|
Старший байт – год последней записи архива счетчика2
Младший байт – год последней записи архива счетчика1
|
2Byte
|
R
|
0x215E
|
Старший байт – год последней записи архива счетчика4
Младший байт – год последней записи архива счетчика3
|
2Byte
|
R
|
0x215F
|
считываемый адрес памяти архива выбранного счетчика
|
Short
|
R
|
Считывание архива происходит следующим образом
Записываем в регистры 0x2000 – 0x2004 номер счетчика, время начала архива и количество точек; максимальное количество точек – 48.
Выставляем 0бит в старшем байте 0x2000 регистра, остальные биты в старшем байте сбрасываем.
Ожидаем, когда выставится 1бит в старшем байте 0x2000 регистра
Считываем значения в регистрах 0x2005-0x2154 время/дата точек, активные и реактивные мощности.
При окончании архивных точек, а также при возникновении ошибок, 0бит в старшем байте 0x2000 регистра сбросится.
|