ФБ представляет собой программный модуль, выполняющий определенный алгоритм при поступлении события на соответствующий вход этого блока. Приложение состоит из нескольких таких блоков соединенных связями по данным и событиям. Для описания типов ФБ используются языковые средства, описанные в стандарте IEC 61131, а также язык XML. Взаимодействие функциональных блоков основано на передаче управляющих сигналов – событий через соединение событий и передаче необходимых данных через соединение данных.
ФБ описывается объявлением внешнего интерфейса, диаграммой управления исполнением и алгоритмами, выполняемыми в соответствии с диаграммой. Алгоритмы могут быть написаны как на языках стандарта IEC 61131, так и обычных языках структурного программирования [1].
На сегодняшний день существует несколько программных продуктов поддерживающих стандарт IEC61499 среди них можно выделить среду Function Block Development Kit (FBDK) и программный продукт IsaGRAF 5 [4].
Перечисленные программные продукты не позволяют создавать имитационные модели распределенных систем управления для получения характеристик их функционирования. Использование средств имитационного моделирования при проектировании распределенных систем управления с применением методики на основе абстрактных функциональных блоков дает возможность получать информацию о поведении, как отдельного элемента системы, так и о системе в целом, что позволяет упростить и сократить цикл разработки распределенных систем управления.
Рассмотрим конкретный пример разработки с использованием ФБ системы массового обслуживания, состоящей из очереди и обслуживающего прибора. Блок очереди (QUEUE) представлен на рисунке 1.
Рисунок 1 – Функциональный блок типа “ОЧЕРЕДЬ“
Он предназначен для сбора статистических данных и управления поступлением заявок извне, а также управляет загрузкой заявки из очереди в обслуживающий прибор [5, 6]. Для включения новой заявки в очередь используется событийный вход Z_IN, управляющий входом поступления заявок Z_NUM_IN. Этим же сигналом устанавливается количество каналов соответствующего обслуживающего прибора равное значению на входе NUM_CH. Событийный вход INIT используется для задания длины очереди MAX_LENGTH.
Событие на выходе Z_ENTER, предназначенном для уведомления блока статистики о появлении в очереди новой заявки. Выход данных LENGTH используется для выдачи, текущей длина очереди, а на выходе Z_NUM_OUT – значение номера заявки присвоенного ей на входе Z_NUM_IN. Событие на выходе Z_LEAVE появляется, когда обслуживающий прибор пуст и готов к обслуживанию новой заявки. Событие FREE_OP сообщает об освобождении обслуживающего прибора. Событие на выходе Q_FULL уведомляет блок статистики о достижении очередью состояния, когда очередь занята полностью. Выход события Z_REJEKT сигнализирует о том, что вновь поступившая заявка застигла очередь заполненной и была удалена из СМО без обслуживания.
Программа, описывающая функционирование ФБ QUEUE, представлена на языке XML
Функциональный блок обслуживающего прибора представлен на рисунке 2.
Рисунок 2-Функциональный блок обслуживающего прибора
Вход данных NUM_CH используется для задания количества каналов обслуживающего прибора [5, 6]. Для включения заявки в обслуживающий прибор используется вход Z_IN. При появлении события на данном входе считывается значение на входе данных Z_NUM_IN, которое содержит номер заявки, а также устанавливается время обработки заявки равное значению на входе данных GEN. Вход TIMER используется для реализации задержки подсчётом событий от таймера. После завершения обработки заявки выдаётся событие на выходе Z_LEAVE и выдается номер заявки на выходе Z_NUM_OUT, а также выдаётся текущее значение количества занятых каналов с выхода CUR_NUM.
Программа, описывающая функционирование ФБ SD, представлена на языке XML.
Список литературы
Елькин И.В., Кустарев П.В. Модель абстрактных функциональных блоков // Научно-технический вестник СПбГИТМО (ТУ). Выпуск 10. Информация и управление в технических системах. - СПб.: СПбГИТМО(ТУ), – 2003. – С. 55–61.
Мартышкин А.И. Имитационная модель распределенной системы с применением абстрактных функциональных блоков // Информационные технологии в экономических и технических задачах: Сборник научных трудов Международной научно-практической конференции. – 2016. – С. 261-263.
Мартышкин А.И. Создание имитационной математической модели распределенной вычислительной системы с использованием абстрактных функциональных блоков // Новая наука: история становления, современное состояние, перспективы развития: Сборник статей Международной научно-практической конференции: в 2-х частях. – 2016. – С. 41-43.
http://www.isagraf.ru
Мартышкин А.И. Построение имитационной модели распределенной вычислительной системы с использованием абстрактных функциональных блоков // Информационные технологии. Радиоэлектроника. Телекоммуникации. – 2017. № 7. – С. 372-374.
Мартышкин А.И., Бикташев Р.А., Востоков Н.Г. Программный комплекс для имитационного моделирования диспетчеров задач многопроцессорных систем с использованием приоритетных сетей массового обслуживания // Фундаментальные исследования. – 2014. – № 11-10. – С. 2155-2159.