Современные решения для производства электроники

Программирование на языке Client Basic в системе Protel 99 SE

Потапов Ю.В.

Помимо возможностей настройки пользовательского интерфейса в системе Protel 99 SE имеется возможность написания, отладки и выполнения макросов на специальном языке Client Basic, который очень похож на язык Visual Basic for Application (VBA), используемый в системе Microsoft Office. Здесь имеются аналогичные средства отладки макросов (введение точек прерывания, пошаговое выполнение, просмотр переменных), однако, отсутствует такой важный инструмент как Macro Recorder, предоставляющий возможность записать в виде макроса всю последовательность выполняемых в среде проектирования действий. В связи с этим на программиста, создающего приложения в среде Design Explorer накладываются дополнительные требования по знанию языка Client Basic.

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

Для начала создадим наше первое приложение. Все, что оно будет делать — это выводить окно с сообщением  «Hello, World!». Несмотря на столь малую функциональность, оно позволит нам опробовать некоторые приемы работы со средой создания макросов.

1. Запустите систему Protel 99 SE. Закройте все загруженные проекты командой File -> Close Design.

2. Создайте новый проект командой File -> New. В поле Database File Name введите имя нового проекта Hello.ddb. Нажмите кнопку OK. Система создаст новый проект Hello.ddb, изменит главное меню и панель инструментов.

3. Щелчком левой кнопкой мыши на значке папки Документы откройте ее. Создайте новый текстовый документ в этой папке, для чего выполните команду меню File -> New… или команду New из всплывающего меню, вызываемого щелчком правой кнопкой мыши в поле папки. В открывшемся окне New Document на закладке Documents выберите значок Text Document и нажмите кнопку OK.

4. Система запросит имя файла текстового документа. Введите Hello.bas. В общем случае расширения имен файлов в системе Protel не играют никакой роли, однако расширение .bas у текстового документа, позволит системе автоматически ассоциировать этот документ с языком Client Basic.

5. Сделайте двойной щелчок на имени Hello.bas. Система откроет этот документ в режиме редактирования текста, а также соответствующим образом изменит меню команд и панель инструментов.

6. Введите текст макроса, приведенный ниже. Обратите внимание, что система автоматически выделяет ключевые слова языка Client Basic (рис. 1).

 

Рис 1. Вид  текстового редактора в режиме написания макросов.

Sub Main
      MsgBox «Hello, World!»
      Beep
End Sub

7. Сохраните изменения в файле с помощью команды главного меню File -> Save.

8. Запустите макрос на выполнение командой системного меню Client -> Run Script… В появившемся окне Select выберите имя файла макроса Hello.bas и нажмите кнопку OK.

В результате выполнения макроса на экране монитора будет отображено окно сообщения «Hello, World!» (рис. 2).

 

Рис 2. Сообщение, полученное  в результате выполнения макроса.

Указанный метод запуска макроса на выполнение слишком неудобен для частого использования. Альтернативой команде запуска макроса Run Script… является привязка макроса к так называемому «пускателю» процесса. Пускателем процесса в системе Protel 99 SE является элемент ресурсов пользовательского интерфейса: кнопка панели управления, горячая клавиша или команда меню. Во всех трех случаях макрос запускается процессом Macro:RunMacro, который в свою очередь связывается с пускателем. В качестве примера  рассмотрим привязку нашего макроса Hello.bas к комбинации горячих клавиш ALT+1.

1. При открытом тексте макроса Hello.bas выполните команду меню Client -> Customize… и выберите закладку ShortCut Keys в диалоговом окне Customize Resources.

2. Нажмите на кнопку Menu и выполните команду Edit… В результате появится  окно ShortCut Tables. В поле Name отображается имя таблицы горячих клавиш. Убедитесь, что оно равно значению Default.

3. Снова нажмите кнопку Menu и выполните команду Add. В результате в таблице горячих клавиш появится заготовка для процесса с заголовком [None].


 

Рис 3. Назначение макросу горячей клавиши.

4. Чтобы настроить процесс и связать с ним горячую клавишу, сделайте двойной щелчок на заголовке процесса. Появится диалоговое окно ShortCut, показанное на рисунке 3, в котором в строке Process следует указать имя процесса Macro:RunMacro, выбрав его из выпадающего списка. В строку Parameters введите следующие параметры процесса:

DesignName=\Examples\Hello.ddb|DocumentName=
     Документы\Hello.bas|Language=ClientBasic

Напомним, что параметры процесса разделяются символом вертикальной прямой черты «|». В нашем случае первый параметр означает имя проекта, второй — имя документа в проекте с указанием полного пути к нему (в нашем случае — папка Документы), третий — используемый язык программирования.

5. Установите флажок Alt Key и выберите из списка Primary Key клавишу 1.

6. Закройте окно ShortCut, нажав кнопку OK, и окна ShortCut Table и Customize Resources, нажав соответствующие кнопки Close.

Теперь при нажатии комбинации клавиш ALT+1 при активном текстовом файле на экран монитора будет выводиться сообщение «Hello World!» — результат выполнения макроса Hello.bas. Однако, данная комбинация горячих клавиш будет работать только в текстовом редакторе, так как мы производили настройку именно его ресурсов.

Пользу от практического применения макросов совместно с пользовательскими настройками ресурсов можно проиллюстрировать примером переключения сеток SnapOn и Visible в редакторе принципиальных схем. Для изменения настроек этих сеток обычным способом необходимо выполнить ряд последовательных операций:

1. При активной принципиальной схеме командой меню Design -> Options открыть диалоговое окно Document.

2. Изменить настройки сеток в поле Grids вкладки Sheet Options (рисунок 4).

3. Закрыть окно нажатием кнопки OK.

 

Рис 4. Традиционный способ настройки сеток редактора схем.

Столь сложная процедура настройки сеток может вызвать обоснованное недовольство пользователей, кто ранее работал в редакторе принципиальных схем пакета P-CAD 2001 и переключал шаг сетки одним щелчком, выбирая нужное значение из соответствующего выпадающего списка. Ведь в процессе разработки сложной схемы эту операцию приходится выполнять сотни раз! Однако, не все так плохо, как кажется на первый взгляд.

Создадим макрос с приведенным ниже текстом и привяжем его выполнение к новой кнопке на главной панели инструментов редактора схем.

Sub Main
    ResetParameters
    AddIntegerParameter «SnapGridSize», 2
    AddIntegerParameter «VisibleGridSize», 10
    RunProcess «Sch:DocumentPreferences»
    beep
End sub

Данный макрос автоматически задает шаг сетки SnapOn равный двум дискретам, шаг сетки Visible равный десяти дискретам. Об успешном завершении выполнения макроса сигнализирует оператор Beep, который здесь не является обязательным. В состав сервера поддержки, поставляемого компанией ЭлектронТрейд вместе с продуктом Protel 99 SE входят три макроса, различным образом изменяющие настройки сеток всего за один щелчок по соответствующей кнопке (рисунок 5).

 

Рис 5. Кнопки настройки сеток с помощью макросов.

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

Как показано выше, все макроскрипты в системе Protel создаются с помощью текстового редактора. Функции отладки макросов добавляются в него с помощью сервера Macro, входящего в комплект стандартной поставки и автоматически инсталлируемого в систему. Команды управления отладчиком будут находиться в разделе меню Macro. Однако при обычной инсталляции в среду проектирования Design Explorer не добавляется специальная панель инструментов, дающая пользователю более удобный доступ к средствам отладчика.

Чтобы вручную подключить эту панель к системе необходимо выполнить следующее:

1. Выполнить команду Client -> Customize… и в появившемся окне Customize Resources выбрать вкладку Toolbars.

2. Нажать кнопку Menu и выбрать команду Import From Other Document.

3. В открывшемся окне Resource Allocation For Document Type (рисунок 6) в левом списке Resources следует выбрать пункт MacroDebugTools и нажать кнопку Add. После этого панель управления MacroDebugTools окажется в списке справа, где отображаются доступные в настоящий момент панели инструментов.

4. Закрыть все окна нажатием кнопок Close.

 

Рис 6. Подключение панели инструментов отладки макросов.

После этого в разделе меню View текстового редактора появится новая команда Toolbars -> Macro Debug Tools, включающая панель инструментов, изображенную на рисунке 7.

 

Рис 7. Вид панели инструментов отладки макросов.

Имеющиеся здесь кнопки дублируют команды меню из раздела Macro:

· View Breakpoint Window — включить/выключить окно просмотра точек прерывания.

· View Watch Window — включить/выключить окно просмотра значений переменных.

· Run Client Basic Dialog Editor — запустить редактор диалоговых окон.

· Reset — сброс выполнения активного макроса.

· Go — запуск выполнения активного макроса.

· Pause — приостановление выполнения активного макроса.

· Step Into — войти в функцию или подпрограмму активного макроса.

· Step Over — пошаговое выполнение активного макроса.

· Add Watch — добавить переменную к списку наблюдаемых.

· Remove Watch — удалить переменную из списка наблюдаемых.

· Remove All Watch — удалить все переменные из списка наблюдаемых.

· Add Breakpoint — добавить точку прерывания.

· Remove Breakpoint — удалить точку прерывания.

· Remove All Breakpoint — удалить все точки прерывания.

· Toggle Animate Mode — включить/выключить анимационный режим отображения хода выполнения макроса.

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

Поведение текстового редактора настраивается с помощью установок диалогового окна Preferences, вызываемого командой меню Tools -> Options (рисунок 8). Подробное описание всех имеющихся здесь опций приведено в интерактивной справочной системе, вызываемой нажатием кнопки Help, а также в руководстве пользователя.

 

Рис 8. Настройка текстового редактора.

Настройки проверки синтаксиса используемого языка выполняются в диалоговом окне Syntax Editor (рисунок 9), вызываемого командой меню Tools -> Edit Language Syntax. Большинство опций этого окна изменять не рекомендуется, так как это приведет к проблемам в работе, но некоторые опции позволяют настроить текстовый редактор более оптимально.

 

Рис 9. Настройка проверки синтаксиса.

Заметим, что все синтаксические настройки хранятся в файлах с расширением SYN в папке C:\Program Files\Design Explorer 99 SE\System\LANGUAGES. Выбор нужного языка осуществляется с помощью команды меню Tools -> Change Language.

В заключение отметим, что все выше сказанное характеризует систему Protel 99 SE как чрезвычайно гибкую и мощную среду проектирования. Все действия выполняемые пользователем вручную могут быть описаны с помощью макросов и выполнены автоматически, что открывает широкие возможности по автоматизации рутинных операций процесса создания принципиальных схем и проектирования печатных плат.

В случае отсутствия в системе нужных функций пользователю предлагается специальный набор Software Development Kit, позволяющий создавать собственные вспомогательные серверы, которые затем будут прочно интегрированы в единую систему. Благодаря наличию этого модуля полностью снимаются какие-либо ограничения на дальнейшее развитие пакета Protel 99 SE как компанией разработчиком, так и самими пользователями.

Статьи
Журнал EDA Expert
Архив журнала, посвященного обзору информации о системах проектирования электронных устройств (EDA)
Выбор устройства Клин-Бондерa
Josef Schmidl, Palomar Technologies