Вход

Просмотр полной версии : Задержка получения / отправки спк110 - мв/му модули



Евгений302
03.06.2025, 17:28
Проблема следующая : 14 модулей на одной шине , 8 на другой , 10 на третьей . Опрашивал каждый модуль циклично , пока опросит все 14 - задержка на первом , секунды 3-4 . Посоветовали не использовать родные блоки , использовать слэйв и регистры , сделал - результаты лучше , но от идеала далек 1.5-2секунды . Оставлял 2 модуля , удаляя остальные , вроде быстро работает . После 4 модулей , начинается видимые задержки .Переменные присваивал прямо в биты … вопрос следующий , слишком много модулей на шине и лучше не будет , че не делай ? Или присваивать байту переменную , а цикл опроса переменной внутри задачи , ускорит опрос в шине ? Или надо пересматривать всю архитектуру ?

kondor3000
03.06.2025, 17:38
Проблема следующая : 14 модулей на одной шине , 8 на другой , 10 на третьей . Опрашивал каждый модуль циклично , пока опросит все 14 - задержка на первом , секунды 3-4 . Посоветовали не использовать родные блоки , использовать слэйв и регистры , сделал - результаты лучше , но от идеала далек 1.5-2секунды . Оставлял 2 модуля , удаляя остальные , вроде быстро работает . После 4 модулей , начинается видимые задержки .Переменные присваивал прямо в биты … вопрос следующий , слишком много модулей на шине и лучше не будет , че не делай ? Или присваивать байту переменную , а цикл опроса переменной внутри задачи , ускорит опрос в шине ? Или надо пересматривать всю архитектуру ?

Надо было написать какие модули.
Например МВ110-8А, всего 48 регистров, можно читать 8 входов по отдельности, условно 8*100мс=0,8 секунды, 10 модулей уже 8 секунд.
а можно прочитать все 48 регистров группой за 50 мс, 0,05* 10 модулей= 0,5 секунды и потом взять всё что надо

Пример чтения 7 модулей МВ110-8АС в среде Codesys 2.3 тут, использованы структуры и чтение массивов регистров, советую посмотреть
https://owen.ru/forum/showthread.php?t=10555&p=414990&viewfull=1#post414990
По аналогии делается и в среде Codesys 3.5

Евгений302
06.06.2025, 10:40
Добрый день ! Спасибо за ответ . На одной шине 3х МВ110-32дн и 5х МУ110.16к . На другой 6х МВ110-32дн и 4х МУ110.16к и на третьей 3х мв110-32дн и 11х МУ110.16к . Сейчас цикл стоит минимальный как я понимаю для спк110 - 10мс. Задержка дискретных сигналов , что то около секунды- полторы . Где то ничего страшного , а где то есть вопросы … решили купить ПЛК , у которого цикл в 1мс , будем из как мастером все опрашивать пробовать .

kondor3000
06.06.2025, 13:33
Добрый день ! Спасибо за ответ . На одной шине 3х МВ110-32дн и 5х МУ110.16к . На другой 6х МВ110-32дн и 4х МУ110.16к и на третьей 3х мв110-32дн и 11х МУ110.16к . Сейчас цикл стоит минимальный как я понимаю для спк110 - 10мс. Задержка дискретных сигналов , что то около секунды- полторы . Где то ничего страшного , а где то есть вопросы … решили купить ПЛК , у которого цикл в 1мс , будем из как мастером все опрашивать пробовать .

Тут дело не в цикле ПЛК, а в 100 мс на чтение (запись) по умолчанию, если читать (записывать) только маски, то уменьшать надо 100 мс.

Евгений302
06.06.2025, 14:46
Под «читать только маски» имеется в виду использовать для чтения только две переменных ( для устройства в 32мч входами ) и одну переменную ( для устройст с 16ю выходами ) , а не вбивать туда переменные в каждый бит ? Сейчас просто я делаю именно так . Но и скорость в при настройке ( в всплывающем окне, где вставляется сдвиг ) тоже поставил 10 мс . Или где то еще есть параметр скорости чтения / записи ?

P.S. переделал , читал и записывал одну переменную , а уже потом раскладывал ее на биты . Результат отрицательный , как были задержки так и остались .