Стандартное решение в таком случае: критичный цикл работы программы нужно вынести на отдельный ПЛК с настоящим реальным временем. Параметры работы сделать доступными по RS-485 по протоколу Modbus, например. Дальше всю интеграцию делать с нашего контроллера.
При желании, можно и обновление прошивки ПЛК сделать с нашего контроллера.