Международный студенческий научный вестникrae.ru

Международный студенческий научный вестник

ISSN 2409-529X

ИМИТАЦИОННАЯ МОДЕЛЬ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ УПРАВЛЕНИЯ С ПРИМЕНЕНИЕМ ФУНКЦИОНАЛЬНЫХ БЛОКОВ

Антонова Е.А. 1, Мартышкин А.И. 1
1Пензенский государственный технологический университет

Развивающимся перспективным направлением в проектировании систем управления является методика проектирования на основе абстрактных функциональных блоков (ФБ) [1]. ФБ служат основой для построения приложений, распределенных между отдельными узлами управляющей сети. Распределенная информационно-управляющая система представляет собой, в данном случае, совокупность ФБ, связанных управляющими и информационными связями. Каждый блок отвечает за выполнение какой-либо части управляющего алгоритма. Таким образом, здесь имеет место объектно-ориентированный подход к созданию приложений. Существует возможность создания своих блоков их последующего использования при проектировании, а также расширения функциональности уже существующих [2, 3].

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

ФБ описывается объявлением внешнего интерфейса, диаграммой управления исполнением и алгоритмами, выполняемыми в соответствии с диаграммой. Алгоритмы могут быть написаны как на языках стандарта IEC 61131, так и обычных языках структурного программирования [1].

На сегодняшний день существует несколько программных продуктов поддерживающих стандарт IEC61499 среди них можно выделить среду Function Block Development Kit (FBDK) и программный продукт IsaGRAF 5 [4].

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

Рассмотрим конкретный пример разработки с использованием ФБ системы массового обслуживания, состоящей из очереди и обслуживающего прибора. Блок очереди (QUEUE) представлен на рис. 1.

ant1.tif

Рис. 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

<FBType Name=»QUEUE» Comment=»Model for a Rotating Shaft» >

<Identification Standard=»61499–1» />

<InterfaceList>

<EventInputs>

<Event Name=»INIT» Comment=»Запуск иициализации, установка максимальной длины очереди» >

<With Var=»NUM_CH» />

<With Var=»MAX_LENGTH» />

</Event>

<Event Name=»Z_IN» Comment=»Появление заявки» >

<With Var=»Z_NUM_IN» />

</Event>

<Event Name=»FREE_OP» Comment=»Обслуживающий прибор свободен» >

</Event>

</EventInputs>

<EventOutputs>

<Event Name=»Z_ENTER» Comment=»заявка вошла в очередь» >

<With Var=»LENGTH» />

<With Var=»Z_NUM_OUT» />

</Event>

<Event Name=»Z_LEAVE» Comment=»Заявка покинула очередь» >

<With Var=»Z_NUM_OUT» />

</Event>

<Event Name=»Q_FULL» Comment=»Очередь заполнена» >

<With Var=»LENGTH» />

</Event>

<Event Name=»Z_REJEKT» Comment=»Заявка отклонена» >

<With Var=»LENGTH» />

<With Var=»Z_NUM_OUT» />

</Event>

</EventOutputs>

<InputVars>

<VarDeclaration Name=»MAX_LENGTH» Type=»INT» Comment=»Максимальная длина очереди» />

<VarDeclaration Name=»Z_NUM_IN» Type=»INT» Comment=»Номер поступающей заявки» />

<VarDeclaration Name=»NUM_CH» Type=»INT» Comment=»Количество каналов в соответствующем обслуживающем приборе» />

</InputVars>

<OutputVars>

<VarDeclaration Name=»LENGTH» Type=»INT» Comment=»Текущая длина очереди»/>

<VarDeclaration Name=»Z_NUM_OUT» Type=»INT» Comment=»Номер заявки покидающей очередь» />

</OutputVars>

</InterfaceList>

</FBType>

Функциональный блок обслуживающего прибора представлен на рис. 2.

ant2.tif

Рис. 2. Функциональный блок обслуживающего прибора

Вход данных NUM_CH используется для задания количества каналов обслуживающего прибора [5, 6]. Для включения заявки в обслуживающий прибор используется вход Z_IN. При появлении события на данном входе считывается значение на входе данных Z_NUM_IN, которое содержит номер заявки, а также устанавливается время обработки заявки равное значению на входе данных GEN. Вход TIMER используется для реализации задержки подсчётом событий от таймера. После завершения обработки заявки выдаётся событие на выходе Z_LEAVE и выдается номер заявки на выходе Z_NUM_OUT, а также выдаётся текущее значение количества занятых каналов с выхода CUR_NUM.

Программа, описывающая функционирование ФБ SD, представлена на языке XML.

<FBType Name=»SD» Comment=»Блока обслуживающего прибора» >

<Identification Standard=»61499–1» />

<InterfaceList>

<EventInputs>

<Event Name=»INIT» Comment=»Запуск иициализации, установка максимальной длины очереди» >

<With Var=»NUM_CH» />

</Event>

<Event Name=»Z_IN» Comment=»Появление заявки» >

<With Var=»GEN» />

<With Var=»Z_NUM_IN» />

</Event>

<Event Name=»TIMER» Comment=»Обслуживающий прибор свободен» >

</Event>

</EventInputs>

<EventOutputs>

<Event Name=»Z_LEAVE» Comment=»заявка закончила обслуживание» >

<With Var=»Z_NUM_OUT» />

<With Var=»CUR_NUM» />

</Event>

</EventOutputs>

<InputVars>

<VarDeclaration Name=»NUM_CH» Type=»INT» Comment=»Количество каналов» />

<VarDeclaration Name=»GEN» Type=»INT» Comment=»Количество каналов»/>

<VarDeclaration Name=»Z_NUM_IN» Type=»INT» Comment=»Имя заявки поступившей на обслуживание» />

</InputVars>

<OutputVars>

<VarDeclaration Name=»CUR_NUM» Type=»INT» Comment=»Текущее количество занятых каналов» />

<VarDeclaration Name=»Z_NUM_OUT» Type=»INT» Comment=»Имя выходящей заявки» />

</OutputVars>

</InterfaceList>

</FBType>


Библиографическая ссылка

Антонова Е.А., Мартышкин А.И. ИМИТАЦИОННАЯ МОДЕЛЬ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ УПРАВЛЕНИЯ С ПРИМЕНЕНИЕМ ФУНКЦИОНАЛЬНЫХ БЛОКОВ // Международный студенческий научный вестник. 2018. № 3. С. 266-269;
URL: https://eduherald.ru/article/view?id=18253 (дата обращения: 25.08.2026).