ВНИМАНИЕ: очень многое из задуманного переделал, спасибо коллегам, поєтому предлагаю смотреть резюме в сообщении № 57.
Здравствуйте!
Впервые стала задача создать на ПЛК100 журнал событий во ФЛЕШ-памяти. В ходе работы контроллера возникают события (раз в 30 секунд и реже), по которым нужно выполнить запись в журнал: несколько переменных и штамп дата-время.
Сначала своим крестьянским умом начал реализовывать вот такую систему (ниже будут вопросы):
1) Создал тип данных LOGITEM - структуру, состоящую из всех данных, необходимых для одной записи
2) Создал массив структур такого размера, чтобы запись его в файл была не очень долгим процессом.
3) По событиям записываю новый элемент массива, пока не заполню все. Когда весь массив сформирован - пишу его в файл.
4) Когда выключается питание, по сигналу аварии питания записываю файл "досрочно". Ну, еще как-то надо научить ПЛК записывать файл, тоже досрочно, но в тот момент, когда оператор (или система) захочет списать архивы з ФЛЕШ - чтобы последний недозаполненный массив записей тоже "попал в историю"...
Примечание: имена файлов хочу сделать по дате и времени события, например, "2014-01-20-15-40-12.csv". И формат сразу CSV, чтобы просматривать офисными программами. Так хочет заказчик.
5) Из предыдущих п.3 и п.4 вытекает, что при старте я делаю следующую инициализацию:
- ставлю индекс массива на начало, чтобы всегда заполнять массив с начала
- (планирую, но еще не знаю как это сделать) проверяю заполненность памяти ФЛЕШ и удаляю старые файлы, либо просто один самый старый, либо какой-то "кусок", чтобы просто было много места. Оператору незачем старательно стирать файлы при их вычитке.
Вот такой план. Кое-что уже проверил. Но внезапно подумалось: А если у ПЛК уже предусмотрены возможности (или есть соответствующие либы) для реализации описанного функционала? Вдруг все решается красивее и проще? Пошарился немного по документации, но решил спросить у знатоков, мож и и искать-то нечего...
Спасибо!