Идея следующая. Из программы команда передается как ряд значений для двух и более регистров (функцией WriteMultipleRegisters, 0x17). В первый регистр пишем код команды, в последующие - ее параметры. На ПЛК из определенного регистра получаем код команды, на основании него снимаем значения параметров из остальных регистров, исполняем команду и обнуляем регистры.

Судя по протоколу такой метод достаточно надежен и ситуации, когда часть параметров запишется в одной итерации цикла исполнения, а другая в следующем, возникнуть не должно. Я правильно понимаю?