Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Qt и modbus 
:(
    Опции темы
queeen123
Дата 8.9.2017, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.9.2017

Репутация: нет
Всего: нет



       Здравствуйте! Задача вообщем такая. Есть параметры, передаваемые с метанольного цеха диспетчеру по интерфейсу RS-485 по протоколу modbus. Нужно сделать отображение параметров на компьютере.(например в qt) Помогите разобраться по порядку что нужно для этого сделать. 
PM MAIL   Вверх
xvr
Дата 8.9.2017, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Для начала вам нужна библиотека для декодирования (да и собственно обслуживания) modbus. Надеюсь, что modbus у вас ASCII? Потому что с modbus RTU будут проблемы на Windows - он требует real time (ну или почти real time) обработки, что на Windows не гарантируется.
В библиотеке будет сервис, обслуживающий COM порт - запускаете его в отдельном thread'е. Из него декодированные сообщения (через связку сигнал/слот) отправляете в основной поток GUI, где собственно оно принимается и отображается в каком нибудь widget'е
Сам GUI можете нарисовать в Qt Creator (либо классический из widget'ов, либо на QML)

PM MAIL   Вверх
queeen123
Дата 8.9.2017, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.9.2017

Репутация: нет
Всего: нет



Modbus RTU у меня. А если через OPC сервер как-нибудь? 
PM MAIL   Вверх
xvr
Дата 11.9.2017, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(queeen123 @  8.9.2017,  20:29 Найти цитируемый пост)
Modbus RTU у меня.

Тогда 'как правило' будет работать, но готовьтесь к тому, что иногда будет сбоить  smile 
Цитата

А если через OPC сервер как-нибудь?
Можно, но поднимать его только для показа 1 параметра - это черезчур.

Во первых Qt 5.9 уже есть поддержка modbus (как клиента, так и сервера) - https://doc.qt.io/qt-5/qtserialbus-index.html
Во вторых на sourceforg есть куча проектов -
https://sourceforge.net/projects/qtmodbustcpip/
http://qmodbus.sourceforge.net/
https://sourceforge.net/projects/shortbusmo...ource=directory
https://sourceforge.net/projects/easymodbus...ource=directory
https://sourceforge.net/projects/qmodmaster...ource=directory


Это сообщение отредактировал(а) xvr - 11.9.2017, 10:00
PM MAIL   Вверх
tzirechnoy
Дата 14.9.2017, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 1
Всего: 16



Да не всё так страшно. realtime там обычно нужэн весьма умеренный по временам, по сути всё, что от тебя нужно -- послать пакет (это всего лишь до 255 байт) одним вызовом драйвера COM-порта в windows, дальшэ если система не в виртуалке какой крутится, то она справляется.

 Протокол в общем простейшый, там похожэ самое объёмное в реализацыи -- CRC подсчитать. Остальное -- ну, таймауты как таймауты, ты всё равно бы не вечно ответов ждал. Вот, надо ждать только время, соответствующее 3.5 что ли символам. Ну, на самом деле если большэ ждёшь, когда ты мастер -- тожэ ничего страшного, всё неправильное ты по CRC отсеешь. Так что можэт имеет смысл не маяться с библиотеками, а писать самому в порт.

 Да, на рынке довольно много преобразователей RS232 в RS485, работающих по довольно своеобразному протоколу: поскольку RS232 -- шына дуплексная, а RS485 -- нет, то при работае требуется как-то указывать, в каком сейчас состоянии должэн быть физический порт RS485 -- приёма или передачи. Это указывается сигналом RTS COM-порта. И, кажэтся, некоторые USB-RS485 преобразователи представляются COM-портом и требуют такого жэ протокола с точки зрения драйверов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1198 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.