This is topic Сохранение данных в файл in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001185.html

Posted by m-d-a (Участник № / Member № 5992) on :
 
Здравствуйте.

Возникла задача сохранения входных и рассчитанных значений в текстовый файл csv на диске по дням и годам.

Я так понимаю есть несколько способов.
Подскажите, пожалуйста, в каком направлении лучше двигаться, чтобы среда исполнения успевала сохранять данных и как можно следить за очередью.

Заранее спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Непонятно, что означает "сохарнять по дням и годам".
Штатной функции сохранения текущих данных в текстовый файл произвольной формы в Trace Mode 6.
Существуют вспомогательные функции сохранения в файл аргументов каналов CALL, но они выполняются в online-режиме и могут выполняться в весьма ограниченном объеме.
Можно сохранять все параметры в СПАД-архиве, а затем экспортировать выборочно с нужными Вам фильтрами в текстовый файл.

Но надо более точно знать назначение этой экспортной операции и ее динамические характерисристики.

Обратитесь, пожалуйста, в службу техподдержки с более развернутым представлением задачи.
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
Необходимо в начале каждых суток (или с последнего сохранения) сохранить в csv файл считанные с устройства 100 входных значений float каналов и 100 значений производных от этих каналов (математически пересчитаны полученные значения и записаны в другие 100 каналов float).
В СПАД все пишется и вроде нет проблем вытащить через диалог с пользователем.
А хотелось бы еще текстовую базу хранить отдельно в виде файлов по дням работы.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно использовать функцию экспорта данных из архива с помощью канала CALL.ChGroupReq, привязанного к системной переменной @Data_from_SIAD (см.документацию).
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
Спасибо за поддержку, так и пытаюсь делать. Было бы еще примеров побольше.
А в ситуации, когда надо дать возможность менять верхние и нижние аварийные границы и это должно сохраняться при перезапуске системы, надо тоже создать канал CALL.ChGroupReq, к аргументам привязать 30 и 31 арг числового канала, сохранить канал в файл, потом при запуске монитора загружать в канал CALL из файла, и связанные аргументы автоматически изменят границы числового канала?
Или есть способ попроще?
 
Posted by Жигалов Денис Николаевич (Участник № / Member № 6035) on :
 
Сделать дамп.
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
Все сделал по отгрузке и загрузке границ канала в файл. При загрузке границ из файла все загружается в CALL.ChGroupReq, из него по связанным аргументам в канал Float (границы меняются) - Единственное что не работает - они не применяются и не отображаются в элементе текст (хотя, если у него параметр ввести и передать, то в выпадающем окне все нормально). Также не отрабатывают события превышения новых границ.
Я так понимаю, канал после загрузки в него новых границ надо вручную заставить отработать?
Подскажите, пожалуйста, как это сделать.
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
Дамп не поможет. Мне надо границы менять, не в среде разработки а в исполнительной среде. Если что слетит, с дампом замучаешься. Но спасибо за совет.
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
И по первому вопросу. Я в документации нашел только возможность экспорта данных из СПАД в файл с дискретностью 1 сек и более.
Есть ли возможность выдачи всей накопленной информации за заданный промежуток времени в текстовый файл?
Заранее спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для сохранения и восстановления границ канала следует использовать именно DUMP. Это корректно и надежно.
При изменении границ в реальном времени (любым способом) они будут сохраняться в файле DUMP.
Любые другие способы чреваты неоправданными усложнениями.

Для того чтобы экспортировать все данные за заданный интервал времени в текстовый файл, надо задать у канала, осуществляющего экспорт, значение ПАРАМЕТР=0.
Минимальный диапазон экспорта - 2 мин.
 
Posted by m-d-a (Участник № / Member № 5992) on :
 
Спасибо. С дампом попробую. Хотя все сохраняется и загружается через call. Единственное, сразу не применяется после загрузки. Можно свой пример на почту Вам скину на предмет возможности такого варианта и понимания принципа работы с атрибутами связанного канала с каналом call (что происходит после загрузки)
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Присылайте проект на hotline@adastra.ru с комментариями, которые привязывают Вашу задачу к заложенным функциям.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Поставленная Вами задача сохранения и восстановления различных наборов границ действительно требует использования файлов.

2. При использованной Вами методике отображения границ на экране через ссылки на атрибуты синхронизация отображения осуществляется по изменению атрибута, которому привязан аргумент экрана.
Для оперативного отображения изменения границ необходимо каждую границу привязывать к отдельному аргументу экрана.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2