- •Содержание
- •Перечень условных обозначений, символов и терминов
- •Введение
- •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.2 Протокол обмена данных со счётчиком
Диалог между управляющим компьютером (в дальнейшем УК) и счетчиком основан на принципе – главный-подчиненный. Роль главного всегда играет УК, а счетчик (счетчики) может быть только подчиненным. Для работы со счетчиком можно использовать два варианта протокола: протокол с адресацией по сетевому адресу (в дальнейшем базовый протокол), который может использоваться для любых счетчиков, а также протокол с адресацией по заводскому номеру (в дальнейшем протокол с расширенной адресацией), который может использоваться для счетчиков, начиная с версии 1.15 программного драйвера.
Основные положения базового протокола приведены ниже:
1 Протокол предусматривает одно главное и до 254 подчиненных устройств.
2 Сообщения, которыми обмениваются между собой главное и подчиненные устройства, помещаются в пакеты. Структура пакета представлена на рисунке 3.1.
Рисунок 3.1 – Структура пакета отправляемых данных
3 Каждое подчиненное устройство, включенное в сеть, имеет свой уникальный адрес.
4 Для широковещательного обмена зарезервированы два адреса 0 и 255. Все подчиненные устройства принявшие пакет с адресом 0 или 255 обязаны его исполнить. Пакет, содержащий 0 адрес, требует ответа от подчиненного устройства, а пакет с адресом 255 ответа не требует.
5 Для повышения надежности передачи используется избыточный циклический код (CRC).
6 Байты, принадлежащие одному пакету должны передаваться непрерывным потоком.
7 Тайм-аут между байтами больший, чем время передачи 7 байт является признаком завершения пакета. Если скорость обмена меньше 150 бод, тайм-аут равен 500 мс.
8 Если в пакет помещается тип данных, состоящий из нескольких байт, то самый младший байт типа данных должен следовать первым.
Поля «адрес», «функция» и «CRC» составляют обрамление пакета, а поле «сообщение» – содержимое пакета. Поле «адрес» имеет размерность 1 байт и содержит сетевой адрес счетчика или широковещательный адрес, поле «функция» тоже однобайтное и определяет функцию, выполняемую пакетом. Допустимые значения этого поля будут подробно определены ниже. Поле «CRC» это 2-х байтное число представляющее собой результат шифрования циклическим кодом полей «адрес», «функция» и «сообщение». Более подробно о контроле циклическим кодом и пример его расчета будут приведены ниже.
Наполнение поля «сообщение» зависит от функции выполняемой пакетом. Инициатива обмена всегда принадлежит УК, он формирует пакет запроса, передает его в линию и ожидает ответ от счетчика. В свою очередь все счетчики «прослушивают» линию и если пакет запроса принят без искажений, проверяют поле «адрес» и если оно равно 0 или 255, или совпадает с собственным адресом, то обнаруживший совпадение счетчик приступает к выполнению команды. После выполнения команды снова анализируется адрес и если он не равен 255, то отправляется ответ в линию. Время выполнения запроса зависит от его типа. Время выполнения запросов при чтении параметров из счетчика, как правило, не превышает 0,2 с. Модификация/обнуление параметров счетчика может составлять от 1 до 2 с.
В ответном пакете поле «адрес» совпадает с соответствующим полем команды. Если счетчик может обработать команду, то поле «функция» не изменяется, в противном случае старший бит этого поля устанавливается в 1. Наполнение поля «сообщение» зависит от команды. При использовании команд модификации и обнуления необходимо иметь в виду, что не все параметры могут быть изменены, а также то, что выполнение этих команд возможно только при отключении защиты. Начиная с версии 1.15, появилась возможность адресации по заводскому номеру. Структура пакета отправляемых данных представлена на рисунке 3.2.
Рисунок 3.2 – Структура пакета отправляемых данных
Начиная с версии 1.21, появилась возможность передачи длины, и номера пакета. Структура пакета отправляемых данных представлена на рисунке 3.3.
Рисунок 3.3 – Структура пакета отправляемых данных
При этом полностью сохраняется возможность работы со счетчиком по его сетевому адресу. Основные положения протокола с расширенной адресацией приведены ниже:
протокол предусматривает одно главное и любое количество подчиненных устройств (подчиненные устройства должны иметь уникальные заводские номера);
сообщения, которыми обмениваются между собой главное и подчиненные устройства, помещаются в пакеты. Структуры пакетов были представлены выше;
для повышения надежности передачи используется избыточный циклический код (CRC);
байты, принадлежащие одному пакету должны передаваться непрерывным потоком для пакетов типа 1, для пакетов типа 2 и 3 допускаются разрывы в потоке данных длительностью не более 500 мс;
тайм-аут между байтами больший, чем время передачи 7 байт является признаком завершения пакета для пакетов типа 1, для пакетов типа 2 и 3 признаком завершения пакета является прием количества байт указанных в длине пакета; если в пакет помещается тип данных, состоящий из нескольких байт, то самый младший байт типа данных должен следовать первым.
Поле «заголовок» всегда постоянно и содержит два байта [0xFF, 0x7F]. Данное поле означает, что будет использоваться расширенная адресация. Поле «len» содержит байт длины пакета. Длина пакета считается целиком, с учетом заголовка и контрольной суммы. Поле «num» содержит однобайтный номер пакета. Номер пакета в ответном сообщении счетчика должен совпадать с номером пакета в запросе. Таким образом, можно проверить, что ответ пришел именно на наш запрос. Поле «адрес» содержит сетевой адрес счетчика, которому предназначен запрос. Нулевое значение адресует счетчики с любым сетевым адресом. Размерность поля составляет один байт.
Маска заводского номера может содержать любые символы заводского номера и символ «?». Размер данного поля 8 байт. Символ «?» означает, что в данной позиции может находиться любой символ. Например, маска «1???????» адресует счетчики с заводскими номерами, начинающимися на «1», а маска «????????» адресует все счетчики (широковещательный запрос). Размер и содержание полей «функция» и «сообщение» аналогично таковым в базовом протоколе. Поле «инверсия CRC» это 2-х байтное число, представляющее собой результат шифрования циклическим кодом всего тела пакета. Рассчитывается так же как для базового протокола и инвертируется побитно. При использовании расширенной адресации можно организовать поиск счетчиков по их заводским номерам. Подробнее про алгоритм поиска счетчиков будет описано ниже.
