Потестировал ваш проект на СПК1хх [М01].
Приоритеты оставил такие, как в выложенном файле - 9 для HeavyTask и 14 для VisuTask.
У неявно создаваемой в новых таргетах OwenCloudTask приоритет равен 31.
Нагрузочный код "тяжелой" задачи выполнялся циклически ( heavyenable := TRUE; ).
Вот информация мониторинга задач:
2020-11-05_9-41-20.png
Видно, что задачу MainTask никто не вытесняет и что у задач с самыми высокими приоритетами (MainTask, HeavyTask) наименьшее значение джиттера.
Я могу предположить, что в рамках своих тестов вы наблюдаете баги планировщика задач старой версии системы исполнения, которые к настоящему моменту уже исправлены.
Стоит отметить интересный момент - при наличии ошибок по таймуту периодически будут "выбросы" в значениях времени цикла MainTask, потому что в данном проекте (и, в принципе, в большинстве проектов) обмен выполняется в контекте MainTask (которая по умолчанию является задачей цикла шина для Modbus-компонентов). Мы отразим это в документации при ее обновлении.
По поводу извлечения USB- и SD-накопителей - вывел на график время цикла MainTask в микросекундах.
Красная черта - момент, когда я извлек накопитель (на горячую).
Как можно заметить - время цикла MainTask не дрогнуло.
2020-11-05_9-00-40.png 2020-11-05_9-02-21.png
Но опять же - и версия ОС, и версия рантайма со времен СПК207 сильно поменялись.
В них устранено множество недочетов старых версий.