- •Содержание
- •Перечень условных обозначений, символов и терминов
- •Введение
- •1 Анализ предметной области
- •1.1 Структура предприятия
- •1.2 Информационная система предприятия
- •1.3 Постановка задачи
- •2.2 Сумматор электронный многофункциональный «сэм-1»
- •2 Варианты возможных способов учёта и контроля электрической энергии
- •2.1 Электронный программируемый прибор для дистанционного учёта электрической энергии типа «ets-m»
- •2.3 Сумматор электронный многофункциональный для учета электроэнергии «сэм-2»
- •2.4 Счётчик статический активной энергии однофазный «Гран-Электро сс-101»
- •2.5 Характеристика аскуэ
- •2.6 Структурная схема аскуэ
- •2.7 Общие требования к системе аскуэ
- •2.8 Обзор существующих аскуэ
- •3 Создание программного модуля
- •3.1 Выбор языка и среды разработки
- •3.2 Протокол обмена данных со счётчиком
- •3.3 Структура программного модуля обработки данных счётчиков электроэнергии
- •3.4 Последовательность выполнения запроса модуля обработки данных счётчика электроэнергии
- •3.5 Чтение, модификация и обнуление параметров
- •3.6 Программная реализация
- •3.7 Циклический избыточный код (crc)
- •3.8 Поиск счётчиков при использовании расширенной адресации
- •3.9 Инструкция пользователя
- •4 Технико-экономическое обоснование разработки программного модуля обработки данных счётчиков электроэнергии
- •4.1 Характеристика программного модуля
- •4.2 Оценка трудоемкости и сроков разработки
- •4.3 Расчет затрат на разработку и отпускной цены программного продукта
- •4.4 Расчет затрат по использованию по
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Кодировка параметров
- •Приложение б (обязательное) Кодировка поля «результат» ответа
- •Приложение в (обязательное) Циклический избыточный код «crc»
- •Приложение г (обязательное) Алгоритм поиска счётчиков при использовании расширенной адресации
- •Приложение д (обязательное) Параметры группы энергия
- •Приложение е (обязательное) Параметры группы мощность
3.7 Циклический избыточный код (crc)
Контроль циклическим кодом применяется для повышения надежности передачи данных. Смысл контроля заключается в следующем. Запрос подвергается шифровке циклическим кодом. Полученный результат добавляется в конец запроса, и весь пакет отправляется подчиненному устройству. Подчиненное устройство выполняет те же действия над байтами запроса и сравнивает полученный результат с «CRC» принятого пакета, и в случае положительного результата выполняет требуемое действие. Затем оно формирует ответное сообщение, подвергает его той же процедуре шифровки, «прицепляет» полученный код в конец пакета и посылает его обратно главному устройству. Главное устройство выполняет ту же процедуру дешифровки, проверяя правильность принятого пакета. Вероятность обнаружения ошибки в одном разряде байта пакета равна 99,998%.
В качестве примера рассмотрим вычисление «CRC» в виде функции написанной на языке Java . Все возможные значения «CRC» помещены в два массива. Один массив содержит все возможные значения для старшего байта «CRC», а второй – для младшего.
Текст функции шифровки циклическим кодом «CRC» приведён в приложении В. Функции в качестве параметров принимает указатель на сообщение, используемое для формирования «CRC» (msg) и размер сообщения в байтах (len), а возвращает 16-ти битное значение «CRC».
3.8 Поиск счётчиков при использовании расширенной адресации
Поиск осуществляется путем последовательной разбивки адресного диапазона на 10 (и более) интервалов. Каждый подинтервал разбивается еще на 10 (и более) и так до тех пор, пока нужный нам счётчик не будет найден. Разбивка осуществляется при помощи маски.
Например, нам надо найти приборы с З/Н1 «12345678» и З/Н2 «1233999» поиск будет выглядеть следующим образом:
а) Стартовая маска (0???????);
б) 0??????? – нет ответа;
в) 1??????? – пришел ответ от счетчиков с З/Н1 и З/Н2 произошла коллизия;
г) 10?????? – нет ответа;
д) 11?????? – нет ответа;
е) 12?????? – пришел ответ от счетчиков с З/Н1 и З/Н2 произошла коллизия;
ж) 120????? – нет ответа;
з) 121????? – нет ответа;
и) 122????? – нет ответа;
к) 123????? – пришел ответ от счетчиков с З/Н1 и З/Н2 произошла коллизия;
л) 1230???? – нет ответа;
м) 1231???? – нет ответа;
н) 1232???? – нет ответа;
о) 1233???? – пришел ответ от счетчика с З/Н2 нет коллизии (нашли счетчик с З/Н2, записываем его в маску);
п) 1234???? – пришел ответ от счетчика с З/Н 1 нет коллизии (нашли счетчик с З/Н1).
Для обнаружения коллизий просто проверяем принятый ответ на правильность. Если ответ неправильный это означает что ответило сразу несколько приборов. Ответ считается неправильным если:
принятая «CRC» не совпала с расчетной;
произошла ошибка паритета;
принято байт меньше минимально возможной длинны пакета.
Блок-схема алгоритма поиска счётчиков при использовании расширенной адресации приведена в приложении Г.
3.9 Инструкция пользователя
Приведем решение основных задач, показанных в пункте 1.3. Решение любой задачи начинается с запуска приложения. При запуске приложения появляется окно, приведённое на рисунке 3.17.
Рисунок 3.17 – Стартовое окно приложения
В стартовом окне пользователь может:
по кнопке «Чтение» вручную считывать параметры счётчика;
по кнопке «Авто» автоматически считывать данные;
по кнопке «Запись» вносить изменения в параметры счётчика электроэнергии, такие как время, дата, пароль и другие;
производить чтение параметров по определённому сетевому адресу счётчика электроэнергии;
устанавливать параметры GSM-модема;
выбирать режимы чтения, записи и установки времени и даты на счётчике;
производить манипуляции с получателями;
просматривать таблицу, состоящую из основных параметров данных, полученных от счётчика электроэнергии.
В приложении имеется возможность перейти на вкладку «Настройки – Настройка основного порта», выбирать порт, по которому будет происходить обмен данными со счётчиком, и установить соответствующие параметры. Окно редактирования текущего подключения представлено на рисунке 3.18.
Рисунок 3.18 – Настройка порта
В данном окне пользователь имеет возможность:
указать имя подключения;
сетевой адрес устройства;
количество повторов при ошибках;
выбрать необходимый порт связи управляющего устройства (персонального компьютера) со счётчиком электроэнергии.
Выбрав необходимый порт для связи, пользователю предоставляется возможность расширенных настроек текущего порта, в которых пользователь может установить:
а) номер порта;
б) скорость обмена данными со счётчиком;
в) число стоповых бит;
г) управление потоком.
Также на вкладке индикация, представленной на рисунке 3.19, можно устанавливать отображаемые параметры счётчика электроэнергии при чтении в ручном и автоматическом режиме.
Рисунок 3.19 – Настройка индикатора
По нажатию кнопки «Чтение» программа автоматически считывает данные показания электросчётчика. Переходя по различным вкладкам программы, мы можем контролировать полученные данные со счётчика электроэнергии. На рисунках 3.20 – 3.27. приведены результаты выполнения программы.
Рисунок 3.20 – Основные
На вкладке «основные» пользователю предоставляются текущие параметры электросчётчика, в которых можно наблюдать за диаграммой токов и напряжений, протекающих через прибор. Также здесь указываются собственно напряжение, ток, мощность, частота тока, дата и время снятия показаний, а также тариф и сезон.
Рисунок 3.21 – Энергия
На вкладке «энергия» пользователь имеет возможность наблюдать за показателями активной и реактивной мощностями по одному или нескольким тарифам, которые удобно сведены в таблицу. Формат единиц измерения и число знаков после запятой устанавливается в соответствии с установленными настройками. Если же данный параметр не установлен, то формат и число знаков после запятой берутся напрямую из показаний, полученных от счётчика электронной энергии, которые устанавливаются на предприятии-производителе счётчиков.
Рисунок 3.22 – Мощность
На вкладке «мощность» пользователю представляются данные об активной и реактивной мощностях за некоторые периоды времени, так называемые «получасовки» (периоды с интервалом в 30 минут), представленные в виде таблицы. Также счётчик электрической энергии предоставляет возможность просматривать максимальные получасовые значения по каждой из видов мощности в отдельности.
Рисунок 3.23 – Срезы
Срезы энергии позволяют следить за количеством потребляемой энергии разных видов (активной/реактивной) в заданные периоды времени. Также приложение позволяет выбирать направление энергии, единицы измерения энергии и количество знаков после запятой, либо использовать формат электросчётчика, установленный на предприятии-производителе.
Рисунок 3.24 – Тарифы
На вкладке «тарифы» имеется возможность просматривать тарифы и тарифные зоны, устанавливать сезоны по месяцам года, а также при необходимости всё обнулять.
Рисунок 3.25 – Лимиты
На вкладке «лимиты» имеется возможность устанавливать тип тарификации по тарифам или лимитам. Если переключатель установлен в положение «использовать тарифы», то оплата за электроэнергию производится в соответствии с тарифами, установленными по месяцам. Если же переключатель установлен в положение «использовать лимиты», то пользователь имеет возможность задать предельно допустимые лимиты использования электроэнергии конкретным счётчиком. При превышении данного показателя счётчик сообщает о превышении установленного лимита потребления электроэнергии соответствующим счётчиком.
Рисунок 3.26 – Календарь
На вкладке «календарь» пользователь имеет возможность задавать выходные и праздничные дни, а также режим записи в сезонах, изменять время и дату начала сезонов, либо и вовсе запрещать смену сезонов.
Рисунок 3.27 – Конфигурация
На вкладке «конфигурация» пользователю выводятся основные данные по проверяемому счётчику электроэнергии:
тип, заводской номер, дата выпуска, сетевой, тип интерфейса и версия программного обеспечения счётчика;
идентификатор пользователя;
скорость обмена данными со счётчиком;
вид паритета;
число стоп-бит;
формат числа и единицы измерения энергии, мощности, напряжения и тока.
