Modbus RTU

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

Modbus RTU

Сообщение sser »

https://youtu.be/GynTJzxT3fg
Вроде получилось...
andertant
Рядовой
Сообщения: 25
Зарегистрирован: 18 янв 2017, 09:21
Откуда: Днепропетровск

Modbus RTU

Сообщение andertant »

Здравствуйте формчане! Возможно как-то передать переменные типа Float и Ulong integer одним регистром, точнее чтобы они были по одному адресу.
Примечание из даташита "Все реализованные типы данных сгруппированы. Это позволяет сортировать различение типов данных по номеру регистра. Обратите внимание, что 32-битные регистры считаются одним номером регистра в отличие от некоторых реализаций Modbus, которые используют два номера регистра для представления одного 32-битного числа!"
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Modbus RTU

Сообщение Ingwar »

andertant писал(а): 21 апр 2019, 15:16 точнее чтобы они были по одному адресу.
Даже если они занимают 2 регистра, адрес то будет один...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
andertant
Рядовой
Сообщения: 25
Зарегистрирован: 18 янв 2017, 09:21
Откуда: Днепропетровск

Modbus RTU

Сообщение andertant »

По факту да, регистра два а адрес должен быть один. Как это реализовать средствами FLprog?
Допустим создаём регистр для переменной FLoat адрес его 3001, соответственно автоматически берется следующий регистр с адресом 3002. Но необходимо чтобы по адресу 3002 уже была другая переменная FLoat. Как быть?
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Modbus RTU

Сообщение Ingwar »

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

Отправлено спустя 2 минуты 27 секунд:
Думаю, что пропуск регистра при использовании Float и иже с ними, совсем небольшая "плата" за саму возможность использования в ардуино MODBUS.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
andertant
Рядовой
Сообщения: 25
Зарегистрирован: 18 янв 2017, 09:21
Откуда: Днепропетровск

Modbus RTU

Сообщение andertant »

Мне нужно правильно вычитать вот это устройство
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Modbus RTU

Сообщение Ingwar »

Может выдергиваю из контекста, но тут адрес вполне подходящий
[spoiler]
Безымянный.png
[/spoiler]

З. Ы. А вообще это к знатокам нуно обращаться)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus RTU

Сообщение Sancho »

Чего нужно конкретно?
Вроде всё просто:
.3.4. Стандартный Modbus RTU
Реализация стандартного протокола Modbus RTU в основном такая же, как SICK Modbus RTU. Из-за того, что поддерживаются только 16-разрядные типы данных, существуют некоторые различия:
• Регистрационный номер, который должен быть назван, всегда REG_NR-1
• Действие Write для 32-разрядных регистров должно выполняться командой 0x10 " написать несколько регистров”
• Команда 0x06 " запись одного регистра” недоступна
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
andertant
Рядовой
Сообщения: 25
Зарегистрирован: 18 янв 2017, 09:21
Откуда: Днепропетровск

Modbus RTU

Сообщение andertant »

Но регистры читаются командой 0х03, я "слушал" эту сеть и видел запросы от мастер устройства. Sancho Вы мне поможете это реализовать? Пожалуйста, если Вы знаете как!
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Modbus RTU

Сообщение Sancho »

andertant писал(а): 22 апр 2019, 15:19 Но регистры читаются командой 0х03, я "слушал" эту сеть и видел запросы от мастер устройства. Sancho Вы мне поможете это реализовать? Пожалуйста, если Вы знаете как!
[ref]andertant[/ref] почему-то молчит, как довольный партизан :)
В реальности, в данной реализации протокола, регистры с адреса 5000 - четырёх-байтные, соответственно, когда мастер запрашивает 4 регистра, отправлять нужно не восемь байт, а шестнадцать.
Вопрос решён одной строкой в коде :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
andertant
Рядовой
Сообщения: 25
Зарегистрирован: 18 янв 2017, 09:21
Откуда: Днепропетровск

Modbus RTU

Сообщение andertant »

:D , довольный не то слово! Спасибо ОГРОМНОЕ!
Аватара пользователя
sser
Рядовой
Сообщения: 82
Зарегистрирован: 02 янв 2018, 12:19
Откуда: Н.Новгород
Имя: Сергей
Контактная информация:

Modbus RTU

Сообщение sser »

Вот что получается из HMI Kinco MT4532TE http://sser.forum2x2.ru/t82-topic#2107
Аватара пользователя
Skull
Лейтенант
Сообщения: 432
Зарегистрирован: 08 сен 2015, 16:18
Откуда: Мариуполь

Modbus RTU

Сообщение Skull »

Grafsaxar писал(а): 28 июл 2017, 10:29 Вот незнаю пока мах. длину кабеля. может кто уже тестировал?
Я тестировал , 200-300 метров МКЭШ , полет нормальный
Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06 сен 2015, 13:12
Откуда: Тюмень-Баку
Имя: Максим

Modbus RTU

Сообщение Max »

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

Сам неоднократно использовал дешевые модули на 485-х. В принципе работает, но есть затупливания, подвисания и низкая скорость...
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

Modbus RTU

Сообщение dizzyy »

тут рекомендували такие
[spoiler]https://ru.aliexpress.com/item/32385757 ... ZCqks&mp=1[/spoiler]
manukc1
Рядовой
Сообщения: 18
Зарегистрирован: 05 апр 2020, 00:55
Имя: Man

Modbus RTU

Сообщение manukc1 »

Добрый день всем. Не могу никак подключить wemos mini по сети rs485 modbus, через воздух получается. Ту же программу написанную в flprog заливаю в arduino nano сразу подключается.

В чем может быть проблема?
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Modbus RTU

Сообщение tronik1 »

Помогите пожалуйста решить следующую проблему. Siemens s7-1200 master rtu, ESP 32 slave. Использую китайский шилд там где есть пины pe-de. Не могу с сименса ничего записать в еспеху. Какие только танцы с бубном не делал- не пишет. Исользую только интежер 50 регистров подряд. С сименса идет массив этих 50 двухбайтных регистров типа инт. В есп соответственно создал 50 подряд регистров. Даже один регистр пробовал писать, все равно есп не принимает. :smile44:
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Modbus RTU

Сообщение ecoins »

tronik1 писал(а): 13 апр 2024, 23:08 Исользую только интежер 50 регистров подряд.
Modbus FLProg пока оперирует (вроде бы) посылками не более 60 байт, соответственно не стоит отсылать более 24 integer.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Modbus RTU

Сообщение tronik1 »

ecoins писал(а): 13 апр 2024, 23:15
tronik1 писал(а): 13 апр 2024, 23:08 Исользую только интежер 50 регистров подряд.
Modbus FLProg пока оперирует (вроде бы) посылками не более 60 байт, соответственно не стоит отсылать более 24 integer.
В предыдущем проекте где есп32 мастер а мега2560 слейв общаются напрямую без шилда через савои юарты, там передаю 66 регистров интежер. Всё работает но есть одно но, периодически пишет ноли в регистры непонятно почему. А вот с сименсом не хочет работать в ообще. Даже пробовал два регистра, всё равно не пишет.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Modbus RTU

Сообщение ecoins »

tronik1 писал(а): 13 апр 2024, 23:26 А вот с сименсом не хочет работать в ообще. Даже пробовал два регистра, всё равно не пишет.
Предложу в начале с Сименсом поработать через компьютер(утилиты Modbus_Poll, Modbus_Slave или др.) и установить точно параметры обмена(скорость, кол-во стоповых бит и пр.).
В принципе это можно (и лучше) посмотреть логическим анализатором, коли Сименс выступает в роли мастера.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя