Передача данных с датчиков температуры RX3i на Arduino по протоколу Modbus RS-485

В данной статье мы рассмотрим передачу данных с датчиков температуры RX3i на плату Arduino по протоколу Modbus RS-485 и далее по протоколу Bluetooth на Android устройство. То есть будет реализована цепочка передачи данных RX3i – RS485 – Arduino – Bluetooth – Android устройство.

Внешний вид промышленных контроллеров RX3i FanucСтатья написана пользователем нашего сайта Variant223 и публикуется с его разрешения. Весь комплект материалов для реализации данного проекта можно скачать по ссылке https://disk.yandex.ru/d/xYeU61dNAeA52A. Проект реализован автором на основе статьи про последовательную связь по протоколу Modbus RS-485 с Arduino (ведомой) - ее желательно прочитать перед тем как переходить к реализации описываемого в данной статье проекта.

Необходимое программное обеспечение (ПО)

Обязательное ПО

  1. Arduino IDE.
  2. Библиотека Modbus-Slave-for-Arduino.
  3. Приложение из Play Маркет Bluetooth Electronics.
  4. Проекты схем для ПО Android (Panel.kwl).
  5. Скетч файл (Sketch_arduino).

Дополнительное ПО

Simply Modbus Master.

Все необходимое ПО находится в архиве soft в архиве, который можно скачать по вышеприведенной ссылке.

Необходимое оборудование

Основное оборудование

  1. Плата Arduino NANO (купить на AliExpress).
  2. Модуль MAX485 TTL в RS-485 (купить на AliExpress).
  3. Модуль HC-06 на плате (купить на AliExpress).
  4. Устройство Android.

Дополнительное оборудование

  1. Модуль USB to RS-485 Converter (купить на AliExpress).
  2. Резистор 1кОм – 1шт. (купить на AliExpress).
  3. Светодиод – 1 шт. (купить на AliExpress).

Сборка макетной платы проекта

Схемы автор проекта не представил, но в ниже приведенных таблицах представлена исчерпывающая информация о соединениях, которые необходимо сделать в схеме проекта.

В следующей таблице представлены необходимые соединения между платой Arduino NANO (ведомой) и модулем MAX485 TTL to RS485.

Arduino NANO Модуль MAX485 TTL to RS485
0(RX) RO
1(TX) DI
D4 DE & RE
+5V VCC
GND GND

В следующей таблице представлены необходимые соединения между модулями MAX485 TTL to RS485 и USB to RS-485 (порта CMM модуля RX3i IC695CMM004-BF).

MAX485 TTL to RS485 USB to RS-485 Порт CMM модуля RX3i IC695CMM004-BF
A A 1
B B 2

В следующей таблице представлены необходимые соединения между платой Arduino NANO (ведомой) и модулем HC-06.

Arduino NANO Модуль HC-06
D12 RXD
D11 TXD
+5V VCC
GND GND

В следующей таблице представлены необходимые соединения между платой Arduino NANO (ведомой) и светодиодом через резистор.

Arduino NANO Светодиод
D2 +
GND -

Далее переходим к установке ПО.

Установка ПО на Windows 7, 10

Выполните следующую последовательность шагов.

1. Устанавливаем «arduino-1.8.16-windows».

2. Проверяем настройки. Плата: «Arduino Nano». Процессор: «ATmega328P (Old Bootloader)» - 328 написано на чипе arduino. Порт соответствует подключенному вашей arduino к ПК. Программатор: «AVRISP mkII».

Проверяем настройки

3. Добавляем библиотеку: Скетч – Подключить библиотеку – Добавить .ZIP библиотеку….

Выбор пункта для подключения библиотеки4. Выбрать файл «Modbus-Master-Slave-for-Arduino-master».

Загрузка программы

Выполните следующую последовательность шагов.

1. Удалить все в поле кода.

2. Открыть скетч файл sketch_arduino (текст скетча приведен в конце статьи).

3. Нажимаем "Проверить" и сохраняем проект куда вы хотите.

4. После компиляции вы должны увидеть сообщение:

Сообщение после компиляции скетча5. Временно отключаем Модуль MAX485 TTL to RS485 от D4 Arduino , так как USB использует тот же порт, что и модуль.

6. Нажимаем загрузить. После этого вы должны увидеть надпись "Загрузка завершена".

7. Подключаем D4 Arduino обратно.

Настройка эмулятора передачи данных Modbus

1. Подключаем модуль преобразования USB в RS-485 к Модуль MAX485 TTL to RS485.

2. Проверяем COM порт к которому подключили модуль.

3. Устанавливаем ПО Simple Modbus Master.

4. В программе Simply Modbus откройте опции записи (Write option).

Открытие настроек записи в программе Simply Modbus5. После этого установите параметры записи в программе Simply Modbus Master: режим RTU, COM порт к которому подключен модуль преобразования USB в RS-485 (в нашем случае это COM6), скорость 9600 бод, 8 бит данных, 1 стоповый бит, отсутствие бита четности (Parity None) и идентификатор ведомого (Slave ID) равный 1.

Установка параметров записи в программе Simply Modbus

6. После этого установите в первом регистре (first register) значение 40001, число передаваемых значений (values) равное 3 и функциональный код (function code) равный 16 (Write Holding Register).

7. После этого запишите 1 в 40001 (для включения светодиода и передачи значения температуры по первому датчику), 1 в 40002 (для передачи значения температуры по второму датчику) и 90 в 40003 (для передачи значения температуры по третьему датчику), затем нажмите кнопку SEND (передать) – см. рисунок.

Настройка передаваемых байтов в программе Simply Modbus

При этом после подключения ПО на Android должны передаваться данные.

Настройка RX3i для передачи данных Modbus через CMM порт

1. Подключаем Модуль MAX485 TTL to RS485 к порту CMM.

2. Программируем RX3i, так чтобы данные Real преобразовать в INT адреса %R которые будут идти по порядку (в эти адреса записываем последовательно показания температур с датчиков).

Программирование RX3i3. Настраиваем модуль порт CMM следующим образом:

Настройка параметров порта

4. Настройки передачи данных следующие:

Настройки передачи данныхПримечание: количество передаваемых INT значений указанно 27, так как при выборе большего количества данные перестают обрабатываться Arduino NANO. Проверки работы на других моделях arduino не производились.

Установка и настройка ПО на Android

  1. Скачиваем архив с экранам «Panel.kwl».
  2. Сохраняем в папку: Память устройства / keuwlsoft скаченный файл.
  3. Из Play маркета или из архива soft устанавливаем Bluetooth Electronics_v1.42_apkpure.com.apk.
  4. Из ПО Bluetooth Electronics нажимаем на дискетку в левом верхнем углу и нажимаем Load Panels из папки с сохраненными моделями файл «Panel.kwl».
  5. На экране появляются новые панели.
  6. Если выдает ошибку удалите все экраны.

Подключение Arduino к RX3i

  1. Подключаем источник питания 5В к arduino.
  2. Из ПО Bluetooth Electronics нажимаем Connect.
  3. Выбираем Bluetooth Classic.
  4. Нажимаем NEXT.
  5. Выбираем HC-06.
  6. Нажимаем Connect.
  7. Когда надпись Connect станет синяя нажимаем Done.
  8. Выбираем тот экран с которого хотите видеть данные температуры.
  9. Нажимаем RUN.
  10. Нажимаем кнопку «Запустить» и проверяем соответствие температур с компьютера (где у вас видно температуры было раньше) и Android устройства.

Подключение Arduino к эмулятору

  1. Подаем питание на Arduino, при этом на модуле HC-06 должен мигать светодиод.
  2. Из ПО Bluetooth Electronics нажимаем Connect.
  3. Выбираем Bluetooth Classic.
  4. Нажимаем NEXT.
  5. Выбираем HC-06.
  6. Нажимаем Connect.
  7. Когда надпись Connect станет синяя нажимаем Done.
  8. Выбираем экран Panel.
  9. Нажимаем RUN.
  10. Нажимаем кнопку «Запустить» и проверяем соответствие температур с эмулятора и Android устройства.

Исходный код программы (скетча)

(Проголосуй первым!)
Загрузка...
90 просмотров


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *