Помогите советами по правильному построению сети Modbus на основе NodeMcu V3 Lua WI-FI в проекте FLProg (версия 3.1.2).
Необходимо считывать данные по RS485 (модуль на MAX485) с 4-х Modbus-устройств с двумя вариантами настройки параметров последовательного порта (9600-SERIAL_8N1 и 9600-SERIAL_8N2) и отправлять данные в Blynk и через Modbus TCP на удалённый OPC-сервер.
Не смог задать параметры 8N2 (кроме скорости 9600) в FLProg, поскольку автором программы был задан единственный вариант конфигурации: 8N1 .
Пришлось править скетч в Arduino IDE, добавляя запись типа SoftwareSerial swSerial.begin(9600, SERIAL_8N2).
Далее в ходе реализации проекта на основе аппаратного последовательного порта после компиляции столкнулся с ошибками при проверке (см. фрагмент скетча).
СпойлерПоказать
:372: error: 'UCSR0A' was not declared in this scope
UCSR0A=UCSR0A |(1 << TXC0);
^
pr7:372: error: 'TXC0' was not declared in this scope
UCSR0A=UCSR0A |(1 << TXC0);
^
exit status 1
'UCSR0A' was not declared in this scope
UCSR0A=UCSR0A |(1 << TXC0);
^
pr7:372: error: 'TXC0' was not declared in this scope
UCSR0A=UCSR0A |(1 << TXC0);
^
exit status 1
'UCSR0A' was not declared in this scope
Пытался реализовать проект на программном последовательном порту, ошибки при проверке скетча исчезли, но выяснилось, что программная реализация умеет только скорость менять и работает только на приём в формате 9600-SERIAL_8N1, который изменить нельзя даже в Arduino IDE (библиотека не позволяет).
Может есть какая-то новая библиотека для создания нескольких полноценных программных последовательных портов на NodeMcu V3 Lua WI-FI в проекте FLProg (в крайнем случае, в Arduino IDE ?
В общем, требуется подключить к контроллеру две платы RS485 (модуль на MAX485) и развернуть на двух последовательных портах NodeMcu две сети Modbus с двумя вариантами настройки параметров последовательного порта (9600-SERIAL_8N1 и 9600-SERIAL_8N2).
Ну или подскажите, как решить проблему компиляции и как добавить ещё один порт, который умеет работать с двумя стоповыми битами.