
Сообщение от
Дмитрий Артюховский
"От темы мы отошли. А решение по установки МинВЦ ПЛК уже указано постами выше:
- МинВЦ ПЛК устанавливаем 0 мс;
- через Конфигуратор задач запускаем программу с требуемым интервалом (если требуется). Данный интервал принимает больше среднего времени цикла ПЛК.
В этом случае и сетевой обмен не тормозит и программа выполняется через заданный интервал."
это примерно тоже самое что ставить телегу впереди лошади )))) вроде и работает, но выглядит идиотски, и колеса буксуют в ямках )))
нормальное состояние это когда ритмично выполняется цикл ПЛК в котором прогоняется программа пользователя, затем служебные задания (обмены), затем временная пауза для выравнивания времени. В этом случае основной код выполняется со стабильной частотой дискретизации, происходят регулярные, стабильные во времени, вызовы фоновых процедур. Предлагаемая вами схема подразумевает довольно значительное время выполнения цикла основного кода, в это время не будет обработки фоновых обменов, и возможны потери из-за переполнения буферов и из-за превышения таймингов запросов - ответов протокола обмена. Зато, во время нулевых циклов, когда основной код не выполняется, будут только суматошные вызовы фоновых процедур по контролю пустых буферов обмена ))) Кроме того, на фоновые обмены отводится время между окончанием цикла пользователя и очередным таймерным отсчетом.... а если этот таймер не настроен будет??? (нулевое время цикла) то сколько времени будет отведено на фоновые процедуры???