Попытки подключить ОВЕНовский СМИ-2 в качестве slave, и записать в регистры значения для вывода на индикатор ни к чему хорошему не привели, индикатор молчал как рыба. После танцев с анализатором выяснилась следующая особенность: библиотека-мастер при записи регистров командой 16, сначала производит чтение, причем если, например, вам нужно записать регистр с адресом 20, читаются все регистры с 0 по 20, затем производится их обратная запись (тоже с 0 по 20, зачем???), но с уже измененным регистром 20, и от этого никуда не деться, разве что библиотеку править.
Вопрос: как быть если у моего девайса некоторые регистры в начале области памяти помечены как read only и он при попытке их записи (мне она не нужна эта запись, ее делает библиотека) выдает ошибку и, соответственно, ничего не записывает ?
Интересно работает ModBus
-
- Рядовой
- Сообщения: 3
- Зарегистрирован: 11 апр 2016, 09:35
- support
- Супермодератор
- Сообщения: 1902
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Контактная информация:
Интересно работает ModBus
Пока никак. Я всё никак не решусь взяться за мастера модбас. Изучаю протокол пока. Нормальной библиотеки так и не нашёл, поэтому планирую писать реализацию сам. Но знаний пока ещё не хватает.
Автор программы FLProg.
-
- Рядовой
- Сообщения: 3
- Зарегистрирован: 11 апр 2016, 09:35
Интересно работает ModBus
Я так понял, что библиотека создает некий пакет в котором хранятся регистры, и когда нужна запись происходит их изменение и последующий апдейт. А может эту библиотеку подправить? Чтобы запись происходила не с нуля, а только те регистры, которые нужно ? (к примеру с 17 по 20) Ну и битовые команды не помешали бы (в перспективе).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость