Сработает. Этот канал для этого и создавался.
то есть возможно обойтись без функциональных блоков (ComConn, MV110_8A_inputs и т.д) из библиотеки ModulsOwenLib и их обработки?
День добрый!
Кто-нибудь, подскажите или укажите, где можно посмотреть пример связи датчика влажности ПВТ-100 и СПК110? Может кто сталкивался с данным вопросом?
Предстоит писать проект, который будет состоять из 5 модулей МВ110-224-8А, одного МУ110-224-8Р и четырех ПВТ-100.
Модули четко считываются и работают, а вот с ПВТ-100 загвоздка. Его опрос идет но, показания считанных регистров по нулям.
Пробовал делать пробную конфигурацию с одним только ПВТ ситуация такая же, опрос есть - горит зелененький кружок возле устройства в дереве проекта в онлайне.
В качестве устройства для опроса ПВТ 100 добавляю стандартный Modbus Slave COM Port.
Прилагаю пробный пример.
Вложение 36766
Добрый день.
Сделайте вот так:
Вложение 36767
Вот как!
Спасибо Евгений!
Попробую.
А все остальное, как я понял, правильно?
У меня СПК110 и скорость обмена с 5 модулями 19200.
В CODESYS ставлю частоту циклов основной программы 200 мс: I, II модули работают, III помигивает "аварией", а на IV "авария" светится постоянно.
Таймауты 1 секунда.
Методом тыка уменьшил частоту циклов основной программы до 90 мс, "аварии" исчезли.
Объясните пожалуйста, в какой задаче "сидит" подзадача обмена данными по RS485? В одном потоке с основным циклом?
Как правильно подобрать время цикла, кроме метода тыка?
Ведь может быть ситуация, когда циклу надо не менее 200 мс, а этого не хватает для полноценного обмена с модулями, который требует например не более 100 мс. Как тогда?
Спасибо.
По умолчанию обмен происходит в задаче с наименьшим временем цикла. Если в проекте одна задача (у вас, видимо, так) - то, соответственно, обмен происходит в ней.
Можно создать отдельную задачу и привязать обмен к ней (см. настройки Modbus Master).
Но зачем? По умолчанию задача MainTask имеет время цикла 20 мс. Поднимать его выше я, честно говоря, не вижу смысла. Если вам необходимо выполнять какие-то операции раз в 200 мс - то лучше для этого использовать таймер в программе.
Евгений, спасибо за оперативный ответ.
В разделе "Конфигурация задач/монитор" можно увидеть "среднее время цикла (нс)". Можно ли его использовать
для выбора времени цикла? Или использовать "максимальное время цикла"? Оно бывает на порядок больше.
Если выбрать маленькое время цикла возможны же сбои, когда один цикл не завершился, а уже вызывается другой. Процессор будет забит под завязку и его может "кому-то" не хватить. или это не критично?
Буду очень благодарен, если разъясните.