Делать надо только через программное размыкание реле + бэкап питания на минуту на конденсаторах или аккумчике. Включение через долгое удержание это шило, делать надо простейшее реле времени, секунд 20-30 удержание реле после подачи питания. Дальше подхватит.
Опять же отключение нужно проводить через проверку продолжительности пропадания питания. Так как к примеру запуск ДВС дает сильную просадку.
Писать данные (по опытам) нужно блоком , разделив его на мелкие части. Меньше вероятность запороть файловую в случае чего. Положено 0,3,68 это и так ясно.
Данные пишутся до 40-50 параметров в сек float. Бывает меньше. Формат файла свой. Менять его нельзя. Посмотрю ваш сервер архивации. Что он может.
По поводу использования встроенной flash ПЛК - софт проверяет на убитые блоки? Там NAND ? У них часть блоков умерла с завода. Часть блоков умирает при последнем стирании. Часть умирает на какой-нить странице в процессе записи. По поводу 10тыс записей это только микрону и самсунгу снится. Во вложении фотка - умерла самсунговская. Красным убитые блоки. Вернули месяц назад. Проработала пол года. Покупали на компэле. Умирает память не скопом, а постепенно и с разной скоростью.
Вот под новый проект нам для чтения аварийной ситуации самое оно. Данных мало, считывать будут редко. Хранить во flash , читать по требованию на USB флэшку.