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

Описание разработок Ecoins для чайников

Ответить
Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#1

Сообщение Dryundel » 15.11.2019{, 12:45}

Актуальные библиотеки 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.11.2019{, 08:39}, всего редактировалось 3 раза.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#2

Сообщение Dryundel » 15.11.2019{, 12:46}

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

Ответить

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