Вариант для группового чтения, т.е. несколько регистров, идущих подряд, за один запрос.
Адреса слэйвов и номер первого регистра задаются на входах блоков.
В основном задаётся общее число используемых блоков и скорость порта.
На выходе основного блока битовая маска, в которой 1 соответствуют о том, что последнее чтение было удачным.
Для теста удобно использовать программу Mod-RsSim , mod_RSsim.exe,
тут есть тоже, которая имитирует несколько слэйвов с возможностью вкл/откл, внизу панели квадратики, если зелёный доступен, в жёлтой рамке - опрашивается, красный - недоступен. Да много чего.
Пока только чтение.
Код основан на flprog, почти.
Можно, при желании, изменить на флоат, а byte получить вообще не проблема, т.к. в этой версии данные хранятся именно в них.
Количество слэйвов можно увеличить, изменив блок и сохранив его под новым именем, также количество регистров можно увеличить/уменьшит.
Заготовка - одним словом, для экспериментов . И для понимания алгоритма.
Идея описана в
этой теме.