PDA

Просмотр полной версии : СПК107 М01 Работа порта RS485



eigor_vl
27.02.2023, 11:51
CodeSys SP17 странно работает порт Modbus. Скорость 38400 в выпадающем списке не отображается (проект был перенесен с SP11) хотя на этой скорости работает. И задержки при обмене странные. Что тут не так?
66194

Евгений Кислов
27.02.2023, 11:53
CodeSys SP17 странно работает порт Modbus. Скорость 38400 в выпадающем списке не отображается (проект был перенесен с SP11) хотя на этой скорости работает. И задержки при обмене странные. Что тут не так?
66194

Добрый день.
Удалите узел Modbus COM и добавьте заново (версии 3.5.17.0 или выше) - тогда скорость 38400 будет отображаться корректно.
Насчет "странных задержек при обмене" - опишите более конкретно, что мы имеете в виду.

eigor_vl
28.02.2023, 08:14
О задержки опроса по RS485.
Есть 40 точек чтения/записи регистров (одиночные). Циклический опрос, цикл 100 мс. Таймаут 100 мс. На макете только 10 точек. 30 точек не отвечают по таймауту. В итоге цикл опроса 30 сек. Почему? Грубая прикидка 30 * 100 мс = 3 с

Евгений Кислов
28.02.2023, 09:51
О задержки опроса по RS485.
Есть 40 точек чтения/записи регистров (одиночные). Циклический опрос, цикл 100 мс. Таймаут 100 мс. На макете только 10 точек. 30 точек не отвечают по таймауту. В итоге цикл опроса 30 сек. Почему? Грубая прикидка 30 * 100 мс = 3 с

Я провел эксперимент по вашим данным - результаты примерно совпадают с вашими (у меня цикл опроса составил ~22 секунды).
Причем это проявляется и в старых версиях компонентов Modbus.
Ответа на вопрос "почему" у меня, к сожалению, нет.

Cs-Cs
28.02.2023, 10:15
О задержки опроса по RS485.
Есть 40 точек чтения/записи регистров (одиночные). Циклический опрос, цикл 100 мс. Таймаут 100 мс. На макете только 10 точек. 30 точек не отвечают по таймауту. В итоге цикл опроса 30 сек. Почему? Грубая прикидка 30 * 100 мс = 3 с
А в точках сколько эээ.. каналов опроса?
А то Modbus в CodeSys 3.5 имеет хитрые особенности:
а) Иногда вылазит беспричинная задержка в 70 мс между запросами
б) При отвале связи перебирает каждый канал опроса со своим таймаутом. То есть, если в устройстве 10 каналов опроса с таймаутом 100 мсек - то если устройство не отвечает, то его таймаут будет равен ЧислоКаналов * (ТаймаутОпроса + ЗадержкаМеждуЗапросами), а не ТаймаутОпроса.

eigor_vl
28.02.2023, 11:49
Я провел эксперимент по вашим данным - результаты примерно совпадают с вашими (у меня цикл опроса составил ~22 секунды).
Причем это проявляется и в старых версиях компонентов Modbus.
Ответа на вопрос "почему" у меня, к сожалению, нет.

Повторных запросов при "неответе" я не вижу. Когда пользовался библиотекой ComService (СПК был слейв) таких задержек не было. До 70 ти регистров опрашивал. Есть ли аналогичная библиотека для работы СПК как мастер?

Евгений Кислов
28.02.2023, 11:52
Повторных запросов при "неответе" я не вижу. Когда пользовался библиотекой ComService (СПК был слейв) таких задержек не было. До 70 ти регистров опрашивал. Есть ли аналогичная библиотека для работы СПК как мастер?

Да, см. библиотеку OwenCommunication - в ней есть все необходимые ФБ.

eigor_vl
28.02.2023, 11:55
А в точках сколько эээ.. каналов опроса?
А то Modbus в CodeSys 3.5 имеет хитрые особенности:
а) Иногда вылазит беспричинная задержка в 70 мс между запросами
б) При отвале связи перебирает каждый канал опроса со своим таймаутом. То есть, если в устройстве 10 каналов опроса с таймаутом 100 мсек - то если устройство не отвечает, то его таймаут будет равен ЧислоКаналов * (ТаймаутОпроса + ЗадержкаМеждуЗапросами), а не ТаймаутОпроса.

Устройств 11 шт. регистров 40. Все равно не сходятся эти 30 сек. Возможно что то с отваливанием устройств и программа перезапускает соединение. Галочку поставил. Да да! без галочки затыкается совсем Modbus.

eigor_vl
28.02.2023, 12:00
Да, см. библиотеку OwenCommunication - в ней есть все необходимые ФБ.

Понятно. Спасибо.