Логгер данных измерителя давления
Логгер данных измерителя давления
Нам необходимо программное обеспечение, которое может протоколировать данные от интеллектуального измерителя давления от компании Paroscientific Inc в нашей системе сбора данных. Paroscientific
это лидер в области точных измерителей давления, с разрешением лучше, чем 0.0001% и типовой точностью 0.01%, которые возможны при сложных условиях эксплуатации.
Когда Advanced Serial Data Logger получает данные из последовательного порта, он добавляет метку даты и времени.
Мы используем приборы серии Digiquartz ®. Описание интерфейса для этого устройства RS-232 есть на сайте компании производителя.
Краткое описание устройства
Digiquartz ® Intelligent Transmitters, Portable Pressure Standards, Intelligent
Depth Sensors, станции MET, и Water Stage Sensors представляют собой стандартный преобразователь давления от компании Paroscientific и плату цифрового интерфейса в одном корпусе. Плата цифрового интерфейса также поставляется отдельно для пользовательских систем, построенных на базе совместимого оборудования.
Программирование и исполнение одинаково для всех систем. Цифровая плата содержит счетчик на основе микропроцессора и порт RS-232. Микропроцессор выполняет программу, записанную в ПЗУ (EPROM). Параметры пользователя хранятся в перезаписываемой памяти (EEPROM). Пользователь взаимодействует с прибором через двунаправленный интерфейс RS-232.
Микропроцессор ожидает команд от компьютера. Когда поступает команда на снятие измерения,
микропроцессор выбирает соответствующий источник частоты, производит измерения, используя счетчик с задающей частотой 14.74 MHz. Период интегрирования счетчика задается пользователем. Некоторые команды требуют одновременного измерения сигналов температуры и давления. В этом случае, первой измеряется температура,
затем давление. Когда измерения завершены, то микропроцессор производит соответствующие вычисления и выводит данные через порт RS-232.
Краткое описание протокола
Все команды имеют формат вида: *ddsscc__<cr><lf>
- Данные пересылаются в виде 8 бит данных, без контроля четности, с одним стоповым битом или 7 бит данных с контролем четности, одним стоповым битом. Устанавливается командой PT.
- Каждая команда начинается звездочкой (*).
- Следующие 2 цифры, dd задают получателя команды (00-99). Управляющий компьютер (IBM PC, etc.) имеет адрес 00,
а получатели могут иметь адрес от 01 до 98.
Адрес 99 используется для "всех". Передатчик прибора отвечает только на собственный адрес или на 99.
- Следующие 2 цифры, ss, задают источник сообщения(00-98).
- Следующие 2 символа, cc, указывают тип сообщения,
который могут быть продолжены дополнительными символами для некоторых команд. Символы должны быть в верхнем регистре. Ответные сообщения могут заменять символы cc.
- Каждое сообщение завершается символами перевода строки <cr> или <lf>.
- Неопределенные команды игнорируются.
- Если команда поступает до выполнения предыдущей команды, то предыдущая команда отменяется.
Типовое сообщение от ПК к передатчику #1 с запросом на измерение давления: *0100P3 <cr> <lf>
Типовой ответ от передатчика к ПК: *000114.573 <cr> <lf>
Требования:
Подразумевается что:
Вы настроили параметры связи с устройством (скорость, количество бит данных, контроль передачи и т.п.) в логгере и можете принимать данные без каких либо ошибок.
Решение:
Спасибо компании Paroscientific за детальное описание протокола RS-232. Из описания выше видно, что поток данных содержит следующие непечатные символы (CR и LF). Если вы хотите убедиться в этом, то установите следующие опции. Опция в позиции №3 позволяет выделить запросы к устройству от ответов в главном окне программы.
Рис.1. Логгер для измерителя давления. Настройка вида данных
Теперь, кликните по кнопке "OK"и попробуйте принять данные из COM порта. Ничего? Правильно, поскольку описание протокола говорит, что необходимо отправлять запрос к устройству со стороны компьютера. Хорошо. Все просто. Нам необходимо активировать модули. Сначала, пожалуйста, выберите модуль "ASCII data parser and query" (рис.2a, поз.1) из выпадающего списка модулей запроса данных и списка модулей обработки данных (рис.2a, поз.2). Затем, включите анализ и экспорт для принимаемых данных (рис. 2a, поз. 3). Модуль "DDE server" (рис.2b, поз.3) поможет нам проверить, что парсер правильно разбирает пакет данных. После окончания настройки его можно будет отключить для экономии ресурсов. Модуль "Local database" будет экспортировать данные в файлы Microsoft Excel (рис.2b, поз.4).
Рис.2a. Логгер для измерителя давления. Активация модулей запроса и обработки данных.
Рис.2b. Логгер для измерителя давления. Выбор модулей экспорта.
Теперь, пожалуйста, откройте окно настройки модуля запроса данных "ASCII data query", кликнув на кнопке "Настроить" рядом с первым выпадающим списком на рис. 2a в поз.1. На рабочем столе появится диалоговое окно показанное ниже (рис.3).
Рис.3. Логгер для измерителя давления. Запрос данных.
Данное окно позволяет вам добавить один или несколько запросов. Все добавленные запросы (рис.3, поз.1) отображаются в списке запросов (рис.3, поз.4).
Каждый запрос имеет ряд свойств: данные запроса (рис.3, поз.2) и интервал отправки запроса (рис.3, поз.3). Вы можете отредактировать запрос, дважды кликнув на нем в списке.
Для добавления нового запроса необходимо кликнуть на кнопке "Добавить" (рис.3, поз. 5). В результате появится новое диалоговое окно (рис.4).
Рис.4. Логгер для измерителя давления. Параметры запроса.
Каждый запрос имеет ряд свойств:
- Строка запроса (рис.4, поз.1) - просто укажите запрос из описания протокола здесь и добавьте шестнадцатеричные коды для непечатных символов CR и LF в конце строки запроса. Каждый шестнадцатеричный код должен содержать символ-префикс "#". Например: #0D или #0A;
- Интервал опроса (рис.4, поз.2) - модуль будет отсылать новый запрос через указанный интервал.
В этом примере модуль будет опрашивать устройство каждую секунду;
- В указанное время - вы должны указать время суток, когда программа будет отправлять запрос;
- Ожидать ответ - программа не будет отправлять новый запрос до тех пор, пока не будет принят ответ или не истечет указанный интервал.
Теперь, кликните на кнопке "OK" в этом диалоговом окне. Модуль добавит запрос в список (рис. 3, поз.1).
Замечание: Вы можете добавить байт с любым кодом в запрос. Например, если вы хотите отослать байт с шестнадцатеричным кодом 0x02 в устройство, то напечатайте #02 в строке запроса. Если вы хотите отправить символ "#", то напечатайте его дважды: "##".
Пожалуйста, откройте следующую страницу (рис.5), кликнув по кнопке "Парсер", а затем кликнув на кнопке "Пакет данных".
Рис.5. Логгер для измерителя давления. Настройка парсера.
На этой странице вы должны указать признаки начала и окончания пакета данных. Поле №1 задает начало блока данных и в нашем случае должно содержать символ "*". Поле №2 задает окончание блока данных и в нашем случае должно содержать #0D#0A. В поле №3 подкорректируем значение таймаута, чтобы исключить ошибочные ситуации, когда принят признак начала пакета данных, а признак окончания пакета был потерян. Опция в позиции №4 позволяет нам с легкостью добавить метку даты и времени к нашим данным.
Следующая закладка является очень важной частью конфигурации (рис.6). Парсер использует эти данные для того, чтобы выделить переменные из пакета данных. Наш пакет данных содержит четыре элемента (рис.1) дату и время, номер вызывающей стороны, номер вызываемого абонента и длительность звонка в секундах, которые должны быть помещены в различные переменные. Далее эти переменные будут использоваться в модулях фильтрации и экспорта данных. В нашем примере значения этих переменных будут записываться в разные колонки файла Microsoft Excel.
Рис.6. Логгер для измерителя давления. Переменные парсера.
Необходимо добавить все необходимые переменные, кликнув по кнопке "Добавить" (рис.6, поз.7). Перед добавлением переменной программа попросит ввести описание переменной. Вы можете ввести любое описание, которое поможет вам запомнить содержимое этой переменной. Мы добавили все переменные с соответствующими описаниями на рис.6.
Каждая переменная парсера имеет несколько свойств:
- Имя переменной - это имя будет связано с колонкой в модуле экспорта данных. Это имя должно состоять только из латинских букв и цифр;
- Тип обработки данных - это метод, который программа будет использовать для выделения данных из пакета данных. Парсер поддерживает несколько методов от наиболее простого способа, до самого универсального и мощного. В нашем случае, когда все данные располагаются в фиксированной позиции, мы можем использовать простой метод "Фиксированная позиция". Этот метод позволяет получить любое количество символов, начиная с любой позиции в пакете данных;
- Тип данных - тип данных переменной. В нашем примере будет использоваться тип данных FLOAT;
- Значение по умолчанию - это значение будет использоваться, когда данные не могут быть извлечены из указанной позиции и преобразованы в указанный тип данных;
- Фиксированная позиция - это позиция в пакете данных первого символа того значения, которое нужно извлечь и поместить в переменную. Минимальное значение равно 1;
- Фиксированная длина - это количество символов (включая все непечатные символы) которые необходимо извлечь и поместить в переменную. Минимальное значение равно 1.
Другие опции не требуется настраивать, поскольку у нас не заданы переменные с типом данных "datetime" или "string" и нам не нужно фильтровать данные.
Пожалуйста, кликните на кнопке "OK" в окне настройки парсера и затем на кнопке "OK" в окне настройки конфигурации.
Теперь наш парсер настроен и пришло время проверить его. Подсоедините ваше устройство или включите его, если это необходимо. В главном окне программы будут отображаться запросы и ответы. Если парсер был верно настроен, то в окне DDE сервера будут отображены наши переменные и их значения (рис.8)
Рис.7. Логгер для измерителя давления. Принятые данные.
Это другой вид принятых данных. Все непечатные символы были заменены на их код вида #0D. Теперь очевидно, что пакет данных (подчеркнут зеленым) заканчивается на #0D#0A (подчеркнуто красным). Все запросы подсвечены желтым цветом.
Если парсер настроен верно, то в окне DDE сервера, на закладке "Активные переменные" будут отображаться имена переменных и их значения (рис.8).
Рис.8. Логгер для измерителя давления. Окно DDE сервера.
Теперь все переменные готовы для экспорта в любую базу данных, Microsoft Excel или Microsoft Access.
Сопутствующие статьи: Логгер данных измерителя давления