Да, только это реле, больше ничего на rs485 нет.
Доступ пропал, не могу пока зайти туда, как получится все сделаю.
Да, только это реле, больше ничего на rs485 нет.
Доступ пропал, не могу пока зайти туда, как получится все сделаю.
Добрый вечер.
Файл отправил.
Здравствуйте!
Спасибо, получил трассировку. Что я вижу по ней:
Устройство два раза читает состояние первого регистра хранения командой
01 03 00 01 00 01 D5 CA
и два раза получает ответ, что значение регистра – 1:
01 03 02 00 01 79 84
Потом вы щелкаете переключателем и отправляете команду записать 0x0300 в регистр хранения 1:
01 06 00 01 03 00 D8 FA, на это приходит подтверждение, что все успешно.
Дальше вижу три попытки чтения опять командой
01 03 00 01 00 01 D5 CA, на что три раза приходит ответ 0:
01 03 02 00 00 B8 44.
Так что тут все верно, отправляются нужные команды, приходят нужные результаты.
Что происходило в момент ваших действий с реле и web-интерфейсом?
В дебаге, как я вижу, снова должно быть полно записей типа “1482080132122: Wait until 148208…”
Давайте вот еще что уточним – одна и та же команда просто меняет состояние реле, верно?
Добрый день.
С реле не происходит ничего, кнопка в вебинтерфейсе возвращается обратно. Этот лог когда poll interval был 1000.
Если сделать его меньше, то вообще беда.
Есть два варианта
Open / Close - две разных команды
Toggle (Self-locking) - одна, которую и и использовал.
А с Open/Close как все выглядит?
Open Slave ID = 0x00-0x1F, Function = 0x06, Address = 0x0001, Data 0x01 Delay 0x00
Close Slave ID = 0x00-0x1F, Function = 0x06, Address = 0x0001, Data 0x02 Delay 0x00
Понятно, вы пробовали эти команды в web-интерфейсе, и тоже не помогло? Можно такой же strace посмотреть?
только через командную строку. как через веб интерфейс добавить две команды (вкл.выкл)?
Могу сделать, но см.выше.
Стоп. У нас тут holding-регистр, я не уверен, что его вообще можно привязать к switch. Проконсультируюсь с разработчиками.
Поэтому поставил holding.
Добрый день.
Идеи появились?
Добрый день, появились. Смотрите, выключатель “записывает” соответствующее значение в coil-регистр, тут у нас holding-регистр. Есть on_value, которым мы предполагаем включать устройство, если оно включается нестандартно, не единицей. А вот нестандартное выключение (не 0), не предусмотрено. Нет off_value. Так что, к сожалению, не получится вот просто так управлять этим реле.
Там есть команды:
0 - выключить
1 - включить
3 изменить состояние на обртаное
Вот список
Получается надо поставить 0x0100 (01 включить, 00 время на реакцию)
Там все еще хуже, по-моему. Установить состояние – одни значения передаются, прочесть – другие.
на запись: 01 – open, 02 – close, на чтение: 01 возвращается, если open, и 00 – если close. Поэкспериментируйте, конечно, но очень сильно сомневаюсь, что стандартными средствами вы сможете этим устройством управлять из web-интерфейса.
Ну так команды все идентичны, вот к примеру DRM88M, почти аналогичные команды:
Адрес регистра - Hi 0x00 0x00
Адрес регистра – Lo 0x10 0x10
Команды полночтью аналоничны
03 (0x03) Read Holding Registers
06 (0x06) Write Single Register
16 (0x10) Write Multiple registers
так можно же конфиг сделать ручной, правильно?
Вот тут, к стати, битая ссылка на github
Спасибо за найденную ссылку, поправили.
В DRM88M coil-регистры управляют реле по вполне обычной логике 1- вкл, 0 – выкл. А в вашем устройстве все совсем по-другому.
Так просто в конфиге в каком-то нельзя поменять вкл на 1, выкл на 2?[quote=“Kilpio, post:37, topic:703, full:true”]
DRM88M coil-регистры управляют реле по вполне обычной логике 1- вкл, 0 – выкл.
[/quote]
Адрес регистра - Hi 0x00 - это включить, судя по всему, а стоит при этом 0. Это не совсем логично.
Ну как просто в каком-то — есть для этого шаблон устройства, но в нем не получается такое устройство описать. Web-интерфейс рассчитан на устройства со стандартной более-менее логикой, когда состояния реле меняется через предназначенные для этого coil-регистры. А в этом устройстве совсем по-другому управление реализовано. Но это же не приговор: можно создавать виртуальные устройства, которые упростят управление этой штуковиной. Да, шаблон, вероятно, будет совсем другой, скрипты потребуется написать. Ног вот решения из коробки не вижу в упор.
(Там два канала, 0x0001 и 0x0002 для управления реле, это holding-регистры. по адресам этих регистров записываются команды управления, там нет специального регистра для включить и другого — для выключить).
Могу адресовать вас к нашей странице Протокол Modbus, возможно, что-то покажется вам более понятным.
Точно. Дергать регистры через modbus_client? Или как-то по другому?