Показано с 1 по 10 из 91

Тема: Журналирование в ПЛК

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию Журналирование в ПЛК

    ВНИМАНИЕ: очень многое из задуманного переделал, спасибо коллегам, поєтому предлагаю смотреть резюме в сообщении № 57.


    Здравствуйте!

    Впервые стала задача создать на ПЛК100 журнал событий во ФЛЕШ-памяти. В ходе работы контроллера возникают события (раз в 30 секунд и реже), по которым нужно выполнить запись в журнал: несколько переменных и штамп дата-время.
    Сначала своим крестьянским умом начал реализовывать вот такую систему (ниже будут вопросы):

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

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

    Спасибо!
    Последний раз редактировалось drvlas; 25.01.2014 в 00:44. Причина: Подведение итогов

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •