Первое над чем подумать, как будет внутри устроена пользовательская
программа. Будет ли это конечный автомат? Будет ли у пользователя
мультизадачность? Насколько это будет черезжопно, чисто на уровне
текста? А то видел я контроллеры "на Си", в которых задержку
предлагали блокирующим sleep() делать. Второй вопрос - логгирование и внутрисхемная отладка.
Лично я выберу контроллер МЭК, с внутрисхемной отладкой, даже при двухкратном разрыве в цене.
Третий вопрос - как идеологически будет организованно взаимодействие пользовательской программы с Modbus?
Видел вариант, когда декодировку-реакцию тупо перекинули в user-space - ну его нахер такой гембель.
Видел когда номера регистров автоматом назначались всем глобальным переменам. Удобно, но есть нюансы с документированием.
Видел, когда переменную "регистрируем" в API и сами назначаем ей номер регистра - иногда это утомительно.