Конвертер (преобразователь) modbus для протоколов СЭТ-4ТМ, ПСЧ-4ТМ на базе платы Banana pi BPI-m2u

Banana PI BPI M2 Ultra одноплатный четырёх-ядерный компьютер построенный на базе Allwinner R40. Плата несёт на борту 2 Гбайт DDR3 SDRAM ОЗУ, eMMC на 8 Гбайт. BPI-m2u имеет 4 аппаратных интерфейса UART на гребенке GPIO, а также 1 Gigabit Ethernet (10/100/1000 LAN). Распиновку GPIO можно посмотреть здесь. Интерфейс UART можно преобразовать в RS-485 с помощью модулей преобразователей UART-RS485. Имейте ввиду, что выходное напряжение UART составляет 3.3 вольта. Поэтому преобразователь UART-RS485 надо брать на 3.3 вольта либо универсальный.

На плату я установил ОС Linux debian 9 stretch lite. Её можно установить как на карту памяти, так и на eMMC. Чтобы задействовать все 4 UART необходимо пересобрать u-boot. Я за Вас эту работу уже сделал, Вам нужно скачать файл BPI_M2U_720P.img.gz по ссылке http://linux.opc-servers.ru/downloads/BPI_M2U_720P.img.gz

Затем ввести команды:

git clone https://github.com/BPI-SINOVOIP/bpi-tools.git

cd bpi-tools

sudo cp -a bpi-* /usr/bin/

bpi-tools -u

sudo bpi-bootsel BPI_M2U_720P.img.gz /dev/mmcblk0

и перезагрузиться: sudo reboot

Вводим команду ls /dev/ttyS* и видим,

/dev/ttyS0  /dev/ttyS2  /dev/ttyS3  /dev/ttyS4  /dev/ttyS5  /dev/ttyS7

Где /dev/ttyS0 - отладочный порт, а /dev/ttyS2  /dev/ttyS4  /dev/ttyS5  /dev/ttyS7 -  4 UARTа, которые нам нужны.

Теперь приступим к установке ПО. Нам понадобится OPC UA сервер СЭТ-4ТМ и ModBus-Slave. OPC UA сервер СЭТ-4ТМ будет опрашивать счетчики, ModBus-Slave будет получать данные от OPC UA сервера и передавать их в протоколе ModBus.

Скачайте архивы, распакуйте их. В каждой папке есть папка ARMv7. Скопируйте содержимое папки на плату. Я обычно это делаю с помощью программы WinSCP.

Распакуйте архивы на плате:

Распаковка OPC UA сервера СЭТ-4ТМ:

sudo tar -xvzf set4d.tar.gz -C /etc

Распаковка ModBus-Slave:

sudo tar -xvzf opctomb.tar.gz -C /etc

Перейдите к настройке в OPC UA сервера СЭТ-4ТМ Windows-конфигураторе. В папке Set4_win_conf запустите SET4TMserver.exe. Сконфигурируйте счетчик, в поле порт выберите, например, /dev/ttyS2 (это UART2). Нажмите ОК. Настройте порт ОРС UA (по умолчанию 16672). Файл SET4TM.cfg скопируйте на плату в папку /etc/set4d. Запустите OPC UA сервер СЭТ-4ТМ:

sudo /etc/set4d/set4opcd

Должен пойти обмен со счетчиком. Откройте Web-интерфейс ОРС-сервера, для этого наберите в адресной строке браузера http://192.168.0.101:8077. 192.168.0.101 - IP-адрес платы, 8077 - порт Web-сервера ОРС-сервера (можно менять).

Теперь настроим прием данных от ОРС-сервера. Перейдите в папку modbus_slave\Win_conf. Запустите Conf_web_scada.exe.

Для настройки выберите пункт меню «Настройки – Драйверы устройств». Нажмите кнопку добавить. Введите имя на английском языке, строка подключения выглядит следующим образом:

opc.tcp://192.168.0.101:16672

192.168.0.101 – IP-адрес компьютера, на котором запущен драйвер.

16672 – порт, который указывался при настройке OPC UA – драйвера.

Нажмите проверить соединение.

Есть возможность получить все тэги списком, выделить их все или часть и добавить выделенные в конфигурацию. Для этого нажмите на кнопки «Получить все тэги списком», «Выделить все» и «Добавить выделенные в таблицу». Нажмите ОК. В главной таблице окажутся тэги. Т.к. OPC UA – сервер и клиент находятся на одном компьютере, то поменяйте строку подключения на opc.tcp://127.0.0.1:16672. Нажмите ОК.

Можно быстро сгенерировать Modbus адреса. Для этого нажмите на кнопку «Сгенерировать адреса для Modbus Slave».

Теперь настройте передачу данных по ModBus. Введите адрес ModBus, например, Для ModBus-ТСР поставьте галочку «Использовать ModBus-ТСР», галочка «Режим ModBus-RTU поверх TCP» снята, введите ТСР-порт, например, 502. Так же можно настроить Web-сервер, через который можно смотреть получаемые данные в табличном виде. Сохраните. Загрузите проект на Linux машину. Из папки Win_conf с помощью WinSCP скопируйте в папку /etc/opctomb файл main.gpr. Запустите:

sudo /etc/opctomb/opctomb

Подключитесь ModBus-мастером. Так же можете подключиться OPC UA - клиентом к OPC UA серверу СЭТ-4ТМ.

Осталось добавить OPC UA сервер СЭТ-4ТМ и ModBus-Slave в автозагрузку. Для этого введите команду

sudo nano /etc/rc.local

Откроется текстовый редактор в котором в конце файла перед строкой exit 0 напишите 2 строки

/etc/set4d/set4opcd

/etc/opctomb/opctomb