Страница 1 из 1

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 27 авг 2018, 22:48
duser
Уважаемый автор FLProg (Сергей Глушенко) и другие знатоки !

Помогите советами по правильному построению сети 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).
Далее в ходе реализации проекта на основе аппаратного последовательного порта после компиляции столкнулся с ошибками при проверке (см. фрагмент скетча).

[spoiler]: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[/spoiler]

Пытался реализовать проект на программном последовательном порту, ошибки при проверке скетча исчезли, но выяснилось, что программная реализация умеет только скорость менять и работает только на приём в формате 9600-SERIAL_8N1, который изменить нельзя даже в Arduino IDE (библиотека не позволяет).
Может есть какая-то новая библиотека для создания нескольких полноценных программных последовательных портов на NodeMcu V3 Lua WI-FI в проекте FLProg (в крайнем случае, в Arduino IDE ?
В общем, требуется подключить к контроллеру две платы RS485 (модуль на MAX485) и развернуть на двух последовательных портах NodeMcu две сети Modbus с двумя вариантами настройки параметров последовательного порта (9600-SERIAL_8N1 и 9600-SERIAL_8N2).

Ну или подскажите, как решить проблему компиляции и как добавить ещё один порт, который умеет работать с двумя стоповыми битами. :)

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 28 авг 2018, 08:55
Sancho
Проект, приложенный, здорово помогает в повторении ошибки и поиска решения. Рисовать проект с нуля для повторения у меня нет никакого желания.

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 28 авг 2018, 19:25
duser
Sancho писал(а): 28 авг 2018, 08:55 Проект, приложенный, здорово помогает в повторении ошибки и поиска решения. Рисовать проект с нуля для повторения у меня нет никакого желания.
Извините, что сразу не приложил файл проекта FLProg (версия 3.1.2).
NodeMCU_Modbus_Owen.flp
Полная версия проекта слишком большая и не загружается сюда.

для объяснения сложившейся ситуации :

Пользователь создал проект в FLProg-е 3.1.2 с заявленной полной поддержкой платы NodeMcu V3 Lua WI-FI (микроконтроллер ESP8266), использовав аппаратный последовательный порт, и после нажатия кнопки "Компилировать", был сгенерирован скетч для Arduino
NodeMCU_Modbus_Owen.ino
, который не прошёл дальнейшую проверку в Arduino IDE : вышло одно сообщение об ошибке
'UCSR0A' was not declared in this scope _.jpg
, а после задекларирования в скетче соответствующей логической переменной 'UCSR0A', другое сообщение об ошибке, которая была исправлена таким же образом. Однако эти "танцы с бубном" позволили прошить контроллер, но проект так и остался не работоспособен.

Если бы не эти ошибки, то можно было бы изменить в скетче настройки параметров последовательного порта с 9600-SERIAL_8N1 на 9600-SERIAL_8N2, и, вероятно, всё бы заработало так, как надо, хотя бы для одной сети Modbus.

Вся фишка в том, что после замены в FLProg аппаратного последовательного порта на программный, сообщение об ошибке при проверке скетча не появляется ни разу.

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 30 авг 2018, 12:38
duser
Sancho !
А-а-У-у , где вы ???

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 31 авг 2018, 12:10
Sancho
[ref]duser[/ref], Тут я.
Вопрос: вам нужен пин управления по rtu приём/передача? Поставьте "нет" - будет без ошибок.

Отправлено спустя 4 минуты 55 секунд:
Покупайте платы такого формата

две сети Modbus на NodeMcu (software com + hardware com)

Добавлено: 02 сен 2018, 23:31
Rovki
НЕ работают совместно два режима АР+ STA (точка доступа и клиент) ,тоесть в этом случае работает только точка доступа . По отдельности работают два режима .