Данные из COM порта и Excel. Построение графиков в реальном времени. Обучающий пример.Сценарий проблемы: Я хочу подсоединить порт RS-232 в MS Excel. Порт будет выдавать поток данных ASCII. Я хочу, чтобы Excel автоматически получал и отображал данные ASCII, как подобие осциллографа. Если необходимо, то я могу изменить формат исходных данных.
Рис.1. Данные из COM порта и Excel. Исходные данные Требования:
Подразумевается что: Вы настроили параметры связи с устройством (скорость, количество бит данных, контроль передачи и т.п.) в логгере и можете принимать данные без каких либо ошибок. Вы можете работать в Microsoft Excel, в частности создавать и использовать формы. Решение: На рисунке выше видно, что формат данных очень просто, но нам необходимо выделять значения переменных из отчета с несколькими строками. В тоже время на рисунке видно, что отчет не содержит непечатных символов, но также не видно признаков начала и окончания пакета данных. Для начала, мы должны определить символы начала и окончания пакетов. Пожалуйста, включите отображение непечатных символов с кодом меньше чем 0x20h. Если у вас не задано ни одной конфигурации, то ее необходимо создать, кликнув на кнопке "Плюс" в главном окне программы.
Рис.2. Данные из COM порта и Excel. Настройка вида данных. Затем кликните по кнопке"OK" и попробуйте принять данные из COM порта. Вы должны получить что-то вида как на рисунке ниже.
Рис.3. Данные из COM порта и Excel. Принятые данные. Это другой вид исходных данных. Заметьте, что все непечатные символы были заменены на их код вида #0D. Это более наглядная форма представления данных и из нее видно, что пакет данных (в зеленом прямоугольнике) начинается с TLFLOW и заканчивается тремя парами символов CR+LF (#0D#0A#0D#0A#0D#0A) (подчеркнуто красным). Теперь мы готовы к настройке модулей. Сначала, пожалуйста, выберите модуль "ASCII data parser and query" (рис.4a, поз.1) из выпадающего списка. Затем, включите анализ и экспорт для принимаемых данных (рис. 4a, поз. 2). Модуль "DDE server" (рис.4b, поз.3) поможет нам проверить, что парсер правильно разбирает пакет данных. Модуль "Direct Excel Connection" будет записывать разобранные парсером данные непосредственно в документ Excel.
Рис.4a. Данные из COM порта и Excel. Активация парсера.
Рис.4b. Данные из COM порта и Excel. Выбор модулей экспорта. Сейчас, пожалуйста, откройте окно настройки модуля "ASCII parser and query" (кликните на кнопке "Настроить" рядом с выпадающим списком рис.4а, поз.1). Окно настройки появится на экране (рис.5).
Рис.5. Данные из COM порта и Excel. Настройка парсера. Процесс настройки должен быть простым, если предварительно был выяснен формат данных в главном окне логгера данных (рис.3). Вы должны ввести данные в том же виде, что и в главном окне программы в полях 1 и 2. Поле №1 задает начало блока данных, а поле №2 задает его окончание. В этом примере блок данных содержит оба признака блока данных, поэтому поле №1 и поле №2 нужно заполнить соответствующими значениями, которые подчеркнуты красным на рис.3. Поскольку отчет с данными очень длинный нам нужно увеличить значение в поле "Таймаут" (рис.5 поз.#3) для предотвращения потери данных. Опция в позиции №4 позволяет использовать метки блока данных в разборе данных. Следующая закладка является очень важной частью конфигурации (рис.6). Парсер использует эти данные для того, чтобы выделить переменные из пакета данных. Наш пакет данных содержит 28 элементов (рис.1) с именами вида DDATE, DTIME, TLFLOW, TLVOLM, которые должны быть помещены в различные переменные. Далее эти переменные будут использоваться в модулях фильтрации и экспорта данных. В нашем примере значения этих переменных будут записываться в разные колонки результирующего XLS файла. Файл настроек со всеми переменными лежит здесь, и вы можете загрузить его для ознакомления на странице "Парсинг" (рис.6 поз.#8).
Рис.6. Данные из COM порта и Excel. Переменные парсера. Для добавления новой переменной в список необходимо кликнуть по кнопке "Добавить" (рис.6, поз.7). Перед добавлением переменной программа попросит ввести описание переменной. Вы можете ввести любое описание, которое поможет вам запомнить содержимое этой переменной. Мы добавили все переменные с соответствующими описаниями на рис.6 Каждая переменная парсера имеет несколько свойств:
Все переменные имеют идентичные параметры, за исключением номера вхождения. На следующей закладке (рис.7) вы можете определить основные опции форматирования и преобразования значений. В этом примере у нас есть переменные с типами "date" и "time". Поэтому первая опция позволяет определить маску, по которой строковое значение даты будет преобразовано в переменную с типом данных "date". Мы указали MM"."DD"."YY и HH"."NN"."SS здесь, в соответствии с требованиями описанными выше. Для более подробного описания символов, которые могут использоваться в маске, пожалуйста, обратитесь к файлу справки. Вторая опция служит для преобразования строковых значений в тип данных "time".
Рис.7. Данные из COM порта и Excel. Форматирование переменных. Другие опции не нужно настраивать, поскольку у нас нет переменных с типом данных "datetime" или "string". Пожалуйста, кликните на кнопке "OK" в окне настройки парсера и затем на кнопке "OK" в окне настройки конфигурации. Теперь наш парсер настроен и пришло время проверить его. Подсоедините ваше устройство или включите его, если это необходимо. Попробуйте принять пакет данных от устройства. Если парсер был верно настроен, то в окне DDE сервера будут отображены наши переменные и их значения (рис.8).
Рис.8. Данные из COM порта и Excel. Окно DDE сервера. Теперь все переменные парсера готовы для экспорта в Excel с помощью модуля "Direct Excel Connection". Как это сделать, описано во второй части. Для экспорта данных в нужный вам формат, посетите соответствующую страницу по ссылке ниже:
|