Есть приложение wpf, которое общается с устройством, которое подключается по rs485 и работает по протоколу modbus.
Пример чтения регистров:
запрос - 01 03 00 00 00 02 C4 0B
Где:
Первый байт - номер устройства (адрес)
Второй байт - номер функции (03 = чтение регистров)
Третий и четвертый - адрес начала регистров (0000)
Пятый и шестой - количество регистров (0002)
Последние два байта - контрольная сумма.
Ранее было известно какой адрес был у устройства. После прихода новых железок, адреса стали меняться, а широковещательный запрос (0х00) стал не проходить. Нужно реализовать настройку на работающее устройство.
У меня есть команда на чтение byte {}= (0х01, 0x03,0x00 ,0x00, 0x00, 0x02, 0xC4, 0х0B)
Все классно, если известен адрес. Но как сделать корректно перебор адресов? т.е. сначала отправляем (0х01, 0x03,0x00 ,0x00, 0x00, 0x02, 0xC4, 0х0B), если нет ответа (0х02, 0x03,0x00 ,0x00, 0x00, 0x02, ..,..),если нет (0х03, 0x03,0x00 ,0x00, 0x00, 0x02, ..,..) итд.
Адрес находится в диапазоне от 1 до 254, т.е. занимает 1 байт.
ПО стандарту modbus должно быть до 247 вроде бы, хотя если железка не полностью соответствует стандарту может и 254. Другого способа нет. Хотя возможно есть другой способ подключения. У меня например встречался прибор при подключении по USB которому ни адрес ни скорость не нужен, да их надо указать, но можно любые. может и там также?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Код, который должен создать объект, отправить id, а затем обработать в бдПроблема в том, что я не понимаю как Сначала вернуть ответ, а уже потом...
Есть ListBox в который выводится список папок и файловКак в каждый item добавить маленькую иконку (как в Total Commander например)? По сути не понимаю...