Cоединение отсутствует...

Научно-Производственное Объединение «Каскад-ГРУП»

428000, Россия, Чувашская Республика, г. Чебоксары, пр. Машиностроителей, д. 1 КГ

Телефон: (8352) 22-34-32,
Факс: (8352) 63-48-38

E-mail: abc@kaskad-asu.com

Создание и использование макросов в системе программирования микропроцессорных контроллеров с открытой архитектурой «KLogic»

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

Для работы с макросами перейдите на вкладку «Макросы»:

Вкладка Макросы

Пользовательские макросы добавляются в группу «Макросы проекта», в остальных группах располагаются предопределенные макросы, недоступные для редактирования. Контекстное меню дерева макросов выглядит следующим образом:

Контекстное меню дерева макросов

Для создания нового макроса выберите пункт контекстного меню «Создать макрос»:

Панель редактирования макроса

Для макроса, как и любого другого объекта KLogic, можно задать имя и комментарий. Помимо этого на данной панели доступно редактирование внешних каналов макроса аналогично подобным операциям с каналами ФБ «Скрипт»:

Окно добавления входа/выхода макроса

Близким аналогом макроса в KLogic является задача пользователя без задания периода выполнения. Потому макрос может содержать в себе все объекты, которые могут быть в задаче пользователя: ФБ (кроме макросов), многострочный текст, тренды, группы ФБ и т.п.

В качестве примера опишем создание простого макроса, находящего решения квадратного уравнения. Сначала добавим три вещественных входа для коэффициентов квадратного уравнения и два вещественных выхода для его корней:

Внешние каналы будущего макроса

Сам алгоритм на ФБД выглядит следующим образом:

Алгоритм нахождения корней квадратного уравнения

Первые два блока находят дискриминант квадратного уравнения. Третий блок находит корень из дискриминанта. Блоки 4 и 6, 5 и 7 находят первый и второй корень уравнения соответственно.

Внешние каналы макроса связываются с каналами ФБ с помощью их перетаскивания на поле ФБД, аналогично связыванию каналов главного дерева конфигурации. Допустимо внешний выход макроса связывать более чем с одним выходом его ФБ. В этом плане внешние выходы макроса ведут себя аналогично переменным главного дерева конфигурации.

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

Запрос периода выполнения макроса

После ввода периода выполнения запустится штатный режим отладки:

Отладка макроса

Далее созданный макрос можно добавить в конфигурацию контроллера аналогично любому другому ФБ:

Добавление макроса в конфигурацию контроллера

Как и обычные ФБ, макрос в конфигурации контроллера выглядит как «черный ящик», видны лишь его внешние каналы.

Отладка задачи пользователя с макросами

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

При удалении макроса все его экземпляры будут удалены из конфигураций контроллеров. При изменении состава внешних каналов макроса или их имен будут удалены связи с «отсутствующими» каналами экземпляров макроса.

 Подтверждение переименования

Подтверждение удаления

Необходимость обновления

Для каждого пользовательского макроса можно запросить статистику его использования через соответствующий пункт контекстного меню (см. рис. 2):

Статистика использования макроса

Читайте также