Краткое содержание темы "Решение задачи управления" с аннотациями

Как устроена среда EFFLY

Например, нам нужно указать канал, по которому из механизма нагрева mTmprA1 результативный продукт поступает на вход системы потребления продукта sRecA1. Для этого нужно указать сам объект подачи продукта, а затем поставить точку и указать секцию выдачи. Затем через дефис нужно таким же образом указать объект приема продукта. В результате получится такая конструкция: «Результативный продукт из механизма mTmprA1 попадает в систему потребления sRecA1 по каналу mTmprA1.PA - sRecA1.RT».

Но ведь важно не только говорить, а и использовать на практике полученные знания. Для этих целей был создан программный конструктор EFFLY. Каждый механизм и каждая и система, изображенная на рис.1, создана в нем в виде объекта. Это означает, что для того чтобы увидеть систему в работе, достаточно указать, какие объекты будут использоваться, правильно их соединить и согласовать.

В системе (рис.2) мы практически ничего не изменили по отношению к агентной модели, просто агентов заменили блоками. Но, каждый такой блок реализован в виде электронного объекта. Эти электронные механизмы связаны между собой в специально разработанной программной среде, которая называется EFFLY. Специальная система этой среды обеспечивает обмен данными между электронными объектами, а эти объекты, при необходимости, выполняют свою специальную и сервисные функции.

Давайте, пока не вдаваясь в детали, посмотрим, как функционирует собранная управляемая система effly-step1-3. Для этого ее нужно вначале загрузить здесь.

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

Выберите Сервис/Макрос/Безопасность. На вкладке Безопасность выберите средний уровень безопасности. Перед загрузкой программы появится сообщение о том, что effly-step1-3.xls содержит макросы. Нажмите кнопку "Не отключать макросы".

Перед тем, как осуществить запуск управляемой системы, Вы должны знать, что прервать в любой момент времени ее работу можно нажав клавишу «Esc» или комбинацию клавиш «Ctrl+Break». В появившемся окне нужно нажать кнопку «End». После этого нужно перейти на вкладку «Дисплей» и можно все повторить снова.

Продолжительность работы системы составляет 5 часов системного времени. Это от нескольких секунд, до нескольких минут реального времени. Все зависит от тактовой частоты вашего процессора. Само системное время отображается в левом верхнем углу, а задается на листе mTimerB в ячейке "D3".

Запустите программу. Перед Вами должен отобразиться интерфейс (рис.1) в виде мнемосхемы.

Мнемосхема
Рис.1 Вид мнемосхемы управляемой системы

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

Справа, внизу, расположена кнопка «ПУСК». Собственно эта кнопка и осуществляет запуск системы.

А теперь, давайте посмотрим, как это все работает. Не забыли, как в случае необходимости прервать работу EFFLY?

Тогда нажимаем кнопку ПУСК, и наблюдаем за тем, как все происходит.

Итак, управляемая автоматическая система effly-step1-3 функционирует. Давайте разберемся с тем, как она устроена. Среда EFFLY реализована исключительно средствами Microsoft Excel. На Excel – листе "Классы", перечислены классы объектов, которые доступны для использования в нашей работе. Это классы механизмов, подсистем и систем.

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

Когда вы работали над агентной моделью, то вероятно заметили, что некоторые агенты выполняют очень похожие функции. Например, в функции агентов 5 и 9 входит задача определения момента завершения приема или подачи продукта. Что мешает эти задачи выполнять одному агенту, который может определять момент завершения операции передачи некоторого продукта? Тем более что эту работу агенты 5 и 9 выполняют не одновременно. Например, специальный электронный объект может выполнить работу по определению момента завершения подачи специального продукта, а затем работу по определению момента завершения передачи целевого продукта.

Что для этого нужно? Для этого нужно вначале пригласить электронного агента в одно место, а затем в другое. В реальной жизни такие ситуации встречаются очень часто. Например, это вызов скорой помощи, приглашение репетитора, сантехника и т.д. Операционная система программного конструктора EFFLY делает точно также.

Откройте лист "Экземпляры". Вы увидите список вызова объектов, и некоторые объекты мы вызываем дважды. Вызывая объект, необходимо указать ему место, где он может взять продукты для обработки и куда ему нужно передать готовые продукты. Адрес рабочего места начинается с имени листа, которое совпадает с именем класса. Номер экземпляра в колонке "С" листа "Экземпляры" это уточненный адрес места на соответствующем листе. Например, механизм определения момента завершения операции передачи продукта имеет имя mFinA. Следовательно, места для получения и передачи продуктов этого механизма находятся на одноименном листе. Порт экземпляра механизма mFinA1 находится в колонке "D", а экземпляра mFinA2 – в колонке "E".

Поскольку электронные объекты EFFLY непосредственно не связаны между собой, у них нет входов и выходов в прямом смысле этого слова. Эти объекты в определенном месте берут продукты для своей работы и возвращают готовые продукты тоже в определенное место. Это место определяют как "порт". У порта есть секции. Например, у механизма mFinA порт состоит из двух секций, секции 3 и секции 4.

Каждая секция имеет свое название. Секция, в которой mFinA получает продукт, определена как секция "IN". Секция, в которую mFinA передает результаты выполнения своей специальной функции, определена как секция "OUT". Если информационный продукт, который получает объект, не изменяет своего значения в процессе функционирования управляемой системы, его значение просто вводится в требуемую секцию порта, которая выделена зеленым цветом. Правильнее это делать используя механизм mGstA, но при таком подходе сильно загромождается модель управляемой системы. Так, например, в секцию порта ETL объекта mCmpA вводится информация о величине, до уровня которой необходимо нагревать жидкость.

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

Вы, наверное, обратили внимание, что названия систем начинаются строчной буквой s, а названия механизмов – строчной m. Название объекта почти всегда построено на сокращении от английского аналога слова, обозначающего сущность технологической или специальной функции объекта. Например, mTmpr - от "temperature", sSrcA – от "source" (источник), mPass – от "pass" (передача), sRecA – от "receiver" (приемник), mFinA - от "finish" (завершать), mCmpA - от "compare" (сравнивать).

Для обеспечения обмена данными систем и механизмов, служит модуль обмена данными операционной системы. Входными продуктами этой системы являются данные, расположенные в базе листа "Соединения". Эти соединения в точности соответствуют структурной схеме управляемой системы effly-step1-3 (рис.2).

Структура системы

Рис.2 Структура управляемой системы effly-step1-3

Обозначения объектов и их определения приведены в таблице.

Объект    Определение объекта
sSrcA    Источник продуктов с ограниченным уровнем запасов
sSrcP    Источник продуктов с неограниченным уровнем запасов
sRecA    Приемник продуктов с ограниченным уровнем запасов
mTmprA    Механизм нагрева
mCrdA    Механизм координации систем
mFinA    Механизм регистрации завершения операции
mPassA    Механизм согласованной передачи данных
mCmprA    Механизм сравнения сигналов