Informator_techniczny_Wonderware_009.pdf
(
300 KB
)
Pobierz
INFORMATOR TECHNICZNY WONDERWARE
Informator Techniczny nr 9
23-11-1998
Wonderware IndustrialSQL Server
Zapytania w języku IndustrialSQL
Zadaniem współczesnych systemów baz danych jest wspomaganie procesów decyzyjnych i zarządzania
na poziomie różnych warstw przedsiębiorstwa. Współczesna baza danych nie tylko musi spełniać
wymogi wydajnościowe w zastosowaniach przemysłowych, ale także musi dostarczać narzędzi do
łatwego korzystania z danych tak, aby przedstawiać informacje o odpowiedniej jakości, będące jak
najpełniejszym odzwierciedleniem rzeczywistości.
Wonderware IndustrialSQL Server
jest systemem, który w tym aspekcie oferuje kilka innowacyjnych
rozwiązań. Oprócz oprogramowania klienckiego służącego do wizualizacji danych historycznych posiada
on zaimplementowane rozszerzenia języka SQL
(Structured Query Language)
służącego do
odzyskiwania informacji z bazy danych. Rozszerzenia standardowego języka
TransactSQL
w dziedzinie
czasu i częstotliwości
tworzą nowy język zapytań adekwatny do zastosowań przemysłowych -
IndustrialSQL
.
Personel różnego szczebla potrzebuje najróżniejszego typu informacji o procesach nad którymi czuwa i
tak na przykład.
Warstwa zarządzania cala sfera produkcyjna potrzebuje informacji czy założenia pokrywają się z
faktyczna ilością produkcji, jej kosztami oraz jakością. Mogą oni potrzebować odpowiedzi na pytania:
•
Czy osiągnęliśmy oczekiwany uzysk produkcyjny?
•
Gdzie i w jakich ilościach znajdują się materiały do produkcji?
•
Co wywoływało przestoje produkcyjne?
•
Czy koszty produkcji pokrywają się z założonymi?
Inżynierowie kontroli procesu maja na celu optymalizacje procesów i potrzebują rzeczywistych informacji
o zachowaniu się systemu. Mogą oni zadawać pytania:
•
Czy proces jest stabilny?
•
Jak wczorajsze zmiany wpłynęły na dzisiejsza prace systemu?
•
Dlaczego wybrana maszyna nie pracuje w trybie automatycznym?
•
Jaki były ustawienia procesu w momencie gdy mięliśmy maksymalny lub minimalny uzysk?
•
Jakie są zależności pomiędzy obciążeniem danej maszyny, a stabilnością jej pracy?
Personel utrzymania ruchu mający na celu minimalizacje czasu przestojów oraz maksymalizacje
żywotności maszyn może zadawać pytania:
•
Ile razy w ostatnim roku był rozruch danego silnika?
•
Kiedy maszyna wymaga smarowania?
•
Jak kształtowały się temperatury łożysk w trakcie danej operacji?
•
Czy wydajność pompy spadła w ostatnim miesiącu?
Inżynierowie zarządzania jakością mogą zadawać pytania:
•
Czy mój proces mieści się w założonych granicach kontrolnych?
•
Jakie są główne przyczyny braków?
•
Jakiego uzysku mogę oczekiwać po danym procesie?
•
Co jest przyczyna niestabilności procesu?
ASTOR Sp. z o.o.
Dział Oprogramowania Przemysłowego
ul. Smoleńsk 29, 31-112 Kraków
e-mail: wonderware1@astor.com.pl
http://www.astor.com.pl
tel.: 012 428-63-30
fax: 012 428-63-09
Dział finansów monitorujący i minimalizujący koszty może chcieć odpowiedzi na pytania:
•
Czy zarobiliśmy jakieś pieniądze produkując ten element?
•
Jakie jest zużycie materiałów w porównaniu z ostatnim miesiącem?
•
Co spowodowało zmianę kosztów produkcji w tym miesiącu?
IndustrialSQL Server czyli unifikacja formatu danych historycznych (jedna baza danych dla zastosowań
przemysłowych i biznesowych), standardy komunikacyjne, dobre narzędzia obróbki danych może
sprawić, ze odpowiedzi na powyższe pytania będą łatwiejsze do uzyskania w wielu zakładach.
Poniżej zostanie przedstawionych kilka prostych przykładów zapytań w języku IndustrialSQL.
Zapytanie SQL wyciągające z bazy danych aktualna wartość danego parametru procesu (bądź
ostatnia wartość, jaka została zebrana w bazie)
SELECT
TagName, Value
FROM
AnalogLive
WHERE
TagName = ‘Zmienna1’
Rezultat:
TagName
Value
ReactLevel
1134.0
(1 row affected)
Zapytanie SQL przeszukujące tabele typu “Wide” będące transpozycjami zwykłych tablic
historycznych
Jest to szybki sposób znalezienia przedziałów czasowych, w których dana zmienna przybierała
określoną wartość (w jakich godzinach ostatniej doby temperatura łożyska przekraczała wartość
dopuszczalną). Jest to także szybki sposób wyszukiwania wartości w zadanym przedziale czasu (jak
wyglądał rozkład temperatury w kotle za ostatnia godzinę).
SELECT
DateTime, Temperatura1, Temperatura2
FROM
AnalogWideHistory
WHERE
Temperatura1 > 100
AND
Temperatura2 < 150
Rezultat:
DateTime
Temperatura1
Temperatura2
Mar 2 1998 6:20 PM
110.0
144.0
Mar 2 1998 6:20 PM
112.0
142.0
Mar 2 1998 6:20 PM
114.0
140.0
Mar 2 1998 6:20 PM
115.0
139.0
Mar 2 1998 6:20 PM
118.0
135.0
(5 rows affected)
Zapytanie pobierające wartości z określonego przedziału czasu przeprowadzające prosta
obróbkę statystyczna
Zapytanie to jest przykładem jak IndustrialSQL potrafi inteligentnie odczytywać parametr w postaci czasu
- w języku TransactSQL wymaga to bardzo żmudnych i trudnych czynności (podaj mi maksymalna
wartość poziomu zbiornika X na trzeciej zmianie w piątek zeszłego tygodnia).
2
SELECT
‘Maximum’ = max(PoziomZbiornikaX),
‘Minimum’ = min(PoziomZbiornikaX),
‘Srednia’ = avg(PoziomZbiornikaX),
FROM
AnalogWideHistory
WHERE
DateTime >’28 Feb 1998 10:00 PM’
AND
DateTime <’29 Feb 1998 6:00 AM’
Rezultat:
Maximum
Minimum
Srednia
99
5
45
(1 row affected)
O ile powyższe zapytania przy znacznych nakładach pracy i dużych umiejętnościach programistycznych
można zrealizować w zwykłej bazie danych te przedstawione poniżej są możliwe do stworzenia tylko za
pomocą języka IndustrialSQL. Zawierają one tzw. procedury zachowane
(stored procedures)
czyli
skompilowane skrypty SQL dające możliwość łatwego osiągnięcia dużej funkcjonalności zapytań.
Zapytanie SQL ściśle określające ilość pomiarów jakie chcemy odczytać w zadanych przedziale
czasowym na temat (np. podaj mi 100 wartości ciśnienia za ostatnia godzinę w równomiernych
odstępach czasu)
ww_SetRowCount
100
SELECT
Tagname, DateTime, Value
FROM
nalogHistory
A
WHERE
Tagname = ‘CisnienieZbiornika1’
AND
DateTime >= ‘Mar 20 1998 6:00:00 AM’
AND
DateTime <= ‘Mar 20 1998 7:00:00 AM’
Rezultat:
TagName
DateTime
Value
CisnienieZbiornika1
Mar 20 1998 6:00:00 AM 5.67
CisnienieZbiornika1
Mar 20 1998 6:00:40 AM 5.67
CisnienieZbiornika1
Mar 20 1998 6:01:20 AM 5.66
CisnienieZbiornika1
Mar 20 1998 6:02:00 AM 5.65
CisnienieZbiornika1
Mar 20 1998 6:02:40 AM 5.64
.....
(100 rows affected)
Zapytanie SQL ściśle określające z jaka rozdzielczością czasowa chcemy pobrać dane z bazy w
podanym okresie (podaj mi rozkład prędkości silnika w podanym przedziale czasowym z
dokładnością co jedna sekundę)
ww_SetResolution
1000
SELECT
DateTime, TagName, Value
FROM
AnalogHistory
WHERE
TagName = ‘Predkosc_silnika_X’
AND
DateTime >= ‘Mar 20 1998 6:00:00 AM’
AND
DateTime <= ‘Mar 20 1998 7:00:00 AM’
Rezultat:
3
DateTime
TagName
Value
Predkosc_silnika_X
Mar 20 1998 6:00:00 AM 1125
Predkosc_silnika_X
Mar 20 1998 6:00:01 AM 1126
Predkosc_silnika_X
Mar 20 1998 6:00:02 AM 1124
Predkosc_silnika_X
Mar 20 1998 6:00:03 AM 1125
......
Predkosc_silnika_X
Mar 20 1998 7:00:00 AM 1120
(60 001 rows affected)
Zapytanie SQL określające sztywno przedział czasowy dla odczytu danych.
Procedury
ww_SetStartDate
i
ww_SetEndDate
ustawiają globalny przedział czasowy dla zapytań (nie
musimy ich specyfikować w zapytaniu), procedura
ww_SetDuration
określa długość przedziału
czasowego wstecz od daty ustawionej przez procedurę ww_SetEndDate (np. zapytanie, które zbierze
wszystkie wartości z bazy 3 minuty wstecz od godziny 15 i wyliczy ich średnia).
ww_SetDuration
(minute, 3)
ww_SetEndDate
‘Mar 30 1998 3:00 PM’
SELECT
‘Srednia’ = avg(Value)
FROM
AnalogHistory
WHERE
TagName = ‘Poziom’
Rezultat:
Srednia
78
(1 row affected)
Zapytanie ciągle wybierające z bazy danych informacje zawsze gdy zostaną zebrane lub z zadana
czasowa strefa nieczułości
Zapytanie takie jest wykonywane do momentu zamknięcia edytora SQL (np. Microsoft ISQL_w) bądź
wykonania zapytania wyłączającego ten typ odczytu danych (przykładowe zapytanie może brzmieć
następująco: przedstawiaj mi co 5 sekund aktualna wartość ciśnienia zbiornika).
Set_wwContinuous
ON, 5000
SELECT
TagName, DateTime, Sec = DATEPART(ss, DateTime), Value,
FROM
AnalogLive
WHERE
TagName = ‘Cisnienie1’
Rezultat:
TagName
DateTime
Sec Value
Cisnienie1
Oct 30 1998 3:00 PM
10
8.1
Cisnienie1
Oct 30 1998 3:00 PM
15
8.1
Cisnienie1
Oct 30 1998 3:00 PM
20
8.2
.......
4
Plik z chomika:
konto2019
Inne pliki z tego folderu:
Informator_techniczny_Wonderware_088(1).pdf
(861 KB)
Informator_techniczny_Wonderware_091(1).pdf
(378 KB)
Informator_techniczny_Wonderware_094(1).pdf
(114 KB)
Informator_techniczny_Wonderware_126.pdf
(130 KB)
intouchrecipe.pdf
(1685 KB)
Inne foldery tego chomika:
Astor biuletyn
C++Builder 5
ebooks
FOREX
Książki
Zgłoś jeśli
naruszono regulamin