3. Найти адрес первого заголовка августа месяца 2002 г, лето, время интегрирования 30 минут всем счетчикам сегмента сети (широковещательный запрос). Идентификатор широковещательного запроса, формируемый управляющей программой верхнего уровня BDh. Поиск начинать с логического начала памяти.
Запрос: FEh 03h 28h BDh 00h FFh FFh FFh FFh 08h 02h 00h 1Eh КС(CRC)
Ответ: Нет ответа на широковещательный запрос. Читать слово-состояние задачи поиска, как описано ниже.
2.1.4 Запись информации по физическим адресам физической памяти
Запись информации по физическим адресам физической памяти используется для записи и коррекции тарифного расписания и расписания праздничных дней. Формат запроса на запись информации по физическим адресам приведен на рисунке 7.
Сетевой адрес |
Код запроса 07h |
№ памяти 02h |
Старший байт адреса |
Младший байт адреса |
Число байт информации |
Записываемая информация (1…16 байт) |
КС (CRC) |
Рисунок 7 – Формат запроса на запись информации по физическим адреса физической памяти
Допустимый диапазон адресов для записи: от 2000h до 3B40h включительно. При попытке обращения на запись в другие зоны адресов счетчик возвращает код 01h в байте состояния обмена
Пример:
1. Записать по адресу 2040h 4 байта в последовательности 11h 22h 33h 44h в счетчик с сетевым адресом 5.
Запрос: 05h 07h 02h 20h 40h 04h 11h 22h 33h 44h КС(CRC)
Ответ: 05h 00h КС(CRC) Все нормально
2.1.4.1 Запись расписания праздничных дней
Расписание праздничных дней составляется на каждый месяц текущего года. Месячное расписание праздничных дней содержит 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 байт. В ответ на запрос счетчик отвечает последовательностью из трех байт, как описано выше.
2.1.4.2 Запись тарифного расписания
Тарифное расписание составляется на каждый день недели каждого месяца: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье, праздничный день. Каждый день делится на 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)
Чтобы счетчик стал одно-тарифным, код требуемого тарифа нужно записать в каждый полубайт всего массива тарифного расписания.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.