Показано с 1 по 6 из 6

Тема: Запись данных (float) с меткой времени в файл (csv или подобный)

  1. #1
    Пользователь
    Регистрация
    02.09.2021
    Адрес
    Perm
    Сообщений
    24

    По умолчанию Запись данных (float) с меткой времени в файл (csv или подобный)

    Добрый день
    Стоит следующая задача - писать данные получаемые с модуля аналогового ввода (REAL) и меткой времени с частотой допустим раз в секунду в CSV (ну или в любой другой формат) файл
    Чтобы строки добавлялись друг за другом (все это должно работать на ПЛК - Овен110-60 или м3000-т).
    После чего данный файл допустим раз в день отправляется на электронную почту и после чего перезаписывается новыми значениями... И далее все заново

    Пример как выглядит файл (Данные нужно писать в виде):

    Перем1 Перем2 Перем3 Дата Время

    12,72 33,33 -333,44 03.02.22 12:12:12

    12,62 33,23 -323,44 03.02.22 12:12:13



    Прошу помочь разобраться как данную задачу решит более оптимально.

    Данную задачу попробовал решить через StringToFile(Input:= OBJECT_TO_STRING). Проект во вложении SaveToFile.rar

    Но столкнулся с проблемами:

    1. Как преобразовать время в DT из вот такого числа в файле - "SourceTime":133080437021487025

    2. Все данные находятся в оперативной памяти что при больших объемах данных крайне не удобно, так как запись данных нужна в момент работы технологического процесса которым и управляет ПЛК.

    3. Как реализовать данную запись в файл построчно с добавлением каждой записи с новой строки.

    4. Как правильно создать массив чтобы данные были представлены в виде:

    Перем1 Перем2 Перем3 Дата Время

    12,72 33,33 -333,44 03.02.22 12:12:12


    Последний раз редактировалось Sergey_Tr; 19.09.2022 в 13:00.

  2. #2

    По умолчанию

    Цитата Сообщение от Sergey_Tr Посмотреть сообщение
    Добрый день
    Стоит следующая задача - писать данные получаемые с модуля аналогового ввода (REAL) и меткой времени с частотой допустим раз в секунду в CSV (ну или в любой другой формат) файл
    Чтобы строки добавлялись друг за другом (все это должно работать на ПЛК - Овен110-60 или м3000-т).
    После чего данный файл допустим раз в день отправляется на электронную почту и после чего перезаписывается новыми значениями... И далее все заново

    Пример как выглядит файл (Данные нужно писать в виде):

    Перем1 Перем2 Перем3 Дата Время

    12,72 33,33 -333,44 03.02.22 12:12:12

    12,62 33,23 -323,44 03.02.22 12:12:13



    Прошу помочь разобраться как данную задачу решит более оптимально.

    Данную задачу попробовал решить через StringToFile(Input:= OBJECT_TO_STRING). Проект во вложении SaveToFile.rar

    Но столкнулся с проблемами:

    1. Как преобразовать время в DT из вот такого числа в файле - "SourceTime":133080437021487025

    2. Все данные находятся в оперативной памяти что при больших объемах данных крайне не удобно, так как запись данных нужна в момент работы технологического процесса которым и управляет ПЛК.

    3. Как реализовать данную запись в файл построчно с добавлением каждой записи с новой строки.

    4. Как правильно создать массив чтобы данные были представлены в виде:

    Перем1 Перем2 Перем3 Дата Время

    12,72 33,33 -333,44 03.02.22 12:12:12


    Здравствуйте.
    Мне кажется решить такую задачу можно несколькими способами:
    1) в линуксе подключиться к базе данных sqllite и периодически вычитывая данные делать с ними то, что хочется
    2) сделать в библиотеке структуру из трёх переменных флоат и одной дата -время, и потом добавить в объект безразмерный массив из такой структуры и периодически добавлять в массив переменные,
    после чего преобразовывать object to string и стринг в json файл (но размер переменной стринг может и огоричить)
    3) можно раз в секунду вызывать команду командной строки линукса( sysprocesscreate). строку формировать в программе фбд - конкатинацией -
    "echo "тут переменная 1 точка с запятой, переменная2 ...." > /tmp/file.csv" - и в этот файл будет оно падать. потом соответственно формировать посылку емайла ( а я бы в телеграмм кидал), проверять что файл ушел, удалять его и запускать новый. возможно крайние два три значения будут при этом потеряны.
    4) можно постоянно скидывать переменные и формировать обработку уже на линукс и python если есть... (( в плк110 его нет((( )

  3. #3
    Пользователь
    Регистрация
    02.09.2021
    Адрес
    Perm
    Сообщений
    24

    По умолчанию

    Цитата Сообщение от Юрий Горелый2 Посмотреть сообщение
    Здравствуйте.
    Мне кажется решить такую задачу можно несколькими способами:
    1) в линуксе подключиться к базе данных sqllite и периодически вычитывая данные делать с ними то, что хочется
    2) сделать в библиотеке структуру из трёх переменных флоат и одной дата -время, и потом добавить в объект безразмерный массив из такой структуры и периодически добавлять в массив переменные,
    после чего преобразовывать object to string и стринг в json файл (но размер переменной стринг может и огоричить)
    3) можно раз в секунду вызывать команду командной строки линукса( sysprocesscreate). строку формировать в программе фбд - конкатинацией -
    "echo "тут переменная 1 точка с запятой, переменная2 ...." > /tmp/file.csv" - и в этот файл будет оно падать. потом соответственно формировать посылку емайла ( а я бы в телеграмм кидал), проверять что файл ушел, удалять его и запускать новый. возможно крайние два три значения будут при этом потеряны.
    4) можно постоянно скидывать переменные и формировать обработку уже на линукс и python если есть... (( в плк110 его нет((( )
    Добрый день, Юрий.
    Пока данную задачу решил следующим образом:
    Создаю массив строк в который по условию записываю строки с подготовленными заранее значениями.
    И далее при достижении допустим 60 записей сохраняю это все в CSV файл.
    Но проблема в том что данное решение тратит очень много оперативной памяти - а еще по мимо записи надо и управлять технологическим процессом.


    Подскажите как реализовать построчную запись в файл допустим через C# на котором можно писать код в ПЛК
    Например как реализована запись в файл в данном видео:


    И про ПЛК-110 уже понял что проект будет реализовываться на М3000Т

    Цитата Сообщение от Юрий Горелый2 Посмотреть сообщение
    3) можно раз в секунду вызывать команду командной строки линукса( sysprocesscreate). строку формировать в программе фбд - конкатинацией -
    "echo "тут переменная 1 точка с запятой, переменная2 ...." > /tmp/file.csv" - и в этот файл будет оно падать. потом соответственно формировать посылку емайла ( а я бы в телеграмм кидал), проверять что файл ушел, удалять его и запускать новый. возможно крайние два три значения будут при этом потеряны.
    Очень интересен в реализации вариант 3 - который вы предложили... Сможите более детально подсказать как его реализовать?
    Последний раз редактировалось Sergey_Tr; 20.09.2022 в 11:27.

  4. #4
    Пользователь
    Регистрация
    02.09.2021
    Адрес
    Perm
    Сообщений
    24

    По умолчанию

    Юрий спасибо с примером 3 разоблася

    На выходе получился вот такой файл:
    Снимок.PNG
    С построчной записью.
    Последний раз редактировалось Sergey_Tr; 20.09.2022 в 13:59.

  5. #5

    По умолчанию

    Цитата Сообщение от Sergey_Tr Посмотреть сообщение
    Юрий спасибо с примером 3 разоблася

    На выходе получился вот такой файл:
    Снимок.PNG
    С построчной записью.
    вот видите, всё просто) ну я как нибудь стрим с такой темой сделаю. потому что там всё не так просто как кажется на первый взгляд.
    если отправили почту и не отправилась - нет интернета - что делать?

  6. #6
    Пользователь
    Регистрация
    02.09.2021
    Адрес
    Perm
    Сообщений
    24

    По умолчанию

    Цитата Сообщение от Юрий Горелый2 Посмотреть сообщение
    вот видите, всё просто) ну я как нибудь стрим с такой темой сделаю. потому что там всё не так просто как кажется на первый взгляд.
    если отправили почту и не отправилась - нет интернета - что делать?
    С этим согласен - буду разбираться.
    Стрим с решением подобной задачи очень бы помог.
    Спасибо.

Похожие темы

  1. C# скрипт, запись в файл значений
    от Igor V в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 06.03.2017, 14:33
  2. Запись данных в файл с помощью CAA.File
    от d-view в разделе ПЛК3хх
    Ответов: 9
    Последнее сообщение: 06.02.2017, 17:49
  3. Запись в файл
    от Alex12345 в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 19.03.2015, 16:50
  4. Запись / чтение структуры в файл на ПЛК
    от АлексейШ в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 17.08.2011, 19:39
  5. запись тревог в файл на плк
    от rabitt.exe в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 10.02.2010, 17:54

Ваши права

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