FLProg
Вход на сайт
Логин:
Пароль:
Поиск
Мы в VK
...
Статистика
Вторник, 23.05.2017, 23:32
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Modbus rtu вопрос к знатокам (Запись холдинг регистра в переменную.)
Modbus rtu вопрос к знатокам
kondratyuk91 Дата: Вторник, 28.03.2017, 23:06 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Вопрос состоит в передаче холдинг регистра из мастера (не ардуино) на слейв(ардуино нано) и присвоении ему переменной для последующего использования в программе и выводе его на панель nexion. Как я понимаю нужно произвести кое какие операции с битами для корректного отображения переменной. Потому как если из заданного холдинга напрямую присвоить переменную то у меня отображается "0".
Я пробовал из ардуино передавать холдинг регистр на плк (чтение производил через 03 функцию) и у меня все получилось, также я отображал ету же переменную на панели. А вот при попытках передать холдинг (06 функция) на панель nextion вылезла проблема.

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

 
Sancho Дата: Среда, 29.03.2017, 11:17 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 224
Награды: 5
Репутация: 6
Статус: Offline
Цитата 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(13Kb)


Если не получится на контроллере - сделаю на тразисторах и 155/176...

Сообщение отредактировал Sancho - Среда, 29.03.2017, 11:19
 
kondratyuk91 Дата: Среда, 29.03.2017, 21:30 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Так дело в том что Холдинг регистр "HR1" не хочет записиватся в переменную TEMР (TEMP = 0) Я понимаю что нужно сигнал с холдинга преобразить перед тем как записывать в пременную TEMP.
А если этот же холдинг записать сразу же на Импут регистр и передать обратно на контроллер (без записи в переменную TEMP) тогда все выходит.
схема макетка


Сообщение отредактировал kondratyuk91 - Среда, 29.03.2017, 22:03
 
Sancho Дата: Четверг, 30.03.2017, 09:46 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 224
Награды: 5
Репутация: 6
Статус: Offline
Цитата 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....) smile
Так Вы узнаете, где собака порылась wink

Прикрепления: HR1_IR1_.flp(61Kb) · 0422143.png(510Kb) · Test_HR1_IR1.mbp(2Kb)


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
kondratyuk91 Дата: Четверг, 30.03.2017, 17:54 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за помощь.
Я уже установил 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
 
nalnik Дата: Четверг, 30.03.2017, 19:07 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 219
Награды: 3
Репутация: 0
Статус: Offline
холдинг регистр - холдинг регистр -холдинг регистр.

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

их там много - разного цвета и разного "размера"
Прикрепления: 0056781.jpg(99Kb)


Я не злопамятный, Я записываю.

Сообщение отредактировал nalnik - Четверг, 30.03.2017, 19:16
 
kondratyuk91 Дата: Четверг, 30.03.2017, 21:32 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Разобрался, в панель не писало значение потому что нада было добавить блок "детектор изменения числа". ТЫЦ Теперь вроде как работает. Спасибо за помощь Sancho.
 
Sancho Дата: Пятница, 31.03.2017, 09:09 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 224
Награды: 5
Репутация: 6
Статус: Offline
Вот и хорошо.
Заодно, я думаю, разобрался с новой програмой, которая иногда очень помогает с модбасом.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
Форум » Основной » Спросить у знатоков » Modbus rtu вопрос к знатокам (Запись холдинг регистра в переменную.)
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика