banner

Блог

Jun 30, 2023

Modbus Over WLAN (Часть 1): Аппаратное обеспечение и программирование

Протокол Modbus широко используется в промышленном секторе для связи между системами и контроллерами. Обычно это делается с помощью проверенного интерфейса RS485 и обычного медного провода. Здесь мы представляем модуль, который позволяет использовать протокол Modbus в беспроводной локальной сети (WLAN). Модуль построен на плате Espressif NodeMCU, оснащенной микроконтроллером ESP8266. Дополнительная плата Modbus позволяет работать с сигналами 24 В, что является обычным уровнем напряжения в промышленной среде. Чтобы продемонстрировать, как все это работает, авторы построили простой контроллер двери лифта. Большинство читателей Elektor, вероятно, уже знакомы с модулем Espressif NodeMCU и Arduino IDE. Если вы подходите под эту категорию, вы можете пропустить это введение и сразу перейти к описанию платы Modbus TCP. Для всех остальных вот что вам нужно знать в двух словах. Этот проект построен на основе модуля NodeMCU (доступен в магазине Elektor). Модуль оснащен микроконтроллером Espressif ESP8266 размером примерно с почтовую марку и оснащен интерфейсом WLAN. Несмотря на небольшой размер, он обладает большой вычислительной мощностью. Ключевые особенности микроконтроллера ESP8266 обобщены вТаблица 1.

Плата NodeMCU генерирует напряжение питания для ESP8266 и обеспечивает интерфейс программирования микроконтроллера.Рисунок 1показывает обзор распиновки платы NodeMCU, используемой в нашей схеме Modbus.

Arduino IDE очень хорошо подходит для программирования платы NodeMCU. Вы можете бесплатно скачать нужную версию Arduino IDE для операционной системы вашего компьютера с сайта Arduino и установить ее по инструкции на сайте. При первом запуске IDE вы увидите окно, подобное показанному на рисунке 2. . Панель программного кода содержит две предопределенные функции. Вверху находится функция setup(), которая выполняется только один раз при запуске программы и обрабатывает такие вещи, как инициализация интерфейсов микроконтроллера, а внизу находится функция цикла(), которая обычно содержит исходный код вашей программы. .

Функция цикла() запускается после завершения функции setup(). Когда программа достигает конца функции цикла(), она начинается снова с начала. ESP8266 управляет интерфейсом WLAN между завершением и перезапуском функции цикла(). Это означает, что вы должны избегать создания бесконечных циклов в функции Loop(), иначе ESP8266 неизбежно выйдет из строя. Вместо этого код функции цикла() должен быть спроектирован таким образом, чтобы он мог выполняться в циклическом режиме. Большое количество, казалось бы, загадочных сбоев ESP8266 вызвано тем фактом, что процессор не получает достаточно процессорного времени для управления WLAN-интерфейс. Если есть вероятность, что ваш программный код будет выполняться в течение длительного периода времени, например, в больших циклах, вы можете использовать функцию yield() или функцию задержки(), чтобы дать ESP8266 достаточно времени для управления WLAN. Прежде чем подключить NodeMCU в плату Modbus, вам необходимо подключить его к USB-порту вашего компьютера, но перед этим вам необходимо сделать несколько вещей, чтобы все было готово к работе. ESP8266 не поддерживается в стандартной комплектации Arduino IDE, поэтому сначала необходимо обновить IDE. Для этого выберите «Файл» -> «Настройки» и введите следующий URL-адрес в поле «Дополнительные URL-адреса диспетчера плат»: http://arduino.esp8266.com/stable/package_esp8266com_index.json. Нажмите «ОК», а затем выберите «Инструменты» -> «Доска ...» ->. , чтобы открыть окно «Диспетчер плат», где вам следует найти ESP8266, а затем установить платы сообщества ESP8266. После их установки в разделе «Инструменты» -> «Плата»> вы увидите плату NodeMCU 1.0 (модуль ESP-E12), а в разделе «Инструменты» — > Порт > вы увидите порт, к которому подключена плата NodeMCU (/dev/ttyUSBx в Linux или COMx в Windows). Теперь вы можете приступить к работе с первой простой тестовой программой на модуле NodeMCU. Для этого откройте пример программы «Blink» в меню «Файл» -> «Примеры» -> ESP8266 -> «Blink». Программа, показанная на

>1);/p>

ДЕЛИТЬСЯ