Modbus RTU + Nextion (Ошибка ответа устройства)

Использование протокола Modbus
valdemar71
Рядовой
Сообщения: 46
Зарегистрирован: 25 апр 2022, 15:45
Имя: Владимир

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение valdemar71 »

[ref]WildCat[/ref], Добрый день ,простите пожалуйста что опять обращаюсь к вам за помощью, но без вас боюсь я так и буду буксовать.
Моя цель - сделать меню сетевых настроек Modbus RTU. Ввод настроек будет с панели Nextion, контроллер - Mega 2560.
Я пытаюсь передать 5 переменных, но к сожалению ничего не происходит. Делаю всё по примеру и инструкции по среде ecoins.
Скопировал с примера функцию main в необходимый таймер, прописал все переменные, но тщетно. Пробую уже 2 дня - переписывал main, проверял адреса и т.д. Всё тщетно. В итоге сделал простейший пример с 1 переменной - всё работает. Делаю 2 переменных - ничего не работает. Скорее всего проблема где-то в функции main, я на это надеюсь.
В приложении пример, если вас не затруднит - посмотрите пожалуйста, я уже всю голову сломал. :smile469:

С уважением,
valdemar71
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 519
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение WildCat »

[ref]valdemar71[/ref], посмотреть смогу не ранее вечера воскресенья
valdemar71
Рядовой
Сообщения: 46
Зарегистрирован: 25 апр 2022, 15:45
Имя: Владимир

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение valdemar71 »

WildCat писал(а): 29 мар 2024, 18:33 [ref]valdemar71[/ref], посмотреть смогу не ранее вечера воскресенья
ок
valdemar71
Рядовой
Сообщения: 46
Зарегистрирован: 25 апр 2022, 15:45
Имя: Владимир

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение valdemar71 »

[ref]WildCat[/ref], Добрый день, есть предположения ,с чем может быть связана моя проблема?
WildCat
Лейтенант
Сообщения: 519
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение WildCat »

[ref]valdemar71[/ref], сегодня гляну, занят был

Отправлено спустя 10 часов 50 минут 39 секунд:
[ref]valdemar71[/ref], неверный код задачи в таймере отправки.
Скриншот 04-04-2024 222244.jpg
в атрибутах параметров должны быть единицы.

это неверная посылка:
( prints qntReg,2 //--Кол-во записываемых регистров;
prints qntByte,2 //--Кол-во отправляемых байт;)
:\x06\x01\x02\x00\x02\x00\x01\x03╥ЪЪЪ

А это верная:
( prints qntReg,1 //--Кол-во записываемых регистров;
prints qntByte,1 //--Кол-во отправляемых байт;)
:\x06\x01\x02\x02\x01\x03╥ЪЪЪ

В этой секции атрибут 1 - это разрешение отправки значения (0/1), записанного ранее в переменные qntReg, qntByte
а вот ранее в эти переменные записывается именно значение количества байт и регистров (от 1 до ...)

Отправлено спустя 11 минут :
На будущее: если возникают вопросы по кодам задач, прикладывайте под спойлером сам код. Это ускорит процесс. Не всегда есть возможность открыть проект.

Отправлено спустя 16 минут 59 секунд:
WildCat писал(а): 04 апр 2024, 22:40 В этой секции атрибут 1 - это разрешение отправки значения (0/1), записанного ранее в переменные qntReg, qntByte
Пардон, ошибся
<length> is either 0 (all) or number to limit the bytes to send.
prints t0.txt,0 // return 1 byte per char of t0.txt without null byte ending.
prints t0.txt,4 // returns first 4 bytes, 1 byte per char of t0.txt without null byte ending.
prints j0.val,0 // return 4 bytes for j0.val in little endian order
prints j0.val,1 // returns 1 byte of j0.val in little endian order
prints "123",2 // return 2 bytes for text "12" 0x31 0x32
prints 123,2 // returns 2 bytes for value 123 0x7B 0x00
Это возврат количества байт в отправляемом числе.

Если значение не верное (т.е. количество байт в отправке не совпадает с количеством байт в приеме сообщений в МК), то в МК получим белиберду.
Для однобайтового числа получим два байта, где второй будет 00. Но это значение попадет в первый байт второго регистра, и будет постоянно индицировать 0.

Кстати, [ref]ecoins[/ref], не в этом ли причина того, что через Ваши блоки приема данных не получалось передать значение integer?
Помнится, я сталкивался с этой проблемой. Но Вы сослались на то, что блок как-то не так работает.
А может дело именно в этом? Просто изменить атрибут отправки )
У вас нет необходимых прав для просмотра вложений в этом сообщении.
valdemar71
Рядовой
Сообщения: 46
Зарегистрирован: 25 апр 2022, 15:45
Имя: Владимир

Modbus RTU + Nextion (Ошибка ответа устройства)

Сообщение valdemar71 »

[ref]WildCat[/ref], добрый день, спасибо вам большое за помощь в реализации моего проекта. Всё работает!
Спасибо за обучающие материалы и комментарии по среде ecoins, они очень помогли!

[ref]ecoins[/ref], спасибо большое за способ реализации обмана данными МК - Nextion, без него я бы не смог реализовать задуманное!

:smile9:
Ответить

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

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

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