ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
1438481 Топик полностью
Nikolay_Po (26.05.2024 03:01, просмотров: 80) ответил Make_Pic на Как к этой модели привязать чтение данных с портов (DI, AI) в конкретный квант времени, обработку данных, в том числе PID регулирование, вывод данных в DI, AI опять же
Кладите в очередь в нужном порядке. А привязку ко времени сами функции-команды делают. Или по таймерам, или по семафорам. Или всё вместе. Главное, чтобы управляющая программа, которая контролирует очередь, умела определять отклонения от нормального хода работы и устранять сбой. 

Если моменты времени известны и фиксированы, то пусть чтение и вывод производятся вообще без очереди, просто по таймеру и в прерываниях. А код, который работает с данными, вызывается по завершению чтения (например, по флагу готовности данных) и должен успевать обработать до начала вывода, до срабатывания таймера задачи вывода. Другими словами, предложенная мной схема с очередью задач, не предусматривает вытеснения. Задачи должны быть достаточно короткими, чтобы успевали завершиться сами вовремя. В противном случае, нужно использовать ОСРВ и уже в ней строить разные очереди для задач разных приоритетов и длительностей. Тут я уже напрягаюсь, потому, что пишу то, чего сам делать не пробовал. С ОСРВ я ещё сам не работал, поэтому фантазирую.