Инициализация устройства
|
Содержание
Общие данные
Общие данныеДля работы по протоколу «MODBUS», необходимо выполнить инициализацию устройства. Инициализация осуществляется при помощи «Программы Настройки». Действие «modbus_Start()»Для задания режимов работы, необходимо, на вкладке «Действия» создать действие «modbus_Start()» (обмен данными по протоколу MODBUS, см. рис. ниже). Действие «modbus_Start()» Действие «modbus_Start()» ВЫПОЛНЯЕТСЯ АВТОМАТИЧЕСКИ, при перезагрузке или при подаче питания на устройство. При изменении параметров, для того чтобы они вступили в силу, НЕОБХОДИМО перезагрузить устройство или выполнить действие в ручном режиме (нажать символ «►» на вкладке «Действия»). Настройка устройства для работы по протоколу «Modbus TCP»«Modbus TCP/IP» или «Modbus TCP» – вариант Modbus, используемый для связи по сетям TCP/IP, подключающийся через порт 502. Это не требует вычисления контрольной суммы, поскольку нижние уровни уже обеспечивают защиту контрольной суммы. Подробнее можно ознакомиться в разделе «Описание протокола Modbus TCP». В WiFi-сети, адресом устройства является его IP-адрес. Обычно устройства находятся в одной подсети, где IP адреса отличаются последними цифрами 192.168.1.20 при использовании самой распространённой маски подсети 255.255.255.0. Интерфейсом является WiFi-сеть, протоколом передачи данных – TCP/IP. Варианты подключения в режиме «MODBUS TCP» Действие «modbus_Start()» «Режим работы TCP»
Прошивка «Smacont-ESP» поддерживает работу в следующих режимах:
«Номер порта»По умолчанию, в режиме «Modbus TCP» используется порт 502 для связи через TCP/IP. Это важно, если данные должны пройти через систему сетевой защиты. Большое количество пользователей использует этот порт для передачи данных через протокол прикладного уровня (MBAP). При необходимости, номер порта можно изменить. Номер порта задается при помощи констант «CONST». Для этого необходимо: 1. На вкладке «CONST», для одной из констант, присвоить необходимое значение номера порта. Вкладка «CONST» 2. На вкладке «Действия», открыть действие инициализации «modbus_Start()» и выбрать для параметра «Номер порта» константу, которая содержит значение номера порта. Вкладка «CONST» «Режим «RTU поверх TCP»Modbus по протоколу TCP/IP («Режим «RTU поверх TCP», Modbus over TCP или Modbus RTU/IP) – вариант, который отличается от Modbus TCP тем, что контрольная сумма включена в полезную нагрузку, как в случае с Modbus RTU. Настройка устройства для работы по протоколу «Modbus RTU»При работе по протоколу Modbus RTU, данные передаются в двоичном формате, разделителем пакетов служит отсутствие данных в течение времени при котором можно передать более 3,5 байт. Протокол предназначен для шин: RS-485, RS-422, RS-232. Варианты подключения в режиме «MODBUS RTU» Действие «modbus_Start()» «Режим работы RTU»
Прошивка «Smacont-ESP» поддерживает работу в следующих режимах:
«Интрефейс»
Параметр «Интрефейс» определяет номер UART, через который будет осуществляться работа по протоколу «MODBUS RTU».
Для работы по протоколу «MODBUS RTU», НЕОБХОДИМО РАЗРЕШИТЬ работу UART при помощи действия «serial_SetParam()». «Скорость обмена, бод (бит/с)»Допустимые значения: 1200; 2400; 4800; 9600 (default); 19200; 38400; 57600; 115200. «Количество стоповых битов»Допустимые значения: 1; 2 (default). «Бит четности»Допустимые значения: нет бита четности (none) (default); нечетный; четный. «Тайм-аут ожидания ответа»Задает время ожидания ответа от Slave-устройства, по истечении которого выдается предупреждение. Допустимые значения: 1 сек.; 2 сек.; 3 сек.; 5 сек. «Порядок следования байт CRC16»
Задает порядок следования байт при передаче контрольной суммы CRC16.
Допустимые значения:
«Номер GPIO управляющего сигнала RX/TX»Управляющий сигнал используется ТОЛЬКО при работе по ИНТЕРФЕЙСУ RS485. RS-485 представляет собой асинхронный интерфейс последовательной связи, не требующий для своей работы импульсов синхронизации. Для передачи двоичных данных от одного устройства к другому интерфейс использует дифференциальный сигнал. RS-485 работает в полудуплексном режиме — приём и передача идут по одной паре проводов с разделением по времени — один говорит, остальные слушают. Передатчиком может выступать любое устройство в сети.
Для большинства микросхем и готовых модулей RS485, при работе по интерфейсу требуется использования следующих сигналов:
Как правило, эти два вывода соединены между собой. Существуют микросхемы и готовые модули RS485 с автоматическим управлением направления приемом/передачей. Параметр «Номер GPIO управляющего сигнала RX/TX» определяет номер GPIO, который будет использоваться для определения направления приемом/передачей. Также необходимо задать тип GPIO в качестве «UART RTS» при помощи действия «gpioN_SetParam()» (см. рис. ниже). Действие «gpioN_SetParam()» «Номер устройства в сети»Параметр используется только для режимов «MODBUS RTU Slave» и «MODBUS TCP<->RTU шлюз». Адрес ведомого устройства которому адресован пакет запроса, или от которого отправлен пакет ответа. Ведомые устройства могут иметь адреса от 1 до 247. Пакет запроса отправленный с АДРЕСОМ 0 является ШИРОКОВЕЩАТЕЛЬНЫМ, он адресован ВСЕМ ВЕДОМЫМ на шине, ОНИ ОБЯЗАНЫ ВЫПОЛНИТЬ ЗАПРОС, но НЕ ДОЛЖНЫ НА НЕГО ОТВЕЧАТЬ. «Время перед отправкой ответа на Master»Параметр используется только для режима «MODBUS RTU Slave». Устройства работают по стандарту, поэтому отвечают master-устройству через 3.5 символа после конца кадра запроса. Но некоторые сторонние master-устройства могут не соблюдать стандарт и после отправки запроса продолжают удерживать приемопередатчик в режиме отправки некоторое время. Данный параметр позволяет настроить время ответа slave-устройства в миллисекундах. Нужное значение подбирается опытным путём. Информация о текущем состоянииПараметр определяет переменную «Vx», в которой будет отображаться код текущего состояния работы по протоколу «Modbus RTU» и «Modbus TCP». Коды текущего состояния работы по протоколу «Modbus RTU» и «Modbus TCP»
|
Программы
Прошивка «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) Управление одноканальным модулем реле |