Фильтр по тематике

Особенности программирования контроллера ADAM-5510E/TCP

Контроллер ADAM5510E/TCP фирмы Advantech выполнен в виде пластиковой корзины с возможностью установки модулей расширения. Процессор контроллера IBM PC совместимый, выполнен на базе процессора Intel 80188, работает под управлением ROMDOS, тактовая частота процессора 80 МГц. Поддерживается интерфейс Ethernet 10/100BaseT.

Порядок работы с контроллером достаточно подробно описан в технической документации. Для работы потребуется изготовить прямой кабель RS232 для подключения к компьютеру под управлением Windows, на котором будет собираться пользовательское программное обеспечение. Кабель не входит в состав стандартной поставки. Консольный вводвывод контроллера ROMDOS перенаправлен на COM3.

Инструментальное программное обеспечение для работы с контроллером содержит утилиту Adam5510.exe, позволяющую установить связь со встроенным интерпретатором командной строки устройства ROMDOS, а также позволяет копировать исполняемые и конфигурационные файлы с диска подключённого компьютера в пользовательскую флэшпамять контроллера. Утилита представляет собой панельный файловый менеджер, на левой панели которого отображается файловая система компьютера, а на правой — файловая система контроллера ADAM в виде виртуального диска D. Отображается только доступная для модификации пользовательская часть файловой системы. Если в файле autorun.bat прописать вызов программы пользователя и скопировать исполняемый файл на виртуальный диск, то после сброса контроллера ROMDOS запустит программу пользователя. Тем самым цель автозапуска рабочей программы пользователя достигнута, но ценой потери диалога с интерпретатором командной строки. Для блокировки исполнения скрипта autorun.bat нужно соединить перемычкой винтовые зажимы, маркированные INIT и GND на передней панели контроллера, и нажать на кнопку «Сброс» или перезапустить контроллер путём выключения и включения питания, причем вход INIT должен быть в заземлённом состоянии достаточно долго, до полного запуска ROMDOS.

ADAM5510E интересен прежде всего тем, что предполагает использование компилятора Borland Turbo C++ 3.0. Для поддержки модулей расширения и сетевых протоколов необходимо просто добавить библиотечные функции, предлагаемые производителем контроллера.

Можно, к примеру, чтобы не смешивать «родную» библиотеку Borland с библиотекой Advantech, в каталоге с развернутым Turbo C организовать ещё два подкаталога: ADAM_INC и ADAM_LIB. В первый подкаталог поместить все заголовочные файлы, во второй — библиотеки от Advantech.

Далее, если следовать фирменной документации, предлагается запустить и работать с интегрированной средой разработки Turbo C. Если программист ранее не имел опыта работы в этой среде и у него нет наклонностей к мазохизму, то лучше пойти другим путём. Поскольку компилятор можно запускать из командной строки, то разумно сделать запуск компиляции из какоголибо современного редактора.

Для вызова компилятора из командной строки можно начать с создания файла проекта *.prj в Borland IDE, а затем, воспользовавшись утилитой компилятора prj2mak, получить *.mak файл из исходного *.prg, причём исходный файл больше не понадобится.

 


В файле *.mak теперь нужно поправить некоторые строки для указания добавленных библиотек и модулей проекта.

В приведённом примере файлы с функцией main() и makefile носят имя bricks.c и bricks.mak соответственно.

Для простоты пусть наш проект имеет ещё два модуля: manual.c и automat.c.

Многоточием отмечены пропущенные строки текста.

При добавлении новых модулей в проект нужно вручную добавлять строки в секции *List Macros*, *Explicit Rules* и *Individual File Dependencies*.

Теперь можно запускать компилятор из командной строки.

В нашем случае это выглядит так:

> maker –B –f bricks

Предполагается, что мы находимся в рабочем каталоге проекта и что в переменную окружения установлен путь к исполняемым файлам компилятора.

Ключ –B нужен для запрета проверки атрибутов времени у файлов, то есть будет всегда выполняться полная компиляция.

В качестве редактора подошёл свободный проект с открытым исходным кодом Programmer’s Notepad 2 (PN2). Пользователям компилятора WinAVR он хорошо знаком. Отдельно PN2 можно взять по адресу www.pnotepad.org.

В закладке редактора optiontools можно прописать вызов maker.exe со всеми ключами и запускать компиляцию прямо из редактора. Однако это оказалось не очень удобно по причине автоматического сворачивания окна компиляции после его завершения вместе со всеми сообщениями. Но главное — редактировать файлы проекта и вносить изменения в makefile стало весьма комфортно.

Поддержка сетевых протоколов ADAM5510E/TCP позволяет программисту создавать сокеты UDP/TCP, построить FTP или HTTPсервер или Modbus/TCPсервер.

Мы использовали параллельно работающие HTTP и Modbus/TCPсерверы для организации человекомашинного интерфейса.

HTTPсервер удобен тем, что можно обратиться по статическому IPадресу контроллера с любого офисного компьютера. Достаточно наличие Интернетбраузера. Мы использовали HTTPсервер для установки значений технологических параметров. Важно, что HTTPсервер позволяет задействовать авторизацию с требованием ввести имя пользователя и пароль. После успешной авторизации контроллер высылает предварительно подготовленную программистом Webстраницу. В нашем случае страничка содержит поля ввода новых данных для изменения некоторых выдержек времени цикла технологического процесса. Если какойто параметр не требует изменения, то его поле можно оставить пустым. После внесения необходимых изменений и нажатия на кнопку «OK» информация будет передана контроллеру, программа контроллера выяснит, какие новые параметры поступили со стороны клиента и сохранит их в энергонезависимой памяти. После этого контроллер посылает браузеру сообщение о подтверждении сделанных изменений.

Пример Webстраницы контроллера приведён на рис. 1.


В заключение надо отметить, что все библиотечные функции Advantech хорошо описаны в фирменной документации и даны примеры их использования. ● 

Автор — сотрудник ООО НПЦ «АИР»
Телефон/факс: 8 (8443) 39-3812

Комментарии
Рекомендуем

ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3
ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3