по spi я пока думаю мк1 оставлять слэйвом, потому что с парсингом менее затратно, т.к ответ от слейва должен быть готов, и только после этого надо слать клок. а мк1 больше загружен, поэтому не хотелось такими вещами ещё заниматься.
теперь, когда оба mk получили запрос по modbus они должны что?
мк2 должен обработать 1 запрос, обработать другой запрос, на основании чего он выдаст либо ошибку, либо выберет из двух запросов тот, что в приоритете и отправит мк1
в чем вопрос то? модбас это запрос-ответ. все. стандартные это чтение-запись регистров (биты io я не беру я думаю оно вам не нужно). вы можете делать не стандартные функции которые делают что-то еще.