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

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
duser
Рядовой
Сообщения: 11
Зарегистрирован: 17 авг 2018, 21:09
Имя: Сергей

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

Сообщение 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).

Ну или подскажите, как решить проблему компиляции и как добавить ещё один порт, который умеет работать с двумя стоповыми битами. :)
Последний раз редактировалось duser 28 авг 2018, 19:44, всего редактировалось 1 раз.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

Проект, приложенный, здорово помогает в повторении ошибки и поиска решения. Рисовать проект с нуля для повторения у меня нет никакого желания.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
duser
Рядовой
Сообщения: 11
Зарегистрирован: 17 авг 2018, 21:09
Имя: Сергей

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

Сообщение 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 аппаратного последовательного порта на программный, сообщение об ошибке при проверке скетча не появляется ни разу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
duser
Рядовой
Сообщения: 11
Зарегистрирован: 17 авг 2018, 21:09
Имя: Сергей

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

Сообщение duser »

Sancho !
А-а-У-у , где вы ???
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 4 минуты 55 секунд:
Покупайте платы такого формата
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Rovki
Полковник
Сообщения: 5726
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 68 раз
Поблагодарили: 222 раза
Контактная информация:

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

Сообщение Rovki »

НЕ работают совместно два режима АР+ STA (точка доступа и клиент) ,тоесть в этом случае работает только точка доступа . По отдельности работают два режима .
Электронщик до мозга костей и не только
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость