Страница 4 из 4
Re: RS485 Термостат для теплого пола
Добавлено: 08 июн 2018, 22:15
bnx
Andrew_A писал(а): ↑08 июн 2018, 21:14
bnx писал(а): ↑08 июн 2018, 09:46
все значения устанавливает - а окошки у текущих всегда пустые - это нормально? или у меня не работает программа Delphi
Кнопку "Запросить статус" нажимаете ?
В окне лога ответов термостата (под кнопкой Clear) что-нибудь есть ?
Возможно, проблема аппаратная - отвалилась линия TX от термостата (а RX работает т.к. параметры устанавливаются).
Термостат работает - в программе в логе все появляется но окошки пустые
Re: RS485 Термостат для теплого пола
Добавлено: 08 июн 2018, 22:54
Andrew_A
bnx писал(а): ↑08 июн 2018, 22:15
Термостат работает - в программе в логе все появляется но окошки пустые
Скиньте этот лог, посмотрю
Re: RS485 Термостат для теплого пола
Добавлено: 09 июн 2018, 01:48
bnx
Andrew_A писал(а): ↑08 июн 2018, 22:54
bnx писал(а): ↑08 июн 2018, 22:15
Термостат работает - в программе в логе все появляется но окошки пустые
Скиньте этот лог, посмотрю
Вот как программа работает:
- Снимок.PNG (33.37 КБ) 1183 просмотра
Сделал парсер ответа - Node.JS:
- Снимок22.PNG (10.64 КБ) 1183 просмотра
Re: RS485 Термостат для теплого пола
Добавлено: 09 июн 2018, 02:27
Andrew_A
Ясно, просто программа предполагает, что посылка от термостата будет приходить в едином блоке данных. А судя по скриншоту, у вас она разбивается на несколько блоков. Должна быть одна строка ответа на каждый запрос, а у вас по три. Происходит это скорей всего из-за кривого драйвера конвертора UART2USB - у меня на CH340 и под Win7 x64 работает нормально. В принципе, можно доработать алгоритм обработки входящих данных, чтобы программа "склеивала" пакеты, приходящие с малой задержкой друг относительно друга. Если очень надо - можем попробовать.
Re: RS485 Термостат для теплого пола
Добавлено: 09 июн 2018, 08:48
bnx
Andrew_A писал(а): ↑09 июн 2018, 02:27
Ясно, просто программа предполагает, что посылка от термостата будет приходить в едином блоке данных. А судя по скриншоту, у вас она разбивается на несколько блоков. Должна быть одна строка ответа на каждый запрос, а у вас по три. Происходит это скорей всего из-за кривого драйвера конвертора UART2USB - у меня на CH340 и под Win7 x64 работает нормально. В принципе, можно доработать алгоритм обработки входящих данных, чтобы программа "склеивала" пакеты, приходящие с малой задержкой друг относительно друга. Если очень надо - можем попробовать.
У меня FTDI чип
В своей программе я сделал так:
Сообщение считается новым если начинается с 500.
Потом все склеивается пока не будет длины в 28.
Сверяется подпись по последним двум знакам и они отбрасываются.
Отбрасывается 50 и код устройства(001 и тп) и передаются парсеру настройки из которого делается красивый объект.
Записывается в БД для истории.
По интервалу опрашивается каждые 5 минут. По надобности отдельно и после каждого изменения.
Чем понравилось решение в NodeJS: пакет для него написан на C++ и работает везде(включая Распберри), не требует консольных утилит, получается единое решение.
И легко пользоваться:
Код: Выделить всё
const SerialPort = require('serialport');
port = new SerialPort('COM3', { autoOpen: true, baudRate: 4800});
port.on('data', (data) => { // Данные пришли } );
port.write(signer(`a0${pid}0000000000000000`), 'hex'); // отправляем данные
Re: RS485 Термостат для теплого пола
Добавлено: 09 июн 2018, 13:53
Andrew_A
Да, резонно. Рад, что все заработало.
Re: RS485 Термостат для теплого пола
Добавлено: 15 дек 2018, 23:46
FlyRouter
Приветствую
Утилитка для работы с RS485 в OpenWrt, только собрал и выложил, думаю пригодится
-
https://github.com/ZigFisher/Glutinium/ ... modbus-cli