Nanopi Neo - это интересная плата на ARM Linux, не смотря на небольшой размер, плата обладает высокими показателями производительности, с приятными размерами и ценой.
Параметры:
Allwinner H3 Cortex A7 (32-битная архитектура, 4 ядра, частота до 1200Hz).
512МБ DDR3
40x40x17 мм
100Mbps Ethernet
1 USB выход
Nanopi Neo имеет 2 аппаратных интерфейса UART на гребенке GPIO. Распиновку GPIO можно посмотреть здесь. Интерфейс UART можно преобразовать в RS-485 с помощью модулей преобразователей UART-RS485. Имейте ввиду, что выходное напряжение UART составляет 3.3 вольта. Поэтому преобразователь UART-RS485 надо брать на 3.3 вольта либо универсальный.
И с помощью этого железа мы сейчас создадим шлюз из протокола modbus rtu в МЭК 60870-5-104.
На плату я установил ОС Linux Armbian ubuntu.
Поиск СОМ-портов:
Вводим команду ls /dev/ttyS* и видим,
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3
Где /dev/ttyS0 - отладочный порт, а /dev/ttyS1 /dev/ttyS2 - 2 UARTа, которые нам нужны.
Теперь приступим к установке ПО. Нам понадобится МЭК 60870-5-104 - Slave. Он будет опрашивать контроллеры по протоколу ModBus RTU и передавать их в протоколе МЭК 60870-5-104 и ModBus.
Скачайте архив, распакуйте его. В папке есть папка ARMv7. Скопируйте содержимое папки на плату. Я обычно это делаю с помощью программы WinSCP.
Распакуйте архив на плате:
sudo tar -xvzf opctomb.tar.gz -C /etc
Теперь настроим прием данных от контроллеров в Windows-конфигураторе. Перейдите в папку modbus_slave\Win_conf. Запустите Conf_web_scada.exe. Выберите пункт меню Настройки – Настройка протокола ModBus. Нажмите на кнопку "Добавить устройство", введите параметры, добавьте группы регистров, которые следует опрашивать. После настройки устройства можно массово добавить все его тэги в главную таблицу нажав на кнопку "Экспорт всех тэгов в таблицу". Можно быстро сгенерировать адреса для МЭК 60870-5-104 - Slave. Для этого нажмите на кнопку «Сгенерировать адреса для Modbus Slave». Теперь настройте передачу по протоколу МЭК-60870-5-104. Выберите пункт меню Настройки – Настройки МЭК-60870-5-104 и Modbus slave. Поставьте галочку «Использовать МЭК-104», введите ТСР-порт, по умолчанию 2404. Коэффициенты k и w по умолчанию 12 и 8. Можно одновременно с передачей по МЭК 60870-5-104 вести передачу по протоколу Modbus.
Так же можно задействовать Web-сервер, с помощью которого можно отображать мнемосхемы в браузере.
Сохраните. Загрузите проект на Linux машину. Из папки Win_conf с помощью WinSCP скопируйте в папку /etc/opctomb файлы main.gpr и Modbus.cfg.
Запустите:
sudo /etc/opctomb/opctomb
Осталось добавить ModBus-Slave в автозагрузку. Для этого введите команду
sudo nano /etc/rc.local
Откроется текстовый редактор в котором в конце файла перед строкой exit 0 напишите строку
/etc/opctomb/opctomb