Modbus RTU

Использование протокола Modbus
Аватара пользователя
sser
Рядовой
Сообщения: 81
Зарегистрирован: 02.01.2018{, 12:19}
Репутация: 19
Откуда: Н.Новгород
Контактная информация:

Modbus RTU

#21

Сообщение sser » 01.04.2019{, 15:38}


Вроде получилось...

andertant
Рядовой
Сообщения: 24
Зарегистрирован: 18.01.2017{, 09:21}
Репутация: 2
Откуда: Днепропетровск

Modbus RTU

#22

Сообщение andertant » 21.04.2019{, 15:16}

Здравствуйте формчане! Возможно как-то передать переменные типа Float и Ulong integer одним регистром, точнее чтобы они были по одному адресу.
Примечание из даташита "Все реализованные типы данных сгруппированы. Это позволяет сортировать различение типов данных по номеру регистра. Обратите внимание, что 32-битные регистры считаются одним номером регистра в отличие от некоторых реализаций Modbus, которые используют два номера регистра для представления одного 32-битного числа!"

Ingwar
Полковник
Сообщения: 1714
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 140
Откуда: Ленобласть
Имя: Игорь

Modbus RTU

#23

Сообщение Ingwar » 21.04.2019{, 16:29}

andertant писал(а):
21.04.2019{, 15:16}
точнее чтобы они были по одному адресу.
Даже если они занимают 2 регистра, адрес то будет один...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

andertant
Рядовой
Сообщения: 24
Зарегистрирован: 18.01.2017{, 09:21}
Репутация: 2
Откуда: Днепропетровск

Modbus RTU

#24

Сообщение andertant » 21.04.2019{, 17:16}

По факту да, регистра два а адрес должен быть один. Как это реализовать средствами FLprog?
Допустим создаём регистр для переменной FLoat адрес его 3001, соответственно автоматически берется следующий регистр с адресом 3002. Но необходимо чтобы по адресу 3002 уже была другая переменная FLoat. Как быть?

Ingwar
Полковник
Сообщения: 1714
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 140
Откуда: Ленобласть
Имя: Игорь

Modbus RTU

#25

Сообщение Ingwar » 21.04.2019{, 17:40}

andertant писал(а):
21.04.2019{, 17:16}
Допустим создаём регистр для переменной FLoat адрес его 3001, соответственно автоматически берется следующий регистр с адресом 3002. Но необходимо чтобы по адресу 3002 уже была другая переменная FLoat. Как быть?
А в каком случае для Вас принципиально - адрес 3002 или 3003?

Отправлено спустя 2 минуты 27 секунд:
Думаю, что пропуск регистра при использовании Float и иже с ними, совсем небольшая "плата" за саму возможность использования в ардуино MODBUS.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

andertant
Рядовой
Сообщения: 24
Зарегистрирован: 18.01.2017{, 09:21}
Репутация: 2
Откуда: Днепропетровск

Modbus RTU

#26

Сообщение andertant » 21.04.2019{, 17:46}

Мне нужно правильно вычитать вот это устройство

Ingwar
Полковник
Сообщения: 1714
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 140
Откуда: Ленобласть
Имя: Игорь

Modbus RTU

#27

Сообщение Ingwar » 21.04.2019{, 18:15}

Может выдергиваю из контекста, но тут адрес вполне подходящий
СпойлерПоказать
Безымянный.png
З. Ы. А вообще это к знатокам нуно обращаться)
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

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

Modbus RTU

#28

Сообщение Sancho » 22.04.2019{, 11:06}

Чего нужно конкретно?
Вроде всё просто:
.3.4. Стандартный Modbus RTU
Реализация стандартного протокола Modbus RTU в основном такая же, как SICK Modbus RTU. Из-за того, что поддерживаются только 16-разрядные типы данных, существуют некоторые различия:
• Регистрационный номер, который должен быть назван, всегда REG_NR-1
• Действие Write для 32-разрядных регистров должно выполняться командой 0x10 " написать несколько регистров”
• Команда 0x06 " запись одного регистра” недоступна
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

andertant
Рядовой
Сообщения: 24
Зарегистрирован: 18.01.2017{, 09:21}
Репутация: 2
Откуда: Днепропетровск

Modbus RTU

#29

Сообщение andertant » 22.04.2019{, 15:19}

Но регистры читаются командой 0х03, я "слушал" эту сеть и видел запросы от мастер устройства. Sancho Вы мне поможете это реализовать? Пожалуйста, если Вы знаете как!

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

Modbus RTU

#30

Сообщение Sancho » 16.05.2019{, 14:31}

andertant писал(а):
22.04.2019{, 15:19}
Но регистры читаются командой 0х03, я "слушал" эту сеть и видел запросы от мастер устройства. Sancho Вы мне поможете это реализовать? Пожалуйста, если Вы знаете как!
andertant почему-то молчит, как довольный партизан :)
В реальности, в данной реализации протокола, регистры с адреса 5000 - четырёх-байтные, соответственно, когда мастер запрашивает 4 регистра, отправлять нужно не восемь байт, а шестнадцать.
Вопрос решён одной строкой в коде :)
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

andertant
Рядовой
Сообщения: 24
Зарегистрирован: 18.01.2017{, 09:21}
Репутация: 2
Откуда: Днепропетровск

Modbus RTU

#31

Сообщение andertant » 17.05.2019{, 08:06}

:D , довольный не то слово! Спасибо ОГРОМНОЕ!

Аватара пользователя
sser
Рядовой
Сообщения: 81
Зарегистрирован: 02.01.2018{, 12:19}
Репутация: 19
Откуда: Н.Новгород
Контактная информация:

Modbus RTU

#32

Сообщение sser » 18.09.2019{, 10:52}

Вот что получается из HMI Kinco MT4532TE http://sser.forum2x2.ru/t82-topic#2107

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

Modbus RTU

#33

Сообщение Skull » 18.09.2019{, 18:11}

Grafsaxar писал(а):
28.07.2017{, 10:29}
Вот незнаю пока мах. длину кабеля. может кто уже тестировал?
Я тестировал , 200-300 метров МКЭШ , полет нормальный

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Modbus RTU

#34

Сообщение Max » 18.09.2019{, 19:56}

Господа! Так какой модуль для ModBus из алиэкспрессовской коллекции более-менее стабильно работает и не слишком дорогой?

Сам неоднократно использовал дешевые модули на 485-х. В принципе работает, но есть затупливания, подвисания и низкая скорость...

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

Modbus RTU

#35

Сообщение dizzyy » 18.09.2019{, 20:45}

тут рекомендували такие

Ответить

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