Форум программистов, компьютерный форум, киберфорум
Кроссплатформенная разработка
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 6
1

Modbus-сервер

01.12.2018, 15:50. Показов 1743. Ответов 8

Здравствуйте)Задали в универе выполнить такое задание: Необходимо с датчиков/приборов по протоколу MODBUS считывать данные и передовать на компьютер удаленно.
Т.е сервер будет собирать данные технологических параметров температуры с приборов по modbus, для каждого параметра по соответствующим регистрам и хранить всё в базе данных. Так же планирую сделать возможность просмотра данных в режиме реально времени и архивные данные из БД за определенный период + выводить графики или хотя бы табличные данные для анализа.

Вот мой план действий:
1. Создать сервер для опроса нескольких приборов по modbus tcp и сохранять данные в БД (Сервер на QT, БД MS SQL, читал что еще можно в самом QT базу сделать, но пока хз как)
2. Сделать простенькую клиентскую прогу с интерфейсом, чтобы в ней можно уже было выбирать периоды для опроса или в реальном времени, выбирать другие данные (Интерфейс уже набросал на QT, это несложно, осталось все остальное).

Использую именно QT creator 4.7.2, а не расширение для студии.

Правильно ли я понял свои задачи и средства разработки? Может есть что-то получше/легче? И вообще что делать дальше?=))

Буду благодарен за любую помощь. Так как я горе студент, прошу помочь определиться с информацией, и направить в нужном направлении, т.к. опыта в разработке подобного приложения нет. Просьба не писать "гугл в помощь"))) ибо уже перерыл достаточно инфы и каша в голове, а время уже ограничено...помогите расставить все по полочкам) если есть примеры сервера, то вообще было бы шикарно, т.к. хоть смогу понять что и как делать, и по аналогии написать свой код. Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2018, 15:50
Ответы с готовыми решениями:

QT - Modbus
Добрый день форумчане. Необходима работа с пользовательскими командами протокола Modbus (например...

C++ modbus
Здравствуйте! Задача вообщем такая. Есть параметры, передаваемые с метанольного цеха диспетчеру по...

Как правильно создать ModBus ASCII запрос?
Адрес - 26 Код функции 03h начало - 0000 Количество -0004 расчет LRC char calculateLRC(...

Qt и протокол modbus Ascii
Здравствуйте. такой вопрос: есть прибор, работающий по протоколу modbus Ascii. с помощью matlab...

8
59 / 49 / 19
Регистрация: 16.06.2015
Сообщений: 206
05.12.2018, 08:59 2
Твой подход для решения этой задачи годится.
Qt отлично подойдет.
Советы:
1. Возьми более новую версию Qt.
2. В Qt Creator есть раздел примеры - посмотри там, используя ключевые слова Modbus, Sql, fortune (примеры работы с сетью), и разберись как они работают.
3. Разбей свою задачу на подзадачи, например: связь по modbus, связь по tcp, работы с sql сервером, создание графиков, а затем реализую каждую задачу отдельно, чтобы не кидать все в одну кучу и не было бы каши. Соответственно, потом все аккуратно и последовательно объедини.
1
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 6
05.12.2018, 12:19  [ТС] 3
Спасибо за совет. Посмотрел примеры про модбас, действительно полезно. Сейчас буду дальше разбираться, а то как раз в одном моменте застрял)
Я так правильно понял что лучше использовать отдельную субд типо my sql? или можно сделать все средствами QT?
И графики же можно в бесплатной версии QT реализовать?)
0
зомбяк
1556 / 1195 / 339
Регистрация: 14.05.2017
Сообщений: 3,883
05.12.2018, 22:42 4
Beat_ON, проще использовать sqlite. Она входит в комплект Qt.
1
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 6
05.12.2018, 23:27  [ТС] 5
Я так понимаю с помощью sqlite можно брать данные которые считал сервер и поместить в базу, и потом через интерфейс уже выводить необходимые данные? А архивные данные тоже можно, например за пол года? такие возможности тоже есть в этой библиотеке? думаю завтра закончу с сервером и приступлю к БД)

Добавлено через 13 минут
TRam Я так понимаю с помощью sqlite можно брать данные которые считал сервер и поместить в базу, и потом через интерфейс уже выводить необходимые данные? А архивные данные тоже можно, например за пол года? такие возможности тоже есть в этой библиотеке? думаю завтра закончу с сервером и приступлю к БД)
0
зомбяк
1556 / 1195 / 339
Регистрация: 14.05.2017
Сообщений: 3,883
06.12.2018, 00:27 6
В Qt используется унифицированый интерфейс для всех типов баз данных SQL - http://doc.qt.io/qt-5/QSqlDatabase.html . А конкретный тип базы данных подключается уже в виде плагина qt. У sqlite то преимущество, что его плагин самодостаточен (т.е. не требует установки отдельной собственно базы данных, как требуется во всех остальных случаях), а база данных представляет собой просто файл.

А чтобы архивировать данные, нужно будет изучить язык SQL (хотя бы основы, чтобы писать запросы добавления и выборки). А начинать тут наверно с примеров.

P.S. конкретно по выборкам с датами - http://www.codernotes.ru/artic... qlite.html
1
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 6
06.12.2018, 13:33  [ТС] 7
TRam Спасибо, получается я могу привязать конкретные данные к временной шкале и например выгрузить показания той же температуры в 20-00 неделю назад. SQL да надо будет подучить. А так по ссылке глянул про дату, пока особо не вникал, но как понял с помощью этой функции можно выгружать любые данные сохраненные в определенный момент времени в БД? Просто в обычной БД я представляю как это работает, а тут не особо)
0
зомбяк
1556 / 1195 / 339
Регистрация: 14.05.2017
Сообщений: 3,883
06.12.2018, 18:19 8
С помощью https://ru.wikipedia.org/wiki/Select_(SQL) . А с помощью тех функций выполняется преобразование строки, содержащей дату, чтобы вычленить из неё месяц/день/год/время и т.д. и потом использовать в условиях для сравнения с требуемыми временами/годами/прочим
0
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 6
06.12.2018, 19:06  [ТС] 9
TRam понял, спасибо, буду пробовать)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2018, 19:06

Qt Modbus ответ сервера по TCP
Приветствую! Есть готовая программа клиент для опроса инвертора по протоколу ModBus через RTU,...

Реализация протокола ModBus RTU на Qt
Всем доброго время суток. Недавно начал осваивать программирование на Qt. Стоит тривиальная задача...

OPC сервер для Modbus
Добрый день. Необходима информация, если кто обладает, об архитектуре OPC серверов. Сейчас возникла...

Конфигурационный файл Lectus Modbus OPC/DDE сервер для работы с Ивит-М
Здравствуйте. Мучаюсь уже давно, поэтому прошу помощи. Если кто составлял конфиг, работающий в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru