Modbas реле

Использование протокола Modbus
Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#1

Сообщение Авиакот » 03.03.2017{, 23:24}

Знатоки модбаса, подскажите плиз, как таким модулем  управлять используя модбас flprog (вообще возможно ли)? Используются стандартные команды модбаса, описание есть на странице товара. Может кто знает, как в этом модуле устанавливается сетевой адрес? Китайский продаван этого не знает.
Вложения
4712580.jpg

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#2

Сообщение Boroda » 04.03.2017{, 00:28}

Вроде так.
Вложения
test_modbus___D.flp
(67.99 КБ) 57 скачиваний

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#3

Сообщение Boroda » 04.03.2017{, 00:40}

Вот блок, который формирует две строки задания адреса 1 и 2 для отправки по UART модулю реле. Если модуль помнит свой адрес при отключении питания, то все ОК.
Вложения
Adress_rele_mod.ubi
(9.51 КБ) 44 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbas реле

#4

Сообщение Sancho » 04.03.2017{, 11:41}

Для настройки устройств, в которых адрес задаётся с помощью широковещательного запроса (по адресу 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)
---------------------------------------------
Пока пробовал найти вразумительное описание на указанный модуль, нашёл на али модуль без мозгов, но почти даром вот такой
Последний раз редактировалось Sancho 04.03.2017{, 10:54}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#5

Сообщение Авиакот » 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 в посылке заменены местами?

Аватара пользователя
Dev1
Майор
Сообщения: 1015
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 58
Откуда: Гондурас

Modbas реле

#6

Сообщение Dev1 » 10.04.2017{, 12:26}

Авиакот писал(а):Некотрые продавцы этот модуль модбасом не именуют, что и смущает.
Потому, что RS-485 это интерфейс, а ModBus это один из протоколов для передачи данных по этому интерфейсу...
Win7-64 FLProg v7.2.2 Portable :fie:

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#7

Сообщение Авиакот » 10.04.2017{, 14:01}

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

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#8

Сообщение Boroda » 10.04.2017{, 14:39}

Авиакот, Если CRC попутано местами, то это уже не Modbus. Вот калькулятор CRC, можете свои команды проверить.

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

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#9

Сообщение Авиакот » 10.04.2017{, 14:44}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#10

Сообщение Boroda » 10.04.2017{, 15:02}

Сначала идет младший байт, потом старший. Должно быть так: 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 взяли?
Последний раз редактировалось Boroda 10.04.2017{, 15:08}, всего редактировалось 1 раз.

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#11

Сообщение Авиакот » 10.04.2017{, 15:16}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#12

Сообщение Boroda » 10.04.2017{, 15:19}

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

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

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#13

Сообщение Авиакот » 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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#14

Сообщение Boroda » 10.04.2017{, 20:44}

Походу ничего не выйдет. Команда записи катушки в 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
Вложения
1809349.png
Последний раз редактировалось Boroda 10.04.2017{, 20:39}, всего редактировалось 1 раз.

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#15

Сообщение Авиакот » 11.04.2017{, 18:31}

Boroda, если я попрошу Вас помочь с написанием блока для управления большим количеством таких плат, Вы откликнитесь?

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#16

Сообщение Boroda » 11.04.2017{, 20:14}

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

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#17

Сообщение Авиакот » 15.04.2017{, 12:11}

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

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 36
Откуда: Коломна
Имя: Станислав
Контактная информация:

Modbas реле

#18

Сообщение Boroda » 15.04.2017{, 12:27}

Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом.

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

П.С. ноги D2..D8 можно использовать для задания адреса посредством джамперов, а остальные под релюшки.
Последний раз редактировалось Boroda 15.04.2017{, 12:35}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbas реле

#19

Сообщение Sancho » 15.04.2017{, 12:40}

Boroda писал(а):Мне кажется, что можно на ProMini и отдельных релюшках сделать дешевле и с необходимым функционалом
+1
Boroda писал(а):А этих недоМодбас релюшек
:) 
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Авиакот
Рядовой
Сообщения: 28
Зарегистрирован: 07.04.2016{, 23:13}
Репутация: 0

Modbas реле

#20

Сообщение Авиакот » 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)
---------------------------------------------
винтики, стойки, гайки еще забыл посчитать, ну или термоклей.

Ответить

Вернуться в «Modbus»