Chupakabra
27.02.2007, 13:59
Пытался я работать с 15-й функцией модбас (ПЛК в режиме slave), т.е. 15(0F Hex) Force Multiple Coils (запись массива бит) и обнаружил следующую особенность.
При попытки записи скажем 3х бит (Coils) с явным указание количества перезаписываемых адресов битов - 3 идет запись 8-битного-блока.
Например создаю в конфигураторе переменную 8-бит, ставлю последний бит в 1. Из клиента посылаю обновление 3х первых бит на 1 (единицы). Последний бит сбрасывает в 0. Т.е. получаетя контроллер в случае функции 15 оперирует с битами по-байтно?
Кроме того, заметил что контроллер не переваривает стартовый адрес не кратный 8 (т.е. нельзя указать, например, 6 и сделать обновление 6,7 битов), возникает ошибка.
С функцией 5 (write single coil) проблем нет :)
При попытки записи скажем 3х бит (Coils) с явным указание количества перезаписываемых адресов битов - 3 идет запись 8-битного-блока.
Например создаю в конфигураторе переменную 8-бит, ставлю последний бит в 1. Из клиента посылаю обновление 3х первых бит на 1 (единицы). Последний бит сбрасывает в 0. Т.е. получаетя контроллер в случае функции 15 оперирует с битами по-байтно?
Кроме того, заметил что контроллер не переваривает стартовый адрес не кратный 8 (т.е. нельзя указать, например, 6 и сделать обновление 6,7 битов), возникает ошибка.
С функцией 5 (write single coil) проблем нет :)