ModbusRTU, ModbusTCP Arduino и OWEN PLC

Kirill Iashin
Offline
Зарегистрирован: 28.02.2019

alexval2007 пишет:

небольшую статеечку окультурить нужно

Уважаемый, у вас сайт не работает, соответственно, все ссылки тоже битые..

Можно как-то заполучить всю информацию из первого поста данной темы?

Kirill Iashin
Offline
Зарегистрирован: 28.02.2019

Kirill Iashin пишет:

Можно как-то заполучить всю информацию из первого поста данной темы?

Отвечу на свой же вопрос, оригинал проекта тут https://github.com/jecrespo/simple-modbus

maks.dav
Offline
Зарегистрирован: 13.12.2015

alexval2007 пишет:

ModbusRTU, ModbusTCP Arduino и OWEN PLC

SimpleModbus - Modbus библиотеки для Ардуино, которые позволяют Вам предавать посылки по последовательному интерфейсу с использованием протокола Modbus RTU. Обе библиотеки SimpleModbusMaster и SimpleModbusSlave поддерживают Modbus функции 3 и 16, кроме того, SimpleModbusMaster поддерживают Modbus функции 1, 2, 4 и 15. Передача поддерживает на обеих библиотеках функции 16 и 15. Обе библиотеки имеют похожий интерфейс. Есть всего две необходимых функции modbus_update () и modbus_configure (). Обе библиотеки были проверены промышленном оборудовании: на отечественном оборудовании PLC OWEN и модулях ввода вывода. Дополнительно библиотека SimpleModbusSlave была проверена с тестером Modbus Poll.

Подскажите, можно ли увеличить каким-то образом максимальное количество регистров, чтобы больше 255? Пошарился в библиотеке - вроде никаких ограничений нет, но с регистрами больше 255 не хочет работать, а при попытке доступа - ардуино (мега) сразу зависает.

b707
Offline
Зарегистрирован: 26.05.2017

maks.dav пишет:

Подскажите, можно ли увеличить каким-то образом максимальное количество регистров, чтобы больше 255? Пошарился в библиотеке - вроде никаких ограничений нет

самый беглый просмотр показал, что число регистров хранится в переменной типа char ...  и думаю что это не единственное ограничение.

255 - слишком характерная цифра. чтобы она там была просто так :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Вся "навигация" по массиву регистров через unsigned char, т.е. byte. Т.е. базовый адрес+254 регистров. Для увеличения надо перековыривать всё в библиотеке.

maks.dav
Offline
Зарегистрирован: 13.12.2015

Нашёл ньюанс в библиотеке. Исправил её - заработало

Тип данных индекса массива регистров стоял unsigned char исправил на unsigned int. Теперь максимальный доступный регистр имеет адрес 65535.

maks.dav
Offline
Зарегистрирован: 13.12.2015

Нашёл ньюанс в библиотеке. Исправил её - заработало

Тип данных индекса массива регистров стоял unsigned char исправил на unsigned int. Теперь максимальный доступный регистр имеет адрес 65535.