Страница 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
Снимок.PNG (33.37 КБ) 1183 просмотра

Сделал парсер ответа - Node.JS:
Снимок22.PNG
Снимок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