Страница 4 из 10 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 91

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

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

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    плк проверяет сокет, сконнектился - отправил накопившиеся файлы
    ПЛК может выключится когда угодно. Поэтому накапливать файлы будет именно во ФЛЕШ-памяти.
    Но хорошая мысль - пусть сам отправляет новое и, отправив, сразу и уничтожает. Это сводится, по сути, к созданию того же реестра, о котором говорит Sergey666.
    Да, если считать, что ресурс ФЛЕШ-диска ПЛК определяется числом изменений в его FAT, то создание и поддержание реестра ничего не ухудшит. В этом направлении и буду смотреть. Спасибо!
    А уж как потом скидывать - то ли по запросу от plc_io (или другой прогарммы на ПК), то ли по инициативе ПЛК, будет видно.

  2. #32
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Гнать всё в бинарный файл максимального размера по кругу структурами фиксированного размера с отметками времени и контрольными суммами. Парсить и сортировать по времени в CSV на компе после захвата через plc_io (помогу). Указатель позиции в основном файле записывать в дополнительный файл. Компактно, надёжно, просто. Удалять не придётся ничего вообще, имена обоих файлов известны и намертво зашиты в программу ПЛК и парсер на ПК. Чтобы на флеш скинулось, просты переоткрыть рабочий файл, и всё.

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

    По умолчанию

    В поезде, в совейские времена:
    - Хотите, политический анекдот расскажу?
    - Вы что не видите, я же миллиционер, в форме!
    - А, не страшно, я буду рассказывать медленно и два раза.

    Давай-ка, с учетом моего скудоумия, по кусочкам кушать твой блюдо

    Цитата Сообщение от Yegor Посмотреть сообщение
    Гнать всё в бинарный файл
    Почему именно бинарный? CSV - текстовый же... Как его потом втягивать в таблицу?
    Или ты имеешь в виду, что после plc_io мы своей утилиткой открываем бинарник и парсим, находим то, что нужно, преобразовуем в CSV и отдаем оператору?

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

    Цитата Сообщение от Yegor Посмотреть сообщение
    Парсить и сортировать по времени в CSV на компе после захвата через plc_io (помогу)... и парсер на ПК
    Ну, как сделать именно парсер - именно здесь я в полном неведении. Хотя, если речь не идет о построении оконного диалога, обращении к ПЛК и прочим фокусам со средствами ОС, а просто об открытии файла и работе с записями... Это кагбэ несложная Си-программа. У меня даже компиль не стоит для разработки софта под ПК... Мож и смог бы, с пинками в нужное место и в нужном направлении

  4. #34
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,842

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    Ну, как сделать именно парсер - именно здесь я в полном неведении. Хотя, если речь не идет о построении оконного диалога, обращении к ПЛК и прочим фокусам со средствами ОС, а просто об открытии файла и работе с записями... Это кагбэ несложная Си-программа. У меня даже компиль не стоит для разработки софта под ПК... Мож и смог бы, с пинками в нужное место и в нужном направлении
    HiAsm.png
    http://www.hiasm.com/

    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #35
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Или ты имеешь в виду
    Да.
    важно в принципе - я верно понимаю?
    Да.
    время перезаписи фрагмента не должно зависеть от размера файла
    Оно будет зависеть от размера фрагмента. Тут я бы по накоплении определённого объёма записанных байт закрывал бы файл и вновь его открывал.
    Это кагбэ несложная Си-программа.
    Примитивная.
    У меня даже компиль не стоит для разработки софта под ПК
    У кого .NET установлен, у тех и компилятор сишарпа есть. Но если хотите, я вам за спасибо программку напишу и отдам вместе с исходником — описание структуры только дайте да пример CSV-файла (бинарник тоже бы неплохо).

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

    По умолчанию

    2 petera Забавная штучка! Не раз думал о таком (простом?) пакете для быстренькой разработки всяких свистоперделок. Жаль только, что, судя по сайту, она уже пару лет как не развивается. Как раз 5 версия с объявленной поддержкой Линукса сгодилась бы (не сейчас, так вааще)

    2 Yegor Ну конечно же хочу! Изучать от готового шаблона (тем более, если он создается уже под задачу) - милое дело! ЩА приготовлю описание!
    ТОКА не уходи далеко!
    Последний раз редактировалось drvlas; 22.01.2014 в 13:13.

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

    По умолчанию

    Ну вот, что-то в таком духе:

    Структура данных

    Каждая запись о событии состоит з следующих полей:

    1) Номер события uint32_t
    2) Метка времени: одинаковые 4 поля uint16_t: месяц, день, час, минута
    3) Данные: 3 поля разной длины: int16_t, int_16t, int32_t
    4) (опционально) CRC по предыдущим полям (Модбасовский) uint16_t

    События возникают с неопределенной периодичностью, до 3000 в сутки (теоретический максимум, реально до 1000 в сутки). ПЛК накапливает события в ОЗУ, порядка 128...1К событий, а затем записывает это в файл. Таким образом, ресурса ФЛЕШ (я взял 5000 записей, с перестраховкой) должно хватить на 1...16 лет, что сейчас приемлимо.
    В ПК они считываются оператором раз в день, но возможно и раз в несколько дней. Поэтому размер файла будет выбран таким, чтобы в нем могли разместиться не менее 10...50 тысяч записей. И среди них требуется найти (по фильтру оператора) интересующие и преобразовать в CSV-файл.

    Итак, возможности программы-декодера на стороне ПК таковы:

    1) Чтение файла из ПЛК (судя по всему, скорость чтения программой plc_io.exe довольно низка, но это придется терпеть)
    2) Выбор временнОго окна (день-месяц-час-минута)
    3) Получение файла с именем, в котором отражены параметры временнОго окна. Это задумано для того, чтобы в ПК можно было автоматически получать архив файлов, не уничтожая никакие предыдущие — ведь каждый файл уникален по названию.
    Например, название может быть таким
    20140121-2200_20140122-0700. CSV — файл с данными по ночной смене с 21 на 22 января
    4) При получении ошибки следует сообщить ее код и смысл. В описании plc_io.exe есть данные по ее кодам, а в данных неплохо бы предусмотреть сообщение о битой CRC с указанием временного штампа.

    Конечно же, к интерфейсу программы не предъявляються никакие требования. Можно даже просто командной строкой

    yegor 01 21 22 00 01 22 07 00

    (год можно не задавать, программа пишет файлы с учетом текущего года, 31 декабря пусть побеспокоятся о вычитке всех файлов за декабрь, а уж потом идут бухать)
    Ну, а если будет окошко со стандартым выбором даты-времени — то вааще жесть!

  8. #38
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Окей, завтра сделаю, т.к. сейчас уже домой поеду. Не теряйте.

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

    По умолчанию

    В любом случае - спасибо за идею одного кольцевого файла! Мож и я чего соображу, хотя у нас тут собітия...

  10. #40
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,842

    По умолчанию

    Пока Yegor будет делать программу, посмотрите библиотеку OSCAT "codesys_network_121_hf1.lib" может что-то полезное в ней найдете.
    Захват-1.png

    Захват-2.png

    Захват-3.png
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 4 из 10 ПерваяПервая ... 23456 ... ПоследняяПоследняя

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

Ваши права

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