Advanced Serial Data Logger

Trust In Confidence!

Для Win2000 - Windows 11 (2022) (Server, x86, x64). Последняя версия: 4.7.7 build 408. 8 апреля 2024.


Анализ и парсинг данных от весов

Описание проблемы:

Я получаю значение веса из весов каждые несколько секунд, и я хочу, полученное через последовательный порт значение, передавать в базу данных, вместе с меткой даты и времени. Я хочу, чтобы программа стартовала автоматически при старте Windows и не требовала участия человека. База данных расположена на сетевом диске и эта база данных не будет использоваться, если запущена программа.

Serial data captured
Рис.1. Принятые данные

Требования:

  • Advanced Serial Data Logger (ASDL) Professional или пробная версия;
  • Модуль "ASCII data parser and query" для Advanced Serial Data Logger;
  • Модуль "DDE server" для логгера (опционально, для тестирования);
  • Модуль "ODBC database" для логгера.

Подразумевается что:

Вы настроили параметры связи с устройством (скорость, количество бит данных, контроль передачи и т.п.) в логгере и можете принимать данные без каких либо ошибок.

Решение:

На рисунке №1 выше видно, что данные имеют простой формат. Каждая запись имеет фиксированную длину и фиксированную позицию каждого элемента в ней. Данные не содержат непечатных символов в строке. Теперь, необходимо определить символы окончания пакета данных, по которым программа сможет выделять пакет данных из общего потока. Пожалуйста, включите вывод на экран непечатных символов, у которых код символа меньше 0x20h. Пожалуйста, установите опции с рисунка ниже. Вам необходимо создать конфигурацию для порта, если вы не сделали этого ранее, с помощью кнопки "Плюс" в главном окне программы.

Weight data logger. Serial data view setup
Рис.2. Логгер для весов. Настройка вида данных

Затем кликните по кнопке "OK" и попробуйте принять данных из порта. Вы должны получить данные, как на рисунке ниже.

Weight data logger. Data received
Рис.3. Логгер для весов. Принятые данные.

Это другой вид принятых данных. Все непечатные символы были заменены на их код вида #0D. Теперь очевидно, что пакет данных (в зеленом прямоугольнике) заканчивается на #0D (подчеркнуто красным). У пакета данных нет признака начала пакета.

Теперь мы готовы к настройке модулей. Сначала, пожалуйста, выберите модуль "ASCII data parser and query" (рис.4a, поз.1) из выпадающего списка. Затем, включите анализ и экспорт для принимаемых данных (рис. 4a, поз. 2). Модуль "DDE server" (рис.4b, поз.3) поможет нам проверить, что парсер правильно разбирает пакет данных. После окончания настройки его можно будет отключить для экономии ресурсов. Модуль "ODBC database" будет экспортировать данные в базу данных Microsoft Access (рис.4b, поз.4).

Weight data logger. The data parser plug-in setup
Рис.4a. Логгер для весов. Активация парсера.

Weight data logger. Data export plug-ins setup
Рис.4b. Логгер для весов. Выбор модулей экспорта данных.

Сейчас, пожалуйста, откройте окно настройки модуля "ASCII parser and query" (кликните на кнопке "Настроить" рядом с выпадающим списком рис.4a, поз.1). Окно настройки появится на экране (рис.5).

Weight data logger. Parser configuration window
Рис.5. Логгер для весов. Настройка парсера.

Процесс настройки должен быть простым, если предварительно был выяснен формат данных в главном окне логгера данных (рис.4). Вы должны ввести данные в том же виде, что и в главном окне программы в поле №2. Поле №2 задает окончание блока данных и в нашем случае должно содержать #0A#0D#0A. Вы должны ввести значения с рис. 3, подчеркнутые красным. Поле №1 оставляем пустым, поскольку у нас нет признака начала пакета данных.

Поскольку поток данных может содержать пакеты данных, которые нам не нужно экспортировать, то мы добавили два правила фильтрации, характеризующие эти пакеты данных (рис.6). Вы можете добавить новые правила, кликнув на кнопке "Добавить". В нашем случае мы исключаем все пакеты, содержащие слова "O" или "T" (регистр символов учитывается в поле "Выражение").

Weight data logger. Filter settings
Рис.6. Логгер для весов. Фильтр.

Следующая закладка является очень важной частью конфигурации (рис.7). Парсер использует эти данные для того, чтобы выделить переменные из пакета данных. Наш пакет данных содержит 2 элемента (рис.1), первый символ и значение, которые должны быть помещены в различные переменные. Далее эти переменные будут использоваться в модулях фильтрации и экспорта данных. В нашем примере значения этих переменных будут записываться в разные колонки БД MS Access.

Weight data logger. Parser items
Рис.7. Логгер для весов. Переменные парсера.

Необходимо добавить все необходимые переменные, кликнув по кнопке "Добавить" (рис.7, поз.7). Перед добавлением переменной программа попросит ввести описание переменной. Вы можете ввести любое описание, которое поможет вам запомнить содержимое этой переменной. Мы добавили все переменные с соответствующими описаниями на рис.7.

Каждая переменная парсера имеет несколько свойств:

  1. Имя переменной - это имя будет связано с колонкой в модуле экспорта данных. Это имя должно состоять только из латинских букв и цифр;
  2. Тип обработки данных - это метод, который программа будет использовать для выделения данных из пакета данных. Парсер поддерживает несколько методов от наиболее простого способа, до самого универсального и мощного. В нашем случае, когда все данные располагаются в фиксированной позиции, мы можем использовать простой метод "Фиксированная позиция". Этот метод позволяет получить любое количество символов, начиная с любой позиции в пакете данных;
  3. Тип данных - тип данных переменной. В нашем примере будет использоваться только тип данных STRING. Модуль позволяет определить некоторые опции, которые будут использоваться для преобразования данных с этим типом данных (см. закладку "Формат данных");
  4. Значение по умолчанию - это значение будет использоваться, когда данные не могут быть извлечены из указанной позиции и преобразованы в указанный тип данных;
  5. Фиксированная позиция - это позиция в пакете данных первого символа того значения, которое нужно извлечь и поместить в переменную. Минимальное значение равно 1;
  6. Фиксированная длина - это количество символов (включая все непечатные символы) которые необходимо извлечь и поместить в переменную. Минимальное значение равно 1.

На следующей закладке (рис.8) вы можете определить основные опции форматирования и преобразования значений. Поскольку мы определили тип данных "String" для некоторых переменных, поэтому первые две опции позволяют удалять пробелы в начале и конце значения.

Weight data logger. Format of items
Рис.8. Логгер для весов. Формат переменных.

Другие опции не требуется настраивать, поскольку у нас не заданы переменные с типом "datetime", "date" или "time".

Пожалуйста, кликните на кнопке "OK" в окне настройки парсера и затем на кнопке "OK" в окне настройки конфигурации.

Теперь наш парсер настроен и пришло время проверить его. Подсоедините ваше устройство или включите его, если это необходимо. Попробуйте принять пакет данных от устройства. Если парсер был верно настроен, то в окне DDE сервера будут отображены наши переменные и их значения (рис.9).

Weight data logger. DDE server window
Рис.9. Логгер для весов. Окно сервера DDE.

Теперь все переменные парсера готовы для экспорта в базу данных. Как это сделать, описано во второй части.

Сопутствующие статьи: