Просмотр полной версии : Несколько slave-устройств modbus-rtu на одном порту rs-485
KRUPSKIY
17.04.2025, 12:54
Не получается подключить 2 слейв-устройства на один порт. При физическом подключении происходит конфликт. Если отсоединить одно устройство, другое читается нормально:8320883209
kondor3000
17.04.2025, 13:00
Не получается подключить 2 слейв-устройства на один порт. При физическом подключении происходит конфликт. Если отсоединить одно устройство, другое читается нормально:
Либо разные протоколы, либо разные настройки сети, либо не правильный слейв адрес 3 задан.
KRUPSKIY
17.04.2025, 13:06
Так ведь при физическом отсоединении любого из устройств, другое читается нормально. Значит с настройками ок.
kondor3000
17.04.2025, 13:12
Так ведь при физическом отсоединении любого из устройств, другое читается нормально. Значит с настройками ок.
На скринах оба раза работает с адресом 1, что работает адрес 3 не видно.
Вы можете конечно поменять второй адрес, например 3 на 16.
Но лучше писать что за устройства подключены.
KRUPSKIY
17.04.2025, 13:25
С адресом 3 работает, когда физически отключаю устройство с адресом 1. Менял адрес 3 на 2. То же самое. Подключаю климатические датчики (температуры, ветра и т.п.)
KRUPSKIY
17.04.2025, 13:40
Подключал второе устройство на другой порт-то же самое.
С компа через адаптер есть возможность эти устройства опросить? Одновременно подключенные.
kondor3000
17.04.2025, 13:45
С адресом 3 работает, когда физически отключаю устройство с адресом 1. Менял адрес 3 на 2. То же самое. Подключаю климатические датчики (температуры, ветра и т.п.)
А пробовали, проект Очистить все, Компилировать всё?
И лучше бы всё по порядку расставить, у вас все наизнанку.
KRUPSKIY
17.04.2025, 13:56
Очистить все - пробовал. Так ведь при компиляции ошибку не выдает. Скрины на другом порту:
83211
83212
83213
83214
83215
kondor3000
17.04.2025, 14:59
Очистить все - пробовал. Так ведь при компиляции ошибку не выдает. Скрины на другом порту:
Так и не увидел скрина, где работает слейв с адресом 3. Всё время работает верхний, хоть вы их меняете местами. То есть оба с адресом 1 получается.
Сделайте адреса по порядку 1 потом 3, включите один 3 и покажите скрином, что нижний работает.
Возможно, не перезагружаете по питанию, после изменения адреса слейва или не отключаете от компа, после изменения адреса.
KRUPSKIY
17.04.2025, 15:32
Скрин: работает слейв 3 при отключенном физически слейв 1:
83222
KRUPSKIY
17.04.2025, 15:42
Если подключаю слейв 1:
83223
и наоборот !
МихаилГл
17.04.2025, 15:48
Вы случайно не соотнесли переменные, а потом скопипастили узел?
Что там за предупреждения?
KRUPSKIY
17.04.2025, 15:53
Создал узел заново, потом соотносил переменную. Предупреждение-неявное преобразование WORD в INT.
МихаилГл
17.04.2025, 16:00
Если так переживаете за конфиденциальность кода, удалите его, оставьте глобальные переменные и узлы, и сюда выложите. Сами слэйв устройства точно одинаково настроены, за исключением адреса? Может количество стоп бит не бъет или еще какая мелочь...
kondor3000
17.04.2025, 16:02
Создал узел заново, потом соотносил переменную. Предупреждение-неявное преобразование WORD в INT.
Надо проверить ОРС сервером, чтение обоих модулей.
В проекте проще все слейвы удалить, со всех портов и по новой создать.
Андрей Чернов
17.04.2025, 16:09
Попробуйте просто увеличивать время таймаутов сокета\таймаут ответа в дереве слейва пока не начнется опрос обоих устройств
что-то типа 1000 мс ответ, 2000 мс между фреймами
KRUPSKIY
17.04.2025, 16:34
Таймаут увеличивал др 5000-не помогло. Пробовал сбрасывать ошибку в свойствах узлов(состояние). Ошибка исправляется, неработающий узел начинает работать, но одновременно через пару секунд рабочий узел перестает работать:
83228
83229
83230
83231
KRUPSKIY
17.04.2025, 16:35
Все слейвы удалил и сделал по новой
МихаилГл
17.04.2025, 16:38
А голочка "автопереподключение" активна? Может тупо по первой аварии отваливается, хотя ее и нет.
KRUPSKIY
17.04.2025, 17:08
Заработало! При таймауте 2000мсек и время между фреймами 200 мсек
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot