This is topic Запись в SIAD с произвольной меткой времени in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE at Форум TRACE MODE: техническая поддержка.


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

Posted by dmpal (Участник № / Member № 4976) on :
 
Здравствуйте.
Ломаю голову над такой задачкой:

Есть канал Float (input) который в процедуре трансляции сравнивает свое время (45,T) с временем хранящемся в аргументе (скажем Arg0) некоего канала CALL. Если он обнаруживает там наличие более "свежих" данных, то R:=Arg1, T:=Arg0.
Что бы все работало как надо, в канале Float установлен флаг запроса времени.
Пока не задано разрешение на архивирование для канала, все работает как часы: атрибуты R и T ритмично меняются по заданному алгоритму. Стоит только указать в канале Float номер СПАДа, R продолжает меняться по заданному алгоритму, но уже с текущими (а не заданными) метками времени. Никак не пойму, в чем причина, раньше мне подобные фокусы удавались. Теперь же, и флаг времени пробовал ставить/снимать, и менять тип канала input/output, и на старые релизы Trace Moda откатывался. Ничего не помогает.

Еще добавлю, что данная конструкция рассчитана на заполнение пробелов в СПАДе.
 
Posted by dmpal (Участник № / Member № 4976) on :
 
Максимально упростил задачу.
Теперь все расчеты делаются в отдельной программе и результат циклически записывается в атрибуты канала Float:
SetAttributeF(Float_ID,26,1); //установка признака наличия новых данных (используется артибут HL)
SetAttributeF(Float_ID,27,NewValue); // запись нового значения (используется артибут LL)
SetAttributeI(Float_ID,45,NewTimeMark); //запись новой метки времени

Процедура трансляции канала Float упростилась до вида:
if Q<>In then Q:=In; End_if; //для отображения текущих данных на тренде
if NewDataReady==1 then NewDataReady:=0; R:=NewValue; End_if; //для просмотра пропущенных(восстановленных) данных

Данные попадают в SIAD с нужными метками, но параллельно создается такое же количество записей с текущими (на момент записи) метками времени.
Исключить эти лишние записи ну никак не получается.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Без изучения проекта, без четкого представления о поставленной задаче, без возможности эмуляции предполагаемого процесса анализировать проблему затруднительно.
Пришлите, пожалуйста, Ваши материалы с четким описание исходной задачи на адрес техподдержки.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2