Стартовая страница › Форумы › Взаимодействие с устройствами › Ошибки при чтении по ModBus
- В этой теме 26 ответов, 5 участников, последнее обновление 10 месяцев, 2 недели назад сделано
JurasskPark.
-
АвторСообщения
-
20.01.2023 в 11:47 #27103
Mikhail
МодераторПопробуйте, пожалуйста, деактивировать все остальные группы, кроме проблемной. Ошибка повторится?
Шаблон выложите в виде файла для скачивания, пожалуйста.20.01.2023 в 12:31 #27105manjey73
Участник@Allmy должен понимать, у вас же указывается тип данных, float, int, double и так далее.
Кстати в какой-то из версий для 6-ки вроде была ошибка, связанная с этим
20.01.2023 в 14:20 #27106Mikhail
МодераторДа, драйвер должен быть из самого свежего дистрибутива. Отсчёт версий модулей начался после официального выхода 6-й версии, поэтому могло быть несколько DLL версии 6.0.0.0.
20.01.2023 в 16:07 #27110Allmy
УчастникВсе, разобрался, при работе с аналоговыми данными контроллер в явном виде использует размер регистра в 4 байта.
Драйвер SCADA поддерживает размер регистра в стандартные 2 байта.Я попросил при возможности переделать прошивку для контроллера.
Вопросы к разработчикам драйвера:
1) есть ли возможность во встроенный драйвер ввести возможность выбора размера регистра?
2) есть ли возможность добавить еще функции ModBus — например, для приточных установок Breezart нужны еще функции WriteSingleRegister (6) и WriteMultipleRegisters (16)?20.01.2023 в 16:46 #27111manjey73
Участник@Allmy получается производитель контроллера отступил от Modbus?
У Modbus регистр = 2 байта и точка, что вы там собрались дорабатывать?
еще функции WriteSingleRegister (6) и WriteMultipleRegisters (16) — так они есть, если вы пишите float то это будет функция 16, если int то функция 6
20.01.2023 в 16:47 #27112manjey73
УчастникУ вас в контроллеры аналоговый сигнал (который четыре байта) какой номер регистра?
Следующий за ним сигнал какой имеет номер регистра ?20.01.2023 в 17:09 #27116Allmy
УчастникПо порядку, начиная с 0, до 5.
Если использовать 16-битный регистр, то да, идет через 1. При указании 5 регистров (по количеству входов) считывает только 3 (0-1, 2-3, 4-5). При указании 6-ого регистра уже говорит — illegal address.
Если использовать 32-битный регистр, то идет по порядку, начиная с 0. При указании 5-ти регистров (по количеству входов) считывает все 5.
Картинки по ссылкеhttps://drive.google.com/drive/folders/1qSKmbjEF3v3Uxp-Efqw8dKmt8qb1eamX?usp=sharing
Это специфика прошивки контроллера, работающего с 32-битными регистрами, обещали переделать.
Меня больше волнует про еще бы пару функций в драйвер ModBus (6 и 16) — тогда бы вентустановки можно было под полный контроль поставить
20.01.2023 в 19:59 #27120manjey73
УчастникВы читаете прибор при помощи Simply Modbus без ошибок ?
если да, просто правильно настройте шаблон…еще раз вам говорю, 6 и 16 функции в драйвере есть, иначе как вы думаете записываются float в устройства, имея 2 регистра?
20.01.2023 в 20:11 #27121baur
Участникhttps://store.chipkin.com/products/tools/cas-modbus-scanner
Сразу подбирает все возможные типы и адресы
21.01.2023 в 13:46 #27125Allmy
УчастникСпасибо, хороший сканер, а то из некоторых китайских производителей сложно вытащить карту регистров их устройств.
23.01.2023 в 11:45 #27154Mikhail
МодераторВопросы к разработчикам драйвера:
1) есть ли возможность во встроенный драйвер ввести возможность выбора размера регистра?
2) есть ли возможность добавить еще функции ModBus — например, для приточных установок Breezart нужны еще функции WriteSingleRegister (6) и WriteMultipleRegisters (16)?1. Для нестандартных вариаций Модбас разрабатываются отдельные драйвера. Например, есть драйвер Enron Modbus https://www.simplymodbus.ca/Enron.htm
2. Функции 6 и 16 являются стандартными функциями записи регистров и присутствуют в драйвере.23.01.2023 в 14:17 #27162JurasskPark
УчастникОгоооо… 4 байта… Мои любимый размер регистра. 😅
Скажу, что я бы с вами поделился драйвером modbus c поддержкой 4 байтового регистра… Но он вам не поможет, т.к. нужно считать количество регистров. А в моем драйвере я ещё не сделал. 😅 -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.