Страница 1 из 2

Modbas реле

Добавлено: 03.03.2017{, 23:24}
Авиакот
Знатоки модбаса, подскажите плиз, как таким модулем  управлять используя модбас flprog (вообще возможно ли)? Используются стандартные команды модбаса, описание есть на странице товара. Может кто знает, как в этом модуле устанавливается сетевой адрес? Китайский продаван этого не знает.

Modbas реле

Добавлено: 04.03.2017{, 00:28}
Boroda
Вроде так.

Modbas реле

Добавлено: 04.03.2017{, 00:40}
Boroda
Вот блок, который формирует две строки задания адреса 1 и 2 для отправки по UART модулю реле. Если модуль помнит свой адрес при отключении питания, то все ОК.

Modbas реле

Добавлено: 04.03.2017{, 11:41}
Sancho
Для настройки устройств, в которых адрес задаётся с помощью широковещательного запроса (по адресу 0), и если нет специальной программы конфигуратора, удобно использовать любой ОРС сервер, который сделает нужную запись в нужный регистр.
Лично мне для всяких подобных целей нравится бесплатный инсатовский на 32 тега.
В Вашем случае адрес прибора располагается в регистре x4000(десятичная система 16384), используется команда для записи одного значения (x06), и, собственно, сам адрес, который хотим установить 1(х0001) или 23(х0017).
Итого: 00(для всех сидящих на шине!!!) 06(функция записи одного значения) 4000(регистр 16384) 0001(значение 1) 5c1b (CRC - контрольная сумма).
После этих манипуляций Ваше устройство будет прекрасно работать с указанным Вами адресом, который сможете изменить, отправив по старому адресу в регистр 16384 новый.
Необходимо учесть, что для управления используются целиком регистр, поэтому необходимо писать либо 0100(256), либо 0000; хотя общепринято значение FF00 устанавливает выход в значение ON. Ну, как есть; возможно там ШИМ????
Адреса, как сами видели, начинаются не с 0, а с 1.
С остальным, надеюсь, разберётесь.
Поможет понять модбас rtu тут, хотя всё это делают библиотеки, но будет ясна структура того, что пишут иногда в пояснениях к работе устройства, как в Вашем случае китайские товарищи.
Извините за многобукав.

Добавлено (04.03.2017, 10:47)
---------------------------------------------
Щас сообразил - а что будет слать по 5-й функции flprog? Наверно, как и у всех нормальных людей on=ff00, off=0000.
Да, засада намечается...
Придётся просить ребят, возможно Boroda, напмсать блок для блока(реле).
Модбасом почему-то они это дело назвали?

Добавлено (04.03.2017, 11:41)
---------------------------------------------
Пока пробовал найти вразумительное описание на указанный модуль, нашёл на али модуль без мозгов, но почти даром вот такой

Modbas реле

Добавлено: 10.04.2017{, 10:52}
Авиакот
С адресом в сети понял, благодарю Sancho, Ваши "многобукав" помогли. Некотрые продавцы этот модуль модбасом не именуют, что и смущает. Модуль без мозгов знаю, но он + ардуинка + rs485 одинаковы по цене, а тут все готово.
 Boroda, спасибо за блок, но пока проверить не могу, тему создавал чтоб убедиться, что закажу модуль не зря. У этой платы еще входы с развязкой есть, я так понимаю, их опрос по принципу опроса реле?
Видимо, придется заказать, чтобы точно узнать ответ на мой вопрос))) Может, еще мнения есть?

Добавлено (10.04.2017, 10:52)
---------------------------------------------
Модуль пришел, но средствами модбас программы  Flprog не управляется, только самописными командами.

Вопрос: Почему кадр команды стандартного модбаса выглядит так:  01 05 00 01 00 00 0a 9c , а кадр команды модбаса Flproga так: 01 05 00 01 00 00 9с 0а, т.е. байты CRC в посылке заменены местами?

Modbas реле

Добавлено: 10.04.2017{, 12:26}
Dev1
Авиакот писал(а):Некотрые продавцы этот модуль модбасом не именуют, что и смущает.
Потому, что RS-485 это интерфейс, а ModBus это один из протоколов для передачи данных по этому интерфейсу...

Modbas реле

Добавлено: 10.04.2017{, 14:01}
Авиакот
Dev1 писал(а):Потому, что RS-485 это интерфейс, а ModBus это один из протоколов для передачи данных по этому интерфейсу...
Это понятно, вопрос звучит так: соответствует ли формирования CRC для данной платы протоколу модбас?

Добавлено (10.04.2017, 14:01)
---------------------------------------------
ФормированиЕ

Modbas реле

Добавлено: 10.04.2017{, 14:39}
Boroda
Авиакот, Если CRC попутано местами, то это уже не Modbus. Вот калькулятор CRC, можете свои команды проверить.

Добавлено (10.04.2017, 14:39)
---------------------------------------------
Посмотрите CRC у других команд, таких как запись/чтение регистра.

Modbas реле

Добавлено: 10.04.2017{, 14:44}
Авиакот
Boroda писал(а):Вот калькулятор CRC
Проверил, в  Flprog CRC не правильно... и если через функцию Xor рассчитывать, тоже неверно.  Что я не учел?

Modbas реле

Добавлено: 10.04.2017{, 15:02}
Boroda
Сначала идет младший байт, потом старший. Должно быть так: 01 05 00 01 00 00 9C 0A

Добавлено (10.04.2017, 14:49)
---------------------------------------------
Вот тут примеры команд есть.

Добавлено (10.04.2017, 14:51)
---------------------------------------------
Так что FLPROG правильно выдает.

Добавлено (10.04.2017, 15:02)
---------------------------------------------
Авиакот писал(а):кадр команды стандартного модбаса выглядит так:  01 05 00 01 00 00 0a 9c
А где вы такой Modbus взяли?

Modbas реле

Добавлено: 10.04.2017{, 15:16}
Авиакот
Boroda писал(а):А где вы такой Modbus взяли?
При расчете CRC не учел, что:
Boroda писал(а):Сначала идет младший байт, потом старший.
Признаю,
Boroda писал(а):Так что FLPROG правильно выдает.
А как эту проблему можно решить?

Modbas реле

Добавлено: 10.04.2017{, 15:19}
Boroda
Авиакот писал(а):А как эту проблему можно решить?
Какую проблему?
У реле написано: 01 05 00 01 00 00 9C 0A, FLProg выдает: 01 05 00 01 00 00 9C 0A.

Добавлено (10.04.2017, 15:19)
---------------------------------------------
Если реле не управляется, то на какие команды оно тогда реагирует?

Modbas реле

Добавлено: 10.04.2017{, 17:49}
Авиакот
Boroda писал(а):Если реле не управляется, то на какие команды оно тогда реагирует?
Оказывается, были ошибки в китайском описании команд. Сейчас ситуация такая:  командой 01 05 00 ff ff ff fc 4а включаются все реле, а флагами (flprog) с адресами 1-4 они отключаются. Как включать реле флагами (какие поставить адреса)? и как опрашивать входы платы? команда для включения реле 1: 01 05 00 01 01 00 9d 9а, команда для опроса входов: 01 02 00 00 00 00 78 0a, ответ для первого входа: 01 02 01 01 60 48

Modbas реле

Добавлено: 10.04.2017{, 20:44}
Boroda
Походу ничего не выйдет. Команда записи катушки в ModBus другая.



Добавлено (10.04.2017, 20:44)
---------------------------------------------
Так должно быть в нормальном, не китайском модбасе.

Включить первое реле:   01 05 00 00 FF 00 CD CA
Отключить первое реле: 01 05 00 00 00 00 8C 3A

Включить второе реле:   01 05 00 01 FF 00 DD FA
Отключить второе реле:  01 05 00 01 00 00 9C 0A

Modbas реле

Добавлено: 11.04.2017{, 18:31}
Авиакот
Boroda, если я попрошу Вас помочь с написанием блока для управления большим количеством таких плат, Вы откликнитесь?

Modbas реле

Добавлено: 11.04.2017{, 20:14}
Boroda
Авиакот, а как Вы собираетесь управлять большим количеством таких плат? По описанию у этой коробочки может быть адрес 1 или адрес 2.

Modbas реле

Добавлено: 15.04.2017{, 12:11}
Авиакот
Boroda, это же китайское описание))). Вероятно, они хотели на примере двух адресов показать как писать команды.  Я проверил и другие адреса, все работает. 
А вот функционал будущего блока пока не представляю. Один для каждой платы, просто блок расчета CRC, или другие варианты?

Добавлено (15.04.2017, 12:11)
---------------------------------------------
Может быть, возможно "вписать" команды для этой платы в модбас Flprog? С полностью отдельным блоком, нужно же сетевые ошибки обрабатывать и ответы плат.

Modbas реле

Добавлено: 15.04.2017{, 12:27}
Boroda
Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом.

10 ProMini - 1100р. 10 4RelayModule еще 1400 рублей. Плюс 10шт MAX485 module - 300 рублей. Итого за 2800 получаем 10шт. А этих недоМодбас релюшек только 4шт.

П.С. ноги D2..D8 можно использовать для задания адреса посредством джамперов, а остальные под релюшки.

Modbas реле

Добавлено: 15.04.2017{, 12:40}
Sancho
Boroda писал(а):Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом
+1
Boroda писал(а):А этих недоМодбас релюшек
:) 

Modbas реле

Добавлено: 15.04.2017{, 13:17}
Авиакот
Boroda писал(а):10 ProMini - 1100р. 10 4RelayModule еще 1400 рублей. Плюс 10шт MAX485 module - 300 рублей. Итого за 2800 получаем 10шт. А этих недоМодбас релюшек только 4шт.
Расчет верен для бытовых нужд. В остальных случаях имеем следующее: к 2800 рублям  добавляем оптроны и разъемы для входов, джамперы, печатную плату под все это, соединительные провода под блоки, основу или корпус куда все засунем, фонд зп для монтажника. Итого, явно дороже чем оптовая цена с доставкой недоМодбаса, в 350 руб. за штучку.)))

Добавлено (15.04.2017, 13:17)
---------------------------------------------
винтики, стойки, гайки еще забыл посчитать, ну или термоклей.