Страница 2 из 2
ТРМ 202 запись параметра через mobus rtu
Добавлено: 25 апр 2019, 09:29
Lee
[ref]grin-mpx[/ref], получилось у вас отправить значение в контроллер с ардуино? Если да, то каким образом.
ТРМ 202 запись параметра через mobus rtu
Добавлено: 25 апр 2019, 11:18
grin-mpx
Заказ отдал без чтения и записи по модбасу, отпала необходимость.
ТРМ 202 запись параметра через mobus rtu
Добавлено: 26 апр 2019, 06:49
Lee
Спасибо за обратную связь, может быть на форуме кто-нибудь смог это сделать? Сразу оговорюсь перестановка байт не помогла.
ТРМ 202 запись параметра через mobus rtu
Добавлено: 26 апр 2019, 08:27
Sancho
[ref]Lee[/ref], Чего нужно-то?
Конкретно.
Как я понял - для теста всё готово?
ТРМ 202 запись параметра через mobus rtu
Добавлено: 29 апр 2019, 07:31
Lee
[ref=#ff8000]Sancho[/ref], для теста все более чем готово, плата с ардуино выполняет роль мастера, проблем с приемом значений из контроллера трм 210 и 202 нет, а вот с передачей хотя бы уставки на трмку ни как не совладаю, менял порядок байт флоат и интежер во всех вариантах , все тщетно
Отправлено спустя 31 минуту 56 секунд:
скетч
ТРМ 202 запись параметра через mobus rtu
Добавлено: 29 апр 2019, 14:43
Sancho
Надеюсь, поможет

Решение для записи данных в приборы Овен ТРМ202 и подобных,
у которых запись регистра должна производится функцией 16(hex 10),
но только одного регистра. Не шестой!
[spoiler]
screenshot_19-04-29_14-35-52.png
[/spoiler]
Для плат ардуино, режим мастер. Пока запись работает по функции 6.
Находим в коде функцию
void _modbusMasterSendQuery(),
в ней участок:
Код: Выделить всё
_modbusMasterBuffer[4] = highByte(intTemp);
_modbusMasterBuffer[5] = lowByte(intTemp);
_modbusMasterBufferSize = 6;
break;
Меняем на:
Код: Выделить всё
_modbusMasterBuffer[1] = 16; // функция будет 16
_modbusMasterBuffer[4] = 0; // количество регистров, старший байт
_modbusMasterBuffer[5] = 1; // количество регистров, младший байт
_modbusMasterBuffer[6] = 2; // количество байт
_modbusMasterBuffer[7] = highByte(intTemp);
_modbusMasterBuffer[8] = lowByte(intTemp);
_modbusMasterBufferSize = 9;
break;
Тестим, отписываемся.
В скада - реализован выбор, какой писать. (написано, не проверял).
ТРМ 202 запись параметра через mobus rtu
Добавлено: 30 ноя 2021, 08:40
qwr
Костыль работает)))
ТРМ 202 запись параметра через mobus rtu
Добавлено: 30 ноя 2021, 08:56
Sancho
qwr писал(а): 30 ноя 2021, 08:40
Костыль работает)))
Спасибо, хоть кто-то отписался, что помогло.