9h - Чтение программируемых флагов
Ah - Чтение байт состояния.
Bh - Чтение местоположения прибора.
Ch - Чтение расписания утренних и вечерних максимумов мощности
Dh - Чтение значений утренних и вечерних максимумов мощности
Формат
ответа при чтении записи средних мощностей приведен на рис. 40. Адрес расположения
любой записи в памяти №3 кратен 00х10h.
Формат ответа при чтении записи средних мощностей
|
Сетевой адрес (1 байт) |
Байт состояния ответа |
Часы (1 байт) |
Минуты (1 байт) |
Число (1 байт) |
Месяц (1 байт) |
Год (1 байт) |
Длительность периода интегрирования (1 байт) |
P+ (2 байта) |
P- (2 байта) |
Q+ (2 байта) |
Q- (2 байта) |
CRC (2 байта) |
Рис. 40.
Универсальный конфигуратор счётчиков Меркурий умеет читать запросом 6.
Запись расписания праздничных дней
Расписание праздничных дней составляется на каждый месяц текущего года. Месячное расписание праздничных дней содержит 4 байта (32 бита). Каждый бит соответствует календарной дате (левый бит 1-го байта - 1-е число месяца, правый бит 4-го байта - 32-е число месяца). Для задания праздничного дня необходимо установить бит в позиции, соответствующий дате праздничного дня.
Ниже приведена структура и распределение памяти массива расписания праздничных дней.
|
Месяц |
Адрес массива |
1-й байт (числа 1...8) |
2-й байт (числа 9...16) |
3-й байт (числа 17...24) |
4-й байт (числа 25...32) |
|
Январь |
2000h |
|
|
|
|
|
Февраль |
2004h |
|
|
|
|
|
Март |
2008h |
|
|
|
|
|
Апрель |
200Ch |
|
|
|
|
|
Май |
2010h |
|
|
|
|
|
Июнь |
2014h |
|
|
|
|
|
Июль |
2018h |
|
|
|
|
|
Август |
201Ch |
|
|
|
|
|
Сентябрь |
2020h |
|
|
|
|
|
Октябрь |
2024h |
|
|
|
|
|
Ноябрь |
2028h |
|
|
|
|
|
Декабрь |
202Ch |
|
|
|
|
|
КС |
2030h |
|
|
|
|
Размер массива расписания праздничных дней составляет 48 байт. 49-м байтом записывается байт контрольной суммы массива. КС массива считается простым суммированием всех байт массива (без учета переноса из старшего разряда).
При коррекции расписания праздничных дней контрольная сумма массива должна быть скорректирована.
По одному запросу на запись по физическому адресу может быть записано максимум 16 байт. В ответ на запрос счетчик отвечает последовательностью из трех байт, как описано выше.
Тарифное расписание составляется на каждый день недели каждого месяца: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье, праздничный день. Каждый день делится на 144 10-ти минутных суточных тарифных интервала. Это позволяет изменять тарифы с шагом 10 минут. Каждому суточному тарифному интервалу может быть поставлен в соответствие один из 8-и тарифов (в диапазоне чисел 0…7, где 0 – 1-й тариф…7 – 8-й тариф). Номер тарифа занимает размер один полубайт в массиве тарифного расписания. Суточное тарифное расписание занимает объем 72 байта. Месячное тарифное расписание занимает объем 576 байта. Тарифное расписание на год занимает объем 6912 байт. Массив тарифного расписания имеет контрольную сумму, определяемую простым суммированием всех байт массива, аналогично КС массива расписания праздничных дней.
На рисунке 8 приведен пример суточного тарифного расписания на два часа. В примере:
· “А” - базовый адрес массива суточного тарифного расписания;
· первому тарифу соответствует код 0, второму – код 1… восьмому – код 7;
· в интервале времени от 00:00 до 00:30 действует тариф 1 (код 0);
· в интервале времени от 00:30 до 00:50 действует тариф 3 (код 2);
· в интервале времени от 00:50 до 01:00 действует тариф 6 (код 5);
· в интервале времени от 01:00 до 01:50 действует тариф 2 (код 1);
· в интервале времени от 01:50 до 02:00 действует тариф 8 (код 7).
|
Адрес |
A+0 |
A+1 |
A+2 |
A+3 |
A+4 |
A+5 |
||||||
|
№ тарифа |
0 |
0 |
0 |
2 |
2 |
5 |
1 |
1 |
1 |
1 |
1 |
7 |
|
Время |
00:00 |
00:10 |
00:20 |
00:30 |
00:40 |
00:50 |
01:00 |
01:10 |
01:20 |
01:30 |
01:40 |
01:50 |
Рисунок 8 – Пример тарифного расписания на два часа (с 00:00 по 02:00)
Чтобы счетчик стал одно-тарифным, код требуемого тарифа нужно записать в каждый полубайт всего массива тарифного расписания.
В таблице 3 приведена структура и пример распределение памяти массива тарифного расписания на январь месяц. Старший полубайт по адресу 2040h должен иметь код номера тарифа, который будет действовать в период времени от 00:00 до 00:10. Младший полубайт по адресу 2087h должен иметь код номера тарифа, который будет действовать в период времени от 23:50 до 00:00 в январе месяце в понедельник.
Распределение памяти всего массива тарифного расписания приведено в таблице 4.
Таблица 3 – Распределение памяти массива тарифного расписания на январь месяц
|
Месяц |
Адрес массива |
Номера тарифов 10-ти минутных зон |
|
|
2040h |
Понедельник, 144 интервала (полубайта), 72 байта |
|
|
2088h |
Вторник, 144 интервала (полубайта), 72 байта |
|
|
20D0h |
Среда, 144 интервала (полубайта), 72 байта |
|
Январь |
2118h |
Четверг, 144 интервала (полубайта), 72 байта |
|
|
2160h |
Пятница, 144 интервала (полубайта), 72 байта |
|
|
21A8h |
Суббота, 144 интервала (полубайта), 72 байта |
|
|
21F0h |
Воскресенье, 144 интервала (полубайта), 72 байта |
|
|
2238h |
Праздники, 144 интервала (полубайта), 72 байта |
Таблица 4 – Распределение памяти массива тарифного расписания
|
Месяц |
Начальные адреса массивов суточных тарифных расписаний |
|||||||
|
|
Пон. |
Вт. |
Среда |
Четверг |
Пятн. |
Суб. |
Воскр. |
Праздн. |
|
|
|
|
|
|
|
|
|
|
|
Январь |
2040h |
2088h |
20D0h |
2160h |
21A8h |
21F0h |
21F0h |
2238h |
|
Февраль |
2280h |
22C8h |
2310h |
2310h |
23A0h |
23E8h |
2430h |
2478h |
|
Март |
24C0h |
2508h |
2550h |
2598h |
25E0h |
2628h |
2670h |
26B8h |
|
Апрель |
2700h |
2748h |
2790h |
27D8h |
2820h |
2868h |
28B0h |
28B0h |
|
Май |
2940h |
2988h |
29D0h |
2A18h |
2A60h |
2AA8h |
2AF0h |
2B38h |
|
Июнь |
2B80h |
2BC8h |
2C10h |
2C58h |
2CA0h |
2CE8h |
2D30h |
2D78h |
|
Июль |
2DC0h |
2E08h |
2E50h |
2E98h |
2EE0h |
2F28h |
2F70h |
2FB8h |
|
Август |
3000h |
3048h |
3090h |
30D8h |
3120h |
3168h |
31B0h |
31F8h |
|
Сентябрь |
3240h |
3288h |
32D0h |
3318h |
3360h |
33A8h |
33F0h |
3438h |
|
Октябрь |
3480h |
34C8h |
3510h |
3558h |
35A0h |
35E8h |
3630h |
3678h |
|
Ноябрь |
36C0h |
3708h |
3750h |
3798h |
37E0h |
3828h |
3870h |
38B8h |
|
Декабрь |
3900h |
3948h |
3990h |
39D8h |
3A20h |
3A68h |
3AB0h |
3AF8h |
|
КС |
3B40 |
|
|
|
|
|
|
|
Контрольная сумма массива тарифного расписания должна считаться и записываться управляющей программой верхнего уровня при формировании массива тарифного расписания. Если меняется не все тарифное расписание, а только его часть, например на один день, то можно произвести замену информации по соответствующим адресам, а контрольную сумму доверить посчитать и записать счетчику, пользуясь командой 03h\21h.