Для примера запросов ниже в архивах должны находиться следующие записи данных (для ясности показаны только выбранные столбцы):
Таблица HISTVAL
DPNAME | DPTYPE | ORIGINAL VALUE | STIME | INVALID _BIT |
valve1 | valve | 1 | 2001.01.30 10:31:02.211 | 0 |
valve2 | valve | 1 | 2001.01.30 10:31:02.212 | 0 |
valve3 | valve | 1 | 2001.01.31 2:11:01.111 | 0 |
valve1 | valve | 0 | 2001.01.31 2:31:02.211 | 0 |
valve1 | valve | 1 | 2001.01.31 2:35:02.211 | 1 |
red1.m.switch | motor | 1 | 2001.01.31 2:38:02.211 | 0 |
red1.f.sw1 | motor | 1,5 | 2001.01.31 10:31:02.211 | 0 |
red1.speed | motor | 1,7 | 2001.01.31 10:32:02.211 | 0 |
red1.m.temp | motor | 63,1 | 2001.01.31 10:33:02.211 | 0 |
red2.m.temp | motor | 66,4 | 2001.01.31 10:33:02.212 | 1 |
red1.m.temp | motor | 61,2 | 2001.01.31 10:33:02.213 | 0 |
red2.m.temp | motor | 64,3 | 2001.01.31 10:33:02.214 | 0 |
red3.m.temp | motor | 65,3 | 2001.01.31 10:33:02.215 | 0 |
red1.m.switch | motor | 0 | 2001.01.31 10:33:02.215 | 1 |
ПРИМЕР
В следующем запросе извлекаются все точки данных и исходные значения для времени источника 30.1.2001:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE STIME BETWEEN «2001.01.30 01:00:00.000» AND «2001.01.31 01:00:00.000»
DPNAME | ORIGINALVALUE | STIME |
valve1 | 1 | 2001.01.30 10:31:02.211 |
valve2 | 1 | 2001.01.30 10:31:02.212 |
ПРИМЕР
В следующем запросе извлекаются все точки данных, в том числе исходные значения и время источника, с именем точки данных, заканчивающимся на «switch» (переключатель) или «temp» (температура):
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME IN («*.*.switch.»,»*.*.temp.»)
DPNAME | ORIGINALVALUE | STIME |
red1.m.switch | 1 | 2001.01.31 2:38:02.211 |
red1.m.temp | 63,1 | 2001.01.31 10:33:02.211 |
red2.m.temp | 66,4 | 2001.01.31 10:33:02.212 |
red1.m.temp | 61,2 | 2001.01.31 10:33:02.213 |
red2.m.temp | 64,3 | 2001.01.31 10:33:02.214 |
red3.m.temp | 65,3 | 2001.01.31 10:33:02.215 |
red1.m.switch | 0 | 2001.01.31 10:33:02.215 |
ПРИМЕР
В этом запросе все записи с заданным INVALID_BIT типа точки данных «motor» (двигатель):
SELECT (INVALID_Bit),DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPTYPE = «motor»
DPNAME | ORIGINALVALUE | STIME |
red1.m.switch | 1 | 2001.01.31 2:38:02.211 |
red1.f.sw1 | 1,5 | 2001.01.31 10:31:02.211 |
red1.speed | 1,7 | 2001.01.31 10:32:02.211 |
red1.m.temp | 63,1 | 2001.01.31 10:33:02.211 |
red2.m.temp | 66,4 | 2001.01.31 10:33:02.212 |
red1.m.temp | 61,2 | 2001.01.31 10:33:02.213 |
red2.m.temp | 64,3 | 2001.01.31 10:33:02.214 |
red3.m.temp | 65,3 | 2001.01.31 10:33:02.215 |
red1.m.switch | 0 | 2001.01.31 10:33:02.215 |
ПРИМЕР
В следующем запросе извлекаются все точки данных, исходные значения и время источника, с именем точки данных, начинающимся с «red» (красный) и содержащим одну точку (знак точки) в имени:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME LIKE «red*.*.»
DPNAME | ORIGINALVALUE | STIME |
red1.speed | 1,7 | 2001.01.31 10:32:02.211 |
ПРИМЕР
В следующем запросе извлекаются максимальные исходные значения для всех переключателей (в порядке возрастания имен точек данных):
SELECT DPNAME,MAX(ORIGINALVALUE)FROM HISTVAL WHERE DPNAME LIKE «*.*.temp.» GROUP BY DPNAME ORDER BY DPNAME
ПРИМЕЧАНИЕ
Групповые функции, такие как MAX, MIN, следует использовать только для запроса значений точек данных, которые принадлежат к одному типу (см. пример выше). Поскольку существуют элементы точек данных различных типов (Float, String, DynBool и другие), вся таблица не может быть правильно запрошена такими типами, и отображается сообщение об ошибке.
ПРИМЕЧАНИЕ
При использовании имени точки данных в качестве критерия фильтрации в операторе SQL, необходимо всегда добавлять точку после имени точки данных, например, WHERE DPNAME LIKE «red1.m.temp.»
DPNAME | ORIGINALVALUE |
red1.m.temp | 63,1 |
red2.m.temp | 66,4 |
red3.m.temp | 65,3 |
Таблица ALERTS
ПРИМЕЧАНИЕ
Нельзя выполнять запросы с общим доступом, такие как UNION и JOIN, для таблиц HISTVAL и ALERTS. Можно запросить только закрытые интервалы для таблицы ALERTS.
ABBR | DPNAME | DPTYPE | STIME | ACK_TIME | PRIOR | ACK_TYPE |
A | valve1 | valve | 2002.02.15 8:15:03.213 | 2002.02.15 8:15:07.213 | 60 | TYPE_3: ‘Входящий аларм’ является квитируемым |
A | red1.f.schl1 | motor | 2002.02.15 08:20:01.202 | 2002.02.15 8:21:01.204 | 60 | TYPE_4: Для пары алармов требуется квитирование |
aA | red1.m.switch | motor | 2002.02.10 9:15:01.209 | 2002.02.10 9:16:01.209 | 20 | TYPE_4: Для пары алармов требуется квитирование |
aA | red1.f.schl1 | motor | 2002.02.15 08:20:01.202 | 2002.02.15 08:20:01.202 | 20 | TYPE_3: ‘Входящий аларм’ является квитируемым |
A | red1.rot | motor | 2002.02.16 12:22:01.201 | 2002.02.16 12:22:01.201 | 60 | TYPE_3: ‘Входящий аларм’ является квитируемым |
A | red1.m.temp | motor | 2002.02.16 12:22:01.202 | 2002.02.16 12:22:01.202 | 60 | TYPE_3: ‘Входящий аларм’ является квитируемым |
aA | red2.m.temp | motor | 2002.02.16 12:22:01.203 | 2002.02.16 12:23:03.203 | 20 | TYPE_3: ‘Входящий аларм’ является квитируемым |
ПРИМЕР
В следующем запросе извлекаются все точки данных, оканчивающиеся словом «switch» или «temp» и временем источника в диапазоне 10.02.02-16.02.02:
SELECT ABBR,DPNAME,STIME,ACK_TIME,PRIOR, ACK_TYPE FROM ALERTS WHERE DPNAME IN («*.*.switch.»,»*.*.temp.») AND STIME BETWEEN «2002.02.10 07:00:00.000» AND «2002.02.16 01:00:00.000»
В запросе показаны аббревиатура приоритета, время источника, время квитирования, приоритет диапазона алармов и тип квитирования всех точек данных с вышеупомянутыми именами:
ABBR | DPNAME | STIME | ACK_TIME | PRIOR | ACK_TYPE |
aA | red1.m.switch | 2002.02.10 9:15:01.209 | 2002.02.10 9:16:01.209 | 20 | TYPE_4: Для пары алармов требуется квитирование |
A | red1.m.temp | 2002.02.16 12:22:01.202 | 2002.02.16 12:23:01.202 | 60 | TYPE_3: ‘Входящий аларм’ является квитируемым |
aA | red2.m.temp | 2002.02.16 12:22:01.203 | 2002.02.16 12:23:03.203 | 20 | TYPE_3: ‘Входящий аларм’ является квитируемым |
ПРИМЕР
В следующем запросе извлекаются все точки данных в течение периода 14.02.2002-17.02.02
SELECT DPNAME,STIME,ACK_TIME FROM ALERTS WHERE STIME BETWEEN «2002.02.14 01:00:00.000» AND «2002.02.17 01:00:00.000»
DPNAME | STIME | ACK_TIME | ACK_TYPE |
valve1 | 2002.02.15 8:15:03.213 | 2002.02.05 8:15:03.213 | TYPE_3: ‘Входящий аларм’ является квитируемым |
red1.f.schl1 | 2002.02.15 08:20:01.202 | 2002.02.16 12:22:01.202 | TYPE_3: ‘Входящий аларм’ является квитируемым |
red2.m.temp | 2002.02.16 12:22:01.203 | 2002.02.16 12:22:01.203 | TYPE_3: ‘Входящий аларм’ является квитируемым |