Modbus rtu вопрос к знатокам

Использование протокола Modbus
Ответить
kondratyuk91
Рядовой
Сообщения: 6
Зарегистрирован: 24.02.2017{, 13:29}
Репутация: 0

Modbus rtu вопрос к знатокам

#1

Сообщение kondratyuk91 » 28.03.2017{, 23:06}

Вопрос состоит в передаче холдинг регистра из мастера (не ардуино) на слейв(ардуино нано) и присвоении ему переменной для последующего использования в программе и выводе его на панель nexion. Как я понимаю нужно произвести кое какие операции с битами для корректного отображения переменной. Потому как если из заданного холдинга напрямую присвоить переменную то у меня отображается "0".
Я пробовал из ардуино передавать холдинг регистр на плк (чтение производил через 03 функцию) и у меня все получилось, также я отображал ету же переменную на панели. А вот при попытках передать холдинг (06 функция) на панель nextion вылезла проблема.

Добавлено (28.03.2017, 23:06)
---------------------------------------------
Прикреплю ссилку на картинку программы картинка

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

Modbus rtu вопрос к знатокам

#2

Сообщение Sancho » 29.03.2017{, 11:17}

kondratyuk91 писал(а):Вопрос состоит в передаче холдинг регистра из мастера (не ардуино) на слейв(ардуино нано) и присвоении ему переменной для последующего использования в программе и выводе его на панель nexion.
Попробую перевести: Отправить в модбас слэйв значение и присвоить его некой переменной, с последующим использованием в ....
kondratyuk91 писал(а):Я пробовал из ардуино передавать холдинг регистр на плк (чтение производил через 03 функцию) и у меня все получилось, также я отображал ету же переменную на панели. А вот при попытках передать холдинг (06 функция) на панель nextion вылезла проблема.
Я СЧИТЫВАП из ардуино 03 функцией, всё ОК, а при попытках записи 06 функцией в ??? возникла проблема.
Я так для себя понял.
По картинке - убери для начала лишнее, добейся устойчивой передачи(записи) в регистр ардуино - оставь один холдинг HR1, и например, один входной IR1 регистры; переписывай через промежуточную переменную. Используй для тестов любую тест-модбас программу, я использую в таких случаях Modbus Universal MasterOPC Server 32, читай 04 функцией IR1 меняя значение 06 функ.в HR1.
Получишь пложительный результат - всё остальное получится.
Не стесняйся для наглядности увеличить количество элементов на схеме - например, сначала HR1 -> Temp, потом Temp -> IR1, Потом Temp -> Nextion, иногда это очень здорово помогает и тебе и схеме.
Вложения
0076033.png
Последний раз редактировалось Sancho 29.03.2017{, 11:19}, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

kondratyuk91
Рядовой
Сообщения: 6
Зарегистрирован: 24.02.2017{, 13:29}
Репутация: 0

Modbus rtu вопрос к знатокам

#3

Сообщение kondratyuk91 » 29.03.2017{, 21:30}

Так дело в том что Холдинг регистр "HR1" не хочет записиватся в переменную TEMР (TEMP = 0) Я понимаю что нужно сигнал с холдинга преобразить перед тем как записывать в пременную TEMP.
А если этот же холдинг записать сразу же на Импут регистр и передать обратно на контроллер (без записи в переменную TEMP) тогда все выходит.
схема макетка
Последний раз редактировалось kondratyuk91 29.03.2017{, 22:03}, всего редактировалось 1 раз.

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

Modbus rtu вопрос к знатокам

#4

Сообщение Sancho » 30.03.2017{, 09:46}

kondratyuk91 писал(а):Так дело в том что Холдинг регистр "HR1" не хочет записиватся в переменную TEMР (TEMP = 0)
Почему Вы сразу делаете такие скоропалительные выводы???????
Если нет отображения на пенели, то это ещё НИЧЕГО не значит!
Sancho писал(а):По картинке - убери для начала лишнее, добейся устойчивой передачи(записи) в регистр ардуино - оставь один холдинг HR1, и например, один входной IR1 регистры; переписывай через промежуточную переменную. Используй для тестов любую тест-модбас программу, я использую в таких случаях Modbus Universal MasterOPC Server 32
Это сложно сделать?
В комплекте файл для Modbus Universal MasterOPC Server, установи только правильный COM-порт.

Добавлено (30.03.2017, 09:46)
---------------------------------------------
Потом попробуй добавить переменник по аналоговому входу и отправь данные с него на IR2, считай данные по модбасу.
Потом, без модбаса, отправь эти данные(с аналогового входа) в панель.
Не ленись по несколько раз менять и заливать програму, сохраняй каждый раз под разными именами/индексами( например HR1_1, HR1_2, HR1_3....)
Так Вы узнаете, где собака порылась
Вложения
0422143.png
HR1_IR1_.flp
(60.78 КБ) 49 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

kondratyuk91
Рядовой
Сообщения: 6
Зарегистрирован: 24.02.2017{, 13:29}
Репутация: 0

Modbus rtu вопрос к знатокам

#5

Сообщение kondratyuk91 » 30.03.2017{, 17:54}

Спасибо за помощь.
Я уже установил Modbus Universal MasterOPC Server и подключил к ней ПЛК, следуюющий шаг подключить ардуино. После того как протестирую отпишусь.

Добавлено (30.03.2017, 16:50)
---------------------------------------------
Подключил я ардуино к Modbus Universal MasterOPC Server и у меня получилось  записать холдинг регистр в переменную, а потом с переменной записать в импут регистр. Но при выводе значения на дисплей Nexion у меня все равно пишет "0".
Если я правильно понимаю то в переменную пишет Холдинг регистр (пакет величиной в 16 бит) из него мне нужно отобрать биты где записано "число" которое я задаю в мастере и конвертировать его в десятичную форму и отобразить на екране.

Добавлено (30.03.2017, 17:54)
---------------------------------------------
Помойму когда мне дошло. В integer записывает значение 16 бит из пакета который приходит из холдинг регистра. Ети 16 бит мое значение в двоичной форме. Нужно из двоичной формы преобразить в десятичную и отправить значение на дисплей. Попробую напишу сдесь
Последний раз редактировалось kondratyuk91 30.03.2017{, 16:52}, всего редактировалось 1 раз.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Modbus rtu вопрос к знатокам

#6

Сообщение nalnik » 30.03.2017{, 19:07}

холдинг регистр - холдинг регистр -холдинг регистр.

Какой тип ?
Вот пример ТИПОВ регистров

их там много - разного цвета и разного "размера"
Вложения
0056781.jpg
Последний раз редактировалось nalnik 30.03.2017{, 19:16}, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.

kondratyuk91
Рядовой
Сообщения: 6
Зарегистрирован: 24.02.2017{, 13:29}
Репутация: 0

Modbus rtu вопрос к знатокам

#7

Сообщение kondratyuk91 » 30.03.2017{, 21:32}

Разобрался, в панель не писало значение потому что нада было добавить блок "детектор изменения числа". ТЫЦ Теперь вроде как работает. Спасибо за помощь Sancho.

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

Modbus rtu вопрос к знатокам

#8

Сообщение Sancho » 31.03.2017{, 09:09}

Вот и хорошо.
Заодно, я думаю, разобрался с новой програмой, которая иногда очень помогает с модбасом.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ответить

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