На Аглицком разумиещ!?
В КДС справка HTML встроенная , там пошукай .
Standart.lib
А перцовка Немирофф уже не та....
На Аглицком разумиещ!?
В КДС справка HTML встроенная , там пошукай .
Standart.lib
А перцовка Немирофф уже не та....
Еще рекомендовал бы писать через промежуточный буфер в 512 байт а не каждую строку.
И зачем сразу кучу ? Может разным переменным - разные периоды/события ? Cортинг сплошного csv по любому полю - дело 5 секунд
Привет, уважаемый Учитель! Рад, что тебя заинтересовали мои вопросы. Ща их будет больше
Я пишу события в виде готовых CSV-строк (как случится - так и сварганю строку), создавая массив событий. Хотелось бы туда накидать до 512 строк (строка где-то до 60 байт), тогда частота записей во ФЛЕШ будет приемлима (я боюсь, что каждая запись файла приводит к изменению-перезаписи инфо в каком-то реестре, расположенном тоже на ФЛЕШи, так в этом месте дырка быстро протрется).
Когда массив строк заполнен - вызывается функция записи в файл. Она приделывает файлу уникальное имя в виде "2014-01-20-15-01.csv" и лупит туда заголовок и все (512) строк.
Если выключаетс питание, то в файл пишется неполный массив строк - сколько есть на тот момент.
Сейчас это все работает, не знаю только какой размер файла можно надежно записать во время умирания блока питания...
Но вот новый вопрос. Набухиваю я файлы в ПЛК. Программой plc_io от комании ОВЕН я их считываю и потом открываю в электронной таблице. Красота! Но делать это достаточно неудобно:
1) выискивать файлы, еще не прочитанные в комп, вводить их точные имена - морока
2) почистить флеш ПЛК со стороны ПК вообще непонятно как. Ни программа plc_io, но браузер ПЛК, ни функции либы SysFileLib не поддерживают * в работе с файлами. Дать команду очистки *.csv файлов - как?
Надо "реестр" делать.
Не хотите в ретайн хранить храните в файле с фиксированным именем в него записывать названия файлов не сей момент.
Пожалуй, так и надо. Спасибо, буду думать. Если на стороне компа - то это почти то же самое, что читать директорию ПЛК в файл и потом его парсить. Придется все же оболочку над plc_io сварганить (в чем я дуб-дубом, да...)
Но выгода от твоего предложения в том, что и в самом ПЛК можно организовать очистку. Вот это, да, плюс!
Я хочу, но не умею. Уже хотелке лет 20...
СКАДУ с сохранением на ПК я уже сделал (на МастерСКАДе), но мне не понравилось (для такой простой задачи очень громоздко получилось). Возможно, что использование оскатнетворк привело бы к более изящному результату - но это уже в другой теме. Ибо заказчику очень неудобно держать комп постоянно включенным для журналирования. Потому сейчас кагбэ дано: хранить на ПЛК, сгружать на ПК.
Я еще не смотрел, как через USB стянуть с ПЛК...
Почему постгянно, плк проверяет сокет, сконнектился - отправил накопившиеся файлы, а нет соединения периодически проверяет связь и копит в озу, кроме пк есть еще и nas кстати
ПЛК может выключится когда угодно. Поэтому накапливать файлы будет именно во ФЛЕШ-памяти.
Но хорошая мысль - пусть сам отправляет новое и, отправив, сразу и уничтожает. Это сводится, по сути, к созданию того же реестра, о котором говорит Sergey666.
Да, если считать, что ресурс ФЛЕШ-диска ПЛК определяется числом изменений в его FAT, то создание и поддержание реестра ничего не ухудшит. В этом направлении и буду смотреть. Спасибо!
А уж как потом скидывать - то ли по запросу от plc_io (или другой прогарммы на ПК), то ли по инициативе ПЛК, будет видно.
Гнать всё в бинарный файл максимального размера по кругу структурами фиксированного размера с отметками времени и контрольными суммами. Парсить и сортировать по времени в CSV на компе после захвата через plc_io (помогу). Указатель позиции в основном файле записывать в дополнительный файл. Компактно, надёжно, просто. Удалять не придётся ничего вообще, имена обоих файлов известны и намертво зашиты в программу ПЛК и парсер на ПК. Чтобы на флеш скинулось, просты переоткрыть рабочий файл, и всё.