Блоки RT_Задача и RT_событие (ecoins)

Ответить
Аватара пользователя
Dryundel
Полковник
Сообщения: 2436
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

Блоки RT_Задача и RT_событие (ecoins)

Сообщение Dryundel »

Актуальные библиотеки ecoins здесь
Темы с описанием блоков здесь

.
1.jpg
.
Блоки «Генератор номеров задач» и «Генератор событий», это вспомогательные блоки, своего рода расширение для блока «Диспетчер задач».

«Генератор номеров задач» ( RT_Задача )

С помощью этого блока можно определить очередность выполнения задач одного приоритета.
По сигналу (импульсу) на входе En блок последовательно генерирует один из номеров задач ограниченный значением на входе qnt.


Пример:
Есть у нас в проекте две платы «Контроль освещения» и «Контроль вентиляции» обе имеют алгоритм схожей сложности. Определяем им в блоке задач приоритет slow. Каждая из задач занимает определенное процессорное время. Суммарное время их выполнения может оказаться критичным для пропуска события какой ни будь быстрой задачи. Поэтому поступаем следующим образом – Ставим на выход slow «Диспетчера задач» блок «Генератор номеров задач», а платам добавляем условие на работу по одному из значений выдаваемому блоком.
.
2.jpg
.
Следует помнить что если для slow выставлено 25 мс то каждая из задач будет выполняться через 75 мс, т.к. блок «Генератор номеров задач» на своем выходе генерирует последовательность номеров от «0» до значения на входе qnt. В нашем случае «0» «1» «0» «2».

На заметку:
Если ваш проект не очень сложный вы можете использовать блок «Генератор номеров задач» и без «Диспетчера задач».
К примеру так:
.
3a.jpg
.
Конкретно в этом случае, генерирование "0" не произойдет и не выходе будет "1" "2" "1" "2".

Конечно же выполнять алгоритмы не требующие оперативности каждый цикл не целесообразно, однако такая возможность есть.

Теоретически можно к блоку «Генератор номеров задач» подключить генератор импульсов или счетчик циклов. В наборе блоков ecoins присутствуют подобные инструменты. И запускать платы по своему алгоритму.
.
4.jpg
.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 18 ноя 2019, 08:39, всего редактировалось 3 раза.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2436
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

Блоки RT_Задача и RT_событие (ecoins)

Сообщение Dryundel »

"События - Генератор событий" ( RT_событие )
.
5.jpg
.
Данный блок является делителем событий. Каждые N импульсов на входе En , на выходе event формируется один импульс.
.
Пример с Диспетчером задач.
6.jpg
.
Пример с генератором импульсов.
7.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «Библиотеки пользователей»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя