Уже 48 жителей города Минск стали богачами из-за этой ...




По $846 каждые 5 минут, если просто...

ПОДРОБНЕЕ

 

 

Этот хак принес мне богатство! Рассказываю, как разбогатеть

Самый простой и легкий метод обогащения

ПОДРОБНЕЕ

 

 

Эрнст: "Я выгнал Малахова с канала, потому что он...

Ведущий сам виноват! Не стоило ему поднимать запретную тему...

ПОДРОБНЕЕ

Предикат enabled(fbj) = ei EI [ZEI(ei)= 1] определяет, является ли разрешенным в текущий момент модельного времени блок fbj. ФБ является разрешенным, если хотя бы на одном из его событийных входов находится сигнал. Определим FBe= {fbFB | enabled(fb)} – множество разрешенных ФБ.

Функция EOS(fbj) определяет линейно-упорядоченное мультимножество сигналов (последовательность), выданных блоком fbjFB при своем выполнении. В данном случае сигналы идентифицируются событийными выходами ФБ, на которых они находятся. Упорядоченность определяется порядком выдачи сигналов.

Функция EIS(fbj) определяет последовательность сигналов, которые появились на входах ФБ в результате выполнения блока fbj. Упорядоченность определяется порядком появления сигналов на входах.

Функция OF(fbj) определяет последовательность блоков - приемников сигналов, выданных с блока fbj при его выполнении. Упорядоченность определяется порядком получения соответствующими блоками входных сигналов.

Функция pr: FB EI N0 = {0, 1, 2, …} определяет приоритет блока или событийного входа.

Отношение предпочтения Pref FB FB служит для определения наиболее предпочтительных блоков для выполнения. Это отношение частичного порядка. Если (fbi,fbj) Pref, то выполнение блока fbi предпочтительнее выполнения блока fbj.

Отношение PoolOrder FB FB задает жесткий порядок выполнения ФБ в циклической модели. С помощью этого отношения все ФБ связаны в кольцо опроса.

Отношение EvConn FB FB определяет событийные связи между ФБ как целыми единицами. Обозначим prefb множество предшественников блока fb по отношению EvConn.

Предикат activeEI(eij) определяет, является ли событийный вход eij активным. Сигнал на активном входе подлежит обязательной обработке.

Функция j: EIj N {} определяет времена прибытия (порядковые номера) сигналов на событийных входах блока fbj. В дальнейшем для простоты верхний индекс будет опускаться.

Если (eik)=, то считается, что на событийной линии eik сигнал отсутствует. В каждый новый момент модельного времени локальные часы для регистрации входных сигналов в системе сбрасываются в ноль.

С помощью спусковых функций можно определить практически любую модель выполнения. Примеры определения «классических» моделей выполнения представлены ниже.

Циклическую модель выполнения можно определить следующей функцией возбуждения:

activeFB(fbj) = fbiFB[activeFBPrev(fbi) & (fbi,fbj) PoolOrder] Циклическая модель выполнения с пропуском неразрешенных ФБ определяется следующим образом:

activeFB(fbj) = enabled(fbj) & (fbiFBap[s=(fbi,fbi+1,…,fbj) [k{i, i+1,…, j–1} [(fk,fk+1)PoolOrder] & |s| m{i+1,…, j–1}[enabled(fbj)]] fbiFBap & fbiFBe[pr(fbi)pr(fbj)]).

Модель выполнения на основе последовательной гипотезы может быть определена следующим образом:

activeFB(fbj) = fbiprefbj[fbjOF(fbi) & (fbkOF(fbi) [activeFBPrev(fbk) & fbj=next(fbk)] activeFBPrev(fbi) & first(OF(fbi), fbj) = true)].

В классической синхронной однотактной модели в каждый момент модельного времени выполняются все разрешенные ФБ:

activeFB(fbj) = enabled(fbj).

В синхронной модели с использованием частичного порядка срабатывания в каждый момент модельного времени активизируются только наиболее предпочтительные разрешенные ФБ:

activeFB(fbj) = enabled(fbj) & fbiFB[enabled(fbi) & (fbi,fbj)Pref].

Рассмотрим следующий пример. Пусть отношение предпочтения Pref задано в виде диаграммы Хассе на рисунке 1.15. Тогда, если допустить, что разрешены все ФБ fb1…fb8, будет активизирован только один блок fb1 как наиболее предпочтительный. Если же разрешены все ФБ, кроме fb1, то одновременно будут активизированы блоки fb2, fb3 и fb4.

Рисунок 1.15 Диаграмма Хассе, определяющая отношение предпочтения ФБ.

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

activeFB(fbj) = enabled(fbj) & fbiFB[enabled(fbi) & pr(fbi)pr(fbj)].

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

activeFB(fb5)=enabled(fb5) & enabled(fb1) & enabled(fb2) & enabled(fb4).

С использованием механизма спусковых функций можно задать «нетрадиционные» модели выполнения, например, основанные на групповых взаимодействиях. Синхронная модель выполнения с явным группированием предполагает разбиение ФБ на группы G1, G2, …, Gn и активизацию блоков целыми группами. Возможно вхождение одного ФБ в разные группы, т.е. возможно, что Gi Gj. В группе ФБ может выделяться один или несколько лидеров группы. Можно выделить следующие условия разрешенности группы: а) разрешены все члены группы; б) разрешен один из лидеров группы; в) разрешены все лидеры группы; г) условие в виде произвольного логического выражения. Одновременно может быть разрешено несколько групп, что определяет конфликтную ситуацию. Возможны следующие пути разрешения конфликтов: а) на основе приоритетов групп; б) на основе максимального числа разрешенных ФБ в группах; в) на основе максимального числа разрешенных ФБ-лидеров в группах и т.д.

Обработка входных сигналов (в базисных ФБ) является одним из самых дискуссионных аспектов в моделях выполнения ФБ. Это связано прежде всего с тем, что сам стандарт не определяет полно жизненный цикл входных сигналов, это особенно касается тех моментов, которые связаны с их удалением. Попробуем еще раз выделить типовые ситуации, возникающие на событийных входах базисных ФБ, а также пути их решения [97, 222].

«Хорошая» ситуация, однозначно интерпретируемая стандартом IEC 61499 и не вызывающая проблем в моделях выполнения ФБ, приведена на рисунке 1.16. Это случай, когда на один из событийных входов поступает сигнал, и при этом существует разрешенный переход в диаграмме ЕСС, помеченный этим сигналом.

Рисунок 1.16 Однозначная ситуация с входными сигналами.

Если предположить параллельное асинхронное функционирование ФБ, которое покрывает все возможные сценарии развития событий в системе ФБ, то, кроме «хорошей» ситуации, представленной на рисунке 1.16, возможны и другие ситуации, которые, однако, вызывают различные трактовки у разных исследователей. Назовем эти ситуации проблемными. Схематичное представление подобных ситуаций приведено на рисунке 1.17. На данном рисунке состояние операционного автомата (OSM) обозначено как State. Значение free («свободно») соответствует состоянию s0 автомата OSM, а состояние busy («занято») – состояниям s1 или s2 автомата OSM [274].

a – «Одновременный приход сигналов на входы ФБ» (ситуация 1);

в – «Приход сигнала на незанятый ФБ, когда его обработка Ситуация 1 (рисунок 1.17,а), когда на входы ФБ одновременно приходят несколько сигналов, является маловероятной, но возможной. Более вероятной является ситуация 2 (рисунок 1.17,б), когда в занятом состоянии на ФБ приходит сигнал. И чем больше реальная продолжительность выполнения алгоритмов, тем более вероятна данная ситуация. Ситуацию 3 можно считать типовой и она встречается на практике очень часто. Не рассматриваются отдельно ситуации 2 и 3 в случае прихода нескольких сигналов, поскольку это не меняет сути дела. Также особо не рассматривается ситуация, когда на один событийный вход приходит два (или более) сигнала с разных направлений, поскольку событийный вход с несколькими входящими событийными линиями можно заменить на эквивалентную конструкцию, содержащую стандартный ФБ E_MERGE. В этом случае данная ситуация трансформируется в ситуацию 1. Ситуация, когда на один и тот же событийный вход одновременно приходят два (или более) различных сигнала с одной и той же событийной линии, является логически бессмысленной. В этом случае «серия» из нескольких сигналов может быть представлена одним сигналом (хотя возможны другие варианты).

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

Например, в модели выполнения на основе последовательной гипотезы в принципе невозможна ситуация 1.

Рассмотрим возможные пути решения проблемных ситуаций. По ситуации 1 имеются следующие варианты обработки входных событий ФБ:

1) по какому-либо правилу выбирается один (активный) входной сигнал, который будет в дальнейшем обрабатываться, а другие сигналы удаляются (правило DelEI1):

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-11-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: