Russian Qt Forum
Ноябрь 24, 2024, 03:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT библиотека Modbus  (Прочитано 13865 раз)
Melvin77
Гость
« : Март 07, 2015, 08:23 »

Привет всем.
Подскажите, а есть библиотека Modbus для Qt и библиотека для работы с COM портом?
Дайте ссылочку плиз.
Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #1 : Март 07, 2015, 11:59 »

Для работы с COM-портом можно использовать QSerialPort.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Март 07, 2015, 12:28 »

Привет всем.
Подскажите, а есть библиотека Modbus для Qt?
Посмотрите эти ссылки:
http://www.freemodbus.org/
http://sourceforge.net/projects/qmodbus/
http://sourceforge.net/projects/qtmodbustcpip/files/
http://sourceforge.net/projects/freemodbus.berlios/files/latest/download?source=files
http://libmodbus.org/download/
http://qtmodbustcpip.sourceforge.net/
http://sourceforge.net/projects/libmodbus/
http://www.cyberforum.ru/asutp/thread429964.html
http://www.owen.ru/forum/showthread.php?t=1574

Но когда сам искал библиотеку (мне нужен был Modbus TCP/IP), решил, что лучше и проще сделать самому. На самом деле, там все просто. К примеру, формирование фрейма modbus tcp для  функции 0x3 выглядит так:
Код:
// 3 (0x03) - чтение значений из нескольких последовательных регистров хранения
QByteArray CModbusTcp::readHoldingRegisters(int regNum, int regCount){
    registerStartNumber = regNum;
    registerCount = regCount;

    QByteArray frame;
    QDataStream out(&frame,QIODevice::WriteOnly);

    out << (quint16) transId
        << (quint16) 0
        << (quint16) 0
        << (quint8)  this->getUnitId()
        << (quint8)  ReadHoldingRegisters
        << (quint16) regAdress(registerStartNumber)
        << (quint16) registerCount;

    setLength(frame);
    return frame;
}
Ну и десяток вспомогательных функций-членов. К сожалению, проект коммерческий и полностью выложить не могу Грустный
И вот программка, очень полезная при отладке:
http://sourceforge.net/projects/qmodmaster/?source=recommended

Большая просьба - если что-нибудь подберете для себя, сообщите, что именно Улыбающийся
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Март 07, 2015, 12:42 »

В Qt5 уже встроена QSerialPort, под именем QtSerialPort, её же можно использовать и для Qt4
Записан

Юра.
Icarus
Гость
« Ответ #4 : Июнь 11, 2017, 22:10 »

Подскажите QModMaster красиво написан в смысле стиля C++ и QT? Можно на него ровняться?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #5 : Июнь 12, 2017, 00:06 »

Есть же QtSerialBus.
Записан

ArchLinux x86_64 / Win10 64 bit
Icarus
Гость
« Ответ #6 : Июнь 12, 2017, 15:46 »

Да я знаю, там столкнулся с ошибкой (за раз не читалось больше 64 регистров), нашел в инете как ее исправить.
А с QModMaster больше разбираюсь для себя и хочу от профессионалов услышать можно что то полезное извлечь из проекта в целях обучения С++ и Qt.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.