Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 26

Тема: Шаблоны устройств и время опроса модулей

  1. #11

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Так у меня нет PLC_PRG

    Я, кажется понял - Вы говорите про Codesys 2.3
    Но у меня мои вопросы в 3.5
    Про какой 2.3, я такие вещи не путаю, по умолчанию создаётся POU (PRG) с вызовом 10 мс 1ПОУ.jpg
    Ничего больше не надо, для любого опроса в ПЛК в мастере или слейве.
    Если вы сами нагородили огород, то и пожинаете плоды в виде тормозов в опросе.
    Про Визу и Овен клауд, задачи тоже создаются автоматом.
    Последний раз редактировалось kondor3000; 20.11.2024 в 19:08.

  2. #12

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Про какой 2.3, я такие вещи не путаю, по умолчанию создаётся POU (PRG) с вызовом 10 мс 1ПОУ.jpg
    Ясно. Именно его я переименовал в MainTask и поменял ему интервал на 100мс
    Внутрь этого таска и закинул все свои программы

    По умолчанию данный параметр имеет значение <не задано>. Это означает, что по
    умолчанию в качестве задачи цикла шины используется задача проекта с наименьшим интервалом
    вызова (обычно такой задачей является задача MainTask).
    Т.е., Modbus работает с задачей с наименьшим интервалом. У меня это - мой MainTask с циклом 100мс
    Нужна новая задача с циклом 10мс (или можно ещё меньше?) - и проблема должна быть решена
    Последний раз редактировалось aaaSashaMGGU; 20.11.2024 в 19:08.

  3. #13

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Ясно. Именно его я переименовал в MainTask и поменял ему интервал на 100мс
    Внутрь этого таска и закинул все свои программы


    Т.е., Modbus работает с задачей с наименьшим интервалом. У меня это - мой MainTask с циклом 100мс
    Нужна новая задача с циклом 10мс (или можно ещё меньше?) - и проблема должна быть решена
    И зачем вы сами тормозите свой контроллер?
    Вы хотите из ПЛК сделать ПР200 ? Так и купили бы реле за 20 тысяч, зачем 70 тратить было?
    Последний раз редактировалось kondor3000; 20.11.2024 в 19:21.

  4. #14

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    И зачем вы сами тормозите свой контроллер?
    100мс для основного кода - нормальное адекватное время реакции системы на (например) сработку высокого давления
    10мс для Modbus-а при этом - нормальное время, чтобы (на глазок) за всё время цикла основной задачи 100мс успели опроситься все модули, чтобы основная задача работала уже с новыми данными. А вообще, чем быстрее будет обновляться Modbus - тем лучше. Пусть даже один модуль несколько раз опросится за время цикла основной задачи 100мс. Хуже точно не будет

  5. #15

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    100мс для основного кода - нормальное адекватное время реакции системы на (например) сработку высокого давления
    10мс для Modbus-а при этом - нормальное время, чтобы (на глазок) за всё время цикла основной задачи 100мс успели опроситься все модули, чтобы основная задача работала уже с новыми данными. А вообще, чем быстрее будет обновляться Modbus - тем лучше
    Вы из ПЛК210 сделали ПР200, так и купили бы реле за 20 тысяч, зачем 70 тратить было? Даже ПР200 работает обычно быстрее.
    Это абсолютно не верный подход к программированию контроллера.
    Последний раз редактировалось kondor3000; 20.11.2024 в 19:28.

  6. #16

    По умолчанию

    Я от себя дополню (статью пока не могу написать). В CodeSys 3.5 работа драйверов Modbus примерно в 5-7 раз медленнее, чем в CodeSys 2.3.
    Поэтому такого мгновенного опроса, как в CodeSys 2.3, в новом CodeSys достичь не получится.
    В своих новых проектах я разделяю модули IO на критичные и обычные через два интерфейса RS-485.
    Критичные опрашиваю через библиотеку SysCom или OCL, а обычные - через дерево конфигурации.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  7. #17

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вы из ПЛК210 сделали ПР200, так и купили бы реле за 20 тысяч, зачем 70 тратить было? Даже ПР200 работает обычно быстрее.
    Это абсолютно не верный подход к программированию контроллера.
    Если речь про то, почему я не оставил цикл 10мс и не морочил бы людям голову - то дело в том, что мой написанный код, содержащий в себе в том числе SQL-запросы, отправку писем по Email, отправку СМС на GPRS-модем, сохранение файлов на внешнем FTP-сервере (да-да, хвастаюсь чего уж ) не успевает в цикле 10мс
    И приходится ему увеличивать цикл. Нет, реально цикл 9-10мс с подскоками до 20-30. В этом случае, если оставить всё это в 10мс-задаче - то загрузка будет добрые 100%, а оно мне надо?
    Это тот случай, когда цикл нужно увеличить
    А то, что за этим увеличением ещё и модбас тащится - я (да и не только я, давайте честно скажем) просто не знал
    Последний раз редактировалось aaaSashaMGGU; 20.11.2024 в 19:38.

  8. #18

    По умолчанию

    Так сделайте для долгоиграющих задач свои таски, зачем всё в один 10мс пихать?

  9. #19

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Так сделайте для долгоиграющих задач свои таски, зачем всё в один 10мс пихать?
    В данном проекте все мои задачи интуитивно и не должны сидеть в 10мс. 100мс для них вполне достаточно. Просто время сработки тех же датчиков предельного уровня измеряется секундами. Плюс-минус 100мс туда сюда роли не играет

    Кроме того, если начать программы раскидывать в разные задачи, то начинаются коллизии (проходил, понимаю, о чём говорю) из-за рассинхронов потоков, т.к., POU перестают выполняться последовательно
    Далее, цитата из руководства. Нет, я этого не знал заранее, просто неосознанно сделал именно так:
    8. Рекомендации по работе с задачами
    1. Не добавляйте в проект задачи (используйте только задачи, автоматически создаваемые
    CODESYS).
    В итоге, я не создавал новую задачу, а просто сменил время цикла у существующей
    И по предыдущему заявлению - когда ПР200 научится показывать web-морду с 10-20 клиентами разом - я обязательно его попробую
    Последний раз редактировалось aaaSashaMGGU; 20.11.2024 в 19:58.

  10. #20

    По умолчанию

    Добрый день ещё раз!
    Отписываюсь по результатам

    Исходный цикл ~5 секунд на 13 модулей
    1) Завёл отдельную задачу ModbusTask на 5мс, выбрал её в "Установки ПЛК", "Задача цикла шины". Цикл стал чуть менее секунды
    2) Убрал все шаблоны, заменил их на нужные мне запросы. Цикл стал ~0.5 секунд
    3) Скорость на 57600 сменить не удалось, т.к., ПЛК-110, как оказалось, в режиме Slave вообще работать не умеет (у него встроенные резисторы RS-485), но на 9600 всё работает стабильно. Ну, ладно. В любом случае, хуже чем было - не стало. Всё так и было изначально. Так что, вполне норм

    Если бы делать без ПЛК-110 (в режиме модуля), то скорость выросла бы, думаю, ещё раза в 2-3
    Всем спасибо за подсказки и идеи!

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Шаблоны сетевых устройств для OWEN Logic
    от Ревака Юрий в разделе Среда программирования OWEN Logic
    Ответов: 316
    Последнее сообщение: 11.04.2025, 07:48
  2. Шаблоны модулей Mx210 и др. устройств для CODESYS V3.5 (релиз версии 3.5.11.12)
    от Евгений Кислов в разделе Библиотеки CODESYS
    Ответов: 9
    Последнее сообщение: 14.03.2025, 09:35
  3. Шаблоны устройств для Мх110
    от twit в разделе Мх110
    Ответов: 4
    Последнее сообщение: 16.05.2024, 16:57
  4. Шаблоны модулей Mx110 и др. устройств для CODESYS V3.5 (релиз версии 3.5.11.12)
    от Евгений Кислов в разделе Библиотеки CODESYS
    Ответов: 9
    Последнее сообщение: 26.02.2024, 07:39
  5. Шаблоны устройств.
    от LexScor в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 17.09.2007, 14:41

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •