-
Электронная почта
support@emtronix.com support@emlinix.com
- Телефон
-
Адрес
5 - я улица Гаобан, Парк предпринимательства B407
Чэндуская компания информационных технологий
support@emtronix.com support@emlinix.com
5 - я улица Гаобан, Парк предпринимательства B407
Протокол связи ModBus
Протокол Modbus - это универсальный протокол связи, который широко используется в современном промышленном контроле. С помощью этого протокола контроллеры могут общаться друг с другом или с другими устройствами через сеть (например, Ethernet). Протокол Modbus использует технологию первичной связи, то есть основное устройство активно запрашивает и управляет с устройства. Протокол, используемый стороной основного устройства, обычно называется Modbus Master, а протокол, используемый стороной устройства, называется Modbus Slave. Типичное основное оборудование включает в себя рабочий контроллер и промышленный контроллер; Типичный программируемый контроллер от устройств, таких как PLC. Физический интерфейс связи Modbus может использовать последовательные порты (включая RS232 и RS485), а также порт Ethernet. Его сообщения следуют следующим процессам:
• Основное устройство отправляет запрос с устройства
• Анализ и обработка запросов основного устройства с устройства и отправка результатов на основное устройство
• При любой ошибке с устройства будет возвращен аномальный функциональный код
Программное обеспечение для протокола ModBus Communications
Программные продукты протокола связи ModBus, запущенные компанией British Corporation, в основном используются в среде встроенных материнских плат ARM9, с богатыми последовательными портами, сетевыми ресурсами, универсальным интерфейсом GPIO и т. Д. В то же время обладают мощными возможностями обработки. В сочетании с программным обеспечением ModBus Communications Protocol платформа приложений для Master (Master) и устройств (Slave), которая соответствует спецификациям ModBus Communications. В соответствии с принципом подчинения ModBus Communications пакет коммуникационного протокола ModBus компании British Communications разделен на две отдельные части, а именно: « Программное обеспечение основного протокола управления ModBus» (modbus master) и « Программное обеспечение протокола устройства ModBus» (modbus slave). В настоящее время программное обеспечение British ModBus Communications работает в среде WinCE и предоставляется клиентам в виде C - функции и статической библиотеки LIB. Его основные характеристики заключаются в следующем:
• Очень подходит для промышленного применения в режиме реального времени
Поддерживает приложения протокола связи ModBus на основе последовательного порта или TCP
Режим передачи RTU
Поддерживает большинство операций с функциональным кодом Modbus, включая битовые операции с катушками, дискретными переключателями и байтовые операции с регистрами
• Поддержка адресов вещания
Возможность гибкой настройки времени ожидания связи ModBus
• Возможность получения подробной информации об ошибках в протоколе передачи сообщений
Протокол ModBus

Функциональные коды, поддерживаемые программным обеспечением протокола ModBus
код функции |
описание |
1 |
Читать отдельные катушки |
2 |
Ввод дискретного считывания |
3 |
Прочитать несколько регистров |
4 |
регистр ввода считывания |
5 |
Запись одной катушки |
6 |
Запись в отдельный регистр |
15 |
Написать несколько катушек |
16 |
Записать несколько регистров |
22 |
Блокированный регистр записи |
23 |
Регистр чтения / записи |
Основные методы использования программного обеспечения
Для удобства использования приложений, поддерживающих последовательную форму кода для различных носителей связи, API - функции в программном обеспечении протокола ModBus (включая modbus Master и modbus Slave), предоставляемом компанией, могут поддерживать протокол Modbus как на основе последовательного порта, так и на основе TCP. Приложения просто должны различать различные параметры при вызове функции инициализации. Описание параметров см. в соответствующих заголовках: modbus Master.h и modbus Slave.h
Приложение modbus master
Применение в качестве клиентского режима Modbus в основном заключается в подготовке запросов и отправке запросов на серверные устройства и ожидании ответа сервера. При разработке таких приложений пользователи могут ссылаться на стандартную литературу Modbus и руководство по данным интерфейса связи предполагаемого устройства, вызывая непосредственно пакет modbus Master, предоставленный Innovation, который предоставляет соответствующие функции API для выполнения доступа к серверному устройству и управления им. При разработке таких приложений пользователям просто нужно включить modbus master.h / modbus master.lib.
Приложение Modbus Slave
Применение модели сервера ModBus требует в основном анализа и реагирования на сообщения приложений ModBus, но это только часть всей коммуникации ModBus, а также доступа к данным приложений, содержание которых должно определяться самим пользователем. Для удобства использования клиентами в пакете modbus Slave осуществляется автоматическая загрузка этих пользовательских интерфейсных функций в виде указателей функций, связывающих обработку пользовательских данных с ответами на сообщения приложений ModBus. Пользователи просто определяют эти интерфейсные функции для выполнения соответствующих функций в соответствии с требованиями, и каждое конкретное определение выполняется с помощью специального CPP - файла: DataProvider.cpp.
Из этого следует, что при разработке таких приложений требуется содержимое двух частей, одна из которых является функцией API, определенной modbus slave.h / modbus slave.lib; Другая часть - функция интерфейса пользовательских данных, определенная DataProvider.h / DataProvider.cpp, в которой функция интерфейса должна быть реализована пользователем в DataProvider.cpp.
Чтобы своевременно реагировать на сообщения приложения ModBus, необходимо иметь в виду, что при разработке программы должен быть разработан поток для многократного вызова функции выполнения modbus Slave, которая является блокирующим режимом.
Ниже приводятся примеры:
(1) Запуск протокола стороны устройства Modbus
hPort = mbusSlave_StartupServer(_T("*"), 1, 10000, mbusSlave_Interface );
или
hPort=mbusSlave_StartupServer(_T)"КОМ3:9600-8-1-0"),1,10000, mbusSlave_Interface );
(2) Вызовите исполнительную функцию Serverloop в дискуссии для ответа на запрос
в то время как( 1 )
{
/ /Вызовите исполнительную функцию для анализа и ответа на сообщения ModBus.
результат = mbusSlave_ServerLoop( hPort );
если( результат!=0 )/ /Проверить возврат ошибки
{
/ /Обработка ошибок: в данном случае используется текстовая информация для получения и печати кода ошибки
wcscpy( szText, mbusSlave_GetErrorText( результат );
i1 = wcslen( szText );
если( i1>0 )
{
wcstombs( strText, szText, i1 );
принт(код ошибки: %s! н'& stretex;
}
}
}
Программное обеспечение протокола ModBus, ранее поставлявшееся компанией British Communications, предоставлялось клиентам в виде C - функции и статической библиотеки (modbus.lib или libmodbus.a). По мере того, как все больше и больше клиентов используют протокол связи ModBus, в частности программное обеспечение для основного протокола управления (modbus master), предустановлено в виде динамической библиотеки (modbus master.dll или libmbusmaster.so) в встроенную систему ядра материнской платы, чтобы облегчить вызов клиентских приложений. Предварительно установленные материнские платы Modbus включают все материнские платы семейства ESM (ESM6802, ESM6800, ESM335x, ESM928x и т.д.).
Соответствующие справочные материалы
| 4 ~ 20 мА Метод сбора токовых колец | Программное обеспечение Modbus под управлением WinCE | |
| Программное обеспечение для протокола устройств Modbus под WinCE | Встроенная материнская плата Linux поддерживает основной протокол Modbus | |
| Программное обеспечение для протокола Modbus для устройств под Linux | ESM6802 Поддержка разработки Qt MODBUS | |
| Предварительная установка протокола связи Modbus на материнскую плату |