Пока пишу прогу, у меня тут сомнения появились, что большой файл получится вытянуть когда ПЛК в него периодически пишет. Вы там проверьте как-нибудь.
К счастью, в момент считывания файла можно обеспечить (администартивными мерами) отсутствие событий. То есть, в данном конкретном случае, ПЛК не будет писать, когда ПК вычитывает.
Но конечно, нужно будет проверить.
Кстати, сейчас я все же пробую готовить сразу CSV в ПЛК. Все, что нужно будет от Вашей проги - вытянуть из СИМВОЛЬНОГО файла инфо в соответствии с временными рамками, заданными оператором. Если Вы ушли уже далеко вперед для смены ТЗ, то Бог с ним, я сам переделаю. Но вообще, выглядит так, что с символьным получше будет. Ведь на худой конец, можно открыть CSV Экселем и вытянуть ручками...
Или Вам еще можно описать формат символьного файла?
Ну опишите текстовый формат тогда. Я как раз саму оболочку набросал и только взялся за отладку процедуры чтения бинарников.
Не пойму, как файл приаттачить... Что за чЮдеса...
ладно, революция не терпит промедления. Завтра мы тут можем уже быть без Инета...
Вот снимок ровно двух строк
2014-01-23_075920.jpg
Вот их потрошка
2014-01-23_075823.jpg
А вот они уже в электронной таблице
100001 23/01/14 00:24 0 9,99 7776,27
100002 23/01/14 00:24 0 9,99 7786,26
Длина записей всегда одинакова. Длина отдельных поелй меняется: в первой колонке может быть от 1 до 6 цифр, вторая колонка железобетонная, в третьей и четвертой может быть до 5 цифр, может быть или не быть знак, может быть или не быть десятичная запятая (не более 2 цифр справа от нее). В следующей колонке может быть от 1 до 9 цифр без знака, но запятая тоже может быть (одна или две десятичные цифры справ от запятой).
Потом две пустых колонки. В первой из них количество пробелов выравнивает длину строки
Самое главное - видно формат времени и даты. Он неизменен.
Версия 0.1
Хоть и графическая, но запускать надо с теми же параметрами, что и plc_io. Например, LogParser /TCP192.168.1.50 /get log.csv
Утилита plc_io запечатана в экзешник этой программы и распаковывается при каждом получении данных во временную папку, после вызова удаляется. Всё её сообщения выводятся в зелёном окошке.
Для работы требуется .NET Framework 4.
Жду багрепортов. С контроллером не проверялось, т.к. поблизости их нет.
Последний раз редактировалось Yegor; 23.01.2014 в 12:04.
Бегло посмотрел тему. Искал возражения против стандартного архиватора, не нашел.
так вот..
А нельзя ли просто воспользоваться готовым решением Archive?
Вам наверное бы подошел. Время и дата автоматом ставится.
Ктото скажет большой файл создать нельзя.
С вашими способностями с библиотекой SysLibFile можно будет проверять размер файла созданного Archive1 и если он достигает 32кб(насколько помню это и есть ограничение), то писать Archive2 и т.д.
События и некоторые настройки записи просты. А как только вы скачали его на комп, удалили скачанный, так архиватор автоматом создал новый и дело в шляпе.
P.S. Лично я не люблю писать в плк, а сразу пишу на ПК сервер, всё там достаточно просто.
Спасибо, коллега! Сейчас не успею проверить. Мож через несколько часов.