Отримання даних в excel через інтерфейс dde за допомогою модуля dde server

Верси для друку

Лабораторний інструмент має RS232 порт, через який виводяться дані кожні 10 хвилин. Я хотів би використовувати значення з виведених даних в формах, формулах і моїх скриптах VBA в документах Microsoft Excel.

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

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

Ви можете працювати в Microsoft Excel, зокрема створювати та використовувати форми.

Зауваження: Цей приклад базується на попередньому прикладі з ім'ям "Дані з послідовного порту і Excel. Малювання графіків в реальному часі". Цей приклад буде використовувати налаштування парсеру і приклад даних їх цього прикладу. Тому ви можете прочитати цей навчальний приклад перед продовженням читання цього прикладу.

Парсер готовий і ми протестували його в попередньому прикладі. Якщо парсер вірно налаштований, то у вікні DDE сервера будуть відображені наші змінні і їх значення (рис.1).

Отримання даних в excel через інтерфейс dde за допомогою модуля dde server

Рис.1. Дані з COM порту, Excel і DDE. Вікно DDE сервера.

Всі змінні тепер готові для використання в Microsoft Excel. Ім'я змінної відображається в колонці "Ім'я". Ви повинні знати ім'я DDE сервера і ім'я топіка для того, щоб отримувати дані через DDE. Ця інформація представлена ​​на наступному малюнку (рис.2 поз.1). Будь ласка, зверніть увагу, що ім'я сервера може відрізнятися на вашому комп'ютері.

Отримання даних в excel через інтерфейс dde за допомогою модуля dde server

Рис.2. Дані з COM порту, Excel і DDE. Параметри сервера DDE.

Натисніть на кнопці "OK" і закрийте вікно настройки модуля сервера DDE, а потім клацніть кнопку "OK" у вікні налаштування конфігурації.

Оскільки ми хочемо малювати графіки в реальному часі, то ми повинні підготувати файл Excel перед наступним кроком. У цьому прикладі ми створили діаграму з трьома графіками. Кожен графік базується на даних їх колонок A, B або C. Ми буде поміщати значення змінних FLOW1, VOLW1 і TEMP1 в відповідну колонку, а Excel буде автоматично оновлювати нашу діаграму. Ми будемо використовувати тільки останні 30 значень на нашій діаграмі. У цьому прикладі ми помістили 3 посилання на DDE змінні в осередку D21-F21 виду: "= testcore | ddesrv! SrviFLOW1" (без лапок) (рис.3 і 4). Як ви можете бачити, ім'я сервера, ім'я топіка і ім'я змінної вказані в цьому посиланню на дані DDE.

Рис.3. Дані з COM порту, Excel і DDE. Посилання на дані DDE.

Після того, як ви створили посилання на дані DDE в вашому документі, Microsoft Excel автоматично запустить логгер і отримає дані. Якщо логгер вже запущений, то Microsoft Excel спробує вважати дані з запущеної програми. Якщо логгер ще не отримав і не обробив ніяких даних, то Microsoft Excel відобразить інформацію про невірну посиланням, але вважає значення, як тільки дані будуть отримані і оброблені логгером.

Тепер ми готові для створення коду VBA, який буде обробляти наші DDE дані. Цей код буде копіювати значення DDE в колонки, пересувати старі значення і додавати рядки в історію значень (рис.4, 5).

Отримання даних в excel через інтерфейс dde за допомогою модуля dde server

Рис.4. Дані з COM порту, Excel і DDE. Вихідний документ Excel.

Малюнок вище містить наступні елементи:

  1. Дані DDE будуть міститися тут, і будуть служити джерелом даних для графіків;
  2. Графік;
  3. Історія даних.

Код VBA з файлу Excel

Схожі статті