[Модуль] ModBus (modbus)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Sapizdullin
Сообщения: 354
Зарегистрирован: Сб фев 18, 2017 9:47 am
Благодарил (а): 41 раз
Поблагодарили: 54 раза

Re: модуль modbus

Сообщение Sapizdullin » Вс май 20, 2018 10:02 am

Aven писал(а):
Сб май 19, 2018 7:11 pm
Sapizdullin писал(а):
Сб май 19, 2018 1:29 pm
Господа! Решил прикрутить железяку по ModbusTCP к МД. Итог ниже:
Куда копать?
Ну он же выдает ошибку ILLEGAL DATA ADDRESS, значит неверный адрес регистра задан, устройство это и сообщает.
А по подробнее нельзя? Это домофон но он в другой подсети... :roll: Как его грамотно прикрутить?
Intel(R) Core(TM) i7-6700, Debian 9 "Stretch", Zoneminder, Avreg.
shefus
Сообщения: 72
Зарегистрирован: Вт мар 08, 2016 4:57 pm
Благодарил (а): 16 раз
Поблагодарили: 2 раза

Re: модуль modbus

Сообщение shefus » Вс май 20, 2018 11:35 am

Подключил по способу Geban: https://majordomo.smartliving.ru/forum/ ... 775#p63775 такую приблуду
https://ru.aliexpress.com/item/5-65-A-2 ... 65998.html
Все работает отлично. Единственный вопрос по конвертации данных. Устройство выдает, например, напряжение в виде: 2278,0. Можно ли его сохранить в свойства в нормальном виде, т.е. /10 (227,8)? Или как? Обрабатывать методом после изменения?
Aven
Сообщения: 506
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 2 раза
Поблагодарили: 120 раз

Re: модуль modbus

Сообщение Aven » Вс май 20, 2018 1:18 pm

Sapizdullin писал(а):
Вс май 20, 2018 10:02 am
Aven писал(а):
Сб май 19, 2018 7:11 pm
Sapizdullin писал(а):
Сб май 19, 2018 1:29 pm
Господа! Решил прикрутить железяку по ModbusTCP к МД. Итог ниже:
Куда копать?
Ну он же выдает ошибку ILLEGAL DATA ADDRESS, значит неверный адрес регистра задан, устройство это и сообщает.
А по подробнее нельзя? Это домофон но он в другой подсети... :roll: Как его грамотно прикрутить?
А что подробнее? Номера регистров вы откуда берете? Сверьтесь с документацией.
Скачайте Modbus TCP програмку которой можно проверить работу устройства, добейтесь, что через нее получаете данные, а потом уже интегрируйте в систему.
За это сообщение автора Aven поблагодарил:
Sapizdullin (Вс май 20, 2018 6:10 pm)
Рейтинг: 1.27%
Aven
Сообщения: 506
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 2 раза
Поблагодарили: 120 раз

Re: модуль modbus

Сообщение Aven » Вс май 20, 2018 1:21 pm

shefus писал(а):
Вс май 20, 2018 11:35 am
Единственный вопрос по конвертации данных. Устройство выдает, например, напряжение в виде: 2278,0. Можно ли его сохранить в свойства в нормальном виде, т.е. /10 (227,8)? Или как? Обрабатывать методом после изменения?
Модуль не умеет модификацию данных. Поэтому вешайте обработчик на прилинкованное свойство и конвертируйте как нужно.
За это сообщение автора Aven поблагодарили (всего 3):
kenin (Вс май 20, 2018 4:22 pm) • shefus (Вс май 20, 2018 4:25 pm) • Sapizdullin (Вс май 20, 2018 6:10 pm)
Рейтинг: 3.8%
Аватара пользователя
Sapizdullin
Сообщения: 354
Зарегистрирован: Сб фев 18, 2017 9:47 am
Благодарил (а): 41 раз
Поблагодарили: 54 раза

Re: модуль modbus

Сообщение Sapizdullin » Вс май 20, 2018 10:47 pm

Aven писал(а):
Вс май 20, 2018 1:18 pm

А что подробнее? Номера регистров вы откуда берете? Сверьтесь с документацией.
Скачайте Modbus TCP програмку которой можно проверить работу устройства, добейтесь, что через нее получаете данные, а потом уже интегрируйте в систему.
Спасибо за подсказку - заодно хоть разобрался что это за поделка человеческая. Все заработало!
Intel(R) Core(TM) i7-6700, Debian 9 "Stretch", Zoneminder, Avreg.
ARA_
Сообщения: 5
Зарегистрирован: Ср июн 27, 2018 10:01 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: модуль modbus

Сообщение ARA_ » Чт июл 05, 2018 7:29 pm

Добрый вечер!
Возник вопрос по работе модуля modbus. В модуле настроил два запроса: один на чтение одного регистра с периодом 4 секунды, и второй запись одного регистра с периодом 10000. Если цикл modbus остановлен, и управлять запросами вручную - все замечательно работает, но если запускаем цикл, то данные читаются, а запись не проходит с выдачей ошибки Connection refused. Как я понимаю это происходит из за того, что порт занят операцией чтения, а в это время модуль пытается выполнить запись и запрос откидывается. Если увеличить время чтения (например до 10 секунд) ситуация заметно улучшается, но часть запросов записи все равно теряется.
Есть ли возможность как то разграничить запросы чтения записи? В принципе самый лучший вариант был бы если бы они выполнялись последовательно по факту завершения выполнения друг друга.
Заранее спасибо за помощь!
Erik
Сообщения: 21
Зарегистрирован: Чт янв 03, 2019 7:42 pm
Благодарил (а): 6 раз
Поблагодарили: 4 раза

Re: [Модуль] ModBus (modbus)

Сообщение Erik » Вт янв 22, 2019 8:27 am

Добрый день.

Вопрос про запись регистров по модбас.

У модуля поле "Проверять каждые (sec):" обязательное.
И если выбрать функцию записи, то МД пишет одно и то же значение в регистр с указанным интервалом.
Как отключить (нужно чтобы записывалось только при изменении, а то перезаписывает изменения, сделанные непосредственно на контроллере)?

И есть ли возможность вызвать из кода обновления значения не в цикле, а по запросу (как кнопка "обновить" напротив каждого устройства модбас в списке модуля)?
Erik
Сообщения: 21
Зарегистрирован: Чт янв 03, 2019 7:42 pm
Благодарил (а): 6 раз
Поблагодарили: 4 раза

Re: [Модуль] ModBus (modbus)

Сообщение Erik » Пт янв 25, 2019 10:11 am

А этот модуль еще поддерживается? Не нашел его на коннекте.

У меня с ним следующая ситуация.

Контроллер отопления имеет рекомендации от производителя не закрывать TCP соединение и считывать/записывать все регистры по одному, но в рамках одного общего никогда не закрываемого TCP соединения.

А модуль ModBus на каждый запрос создает отдельное TCP соединение. Это приводит к ошибкам, вплоть до остановки цикла модбас.
Изображение


Есть потребность в доработке модуля в части работы с сетью.
Я это вижу примерно так.
Сейчас "устройство модбас" - это одна операция с регистром или диапазоном регистров на одном IP. Разные "устройства модбас" могут обращаться к одному IP, или к разным - все они попадают в один цикл.
Их бы сгруппировать. Например, ввести описание устройства (его название, IP и порт), и к нему уже привязывать операции. Тогда в списке будут разные устройства со списком операций с его регистрами, привязанными к устройству.
Тогда по каждому устройству можно запускать свой цикл операций, не закрывая TCP соединения. Про TCP соединение можно в описании устройства (где вводится IP и порт) сделать кнопку "коннект", и галочку "не разрывать соединения". По аналогии с Simply Modbus TCP Client, где соединение устанавливается одно на всю сессию работы клиента.

Идея оформлена на конекте - https://connect.smartliving.ru/ideas/490.html
Поддерживайте!
timurufa86
Сообщения: 16
Зарегистрирован: Вт фев 17, 2015 8:40 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: [Модуль] ModBus (modbus)

Сообщение timurufa86 » Ср фев 20, 2019 9:56 pm

Добрый день с недавних пор начались проблемы с модулем модбас. Ситуация следующая запрашиваемые регистры обновляются только по кнопке обновить ... хотя в настройка стоит обновлять каждые 30 секунд . В чем может быть проблема ?
timurufa86
Сообщения: 16
Зарегистрирован: Вт фев 17, 2015 8:40 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: [Модуль] ModBus (modbus)

Сообщение timurufa86 » Ср фев 20, 2019 10:03 pm

Может быть цикл модбас остановлен ... тогда как проверить?
Ответить