PDA

Просмотр полной версии : МУ110-224.6У - плохая связь в сети RS-485



Виталий Шепелев
04.12.2023, 12:55
Доброго дня, столкнулся с проблемой при наладке - в сети RS-485 два модуля: МУ110-224.8Р и МУ110-224.6У. Подключаюсь с ПК через Овен АС4 и программу Конфигуратор М110. 8Р - работает отлично, никаких вопросов. 6У - отвечает Конфигуратору М110 нормально, только если он один в сети. Как только подключаю 8Р - 6У перестает отвечать - все время тайм-аут. Длина линии связи общая 20 см, скорость 9600 - то есть, тут не должно быть проблем, даже если нет резистора. Настройки модулей прикладываю скринами в файле 1.doc. Попробовал поменять стоп-биты на 2 (было 1) - не помогло, пробовал на 6У увеличить задержку ответа и сетевой тайм-аут - не помогло. Работаю с модулями по Modbus RTU - 8Р - опрашивается без ошибок моим программным кодом, все ровно, 6У - в ответе на запрос от ПК - только нули.

МихаилГл
04.12.2023, 13:01
Вы пытаетесь конфигуратором одновременно работать с 2мя модулями?

melky
04.12.2023, 13:07
почитайте про адресацию приборов при протоколе Овен. Конфигуратор вроде через этот протокол производит настройки.

Виталий Шепелев
04.12.2023, 13:12
Да, ну не совсем одновременно - я же в настройках подключения указываю адрес модуля: 8Р - у меня адрес 16 (DEC), 6У - адрес 17 (DEC), и вот когда два модуля в сети, я подключен к ним с ПК через Овен АС4 - 8Р отвечает нормально - по крайней мере читаю все настройки его, а 6У - все время ошибки. Если отдельно только 6У подключаю - то читаются и пишутся настройки связи в модуль, но вот сейчас заметил - в скрине это есть в приложенном файле - что там красным выделен раздел состояния дискретных входов - понятно, в 6У же их нет - или Конфигуратор М110 не понимает, что читает 6У?

Cs-Cs
04.12.2023, 13:18
...ОВЕНский Конфигуратор Мх110 работает с модулями по протоколу "ОВЕН", даже если в настройках модуля стоит Modbus или другой протокол.
А этот протокол "ОВЕН" имеет правило: адреса модулей должны отличаться на число их каналов.
То есть вот если на 8Р адрес будет равен 16, то следующий адрес модуля нужен сделать 16 + 8 = 24. А лучше сразу 32, например (для круглого счёта).
Тогда конфигуратор Мх110 всё увидит.

Виталий Шепелев
04.12.2023, 13:20
Да, вижу вот это: Базовый адрес каждого следующего прибора: [базовый адрес предыдущего прибора]+6 - в документации - для протокола Овен - но я же в настройках уже установил у обоих модулей протокол Modbus RTU - и работать - опрашивать своим программным кодом - собираюсь через Modbus RTU. Или для Modbus RTU тоже нужно адрес каждого последующего модуля через 6? По практике - работаю несколько лет с модулями М110 - ничего подобного не было - адресовал друг за другом - и все работает прекрасно - а тут какая-то непонятка)

МихаилГл
04.12.2023, 13:21
Попробуйте Owen Configurator, в Конфигуратор Мх110, например, у меня нет выбора протокола... Он у вас там как раз красным горит на скрине...

Виталий Шепелев
04.12.2023, 13:23
ух ты, вон как - понял, но получается - я ставлю адрес, скажем для 6У - +8 относительно 8Р, то есть 24, если у меня 8Р - 16, например, но тогда этот же адрес будет и для протокола Modbus?

Виталий Шепелев
04.12.2023, 13:27
Да, попробовал поставил 32 - помогло - теперь Конфигуратор М110 видит, теперь только вопрос - как по Модбас будет работать с моим кодом)

Cs-Cs
04.12.2023, 13:38
Да, попробовал поставил 32 - помогло - теперь Конфигуратор М110 видит, теперь только вопрос - как по Модбас будет работать с моим кодом) Адрес единый для всех протоколов. Поэтому по ModBus будет работать по адресу 32.

Виталий Шепелев
04.12.2023, 15:12
в продолжении темы - что-то с программным кодом пока не очень работает - отправляю в модуль 6У стандартную посылку - адрес (32) + регистр (0х0 - аналоговый канал 1) + функция (0х10) + значение ЦАП - то есть, вроде все стандартно, я точно также в соседний модуль 8Р отправляю новое состояние релейных выходов - одну и ту же функцию использую для обоих модулей - и 8Р - все отлично, ответ есть, и реле работают, а 6У - на физическом выходе - нули, ответ по Модбас приходит, но в нем тоже все байты - нули. Может аналоговый медленный, и надо ждать гораздо дольше? ? Ну я меня и так таймаут 300 мс - куда уж больше

Виталий Шепелев
04.12.2023, 15:13
спасибо - с этим уже разобрался, вот теперь с Модбас - выше сообщение сейчас разместил - что-то 6У не так, как 8Р себя ведет

Виталий Шепелев
04.12.2023, 16:10
а вот еще не подскажете - посылаю посылку в модуль - и как только посылка ушла - сразу мониторю ответ, без ожидания. Может поэтому в ответе нули? хотя в таком режиме 8Р нормально отвечает, а вот 6У - нет. Видимо, ему время надо, чтобы ЦАП запустить?

Cs-Cs
04.12.2023, 17:47
а вот еще не подскажете - посылаю посылку в модуль - и как только посылка ушла - сразу мониторю ответ, без ожидания. Может поэтому в ответе нули? хотя в таком режиме 8Р нормально отвечает, а вот 6У - нет. Видимо, ему время надо, чтобы ЦАП запустить?
Чем ведётся опрос? Не ПромУстройством (в которых он цикличен)?
Ответ в общем виде: да, модули ввода-вывода НЕ обязаны отвечать мгновенно. Они могут делать это с задержкой. У некоторых модулей ОВЕН указывается в конфигураторе явно, в параметре Rs.dl. Некоторым модулям требуется время, чтобы подготовить ответ.
Свой программа опроса должна делать примерно так:
* Послали что надо в порт побайтно
* Запустили отсчёт ТаймАута приёма, обнулили буфер приёма
* Пока идёт отсчёт времени таймаута, все принятые байты из портаа складываем в буфер подряд. Важно: ответ может читаться в порту по кускам, а не всей посылкой сразу
* Если прочитали нужное число байтов ответа (или поняли, что ответ получен) - обрабатываем его, отсчёт ТаймАута останавливаем
* Если досчитали до ТаймАута - считаем что приняли ерунду с ошибкой

В ПЛК, ПР, Панелях оператора всё это делается автоматически. Если опрос делается на чём-то своём на уровне "послали байты-приняли байты" - то всё это надо реализовать вручную.

1exan
05.12.2023, 04:59
Про адреса какая-то лажа. Всегда ставилю через конфигуратор адреса 1,2,3 и не имею проблем

Вроде такая адресация нужна, если подключены к конфигуратору ОДНОВРЕМЕННО все модули (сам тоже нумерую подряд, но и конфигурирую по одному модулю)

1exan
05.12.2023, 10:35
но если они с завода, как сразу все?

Если новые, то без вариантов. А если в уже сконфигурированных и подключенных надо поменять?
Но это всё так, предположения. Когда мне надо что-то поменять через конфигуратор, я модуль всегда отключаю от других

Cs-Cs
05.12.2023, 10:56
Если новые, то без вариантов. А если в уже сконфигурированных и подключенных надо поменять?
Но это всё так, предположения. Когда мне надо что-то поменять через конфигуратор, я модуль всегда отключаю от других Я вот начинаю думать, что я лох и зря так не делаю.
Я-то ставлю адреса через 10: 10, 20, 30... И да - как ты и говоришь - отключаю модуль и цепляю конфигуратор отдельно.
А кто мне мешает нормально адреса давать, если у меня модулей в проекте-то ну максимум 6-9 штук и адресов хватит так, чтобы кофигуратор нормально их видел.
С нового проекта так начну делать, тем более, что я почти дописал свою систему учёта конфигураций оборудования, и в ней всё заранее можно пронумеровать, а потом сконфигурировать модули (пост и видео про систему сделаю - надо сделать функцию распечаток инфы - и готово).
72137 72138

1exan
05.12.2023, 18:55
Я вот начинаю думать, что я лох и зря так не делаю.
Я-то ставлю адреса через 10: 10, 20, 30... И да - как ты и говоришь - отключаю модуль и цепляю конфигуратор отдельно.
А кто мне мешает нормально адреса давать, если у меня модулей в проекте-то ну максимум 6-9 штук и адресов хватит так, чтобы кофигуратор нормально их видел.
С нового проекта так начну делать, тем более, что я почти дописал свою систему учёта конфигураций оборудования, и в ней всё заранее можно пронумеровать, а потом сконфигурировать модули (пост и видео про систему сделаю - надо сделать функцию распечаток инфы - и готово).
72137 72138

Тут ещё новые модули с прошивкой HW2.0 и новым конфигуратором не дают назначить адрес модулю менее 16.
Если кому-то вдруг нужно будет заменить старый модуль, а там используется адрес меньше 16 (а это для меня - 100% попадание) - проблем сразу куча и на ровном месте

Cs-Cs
06.12.2023, 10:52
А вы закрепляете миф про адреса как Сусанин:...иногда мне кажется, что ты себе ник выбрал верно в стиле "Эх, Валенок ты, Валенок".
1. СТАРЫЕ Мх110 в конфигураторе ВСЕГДА работают по протоколу "ОВЕН".
2. Протокол ОВЕН требует того, чтобы адреса модулей отличались друг от друга на число каналов модуля, а не шли подряд. Про эту его особенность мне говорили ещё в 2016 году. Когда этот щит заказывали: https://cs-cs.net/shhit-dlya-kvartiry-plk-oven
3. Адрес 32 был предложен для опыта, чтобы не высчитывать что-то там, а проверить догадку.
Если что-то не так - пиши пожалуйста развёрнуто, а не по твоей схеме "написикнул и дальше побежал".


Тут ещё новые модули с прошивкой HW2.0 и новым конфигуратором не дают назначить адрес модулю менее 16.
Если кому-то вдруг нужно будет заменить старый модуль, а там используется адрес меньше 16 (а это для меня - 100% попадание) - проблем сразу куча и на ровном месте
Ну, это потом можно будет попросить поправить. Или не прикрывать лавчоку. Будет топить за обратную совместимость и поддержку протоколов. Типа, если есть поддержка Modbus - то извольте поддержать все адреса полностью.

Мастеренко Иван
06.12.2023, 11:29
Надеюсь Овен не прикроет эту лавочку

Не прикроем. Это удобно.


Типа, если есть поддержка Modbus - то извольте поддержать все адреса полностью.

В Owen Configurator поддержан весь диапазон адресов Modbus с 1 по 255 если добавить шаблон модуля по протоколу Modbus RTU.
Для протокола ОВЕН в шаблонах Owen Configurator диапазон адресов от 16 до 2032 при 11-битной адресации.

Для информации: мы убрали шаблоны по протоколу ОВЕН из Owen Configurator в свежей версии. Если удалить конфигуратор и заново установить, то шаблоны для протокола ОВЕН будут отсутствовать.

72173

Если вдруг потребуется задать адрес больше 255 используйте старый Конфигуратор М110.

1exan
06.12.2023, 11:37
Если че, они, к счастью, по дефолту в модбасе и их можно и без конфигуратора законфигурить с любым адресом. Надеюсь Овен не прикроет эту лавочку

Не понял - сетевой адрес можно поменять по Modbus? Какой регистр?

Cs-Cs
06.12.2023, 12:24
Мастеренко Иван Это Валенок всех баламутит! =)

1exan
06.12.2023, 12:49
Вы же не думаете что конфигуратор силой мысли управляет прибором 72176

Раньше конфигуратор мог поменять сетевой адрес только по протоколу ОВЕН.
В РЭ никаких новых данных не видно (модуль 8А)

YuriBel
06.12.2023, 14:21
Я тут недавно наступил на грабли со старым конфигуратором, озвучу, что было, может кому пригодится.

Настраивал несколько модулей, один за другим, подключал по-одному, всё без выкрутасов. Адреса ставил последовательные.
Старый конфигуратор запоминает последние установленные в нем параметры, включая адрес, и при запуске пытается подключиться, используя эти параметры.
После конфигурирования модуля с адресом 21 мне понадобилось вернуться к модулю с адресом 20, кое-что подправить. В конфигураторе остался адрес 21. Подключаюсь к модулю с адресом 20,
запускаю конфигуратор, он автоматом подключается, обнаруживает модуль, все вроде-бы хорошо, но когда начинаю смотреть состояние входов (модуль аналоговый), вижу некую хрень
- данные появляются не в тех каналах, где я их жду, а в соседних. Я сначала о...балдел маленько, а потом, почесав репу, понял, что это проделки протокола ОВЕН,
по которому работает конфигуратор. Он без проблем подключился к прибору с соседним адресом, никак не информируя об этом. А опрос входов видимо производится по адресам, следующим за базовым адресом прибора.