Научно-Производственное Объединение «Каскад-ГРУП»
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):