Верси для друку
Лабораторний інструмент має 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).
Рис.1. Дані з COM порту, Excel і DDE. Вікно DDE сервера.
Всі змінні тепер готові для використання в Microsoft Excel. Ім'я змінної відображається в колонці "Ім'я". Ви повинні знати ім'я DDE сервера і ім'я топіка для того, щоб отримувати дані через DDE. Ця інформація представлена на наступному малюнку (рис.2 поз.1). Будь ласка, зверніть увагу, що ім'я сервера може відрізнятися на вашому комп'ютері.
Рис.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).
Рис.4. Дані з COM порту, Excel і DDE. Вихідний документ Excel.
Малюнок вище містить наступні елементи:
- Дані DDE будуть міститися тут, і будуть служити джерелом даних для графіків;
- Графік;
- Історія даних.
Код VBA з файлу Excel