НТК Интерфейс
ПО ОИК Диспетчер НТ. ПО сервер версия 3.Х.
          Руководство пользователя
×
Меню

3.1.8.2. v_aan данные импульс-архива телеизмерений


Таблица содержит данные импульс-архива телеизмерений.
SQL column
type
Описание
el_type
smallint
0 = оригинальное значение
1 = среднее в интервале
2 = минимальное значение в интервале
3 = максимальное значение в интервале
начало интервала =  update_time
длина  интервала =  step
aa_flags   
bit(8)    
1 bit: 1 = переполнение импульс-архива
Сервер способен хранить в импульс-архиве не более 600 значений в минуту.
update_time
timestamp
Метка времени
step     
int      
Шаг агрегирования, в секундах
name       
text     
Наименование телепараметра
tm_type    
smallint 
Тип телепараметра 0=ТС, 1=ТТ, 2=ТИ
tm_type_name
text     
Наименование типа
tma        
int      
Адрес телепараметра
tma_str    
varchar(20)
Адрес в формате '#{TC|TT|TI}Канал:КП:Объект'
Примеры: '#TT:0:1:1', '#TC:0:1:1' (символы латинские)
Если тип телепараметра одназначно определен для данной колонки данной таблицы, то в условиях запроса можно задавать значение в сокращенном виде, например: 
select * from oik_cur_tt where tma_str = '0:1:1'
ch         
smallint 
Канал
rtu        
smallint 
КП
point      
smallint 
Объект
class_id
smallint 
Класс телепараметра
group_id   
smallint 
Группа телепараметра
flags      
int      
Информация о флагах параметра.
#define UNRELIABLE_HDW     0x0001   // Недостоверность аппаратная
#define UNRELIABLE_MANU    0x0002   // Недостоверность от пользователя
#define REQUESTED          0x0004   // Идет опрос
#define MANUALLY_SET       0x0008   // Установлено вручную
#define LEVEL_A            0x0010   // Сработала уставка первого уровня
#define LEVEL_B            0x0020   // ------- " ------- второго уровня
#define LEVEL_C            0x0040   // ------- " ------- третьего уровня
#define LEVEL_D            0x0080   // ------- " ------- четвертого уровня
#define INVERTED           0x0100   // ТС инвертируется при занесен
#define RESCHANNEL         0x0200 // Данные взяты с резервного канала
#define TMCTRL_PRESENT     0x0400 // Есть команда - volatile [ТС]
#define HAS_ALARM          0x0400 // Есть уставки - volatile [ТИТ]
#define STATUS_CLASS_APS   0x0800 // АПС [ТС]
#define TMSTREAMING        0x1000 // Передавать со временем
#define F_ABNORMAL         0x2000   // Отлично от нормального
#define F_UNACKED          0x4000   // ТС несквитирован
#define F_IV               0x8000   // 101 IV
Пример:
select LPAD(to_hex(flags),8,'0'), * from oik_cur_tt where (flags & x'3'::int) <> 0;
select LPAD(to_hex(flags),8,'0'), * from oik_cur_tt where (flags & x'0400'::int) <> 0;
v_val      
real     
Значение параметра
v_unit     
char(10)  
Информация о единице измерения параметра;
v_format   
text      
Информация о формате параметра;
v_mult     
real      
Информация о применяемом множителе параметра;
v_shift    
real      
ИНформация о применяемом сдвиге.

Обязательные условия в запросе:
- адрес параметра (любой из вариантов: tma_str, tma, {ch, rtu, point})
- диапазон времени для update_time
- шаг агрегирования (по умолчанию принимается равным 1 секунде)
 
Если в запросе задается шаг агрегирования = 1 секунда, то в ответе возвращаются все (!) оригинальные значения в заданном диапазоне времени + все агрегированные данные с шагом агрегации = 1 секунда.
 
Если в запросе задается шаг агрегирования > 1 секунда, то в ответе, помимо агрегированных значений, возвращаются строки с el_type = 0 – это последние оригинальные значения на каждом шаге агрегирования.
 
Примеры запросов:
SELECT * FROM oik_aan WHERE tma_str='0:1:1' AND step = 60
AND update_time > '2017-04-26 12:00:00'::timestamp
AND update_time < '2017-05-1 12:00:00'::timestamp;