1. Если нужные вам данные лежат в адресном пространстве протокола Modbus, то да, мысль верна. Более простого подключения, чем по протоколу Modbus вы вряд ли найдете.
2. Если под другими компонентами понимаются модули ввода/вывода, то взаимодействие с ними контроллер осуществляет на уровне своей ОС и для вашей программы скорее всего интереса не представляют. Данные с этих модулей контроллер обрабатывает и в соответствии со своей внутренней программой выкладывает в адресное пространство Modbus (зависит от реализации программы в контроллере).