приём из UART и передача по Modbus
-
- Рядовой
- Сообщения: 12
- Зарегистрирован: 02 апр 2019, 11:35
- Имя: krimmel
приём из UART и передача по Modbus
Приветствую всех любителей электроники и программирования,
Возникла следующая задача:
- принимать данные из UART (Датчик измерения температуры, влажности и качества воздуха) и передавать эти данные по Modbus на PLC.
- считывание по UART идет стабильно.
- соединение Modbus с имеющемся RS-485 адаптером тоже работает хорошо (без программы приёма данных по UART).
проблема:
- как только активирую Modbus для передачи данных, полученных по UART, происходит следующее. По Modbus приходят 10-11 значений, потом появляется сдвиг значений, тоесть например в Holding Register 1 (Температура) пишется значение из Holding Register 2 или 3 (влажность или качество воздуха). Через пару циклов, значения в регистрах и вовсе пропадают, принимаются только 0.
Ниже выкладываю свой проект. Может кто то подскажет в каком направлении смотреть UART или Modbus. Что то подсказывает, что Буфер у Ардуино переполняется, но как это проверить я не знаю.
Буду рад любым идеям.
Возникла следующая задача:
- принимать данные из UART (Датчик измерения температуры, влажности и качества воздуха) и передавать эти данные по Modbus на PLC.
- считывание по UART идет стабильно.
- соединение Modbus с имеющемся RS-485 адаптером тоже работает хорошо (без программы приёма данных по UART).
проблема:
- как только активирую Modbus для передачи данных, полученных по UART, происходит следующее. По Modbus приходят 10-11 значений, потом появляется сдвиг значений, тоесть например в Holding Register 1 (Температура) пишется значение из Holding Register 2 или 3 (влажность или качество воздуха). Через пару циклов, значения в регистрах и вовсе пропадают, принимаются только 0.
Ниже выкладываю свой проект. Может кто то подскажет в каком направлении смотреть UART или Modbus. Что то подсказывает, что Буфер у Ардуино переполняется, но как это проверить я не знаю.
Буду рад любым идеям.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 5 раз
- Поблагодарили: 9 раз
приём из UART и передача по Modbus
Какая версия ФЛП?
У меня тоже проблемы с ModBus, версии 8.2.0 и 8.2.3.
В версиях 8.** есть проблемы с модбас, нужно ждать выхода новой версии ФЛП. Говорят, скоро.
У меня тоже проблемы с ModBus, версии 8.2.0 и 8.2.3.
В версиях 8.** есть проблемы с модбас, нужно ждать выхода новой версии ФЛП. Говорят, скоро.
-
- Рядовой
- Сообщения: 12
- Зарегистрирован: 02 апр 2019, 11:35
- Имя: krimmel
приём из UART и передача по Modbus
Привет,
версию исползую 8.2.3, с более старыми версиями не пробовал. Попробую, в конце недели сообщю о резултате.
версию исползую 8.2.3, с более старыми версиями не пробовал. Попробую, в конце недели сообщю о резултате.
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 5 раз
- Поблагодарили: 9 раз
приём из UART и передача по Modbus
У меня на версиях 8** 0 регистр не отправляется, 1 отправляется. И все последующие отправляются только при изменении предыдущего.
Сказали ждать ))
Сказали ждать ))
-
- Рядовой
- Сообщения: 12
- Зарегистрирован: 02 апр 2019, 11:35
- Имя: krimmel
приём из UART и передача по Modbus
Продолжил пока работать в версии 8.2.3. Удалось сделать следующие наблюдения:
- Modbus передача работает стабильнее, как только уменьшил частоту запроса по UART (0.5 сек). Запросы по Modbus 1 сек.
- Наблюдается систематическая ошибка каждые 2.5 мин. Потом идет сбой передачи который длится 30 сек.
Использую следующие компоненты:
- Mega 2560
- RS-485 (https://joy-it.net/en/products/ARD-RS485)
Результат измерений:
- высокие пики, это данные с ошибкой, там приходит значение 9999.
- между пиками правилные данные
Какие будут идеи?
- Modbus передача работает стабильнее, как только уменьшил частоту запроса по UART (0.5 сек). Запросы по Modbus 1 сек.
- Наблюдается систематическая ошибка каждые 2.5 мин. Потом идет сбой передачи который длится 30 сек.
Использую следующие компоненты:
- Mega 2560
- RS-485 (https://joy-it.net/en/products/ARD-RS485)
Результат измерений:
- высокие пики, это данные с ошибкой, там приходит значение 9999.
- между пиками правилные данные
Какие будут идеи?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 595
- Зарегистрирован: 10 янв 2016, 13:47
- Благодарил (а): 1 раз
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
приём из UART и передача по Modbus
Полагаю проблемы из-за UART. В нынешней стандартной реализации блока (если Вы её используете) вывод реализован без буферирования и возникают временные "тормоза",которые в итоге и приводят к потерям(по тайм-ауту) части ответных пакетов Modbus.
С уважением, ecoins.
-
- Рядовой
- Сообщения: 12
- Зарегистрирован: 02 апр 2019, 11:35
- Имя: krimmel
приём из UART и передача по Modbus
Всем привет,ecoins писал(а): 24 мар 2024, 00:48Полагаю проблемы из-за UART. В нынешней стандартной реализации блока (если Вы её используете) вывод реализован без буферирования и возникают временные "тормоза",которые в итоге и приводят к потерям(по тайм-ауту) части ответных пакетов Modbus.
С уважением, ecoins.
имеются какие-нибудь способы (нестандартная реализация) этой проблемы?
Благодарю за ответ.
- Rovki
- Полковник
- Сообщения: 5724
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
приём из UART и передача по Modbus
Не совсем понятно по какому протоколу вы спрашиваете датчики? Через уарт
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 12
- Зарегистрирован: 02 апр 2019, 11:35
- Имя: krimmel
приём из UART и передача по Modbus
Да, совершенно верно. Датчик подключен к Serial 1 (Мега 2560).Rovki писал(а): 28 мар 2024, 21:41 Не совсем понятно по какому протоколу вы спрашиваете датчики? Через уарт
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей