-
Супер Модератор
Да мы и не ругаемся - общение с грамотными специалистами заставляет не расслабляться и двигаться вперед.
Вот, к примеру, в документацию заглянул, и увидел, что там опечатка... Исправим.
Резюмирую:
0. Есть область памяти в контроллере. Есть карта ModBus адресов. О ней я ниже и буду говорить.
1. Область памяти одна. Что для битов, что для регистров.
2. Рекомендую (из опыта)начинать добавлять переменные с наименьших (то есть с битовых переменных).
Две 8-ми битные переменные занимают два байта - регистр.
2-х байтные переменные - регистр.
4-х байтные - 2 регистра.
3. Адресация регистров начинается с нулевого.
4. Адресация 2-х байтных переменных идет кратной 1.
5. Адресация 4-х байтных перменных - двум. То есть 0,2,4,6 и т.д. (как раз тут в документации ошибка). То есть если у Вас добавлено двухбайтное число, и оно попало в регистр с адресом 2, а за ним идет 4-х байтное - адрес у 4-х байтного будет 4 а не 3. Один регистр останется пустым, в жертву выравнивания.
Подробно это описано в руководстве по программированию или РП - раздел ModBus Slave (шестидесятые и 90-е страницы соответсвенно) - очень понятная таблица выравнивания.
Последний раз редактировалось Николаев Андрей; 22.05.2011 в 01:29.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума