Modbas реле
Modbas реле
Знатоки модбаса, подскажите плиз, как таким модулем управлять используя модбас flprog (вообще возможно ли)? Используются стандартные команды модбаса, описание есть на странице товара. Может кто знает, как в этом модуле устанавливается сетевой адрес? Китайский продаван этого не знает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Вот блок, который формирует две строки задания адреса 1 и 2 для отправки по UART модулю реле. Если модуль помнит свой адрес при отключении питания, то все ОК.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Modbas реле
Для настройки устройств, в которых адрес задаётся с помощью широковещательного запроса (по адресу 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)
---------------------------------------------
Пока пробовал найти вразумительное описание на указанный модуль, нашёл на али модуль без мозгов, но почти даром вот такой
Лично мне для всяких подобных целей нравится бесплатный инсатовский на 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)
---------------------------------------------
Пока пробовал найти вразумительное описание на указанный модуль, нашёл на али модуль без мозгов, но почти даром вот такой
Последний раз редактировалось Sancho 04 мар 2017, 10:54, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Modbas реле
С адресом в сети понял, благодарю 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 в посылке заменены местами?
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 реле
Потому, что RS-485 это интерфейс, а ModBus это один из протоколов для передачи данных по этому интерфейсу...Авиакот писал(а):Некотрые продавцы этот модуль модбасом не именуют, что и смущает.
Win10-64 FLProg v7.5.2 Portable ![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
![Стыдно :fie:](./images/smilies/ucoz_fie.gif)
Modbas реле
Это понятно, вопрос звучит так: соответствует ли формирования CRC для данной платы протоколу модбас?Dev1 писал(а):Потому, что RS-485 это интерфейс, а ModBus это один из протоколов для передачи данных по этому интерфейсу...
Добавлено (10.04.2017, 14:01)
---------------------------------------------
ФормированиЕ
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Авиакот, Если CRC попутано местами, то это уже не Modbus. Вот калькулятор CRC, можете свои команды проверить.
Добавлено (10.04.2017, 14:39)
---------------------------------------------
Посмотрите CRC у других команд, таких как запись/чтение регистра.
Добавлено (10.04.2017, 14:39)
---------------------------------------------
Посмотрите CRC у других команд, таких как запись/чтение регистра.
Modbas реле
Проверил, в Flprog CRC не правильно... и если через функцию Xor рассчитывать, тоже неверно. Что я не учел?Boroda писал(а):Вот калькулятор CRC
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Сначала идет младший байт, потом старший. Должно быть так: 01 05 00 01 00 00 9C 0A
Добавлено (10.04.2017, 14:49)
---------------------------------------------
Вот тут примеры команд есть.
Добавлено (10.04.2017, 14:51)
---------------------------------------------
Так что FLPROG правильно выдает.
Добавлено (10.04.2017, 15:02)
---------------------------------------------
Добавлено (10.04.2017, 14:49)
---------------------------------------------
Вот тут примеры команд есть.
Добавлено (10.04.2017, 14:51)
---------------------------------------------
Так что FLPROG правильно выдает.
Добавлено (10.04.2017, 15:02)
---------------------------------------------
А где вы такой Modbus взяли?Авиакот писал(а):кадр команды стандартного модбаса выглядит так: 01 05 00 01 00 00 0a 9c
Последний раз редактировалось Boroda 10 апр 2017, 15:08, всего редактировалось 1 раз.
Modbas реле
При расчете CRC не учел, что:Boroda писал(а):А где вы такой Modbus взяли?
Признаю,Boroda писал(а):Сначала идет младший байт, потом старший.
А как эту проблему можно решить?Boroda писал(а):Так что FLPROG правильно выдает.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Какую проблему?Авиакот писал(а):А как эту проблему можно решить?
У реле написано: 01 05 00 01 00 00 9C 0A, FLProg выдает: 01 05 00 01 00 00 9C 0A.
Добавлено (10.04.2017, 15:19)
---------------------------------------------
Если реле не управляется, то на какие команды оно тогда реагирует?
Modbas реле
Оказывается, были ошибки в китайском описании команд. Сейчас ситуация такая: командой 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 48Boroda писал(а):Если реле не управляется, то на какие команды оно тогда реагирует?
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Походу ничего не выйдет. Команда записи катушки в 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
Добавлено (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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 10 апр 2017, 20:39, всего редактировалось 1 раз.
Modbas реле
Boroda, если я попрошу Вас помочь с написанием блока для управления большим количеством таких плат, Вы откликнитесь?
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Авиакот, а как Вы собираетесь управлять большим количеством таких плат? По описанию у этой коробочки может быть адрес 1 или адрес 2.
Modbas реле
Boroda, это же китайское описание))). Вероятно, они хотели на примере двух адресов показать как писать команды. Я проверил и другие адреса, все работает.
А вот функционал будущего блока пока не представляю. Один для каждой платы, просто блок расчета CRC, или другие варианты?
Добавлено (15.04.2017, 12:11)
---------------------------------------------
Может быть, возможно "вписать" команды для этой платы в модбас Flprog? С полностью отдельным блоком, нужно же сетевые ошибки обрабатывать и ответы плат.
А вот функционал будущего блока пока не представляю. Один для каждой платы, просто блок расчета CRC, или другие варианты?
Добавлено (15.04.2017, 12:11)
---------------------------------------------
Может быть, возможно "вписать" команды для этой платы в модбас Flprog? С полностью отдельным блоком, нужно же сетевые ошибки обрабатывать и ответы плат.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Modbas реле
Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом.
10 ProMini - 1100р. 10 4RelayModule еще 1400 рублей. Плюс 10шт MAX485 module - 300 рублей. Итого за 2800 получаем 10шт. А этих недоМодбас релюшек только 4шт.
П.С. ноги D2..D8 можно использовать для задания адреса посредством джамперов, а остальные под релюшки.
10 ProMini - 1100р. 10 4RelayModule еще 1400 рублей. Плюс 10шт MAX485 module - 300 рублей. Итого за 2800 получаем 10шт. А этих недоМодбас релюшек только 4шт.
П.С. ноги D2..D8 можно использовать для задания адреса посредством джамперов, а остальные под релюшки.
Последний раз редактировалось Boroda 15 апр 2017, 12:35, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Modbas реле
+1Boroda писал(а):Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом
Boroda писал(а):А этих недоМодбас релюшек
![Улыбка! :)](./images/smilies/ha_smile.gif)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Modbas реле
Расчет верен для бытовых нужд. В остальных случаях имеем следующее: к 2800 рублям добавляем оптроны и разъемы для входов, джамперы, печатную плату под все это, соединительные провода под блоки, основу или корпус куда все засунем, фонд зп для монтажника. Итого, явно дороже чем оптовая цена с доставкой недоМодбаса, в 350 руб. за штучку.)))Boroda писал(а):10 ProMini - 1100р. 10 4RelayModule еще 1400 рублей. Плюс 10шт MAX485 module - 300 рублей. Итого за 2800 получаем 10шт. А этих недоМодбас релюшек только 4шт.
Добавлено (15.04.2017, 13:17)
---------------------------------------------
винтики, стойки, гайки еще забыл посчитать, ну или термоклей.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость