Автоматическое считывание счетчиков

В этом примере показано, как использовать Communications Toolbox™ для чтения служебных счетчиков путем обработки сигналов Стандартного сообщения потребления (SCM) и сигналов Интервала данных (IDM), которые излучаются приемо-передатчиком энкодера (ERT) совместимого счетчика. Можно использовать или зарегистрированные данные из файла или получить беспроводные сигналы в режиме реального времени с помощью радио RTL-SDR или ADALM-PLUTO.

В Simulink ® можно исследовать пример автоматического чтения счетчика в Simulink.

Необходимое аппаратное и программное обеспечение

Чтобы запустить этот пример с использованием записанных данных из файла, вам нужен Communications Toolbox™.

Для приема сигналов в режиме реального времени необходимо также одно из таких устройств SDR и соответствующий пакет поддержки дополнение:

  • Радио RTL-SDR и соответствующий пакет поддержки Communications Toolbox для радио RTL-SDR

  • Радио ADALM-PLUTO и соответствующий пакет поддержки Communications Toolbox для радио ADALM-PLUTO

Для получения дополнительной информации см. страницу обнаружения Программно определяемого радио (SDR).

Фон

Автоматическое чтение счетчика (AMR) является технологией, которая автономно собирает данные о потреблении и состоянии из коммунальных счетчиков (таких как электрические, газовые, или водяные счетчики) и поставляет данные коммунальным провайдерам в биллинговых или аналитических целях. Система AMR использует сообщения радиочастоты (RF) малой степени, чтобы передать показания счетчика к удаленному приемнику. Свойства радиочастотной передачи включают:

  • Частота передачи в области значений: 910-920 МГц

  • Скорость передачи данных: 32768 bps

  • Двухфазная кодированная сигнализация Manchester

SCM и IDM являются двумя типами обычных типов сообщений, которые отправляют счетчики. Пакеты SCM используются с фиксированной длиной 96 бит, в то время как пакеты IDM используются с фиксированной длиной 736 бит. В этих таблицах показан формат пакета SCM и сообщений IDM:

Счетчики, способные отправлять сообщения SCM и IDM, передают их по одному каналу с разделением приблизительно 275 мс. Каждый счетчик передает сообщения SCM и IDM на нескольких частотах с помощью шаблона скачкообразного изменения. Фактические частоты передачи, шаблон скачкообразной перестройки частот и временной интервал между переданиями являются случайными, чтобы избежать помех от других передач. Для получения дополнительной информации см. ссылку [1].

Пример запуска

Когда вы запускаете пример:

  • Приемник инициализирует параметры симуляции и вычисляет параметры AMR.

  • На отображении средства просмотра данных показаны идентификатор счетчика, информация о потреблении и тип товара.

  • Цикл симуляции вызывает источник сигнала, физический слой, анализатор сообщений и средство просмотра данных.

  • Цикл обработки отслеживает время радиосвязи, используя длительность системы координат.

  • Отображение обновляется для каждого захвата данных, показывая уникальные идентификаторы счетчиков с последней информацией о потреблении.

Инициализация параметров

Источником сигнала по умолчанию является 'File', который запускает пример, используя записанный файл сгенерированного модулированного сигнала частот amr_capture_01.bb. Чтобы запустить пример с использованием RTL или ADALM-PLUTO SDR, измените настройку для signalSource при вызове файла helperAMRInit.m. Допустимые опции для signalSource 'File', 'RTL-SDR' и 'ADALM-PLUTO'.

signalSource = 'File';
initParam = helperAMRInit(signalSource);

% Calculate AMR system parameters based on the initialized parameters
[amrParam,sigSrc] = helperAMRConfig(initParam);

% Create the data viewer object
viewer = helperAMRViewer('MeterID',initParam.MeterID, ...
    'LogData',initParam.LogData, ...
    'LogFilename',initParam.LogFilename, ...
    'Fc',amrParam.CenterFrequency, ...
    'SignalSourceType',initParam.SignalSourceType);

start(viewer);
radioTime = 0; % Initialize the radio time

% Main Processing Loop
while radioTime < initParam.Duration
    rcvdSignal = sigSrc();
    amrBits = helperAMRRxPHY(rcvdSignal,amrParam);
    amrMessages = helperAMRMessageParser(amrBits,amrParam);
    update(viewer,amrMessages);
    radioTime = radioTime + amrParam.FrameDuration;
end

stop(viewer); % Stop the viewer
release(sigSrc); % Release the signal source

Структура кода приемника

Блок- график суммирует структуру кода приемника. Обработка состоит из четырех основных частей: Signal Source, Physical Layer, Message Parser и Data Viewer.

Источник сигнала

Этот пример может использовать три источника сигналов:

  1. «Файл»: Беспроводные сигналы, записанные в файл и считанные с помощью объекта Baseband File Reader в 1.0 Msps

  2. «RTL-SDR»: радио RTL-SDR со скоростью дискретизации 1,0 Msps

  3. «ADALM-PLUTO»: радио ADALM-PLUTO со скоростью дискретизации 1,0 Msps

Если вы назначаете «RTL-SDR» или «ADALM-PLUTO» в качестве источника сигнала, то в примере компьютер ищет указанное вами радио или радио RTL-SDR по радио-адресу '0' или радио ADALM-PLUTO по радио-адресу 'usb: 0

Физический слой

Выборки основной полосы частот, принятые от источника сигнала, обрабатываются физическим слоем (PHY) для получения пакетов, которые содержат информацию SCM или IDM. Эта схема показывает обработку приема физического слоя.

Радио RTL-SDR способно использовать частоту дискретизации в области значений 225-300 кГц или 900-2560 кГц. Радио ADALM-PLUTO способно использовать частоту дискретизации в области значений 520 kHz-61.44 МГц. Частота дискретизации 1,0 Msps используется, чтобы получить достаточное количество выборок на бит закодированных данных Манчестер. Для каждой частоты в шаблоне скачкообразного изменения передается каждый пакет данных AMR. Скачкообразное изменение частоты позволяет повысить надежность с течением времени. Поскольку каждый пакет передается на каждом скачке частоты, достаточно контролировать только одну частоту для этого примера. Радио настраивается на центральную частоту 915 МГц для всего времени выполнения симуляции.

Полученные комплексные выборки демодулируются амплитудой путем извлечения их величины. Включенное кодирование Манчестер подразумевает, что блок выбора битов включает в себя восстановление синхроимпульса. Этот блок выводит битовые последовательности (игнорирующие время простоя в передаче), которые впоследствии проверяются на известную преамбулу. Если преамбула совпадает, битовая последовательность дополнительно декодируется, в противном случае она отбрасывается и обрабатывается следующая последовательность.

Когда для битовой последовательности найдена известная преамбула SCM, принятые биты сообщения декодируются с использованием укороченного (255 239) кода BCH, который может исправлять до двух битовых ошибок. В случае, когда найдена известная преамбула IDM, приемник выполняет циклическую проверку избыточности (CRC) серийного номера счетчика и всего пакета, начиная с типа пакета (5-й байт), чтобы определить, является ли пакет действительным. Действительные исправленные сообщения передаются в анализатор сообщений AMR.

Анализатор сообщений

Для действительного сообщения биты затем анализируются в конкретные поля формата SCM или IDM.

Средство просмотра данных

Средство просмотра данных показывает декодированные пакеты на отдельной фигуре MATLAB. Для каждого успешно декодированного пакета показаны идентификатор счетчика, тип товара, тип пакета AMR, информация о потреблении и время захвата. Когда данные захватываются и декодируются, приложение перечисляет информацию, декодированную из этих сообщений, в табличной форме. В таблице перечислены только уникальные идентификаторы счетчиков с их последней информацией о потреблении.

Можно также изменить идентификатор счетчика и начать логгирование текстовых файлов с помощью средства просмотра данных.

  • Идентификатор счетчика - измените идентификатор счетчика с 0, который является значением по умолчанию и зарезервирован для отображения всех обнаруженных счетчиков, на определенный идентификатор счетчика, который вы хотели бы отобразить.

  • Журнал данных в файл - Сохраните декодированные сообщения в файле TXT. Сохраненные данные можно использовать для постобработки.

Дальнейшие исследования

Файл данных, сопровождающий пример, имеет только одно считывание счетчика и был захвачен в центральной частоте 915 МГц. Используя RTL-SDR или ADALM-PLUTO, пример будет отображать показания от нескольких метров, когда он запускается в течение более длительного периода в жилом районе.

Можно дополнительно изучить сигналы AMR с помощью пользовательского интерфейса AMRExampleApp. Это приложение позволяет вам выбрать источник сигнала и изменить центральную частоту RTL-SDR или ADALM-PLUTO. Эта ссылка запускает приложение AMRExampleApp, показанное здесь.

Вы также можете исследовать следующие функции для деталей физического слоя, форматов сообщений AMR:

Версия примера, которая работает с несколькими радиостанциями, является amrMultipleRadios.m. Это позволяет вам исследовать шаблоны скачка частоты для метра, задавая различные центральные частоты на каждое доступное радио устройство. Скрипт установлен для двух радиостанций, но может быть расширен на любой номер.

Избранная библиография

  1. Автоматическое считывание счетчиков, https://en.wikipedia.org/wiki/Encoder_receiver_transmitter, 2016.

  2. Itron Электрические счетчики, https://www.itron.com/na/industries/electricity, 2017.