Управление модулем Ke-USB24A из Excel

Первая часть

Всю прелесть программирования USB модуля Ke-USB24A можно оценить когда встает вопрос о необходимости написания программы на каком-либо не очень широко распространенном языке или для какой-либо среды, которая, казалось бы не предусматривает возможность работы с USB устройствами. Как тут быть? — разбираться с подключением библиотек, вызовами системных функции и т.д.? Все это зачастую бывает сложно. Модуль Ke-USB24A совсем другое дело! Благодаря тому что программный интерфейс реализован в виде последовательного порта, можно программировать модуль практически на любом языке. Продемонстрируем это на примере. В этой статье мы рассмотрим как можно управлять выводами модуля из программы Excel! Да-да, именно из нее, где Вы обычно составляете таблицы и строите графики.

Для того чтобы Excel могла общаться с COM портом нам потребуется установить в системе специальный компонент от Microsoft — ActiveX элемент MSComm. Для этого скачайте файлы к этой статье. Там находиться папка ActiveX.

Для инсталляции компонента достаточно выполнить файл Instal.bat — он сам выполнит всю необходимую работу по установке и регистрации компонента в системе. В процессе его выполнения Вам будет задан вопрос такого вида:

Нажимайте «Да». Видим сообщение об успешной установке. Нажимаем «Ok».

Все компонент установлен, можно браться непосредственно за Excel. Запускаем программу. Нам необходимо следующим шагом разрешить выполнение макросов Excel, т.к. по умолчанию они скорее всего выключены. Для этого заходите в меню Сервис -> Макрос -> Безопасность…

Установите вариант низкой безопасности — ведь мы то уверены в том наша собственная программа безопасна.

Теперь определимся что мы собственно хотим получить от Excel:

Пусть на листе будут размещены элементы управления, которые позволят нам открывать доступ к устройству и записывать на указанную нами линию ввода/вывода низкий или высокий уровень напряжения.

Займемся расстановкой элементов управления. Для этого вызовите соответствующее окно, например, щелкнув правой кнопкой мыши по главному меню программы и выбрав в появившемся списке «Элементы управления».

Перетаскиваем необходимые элементы управления на лист: три надписи, три окошка ввода и две кнопки. Изменить текст элементов можно нажав правую кнопку мыши в редакторе свойств элемента. В результате должно получиться например вот так:

Теперь пора взяться собственно за программирование. Программа Excel, как в прочем и другие офисные программы от Microsoft (например, Word, Acsess и т.д.) имеют встроенную поддержку языка программирования VBA (Visual Basic For Application). Он представляет из себя несколько расширенный Visual Basic. Чтобы перейти в редактор программы дважды щелкните по кнопке «Открыть порт», ведь именно с нее начнется процесс выполнения программы.

Мы попадаем в редактор VBA, где перед нами появляется пустая заготовка кода для обработки события нажатия кнопки.

Пишем следующий код. Что он делает? Создаем экземпляр компонента для работы с портом, настраиваем его параметры и в конце открываем порт.

‘Создаем экземпляр компонента для работы с портом
Dim KeUSB As New MSComm

Private Sub CommandButton1_Click()
‘Настраиваем порт
KeUSB.CommPort = Val(TextBox1.Value)
KeUSB.Settings = «9600,N,8,1»
KeUSB.Handshaking = comNone
KeUSB.InputLen = 0
KeUSB.InBufferSize = 40
KeUSB.OutBufferSize = 40
KeUSB.RThreshold = 0
‘Открываем порт
KeUSB.PortOpen = True
End Sub

Далее возвращаемся на лист Excel. Дважды щелкаем на кнопку Записать. Добавляем следующий код:

Private Sub CommandButton2_Click()
‘Формируем команду $KE,WR
KeUSB.Output = «$KE,WR,» & TextBox2.Value & «,» & TextBox3.Value & Chr(13) & Chr(10)
End Sub

Все, с программированием закончили. Можно закрывать редактор VBA (незабываем сохранить перед выходом). Теперь нам необходимо на листе Excel перейти из режима редактора элементов управления в режим выполнения. Для этого на коне «Элементы управления» необходимо нажать соответствующую кнопку в виде линейки-треугольника, чтобы она стала неактивной (не подсвеченной).

Теперь можно собрать схему — я тут ни чего не меняю, использую как и в прошлой статье: ко всем линиям ввода/вывода модуля Ke-USB24A подключены светодиоды. Все линии настроены на выход. Вот собственно и вся схемотехника.

Итак, указываем номер COM порта модуля, нажимаем кнопку Открыть порт. Затем, указываем номер нужной линии и значение для записи (0 или 1). Нажимаем кнопку Записать — моргаем светодиодами.

А вот и фотография конструкции. Схема набрана на макетной плате — очень удобно, паять ни чего не нужно. Здесь установлены не все 24 светодиода а меньше.

Итак, указываем номер COM порта модуля, нажимаем кнопку Открыть порт. Затем, указываем номер нужной линии и значение для записи (0 или 1). Нажимаем кнопку Записать — моргаем светодиодами.

Программу конечно необходимо модернизировать — мы здесь ни как не анализируем ни ошибок выполнения, ни сами введенные данные. Но не смотря на простоту данный пример показывает что с модулем Ke-USB24A можно работать практически из любой среды, в которой есть поддержка ActiveX компонент и хоть какой-либо язык программирования (даже скриптовый). К примеру, работу с модулем можно интегрировать в программу Microsoft Acsess и вести базу данных, можно интегрировать данную концепцию в программу 1С, например, и проводить какие-либо действия по внешним событиям с датчиков (ключей) и т.д. — возможности неисчерпаемы. А можно продолжать развивать тему с Excel — например, использовать ее для автоматического построения графиков по данным получаемым с АЦП модуля.

Автор: Дмитрий Иванов (Grirog). Апрель 2008 г.

Добавить комментарий

Ваш адрес email не будет опубликован.