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

Тема: Работа с архивными данными прибора в MasterSCADA 4D

  1. #1

    По умолчанию Работа с архивными данными прибора в MasterSCADA 4D

    Добрый день.

    При чтении архива с прибора отображается последняя запись в архиве. Как получить доступ ко всем значениям? Например отобразить в виде массива.

    ПС. Если вывести тренд то он построится на заданную глубину чтения архива. Архив Masterscada считывает полностью. А как с ним работать?
    ПС2. Прибор Логика СПТ963, MasterSCADA 4D.
    1.jpg2.jpg

  2. #2

    По умолчанию

    Цитата Сообщение от Enigma Посмотреть сообщение
    Добрый день.

    При чтении архива с прибора отображается последняя запись в архиве. Как получить доступ ко всем значениям? Например отобразить в виде массива.

    ПС. Если вывести тренд то он построится на заданную глубину чтения архива. Архив Masterscada считывает полностью. А как с ним работать?
    ПС2. Прибор Логика СПТ963, MasterSCADA 4D.
    1.jpg2.jpg
    Добрый день!

    1.
    В свойствах параметра справа включите свойство Архивировать.

    2.
    Для работы с архивом в коде программы используйте ФБ READ_ARCHIVE_DATA из библиотеки Общая - Системные. Описание ФБ см. в справке.
    Инженер технической поддержки ОВЕН

  3. #3

    По умолчанию

    Значит нужно с начало настроить перезапись архива из прибора в БД, а потом через БД работать с архивом?
    Item параметра я узнаю когда перезапишу архив в БД?

  4. #4

    По умолчанию

    Цитата Сообщение от Enigma Посмотреть сообщение
    Значит нужно с начало настроить перезапись архива из прибора в БД, а потом через БД работать с архивом?
    Item параметра я узнаю когда перезапишу архив в БД?
    В свойствах параметра Вы включаете свойство Архивировать. Параметр будет сохраняться в архиве данных, назначенном текущему устройству (ПКМ по узлу - Назначить архив данных). В свойствах архива данных указывается путь к БД.
    На вход Item блока READ_ARCHIVE_DATA принимается ссылка на параметр, т.е. достаточно перетащить параметр на этот вход.
    Инженер технической поддержки ОВЕН

  5. #5

    По умолчанию

    Всех приветствую! Не судите строго. Пытаюсь работать в MS4D без года, - неделю.)
    Имеем архив переменной (счётчик кол-ва изделий), запись-сохранение "по изменению значения". Из данного архива требуется вычитать ежечасную производительность (сколько изделий - шт.) было сделано за каждый час в течении 12 часовой смены, а затем разложить эти 12 значений в виде таблицы по отдельным ячейкам в "текстовый вывод". Для чтения каждого из 12 интервалов архива, использую ОТДЕЛЬНЫЕ ФБ READ_ARCHIVE_DATA с указанием диапазона равного 1-му часу. Например с 07.00 до 08.00 один ФБ, с 08.00 до 09.00 второй ФБ, и т.д. Понимаю, что при обработке таким неоптимальным образом, система перегружена лишними вызовами ОТДЕЛЬНЫХ функциональных блоков и работает не оптимально. Это заметно и по торможению среды разработки, особенно в режиме отладки.
    Имею опыт в написании функциональных блоков на языке СИ, и весь функционал реализовал бы на основе конструкции for(init-expression;cond-expression;loop-expression)statement; и указателях. Нужно: в цикле -> установили для READ_ARCHIVE_DATA параметры Begin и End, забрали значение из Values, отобразили его в элементе "текстовый вывод", далее смещаемся в Begin и End на час позже и передаем следующее значение в рядом стоящий элемент "текстовый вывод" НО! Как организовать передачу считанного значения из ФБ READ_ARCHIVE_DATA на следующий элемент текстового вывода? Как это красиво реализовать на FBD, используя только один блок чтения архивных данных, я не втыкаю. Может считать весь архив за смену, а потом работать со структурными данными? Но где тогда взять метку времени архива для выделения необходимых временных отрезков? HelpMePlease!
    Скрины на FBD прилагаю.
    Изображения Изображения
    • Тип файла: jpg 11.jpg (1.16 Мб, Просмотров: 23)
    • Тип файла: jpg 22.jpg (1.01 Мб, Просмотров: 14)
    Последний раз редактировалось Stenzigan; 04.04.2024 в 23:26.

  6. #6

    По умолчанию

    Цитата Сообщение от Stenzigan Посмотреть сообщение
    Всех приветствую! Не судите строго. Пытаюсь работать в MS4D без года, - неделю.)
    Имеем архив переменной (счётчик кол-ва изделий), запись-сохранение "по изменению значения". Из данного архива требуется вычитать ежечасную производительность (сколько изделий - шт.) было сделано за каждый час в течении 12 часовой смены, а затем разложить эти 12 значений в виде таблицы по отдельным ячейкам в "текстовый вывод". Для чтения каждого из 12 интервалов архива, использую ОТДЕЛЬНЫЕ ФБ READ_ARCHIVE_DATA с указанием диапазона равного 1-му часу. Например с 07.00 до 08.00 один ФБ, с 08.00 до 09.00 второй ФБ, и т.д. Понимаю, что при обработке таким неоптимальным образом, система перегружена лишними вызовами ОТДЕЛЬНЫХ функциональных блоков и работает не оптимально. Это заметно и по торможению среды разработки, особенно в режиме отладки.
    Имею опыт в написании функциональных блоков на языке СИ, и весь функционал реализовал бы на основе конструкции for(init-expression;cond-expression;loop-expression)statement; и указателях. Нужно: в цикле -> установили для READ_ARCHIVE_DATA параметры Begin и End, забрали значение из Values, отобразили его в элементе "текстовый вывод", далее смещаемся в Begin и End на час позже и передаем следующее значение в рядом стоящий элемент "текстовый вывод" НО! Как организовать передачу считанного значения из ФБ READ_ARCHIVE_DATA на следующий элемент текстового вывода? Как это красиво реализовать на FBD, используя только один блок чтения архивных данных, я не втыкаю. Может считать весь архив за смену, а потом работать со структурными данными? Но где тогда взять метку времени архива для выделения необходимых временных отрезков? HelpMePlease!
    Скрины на FBD прилагаю.
    Добрый день.

    По описанию задачи Вам больше подойдёт перебор в цикле на языке ST. Таким образом и решите проблему с вызовом нескольких ФБ.
    Инженер технической поддержки ОВЕН

  7. #7

    По умолчанию

    Ну, что и требовалось доказать, смотрим в сторону ST.
    Александр, спасибо за ответ!

  8. #8

    По умолчанию

    Я сильно удивлён, что при создании всего одного библиотечного ФБ для последовательного чтения архивных данных с 17-ю вложенными ФБ READ_ARCHIVE_DATA и парами десятков блоков простой булевой логики, смогут так затормозить работу интерфейса MS4D. Что-то здесь не так.

Похожие темы

  1. Рабоа с данными
    от андрей1972 в разделе ПЛК2хх
    Ответов: 14
    Последнее сообщение: 23.05.2023, 12:07
  2. Lua в MasterSCADA: работа с файлами
    от SokolovS в разделе Master SCADA 3
    Ответов: 8
    Последнее сообщение: 19.11.2013, 09:04
  3. Ответов: 16
    Последнее сообщение: 14.12.2012, 19:47
  4. Обмен данными по Modbus TCP/IP
    от tea в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 05.08.2011, 09:52
  5. Ответов: 14
    Последнее сообщение: 29.07.2010, 12:07

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

Ваши права

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