WB-MIO и WBIO-DI-WD-14

Добрый день. Использую WB-MIO и WBIO-DI-WD-14 как станцию ввода. По части чтения состояния портов ввода в текущий момент через modbus регистры все понятно.

Вопрос вот в чем: если я не успею запросить у WB-MIO состояние ввода (например когда ввод становится ВКЛ) и запрос уже будет тогда, когда состояние ввода вернется в пред. значению (т.е. ВЫКЛ), есть ли возможность узнать последнее считанное состояние ввода?

Условно говоря: я опрашиваю WB-MIO раз в секунду… Вход на WBIO-DI-WD-14 поменял свое значение на полсекунды, вот я хочу найти способ, как можно это узнать.

Для конфигурации указано:
“11000 - 11005 holding RW 16 bit unsigned int Регистры конфигурации модуля входов номер 1”

Что туда нужно записывать в случае если у меня 16и канальный модуль (WBIO-DI-WD-14)? И как связаны эти 6 регистров с 16ю каналами ввода?

А для чего нужны
GPINTEN: interrupt on change,
INTCON: interrupt on change,
IOCON: configuration register?

Можно.
Документация:
https://wirenboard.com/wiki/WB-MIO-Modbus-Registers
Достаточно анализировать
1250 - 1265 holding R 16 bit unsigned int Регистры счетчика входов модуля номер 1
То есть каждому входу модуля в MIO сопоставлен 16-разрядный счетчик, каждое замыкание вход инкрементит его.

В регистры конфигурации - записывать ничего не надо, для WD-14, у него только входы без лишних функций.

Про это - чуть позже отвечу.

отличный подход! Получается сейчас при медленном опросе данных не потеряешь событие!

Благодарю. Да, добавляется необходимость хранить “у себя” на контроллере значения этих счетчиков и соответственно обновлять. Но да, “потерять” становится сложнее, и можно использовать для подсчета импульсов, например.

Скажите, а к одному WB-MIO можно подключить 2 и более WBIO-DI-WD-14? или если мне нужно больше чем 14 DI входов, то нужно покупать второе WB-MIO и к нему подключать опять WBIO-DI-WD-14

Да, можно подключить 4 модуля входов (например WD-14) и 4 модуля выходов. И еще один, девятый модуль типа WBIO-AI-DV-12.
https://wirenboard.com/wiki/IO_modules