Протокол MODBUS. Общие данные |
Содержание
Общие данные
Общие данныеModbus — коммуникационный протокол, основан на архитектуре ведущий - ведомый (master-slave, «клиент-сервер»). Широко используется при автоматизации производства, многие устройства поддерживают протокол передачи данных Modbus RTU. Modbus может использоваться для передачи данных через последовательные линии связи RS-485, RS-422, RS-232, а также Ethernet сети TCP/IP (протокол Modbus TCP). При желании его можно использовать для связи и по другим шинам или даже радиоканалам. Протокол Modbus предусматривает наличие одного ведущего и до 247 ведомых устройств. Количество ведомых устройств может быть ограничено физическими возможностями шины. Схема соединения Для ведущего устройства (master) в протоколе Modbus используется термин - client. Для ведомого устройства (slave) в протоколе Modbus используется термин - server. Ведущий (master) – клиент (client), ведомый (slave) – сервер (server). В соответствии с протоколом Modbus связь всегда начинает мастер, а ведомые устройства могут только отвечать на запросы мастера. Связь осуществляется посылкой пакета запроса (от мастера к ведомому) и посылкой ответного пакета (от ведомого к мастеру).
Прошивка «Smacont-ESP» поддерживает работу в следующих режимах:
Описание протокола Modbus RTUСообщение Modbus RTU состоит из адреса устройства SlaveID, кода функции, специальных данных в зависимости от кода функции и CRC контрольной суммы. Данные передаются в двоичном формате, разделителем пакетов служит отсутствие данных в течение времени при котором можно передать более 3,5 байт. Протокол предназначен для шин: RS-485, RS-422, RS-232. Состав пакета запроса от мастера к ведомому
Описание протокола Modbus TCPДанные передаются в двоичном формате и упаковываются в обычный TCP-пакет, для передачи по IP-сетям. Отличием данного протокола является отсутствие проверки целостности (CRC-16), так как TCP уже имеет собственный механизм контроля целостности. Протокол предназначен для сетей TCP/IP.
Протокол Modbus TCP
К началу получившегося сообщения PDU добавляется новый 7-байтовый заголовок, который называется MBAP Header (Modbus Application Header).
Этот заголовок имеет следующие данные:
Типы команд ModbusПрошивка «Smacont-ESP» поддерживает следующие типы команд Modbus: Вычисление контрольной суммыДля протокола Modbus RTU 16-битная контрольная сумма (CRC) вычисляется по алгоритму, описанному в спецификации Modbus, в документе "Modbus Serial Line Protocol and Implementation Guide", раздел "CRC-generation". Передающее устройство формирует два байта контрольной суммы на основе данных сообщения, а принимающее устройство заново вычисляет контрольную сумму и сравнивает с полученной. Совпадение принятой и вычисленной контрольной суммы Modbus RTU считается индикатором успешного обмена данными. |
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |