Здравствуйте.
Мы же и так можем узнать дату файла, зная имя.
Мой пример предполагает однократный запрос состояния службы с минимальным временем отклика, анализ наличия обновленного файла начинается с 0 секунды относительно запроса.
В Вашем случае это автомат состояний с периодом в 60 тактов, запрос выполняется в 0, а анализ во 2 тактах. Сам процесс получения данных асинхронный, и можно ожидать что он завершится за 2 секунды. Но если информация о состоянии файла обновится через 3 секунды и более, то возникнет ошибка.
Поскольку процесс получения состояния службы периодический и не связан с действиями оператора (как в примере), то анализ файла можно смело перенести до 55 такта (секунды).
Вывод названия параметра на разных языках ("Состояние" <-> "STATE") это, предположительно, отголосок локализации ОС. Я бы проверял строку на наличие подстрок ": 4 RUNNING" и ": 1 STOPPED".
И ещё одна особенность автомата при запуске проекта, с вероятностью 1/30 в течение первой минуты будет выдано сообщение "Ошибка получения статуса службы опроса модемов".
Для устранения этого можно использовать условие (начальное значение переменной - 0) :
(if SecondOf(Now) = 2) and (StartTime.AsFloat > 1) then begin //считываем файл для анализа через 2 секунды после создания и только после запуска скрипта