О
Компоненты и технологии, № 5'2004
Окончание. Начало в № 42004
Испытания электронной аппаратуры:
быстро и эффективно
Виктор Денисенко, к. т. н.,
Павел Ерещенко, Рафгат Кильметов, к. т. н.,
Евгений Метелкин, Александр Халявко, к. т. н.,
Константин Шальнев
3.1. Структура модулей серии ЫЬ Модули ЫЬ производства ИЬОЛ (www.RLDA.ru) имеют дифференциальные входы (за исключением ЫЬ-8Л1, который позволяет программно выбирать дифференциальный или одиночный тип входов). Сигналы с входа подаются на АЦП через аналоговый коммутатор (мультиплексор) и преобразуются в цифровой 16-разрядный код. Использованный в модулях 24-разрядный АЦП имеет встроенный цифровой фильтр и усилитель с цифроуправляемым коэффициентом усиления. Это позволяет программно изменять полосу пропускания и диапазон входных напряжений.
Цифровой сигнал с выхода АЦП поступает в микроконтроллер через изолирующий повторитель с магнитной связью. Изолированная часть модуля, содержащая АЦП, питается через развязывающий преобразователь постоянного напряжения, чем обеспечивается полная гальваническая изоляция входов от блока питания и интерфейсной части (рис. 7-8).
Микроконтроллер модуля выполняет следующие функции:
• исполняет команды, посылаемые из управляющего компьютера;
• компенсирует нелинейности термопар и резистивных термопреобразователей с помощью записанной в ЭППЗУ калибровочной таблицы;
• выполняет алгоритмы релейного или ПИД-регу-
лирования;
• реализует протокол обмена через интерфейс RS-485.
Схема питания модулей содержит вторичный импульсный источник питания, позволяющий с высоким КПД преобразовывать напряжение питания в диапазоне от +10 до +30 В в напряжение +5 В. Модули содержат также изолирующий преобразователь напряжения из +5 в ±15 В для питания аналоговой части и второй изолирующий преобразователь для питания выходных каскадов модуля. Для питания АЦП используется линейный стабилизатор напряжения, преобразующий +15 В в +5 В.
Для получения дискретных выходов с высокой степенью защиты использованы интеллектуальные МОП-ключи фирмы International Rectifier, имеющие защиту от перегрузки по току, от перегрева выходных каскадов, от перенапряжения и от статического электричества.
Интерфейс RS-485 выполнен на микросхемах фирмы Analog Devices, удовлетворяющих стандартам EIA для интерфейсов RS-485 и RS-422 и имеющих защиту от электростатических зарядов, от выбросов на линии связи, от короткого замыкания и от перенапряжения. Дополнительно в модуле использована позисторная защита от перенапряжения на клеммах порта RS-485. Аналогичная защита использована для входа источника питания.
Є
Компоненты и технологии, № 5'2004
I DC-разъем
INir
I
ЭППЗУ
Ї
Микро-
контроллер
І і-------------------------------г-------------------
I
Сторожевой
таймер/
монитор
питания
El
Data+ с Data-
?— И нтерфейс
1 RS-485
V—
+Е1
|J
Блок
управ-
ления
реле
+Vs<j>-
I
GND Ь-1_
вип
-¿RL1NC
I
J---9 RL1COM
----¿RL1NO
:........
^ RL4NC
J------* RL4COM
9 RL4NO
□
|---6 RL5COM
------A RL5NO
RL8COM
-9 RL8NO I
Рис. 9. Структурная схема модуля NL-8R. Обозначения: СОМ — «Common» — «общий», «С» — «Closed» — нормально замкнутый, «О» — «Open» — нормально открытый
Din
in і cj>
Din k (J>
Com-
Din
GNDA
47 nF 6,2 k
—ii—□-
—ш—
2 Meg
47 nF 6,2 k
—II—C=H
—CD-
2 Meg
Г
4
Рис. 11. Входной каскад типа С. Ubx < ~250 В; 1вх < ~4 мА
Din і
, 3,6 k
Din к ф----------Г~\—
Com-
Din
GNDA
3,6 k
ЕГ
Рис. 13. Входной каскад типа R.
Ubx = -30...+30 В; Івх = 10 мА...+10 мА
Входные каскады модулей могут иметь различную электрическую схему. Каскад типа Б (рис. 10) предназначен для подключения источников сигнала «сухой контакт», то есть обычных механических переключателей, например, концевых выключателей. Его особенностью является наличие внутреннего изолированного источника питания «сухих» контактов, который гальванически изолирован от источника питания модуля.
Входной буфер типа С (рис. 11) предназначен для подключения источников сигнала с переменным напряжением 220 В. Буфер типа Т (рис. 12) имеет входное сопротивление, которое возрастает при увеличении входного напряжения, что позволило добиться очень малого потребления тока (не более 2 мА при напряжении 40 В) от источника входного сигнала. Входной каскад типа И (рис. 13) является типовым, его особенностью является двуполярность, то есть возможность подачи как положительных, так и отрицательных напряжений дискретных сигналов.
3.2. Погрешность измерений
Модули аналогового ввода непосредственно измеряют только напряжение. Измерение тока выполняется косвенным методом — по падению напряжения на измерительном резисторе (рис. 14). Однако калибровка модуля в режиме измерения тока выполняется при подключенном измерительном резисторе. Это позволяет скомпенсировать погрешность, вызванную технологическим разбросом сопротивления, и, таким образом, погрешность измерения тока становится равной погрешности измерения напряжения. Для ввода сигналов 0-20 мА или 4-20 мА используют измерительный резистор сопротивлением 125 Ом (рис. 14). При этом току 0 мА будет соответствовать напряжение 0 В, току 20 мА — напряжение 2,5 В, току 4 мА — напряжение 0,5 В. Аналогично можно вводить ток любой величины, выбрав соответствующую величину измерительного резистора.
При наличии прецизионного измерительного резистора калибровку в режиме измерения тока можно не проводить. В этом случае предельная погрешность измерений будет равна сумме погрешности модуля АУ/У и погрешности измерительного резистора АК/К:
АІ АУ АЯ
I V Я
Среднеквадратическое суммирование в данном случае неприменимо, поскольку в силу особенностей технологической разбраковки резисторов разброс их сопротивлений обычно не является случайным.
Аналогично, погрешность измерения температуры с помощью модуля, калиброванного только по напряжению, является суммой погрешности термопары АТтс/Тто погрешности датчика температуры холодного спая АТтс/Ттс, погрешности модуля АУ/У и погрешности линеаризации характеристик термопары
AV,
щ_ (ГОСТ 23222-
АТ _ АТтс ^ ATTJC | AV | AVLtn
'гс
LTJC
Є
Компоненты и технологии, № 5'2004
Рис. 14. Подключение резистора 125 Ом для измерения тока lin
Выше рассмотрена основная погрешность измерения. Для учета температурной погрешности, вызванной влиянием температуры окружающей среды, следует учитывать дополнительную погрешность, величина которой пропорциональна отклонению температуры от 20 °С:
АТ АТ т - т
+ 5
доп.
i = 20 °С
Т- 20 10
Рис. 16. Подключение термопары кканалу4модуля
''AGND №
ІехО- D0
SenseO- №
Sense0+ №
1ех0+ D0
R(t°)
Резистивный те рмо преобразователь
Рис. 18. Трехпроводное подключение резистивного термопреобразователя
Управляющий компьютер с портом RS-232
RS-232
'"N
TxD / \
і-----Г
RxD
I I -I---------------h
GND I
ту
\y
Преобразователь интерфейса RS-232 в RS-485 (модуль NL-232C)
Vs+
Источник питания +10...+30B _
Vs+
GND
Data+
RS-485
Data-
GND
Модуль серии NL
INIT* (YJDATA+1 (G)DATA-(R) +Vs (B) GND
Рис. 15. Подключение модуля к порту RS-232 компьютера
где 8доп — дополнительная погрешность.
Следует подчеркнуть, что кроме понятия точности, модуль характеризуется разрешающей способностью (16 бит). Это означает, что даже при низкой точности датчика температуры можно наблюдать изменения температуры с дискретностью 1/216 = 0,0015%. Например, при измерении температуры платиновым датчиком 100П (Р1 100) на пределе измерений 0...100 °С можно регистрировать изменения температуры на 0,001 °С. Высокая разрешающая способность полезна, когда требуется определить тенденцию изменения температуры во времени (например, для регистрации момента начала химической реакции), для измерения разности температур (при измерении теплового потока), для обнаружения температурных колебаний (например, в инкубаторе), когда величина изменений температуры меньше погрешности измерений.
3.3. Схемы включения модулей
Подсоединение модуля к промышленной сети на основе интерфейсов И8-485 выпол-
няется экранированной витой парой. Такой провод уменьшает наводки на кабель и повышает устойчивость системы к сбоям во время эксплуатации.
К компьютеру модуль подключается через преобразователь интерфейса RS-232 в RS-485 (рис. 15).
Термопара или резистивный датчик температуры подключаются к входным зажимам модуля непосредственно (см. рис. 16). Резистивные медные, платиновые или никелевые термопреобразователи (термопреобразователи сопротивления) подключаются к модулю NL-4RTD по одному из трех вариантов (рис. 17-19). Для измерения сопротивления из модуля в датчик задают ток с помощью «идеальных» источников тока Iex0+ и Iex0-и снимают величину падения напряжения на датчике с помощью потенциальных входов модуля Sense+ и Sense- (рис. 17). При фиксированном токе падение напряжения прямо пропорционально сопротивлению датчика, которое затем пересчитывается в значения температуры по табличным данным, взятым из ГОСТ 6651-94 и хранимым в ЭППЗУ модуля.
Однако такой простейший путь может быть использован только в случае, когда длина проводов, идущих к датчику, не превышает нескольких метров. В общем случае необходимо учитывать их сопротивление,
Резистивный термопреобразователь
Рис. 17. Двухпроводное подключение резистивного термопреобразователя
Резистивный
термопреобразователь
Рис. 19. Четырехпроводное подключение резистивного термопреобразователя
которое может быть сравнимо с сопротивлением датчика (обычно 50-100 Ом). Для этого используют трехпроводную или четырехпроводную схему включения. Особенность трехпроводной схемы (рис. 18) состоит в том, что она основана на принципе взаимной компенсации падений напряжений на проводах, по которым текут одинаковые токи в противоположных направлениях. Поэтому эта схема компенсирует только среднее значение сопротивлений проводов, но не их разность. Кроме того, в погрешность измерения добавляется погрешность рассогласования токов источников тока 1ех0+ и 1ех0-. Достоинством этой схемы по сравнению с четырехпроводной является 30-процентная экономия соединительных проводов.
Четырехпроводная схема (рис. 19) использует только один источник тока. Поэтому исключается погрешность рассогласования токов 1ех0+ и 1ех0-. Четырехпроводная схема не использует принцип компенсации сопротивлений и поэтому позволяет исключить влияние проводов независимо от величины рассогласования их сопротивлений. Для этого напряжение измеряется непосредственно на выводах датчика. Эта схема измерения является наиболее точной.
Выходные каскады модулей выполнены по схеме с открытым стоком, что позволяет получить логические уровни любой величины (до +47 В) в зависимости от напряжения источника питания выходных каскадов (рис. 20).
Выходные каскады модулей имеют максимальное рабочее напряжение 47 В и ток нагрузки не более 0,75 А. Однако их можно использовать для переключения нагрузок любой мощности, если подключить к выходным каскадам модуля электромагнитное или полупроводниковое реле, тиристор или си-мистор. Соответствующие схемы включения приведены на рис. 20-22.
3.4. Пример применения модуля для регулирования температуры
Модули имеют встроенный алгоритм релейного и ПИД регулирования. Это позволяет использовать их в качестве локального технологического контроллера для выполнения функции стабилизации температуры. В качестве примера на рис. 23 показана структурная схема системы поддержания стабильной температуры в емкости с нагревательным элементом.
Є
Компоненты и технологии, № 5'2004
Термопара является нелинейным преобразователем температуры в напряжение. Для компенсации нелинейности в модулях используется поправочная таблица, взятая из ГОСТ Р 8.585-01 для термопар типа К, I, В, Ь, Е, 8, И, Ы, Т и занесенная в ЭППЗУ модуля. Микроконтроллер, имеющийся в модуле, вносит поправки в результат измерения, пользуясь этой таблицей. Поэтому модуль выдает через порт И8-485 значение температуры.
Напряжение на зажимах термопары зависит не от абсолютного значения температуры, а от разности температур горячего и холодного спая. Температура холодного спая в модуле измеряется линейным полупроводниковым датчиком температуры.
3.5. Промышленная сеть на основе интерфейса Я8-485
Модули серии ЫЬ могут быть включены в промышленную сеть на основе интерфейса И8-485, которая использует передачу сигналов в обоих направлениях по двум проводам. И8-485 является стандартным интерфейсом, специально спроектированным для передачи цифровых данных в условиях индустриального окружения. Он широко используется для построения промышленных сетей, связываю-
щих устройства с интерфейсом И8-485 на расстоянии до 1,2 км (ретрансляторы позволяют увеличить это расстояние). Линия передачи сигнала в стандарте И8-485 является дифференциальной, симметричной относительно «земли». Один сегмент промышленной сети может содержать до 32 устройств. Передача сигнала по сети является двунаправленной, инициируемой одним ведущим устройством, в качестве которого обычно используется офисный или промышленный компьютер (контроллер). Если управляющий компьютер по истечении некоторого времени не получает от модуля ответ, обмен прерывается и инициатива вновь передается управляющему компьютеру. Любой модуль, который ничего не передает, постоянно находится в состоянии ожидания запроса. Ведущее устройство не имеет адреса, ведомые — имеют.
Удобной особенностью сети на основе стандарта И8-485 является возможность отключения любого ведомого устройства без нарушения работы всей сети. Это позволяет делать «горячую» замену неисправных устройств.
Применение модулей серии ЫЬ в промышленной сети на основе интерфейса И8-485
позволяет расположить модули в непосредственной близости от контролируемого оборудования и таким образом уменьшить общую длину проводов и величину паразитных наводок на входные цепи.
Размер адресного пространства модулей позволяет объединить в сеть 256 устройств. Однако при использовании для адресации кода скорости обмена можно адресовать 2048 устройств. Поскольку нагрузочная способность интерфейса И8-485 модулей составляет 32 стандартных устройства, для расширения сети до 256 единиц необходимо использовать И8-485 ретрансляторы между фрагментами, содержащими до 32 модулей. Конвертеры и ретрансляторы (репитеры) сети не являются адресуемыми устройствами и поэтому не уменьшают предельную размерность сети.
Управляющий компьютер, имеющий порт И8-485, подключается к сети непосредственно. Компьютер с портом И8-232 подключается через преобразователь интерфейса И8-232 в И8-485, например, Ж-232С (рис. 15). Для построения сети рекомендуется использовать экранированную витую пару проводов.
Любые разрывы зависимости импеданса линии от пространственной координаты вы-
Є
Компоненты и технологии, № 5'2004
зывают отражения и искажения сигналов. Чтобы избежать отражений на концах линии, к ним подключают согласующие резисторы (рис. 24). Сопротивление резисторов должно быть равно волновому сопротивлению линии передачи сигнала. Если на конце линии сосредоточено много приемников сигнала, то при выборе сопротивления согласующего резистора надо учитывать, что входные сопротивления приемников оказываются соединенными параллельно между собой и параллельно согласующему резистору. В этом случае суммарное сопротивление приемников сигнала и согласующего резистора должно быть равно волновому сопротивлению линии. Поэтому на рис. 24 показано сопротивление R = 120 Ом, хотя волновое сопротивление линии равно 100 Ом. Чем больше приемников сигнала на конце линии, тем большее сопротивление должен иметь терминальный резистор.
Наилучшей топологией сети является длинная линия, к которой в разных местах подключены адресуемые устройства (рис. 24). Структура сети в виде звезды не рекомендуется в связи со множественностью отражений сигналов и проблемами ее согласования.
4. ОРС-сервер
Модули управляются посылкой команд в ASCII-кодах через порт RS-232 любого компьютера. Например, чтобы получить из модуля все напряжения на его входах, посылают команду #AA, для компенсации напряжения нуля при калибровке посылают команду $AA1, где АА — адрес модуля в сети. Посылать такие команды можно, например, с помощью программы Hyper Terminal, которая входит в стандартную поставку Windows. Однако для упрощения управления модулями разработан ОРС-сервер, который позволяет управлять модулями из широко известных программ LabView, MATLAB, Excel, Word, Access. Для самостоятельного программирования на Visual C++, Visual Basic и VBA кроме ОРС-интерфейса разработан более простой в изучении интерфейс EasyAccess c сокращенным набором функций.
ОРС-сервер NLopc для модулей RealLab! соответствует международной специфика-
ции OPC Data Access 2.0. Сервер обеспечивает доступ к переменным модулей неограниченному числу клиентских программ. Сервер NLopc имеет следующие особенности:
• возможность задания различных прав доступа к тегам (входным переменным) для различных клиентов сервера;
• возможность добавления новых устройств в расширяемую библиотеку драйверов;
• содержит встроенный скрипт VBScript для описания пользовательских конверторов входных переменных;
• поддерживает пользовательские DLL-библиотеки для описания сложных конверторов входных переменных;
• кроме стандартного ОРС-интерфейса имеет дополнительный упрощенный COM-интерфейс EasyAccess для управления устройствами;
• тодержит объект, служащий для интеграции сервера NLopc и OPC-серверов сторонних производителей с программами, не поддерживающими OPC, но поддерживающими OLE, например MS Excel, MATLAB.
OPC (OLE for Process Control) — стандартизованные интерфейсы для технологии OLE от Microsoft, предназначенные для применения в области компьютерной автоматизации [2]. Стандарт ОРС разработан международным фондом OPC Foundation, который
был создан фирмами Fisher-Rosemount, Intellution, Intuitive Technology, Opto22, Rockwell и Siemens в 1995 году. В 1996 году появилась первая версия спецификации ОРС.
ОРС в настоящее время является общепризнанным стандартом. Сегодня практически все производители программного и аппаратного обеспечения средств автоматизации разрабатывают продукты, соответствующие этому стандарту.
За последние несколько лет ОРС-серверы полностью вытеснили серверы DDE (Dynamic Data Exchange) и специализированные драйверы для аппаратных средств автоматизации. DDE — самый старый (время появления — 1989-1991 годы) и очень медленный способ динамического обмена данными между Windows-приложениями был со временем заменен (преобразован) в OLE (Object Linking and Embedding). OLE первоначально и до середины 90-х годов использовался исключительно Microsoft для обмена данными между ее офисными приложениями. Во время разработки Windows NT появилась технология DCOM (Distributed Componet Object Model) как продолжение технологии COM. DCOM была разработана для распределенных клиент-серверных приложений. Один клиент мог одновременно использовать несколько серверов, установленных на разных компьютерах в сети, и каждый сервер одновременно мог обслуживать несколько клиентов. В настоящее время ОРС базируется практически исключительно на технологии DCOM фирмы Microsoft для распределенных систем. Главным понятием DCOM является понятие интерфейса, посредством которого объекты DCOM обслуживают клиентов.
Главное окно программы NLopc показано на рис. 25. В левой половине отображается дерево представления устройств, которые подключены к компьютеру или для которых созданы их «образы», а также логические группы тегов (то есть входных или выходных сигналов модулей). В правой половине отображается список тегов устройства или список тегов логической группы тегов, которые выбраны в левой половине окна. При нажатии кнопки обновления значений тегов
¿IS NLopc - opc_template.nln
Файл Устройства Свойства Помощь
-ІПІ *|
□ H D|0e= &
| М.-8Й
Й N1-16012
Дачики наличия ПФ
..ч» Левая ПФ
..Правая ПФ
Е3~*{| Датчики уровня ЁЬЧ| Нижний уровень
4..Ч| Уровень бака 1
ЁМ* N1-871
Температрура поеерхно. Температура дна Ч
±1_______;____________________I ^
Наг... I
Описание
Знач...
Время
• VnO
• Vint
• №2 • Vin3
Температура слева вверху 0.0
Температура слева вдали 162.11
Температура справа вве... 162.11
Температура справа вдали 162.11
29.09.2003-20:52:02
29.09.2003-20:52:02
29.09.2003-20:52:02
29.09.2003-20:52:02
IL
J±J
А
Рис. 25. Главное окно программы NLopc
Є
Компоненты и технологии, № 5'2004
принимаемые ОРС-сервером величины отображаются в графе «Значение».
4.1. Конвертирование входных величин с помощью VBSCRIPT
При подключении к модулям нестандартных датчиков может потребоваться особая, задаваемая пользователем линеаризация характеристик или компенсация погрешностей. Конвертор полезен, когда, например, устройство передает данные от терморезистивного преобразователя в омах, а требуется иметь данные в градусах, или когда датчик выдает частотный сигнал от анемометра, а его надо преобразовать в скорость ветра. Другим примером может быть применение линейной коррекции мультипликативной и аддитивной погрешности датчиков или измерительных преобразователей при их калибровке, а также применение нелинейных функций линеаризации (как, например, для термопар или термопреобразователей сопротивления). Для решения этой задачи ОРС-сервер NLopc снабжен библиотекой конверторов. Библиотека конверторов сервера NLopc представляет собой динамически подключаемую библиотеку (DLL), которая при необходимости может быть написана пользователем на любом языке программирования. Однако для оперативного преобразования сигналов, поступающих от модулей, в ОРС-сервер встроен скрипт VBScript, который позволяет задать любую функцию конвертирования непосредственно из окна ОРС-сервера (рис. 26).
4.2. Интерфейс к MATLAB, LABVIEW, MS EXCEL
Описываемый ниже интерфейс служит для интеграции серверов стандарта ОРС Data Access с клиентами, не поддерживающими стандарт ОРС, но поддерживающими OLE. Он является буфером, преобразующим стандартные вызовы OPC в стандартные вызовы автоматизации OLE. Например, он может быть использован для получения данных от ОРС-сервера для программ MATLAB, LabView, MS Office.
Интерфейс объекта состоит из четырех функций:
• OpcOpenServer() — для создания соединения с ОРС-сервером;
• OpcReadItem() — для чтения данных на входе устройства;
• OpcWriteItem() — для записи данных в устройство;
• OpcCloseServer() — разрыв связи с сервером.
Функция OpcOpenServer() создает соединение с выбранным OPC-сервером на выбранном компьютере. Она имеет следующий синтаксис (на языке Visual Basic):
Boolean OpcOpenServer(servername as String, serverlocation as String)
где servername — имя сервера (NLopc.Server), serverlocation — имя компьютера в сети, на котором расположен ОРС-сервер. Возвращается значение True в случае успеха, False — в случае неудачи.
Конвертор, написанный на языке VBScript, представляет собой реализацию функции вида:
Здесь value — входная конвертируемая величина; Convert — результат конвертирования; f(value) — некоторая функция, например, sin(value), 2*valueA2 и т. п. Апострофом в VBScript помечаются комментарии. Возвращаемое функцией значение будет передано клиентам ОРС-сервера как преобразованное значение тега.
При нажатии кнопки «Принять» (рис. 26) происходит проверка скрипта на отсутствие синтаксических ошибок интерпретатором VBScript. Корректный скрипт принимается, и в окне свойств тега появляется график передаточной функции конвертора.
Полное описание встроенного VBScript можно найти в описании Windows или на вэб-узле компании Microsoft.
ОРС-сервер NLopc позволяет управлять подключением и правами доступа к тегам для различных пользователей в пределах локальной сети.
Рис. 27. Окно для выбора конвертора входной переменной
Функция OpcReadItem() предназначена для чтения данных из указанного тега сервера, соединенного с объектом OPCWrapper.Service. Прототип функции на языке Visual Basic имеет вид:
Variant OpcReadItem(itemname as String)
Здесь tagname — полное имя тега сервера ОРС. Полное имя тега состоит из перечисления
родительских групп тега, разделенных точкой, и имени тега. Так, например, для тега «Vin1» группы «NL-8AI» имя тега будет NL-8AI.Vin1. Возвращаемое значение — прочитанное значение тега.
Функция OpcWriteItem() предназначена для записи данных в указанный тег сервера, соединенного с объектом OPCWrapper.Service. Прототип функции на языке Visual Basic:
OpcWriteItem (itemname as String, value as Variant)
Приведем пример использования функции в Visual Basic и VBA:
Sub Func()
Dim obj As Object
Dim rd As Variant
Dim wr As Variant
Set obj = CreateObject(«OPCWrapper.Service») 'создание
соединения с объектом OPCWrapper.Service
оbj.OpcOpenServer «NLopc.Server», «» 'соедине-
ние объекта с сервером NLopc.Server
rd = obj.OpcReadltem «In» 'вместо In
должно быть имя тега сервера
wr = 1
obj. OpcWriteItem «Out», wr 'вместо Out должно быть
имя тега сервера
obj.OpcCloseServer 'отсоединение объекта от
сервера
Set obj = Nothing 'разрывается связь объект-
ной переменной obj с объектом
End Sub
5. MS Excel и объекты ActiveX
Широко известная программа MS Excel является превосходной средой для реализации алгоритмов управления экспериментом, обработки и визуализации его результатов [3, 4]. При этом используются не только вычисления в ячейках, но и встроенный в MS Excel язык Visual Basic for Application (VBA). Ниже предлагается набор дополнительных объектов ActiveX, которые позволяют еще более упростить и ускорить процесс достижения цели для людей, не имеющих навыков программирования.
Каждый объект ActiveX позволяет выполнить поиск ОРС-серверов в локальной сети с помощью браузера тегов (рис. 29). В левой части окна Tag Browser выбирается ОРС-сер-вер, находящийся на любом компьютере локальной сети. При выборе сервера происходит считывание его «пространства имен» (набора тегов) в правую часть окна. Пользователь должен выбрать требуемые ему теги и нажать кнопку «ОК». Выбранные теги будут добавлены в ActiveX-объект, из которого был вызван браузер тегов.
5.1. ACTIVEX-объект NLDIGI
Наиболее часто используемым ActiveX-объектом является цифровое табло (рис. 28).
Оно предназначено для динамического отображения входной величины в цифровом виде. Входной может быть также величина, заданная из программы на VBA, входящей в состав MS Excel.
121 1
Рис. 28. Внешний вид цифрового табло NLdigi
Є
Компоненты и технологии, № 5'2004
При задании в качестве входной величины тега ОРС-сервера объект NЬdigi может осуществлять циклическое (динамическое) чтение значения тега с задаваемым периодом. При этом данные, получаемые из устройства ввода, будут обновляться на табло по мере их поступления.
ЛсйеуХ-объект NLdigi позволяет также задавать с клавиатуры значения, выводимые из компьютера через модули вывода.
- Д Local comoutoi * Ls NL-4RT D 08 D 3C2 V«\3
■/"іІл'іІЛіллч <~f NL-4RTO 08DX2V«v2
•ÖOPCTootK« Kl <RTD.08DX2Vin1
•Ö UMTS.S«m5 -/ N14RTO_08D3C2\M)
s Лй ІЛСЛІ *+* ГЛЫОЛ.
». Зі \\цЫ*0
.
... SI \\вмхп
• Щ \'*nct
V flß \\мЬ
• S3 4V-°**c
. л ЧЧрдувІ
... Sj \\АЦ_Мгу*і
v Щ Wicc
. $W«hcp
, V Zi ii _J »J
СдпШ [
Рис. 29. Окно объекта Tag Browser
5.2. ЛСТШЕХ-объект ЖвВЛРН Внешний вид объекта NLgrаph представлен на рис. 30. Он предназначен для динамического отображения входной величины в виде «столбика». Объект может принимать как горизонтальное положение, так и вертикальное, в зависимости от соотношения его ширины и высоты.
Входной может быть величина, устанавливаемая из VBA или непосредственно из тега. В последнем случае объект может осуществлять циклическое чтение значения тега. Окно свойств объекта NLgraph изображено на рис. 31.
В окне Tag name задается имя тега, служащего входной величиной объекта. Имя тега может задаваться как вручную, так и при помощи объекта Tag Browser (рис. 29). В окнах Min value и Max value задаются минимальная и максимальная величина, отображаемая на шкале объекта. В поле Updating задается период обновления значения тега ОРС-сер-вера в миллисекундах. В полях Levels at percent задаются цветовые уровни в процентах от ширины шкалы. Окно Data bar предназначено для задания цвета столбика данных.
При щелчке по цветному окну Data bar появляется стандартное диалоговое окно выбора цвета. Задания параметров через окно свойств объекта NLgraph вполне достаточно для работы объекта с ОРС-серверами.
5.3. ACTIVEX-объект NLVIEW
Объект NLview предназначен для динамического отображения данных на графике в виде зависимости Y = f(x). На одном ActiveX-объекте можно построить практически неограниченное количество кривых. Ось абсцисс графика может быть представлена в формате «время/дата» или в обычном формате вещественного числа. Поле построения графиков поддерживает функцию прокрутки при помощи перемещения мыши (правая кнопка при этом должна быть нажата) и функцию «электронной лупы» для увеличения выбранного участка графика.
Для удобной настройки объекта имеется окно свойств, позволяющее задавать теги, диапазон их изменения, цвет линии. По умолчанию цвета линий задаются автоматически случайным образом. Задаются также глубина буфера данных, частота обновления тегов, цвет заднего фона, сетки, линеек и цвет обозначений на осях.
Для задания собственных линий, не связанных с тегами ОРС-серверов, а также для вывода любых графиков из VBA объект имеет набор методов и свойств, которые можно использовать при программировании на VBA.
5.4. Создание других органов управления средствами EXCEL
Примеры типовых органов управления, функционирующих в MS Excel, представлены на рис. 32. Это «оживленные» рисунки, выполненные в любом пиксельном формате и вставленные на лист Excel. При нажатии мышкой на правую стрелку переключателя пределов измерения (рис. 32а) белая точка, указывающая предел измерения, перемещается на один шаг по часовой стрелке; при нажатии на левую кнопку точка движется в обратном направлении. При этом в заранее заданной ячейке Excel (например, A3) появляется число, указывающее номер позиции переключателя. Этот номер можно использовать, например, для масштабирования данных, принятых от датчика.
Точка, указывающая положение переключателя на рис. 32а является овалом, нарисованным средствами Excel. Она не может быть рисунком в пиксельном формате, поскольку VBA, входящий в состав Excel, не позволяет выполнять поворот растровых рисунков.
Важно отметить, что код, управляющий движением рассматриваемых ниже органов управления и контроля, можно не писать, а включить режим записи макроса и в это время произвести нужные операции над создаваемым объектом. В результате Excel автоматически создаст код, выполняющий то, что вы делали вручную. Это избавляет вас от изучения языка VBA. Конечно, желательно понимать смысл того, что создал вместо вас мастер макросов MS Excel, но для этого достаточно знать английский язык, который помогает угадать смысл отдельных команд записанного макроса.
ПУСК
-3.249 тА
д) ж)
Рис. 32. Примеры типовых элементов виртуальных приборов, созданных в MS Excel
Макрос, перемещающий точку по часовой стрелке (на рис. 32а), выглядит следующим образом:
GaugePosition = Sheets(«Gauge»).Range(«A3») Sheets(«Gauge»).Shapes(«Point»).IncrementRotation 22 GaugePosition = GaugePosition + 1 Sheets(«Gauge»).Range(«A3»).Value = GaugePosition
Здесь первая строка считывает начальную позицию переключателя, которая хранится в ячейке А3 на листе «Gauge». Вторая строка выполняет поворот точки «Point» относительно центра вращения на угол 22°. Для создания центра вращения в нужном месте следует создать вторую точку симметрично относительно центра ручки, сделать ее невидимой и сгруппировать с видимой точкой. Такая группа в нашем примере названа «Point». Третья строка представляет собой стандартный счетчик с приращением 1, четвертая строка записывает значение счетчика в ячейку А3. Переменную GaugePosition можно использовать в дальнейшем для масштабирования принятых данных.
Слайдер (рис. 32в) является стандартным элементом Excel, мы добавили к нему лишь шкалу. Позиция указателя записывается в ячейку, которую вы выбираете сами. Кнопки «СТОП» и «ПУСК» (рис. 32Э) являются стандартными кнопками MS Excel, мы только изменили их цвет. Оригинальная кнопка (рис. 32е) является растровым рисунком, а зеленый «светодиод» на ней — векторным рисунком, выполненным средствами Excel. При нажатии кнопки светодиод «гаснет», то есть его цвет изменяется на серый. При этом в ячейку А6 записывается значение «False», при повторном нажатии светодиод загорается, и в ячейку записывается значение «True»:
If Worksheets(«Gauge»).Range(«A6»).FormulaR1C1 = «=TRUE()» Then Worksheets(«Gauge»).Range(«A6»).FormulaR1C1 = «=FALSE()» Worksheets(«Gauge»).Shapes(«Light»).Fill.Visible = msoTrue Else
Worksheets(«Gauge»).Range(«A6») = «=TRUE()» Worksheets(«Gauge»).Shapes(«Light»).Fill.Visible = msoFalse End If
Є
Компоненты и технологии, № 5'2004
Третья строчка кода делает «светодиод» видимым (Fill.Visible = msoTrue), а шестая — «гасит» его.
MS Excel позволяет «закрепить» каждый элемент на листе, защитить его от случайного удаления и защитить весь рабочий лист. Ввод данных можно выполнять непосредственно в ячейки рабочего листа Excel, в текстовые поля или в специальные элементы управления, поставляемые в составе MS Excel.
Отметим некоторые общие особенности создания программ автоматизации эксперимента с помощью MS Excel. После отладки программы ее следует защитить от случайной порчи исходного текста. Для этого используется пункт меню «Сервис/Защита». Перед защитой в свойствах каждого элемента следует указать, должен ли он быть защищен после защиты всего листа. Если некоторые элементы должны изменяться программно, сначала нужно снять их защиту, а после модификации элемента вновь защитить его. Однако есть более простой способ: поверх изменяемого элемента можно положить «стекло» — прозрачный растровый рисунок — и защитить его. Тогда пользователю лежащие под «стеклом» объекты будут недоступны, а программа cможет их модифицировать.
При передаче такой программы заказчику ее текст можно скрыть с помощью пункта меню VBA «Tools/VBA Project Properties» и назначить пароль, который не позволит пользоваться исходным текстом программы без санкции поставщика.
6. Пример стенда для приемо-сдаточных испытаний
Рассмотрим реализованный нами по описанной выше методике стенд для приемосдаточных испытаний электронных модулей, аттестованный органами государственной метрологической службы и используемый в серийном производстве. В состав стенда входит камера тепла, камера холода, термостат, модули серии NL производства RLDA, вольтметр HP34401A. Стенд позволяет выполнить в автоматическом режиме измерения следующих параметров:
• основная и дополнительная погрешность измерения напряжения;
• основная и дополнительная погрешность измерения тока;
• основная и дополнительная погрешность измерения сопротивления;
• основная и дополнительная погрешность измерения частоты следования импульсов;
• погрешность компенсации температуры холодного спая термопары;
• временная нестабильность источника опорного напряжения;
• зависимость погрешности измерения от уровня входного напряжения;
• взаимное влияние входов;
• взаимное влияние выходов;
• ток утечки закрытых выходных ключей;
• напряжение логического нуля на входе;
• напряжение логической единицы на входе;
• напряжение логического нуля на выходе;
• ток утечки дискретных выходов;
• ток утечки потенциальных входов;
• скорость передачи информации в порт
И8-232.
Стенд позволяет также строить разнообразные графики, примеры которых представлены ниже. Для управления камерой холода с сосудом Дюара использован модуль ЫЬ-4ИТЭ, который измеряет температуру с помощью датчика ТСМ-50 и поддерживает ее путем управления клапаном подачи жидкого азота. Модуль закреплен непосредственно на камере холода. Аналогичный модуль, управляющий нагревательными элементами, закреплен на камере тепла. Модули ЫЬ-8А1 [1] считывают показания датчиков влажности воздуха в камерах.
Модули, обеспечивающие подачу на испытуемый прибор сигналов и считывание результатов, помещены в общий шкаф (рис. 33).
Все модули стенда объединены в сеть на основе интерфейса И8-485 и включены в офисную сеть ЕЛегпе^ что позволяет глав-
Рис. 33. Часть испытательного стенда, смонтированная в шкафу
ному инженеру, начальнику отдела НИОКР и разработчикам системы наблюдать за процессом испытаний со своих рабочих мест.
Измеряемые стендом параметры записаны на листе MS Excel (рис. 34). При нажатии кнопки «Автоматическая проверка» происходит синтаксический анализ имен проверяемых параметров и вызов соответствующего макроса VBA, который выполняет измерение данного параметра. Полученные значения записываются в колонку «Измерено» и сравниваются со значениями, указанными в ТУ. Результат сравнения указывается в столбце «Годен/Негоден».
Весь список параметров проверяется автоматически, без участия оператора. Оператору остается только посмотреть, нет ли среди записей в столбце «Годен/Негоден» записи, выделенной красным цветом.
Отдельный параметр может быть проверен в ручном режиме путем нажатия кнопки «Проверка команды выделенной курсором», для чего клетку с именем проверяемого параметра нужно сначала выделить курсором.
Применение компьютера позволяет не только автоматизировать испытания, но и выполнить уникальные измерения, например, получить гистограмму плотности распределения случайной величины — напряжения на выходе источника опорного напряжения (рис. 35), построенную на основе 1700 измерений, или построить зависимость абсолютной погрешности измерения температуры датчиком температуры холодного спая термопары от величины температуры ее холодного спая (рис. 36). Резкие скачки температуры на графике (на 0,2 °С) получаются, когда в термостат со льдом подбрасывают лед.
На рис. 37 представлена зависимость абсолютной погрешности измерения испытуемого прибора от величины входного напряжения, построенная за 15 мин. Эту зависимость вручную можно построить только за несколько дней. На рис. 38 представлена зависимость напряжения опорного источника напряжения от времени, необходимая для оценки его временной стабильности. По оси
300 ’1250
Ф
1200 о 150
ВО
t
? 100
г-Г
-2-10 1 2 Отклонение напряжения от линии среднеквадратической регрессии, мкВ
Рис. 35. Плотность распределения отклонений напряжения на выходе источника опорного напряжения стенда от линии среднеквадратической регрессии (1700 отсчетов), полученная в автоматическом режиме
Qmih ki»
10 <
3 ъъъ
О а кеч . і (і
Тл л «а в* : ц ) -
Тестирование модулей NL-8AI
Рис. 34. Измеряемые в процессе приемосдаточных испытаний параметры записываются на лист Excel непосредственно из порта RS-485 модулей серии NL и сравниваются с данными из ТУ
Є
Компоненты и технологии, № 5'2004
I 1,2
1 0
£-1,2 о
8-2,4
О. '
с-3,6
-18 -12 -6 0 6 12 Входное напряжение, мВ
Рис. 37. Зависимость абсолютной погрешности измерения модуля N1-81! для диапазона измерений ±15 мкВ от величины входного измеряемого напряжения
абсцисс указан номер отсчета, что эквивалентно времени, полученному из условия, что измерения происходят с периодичностью 2 раза в секунду. Описанные графики получены с помощью ActiveX-объекта NLView в реальном времени, то есть данные отображаются на графике по мере их поступления из устройства ввода, без сбора в промежуточный файл. Это позволяет остановить или
ния в котле, зависимость относительного растяжения образца от усилия растяжения и т. п.
7. Выводы
В статье рассмотрены основные принципы построения автоматизированных испытательных стендов с помощью модулей RealLab!, ОРС-сервера и программы MS Excel. Использование этих универсальных компонентов позволяет планировать испытания различной сложности при низкой стоимости разработки программного обеспечения и аппаратной части системы. ИИ
Литература
1. www.RLDA.ru.
2. Frank Iwanitz, Jurgen Lange. OPC Fundamentals, Implementation, and Application. — 2 rev. ed. Heidelberg: Huting, 2002.
3. Sanchez P. M., Cruz P. J. Real time connection of programmable logic controllers to Excel spreadsheets // Proc. of the 2002 IEEE Int. Symposium on Industrial Electronics. 2002. Vol. 1.
4. Денисенко В. В. Применение MS Excel в качестве SCADA системы для лабораторной и промышленной автоматизации // Компоненты и технологии. 2001. № 6.
5. Закон об обеспечении единства измерений. № 4871-1 от 27 апреля 1993 г.
скорректировать проводимый эксперимент по мере его проведения.
Следует обратить внимание, что на оси абсцисс графиков на рис. 36-37 отложено не время, а напряжение или температура, хотя вновь поступившие данные отображаются на графике по мере их получения. Аналогичным способом можно снять зависимость, например, коэффициента усиления транзистора от темпе-
ратуры или его вольт-амперную характеристику, АЧХ четырехполюсника, зависимость частоты вибрации от амплитуды смещения, зависимость температуры пара от давле-
Рис. 36. Зависимость абсолютной погрешности датчика температуры холодного спая термопары от температуры холодного спая.
По оси абсцисс — 8 град/дел., по оси ординат температура указана в сантиградусах, 0,13 град/дел.