System wizualizacyjny SCADA może być przygotowany dowolnie pod względem graficznym. Zazwyczaj wytyczne odnośnie graficznej części projektu ustala użytkownik końcowy w taki sposób aby ekrany synoptyczne były możliwie czytelne oraz intuicyjne w obsłudze dla operatora. W zależności od charakterystyki obiektu wizualizowanego projekt może składać się z wielu ekranów synoptycznych, gdzie na każdym z nich znajduje się część fabryki, czy też innego zakładu przemysłowego. Zdarza się również, iż wymagane jest aby cały proces lub linia produkcyjna została pokazana na jednym ekranie graficznym. Ta opcja pociąga za sobą konieczność umieszczenia na jednym panelu roboczym wielu elementów graficznych, opisów tekstowych czy systemowych kontrolek prezentacji danych. W pewnym momencie może okazać się, iż wizualizacja staje się nieczytelna, czego przyczyną mogą być opisy, informacje graficzne oraz inne etykiety, które nie są potrzebne operatorowi do wglądu permanentnie, a tylko co jakiś czas, np. w sytuacji awaryjnej. Aby sprawić nasz projekt bardziej przejrzystym możemy zastosować kilka sposobów na ukrycie informacji, których nie potrzeba stale wizualizować. Jedną z najbardziej popularnych metod rozwiązania takiego zagadnienia jest tworzenie tzw. stacyjek. Są to obiekty graficzne, które zawierają grupę parametrów charakterystycznych dla danego elementu procesowego pompy, zaworu czy silnika. W momencie kliknięcia na silnik pojawia się dodatkowe okno typu pop-up, a w nim okno prezentujące aktualne wartości charakterystycznych parametrów oraz sterowanie elementem załączanie, nastawy, etc. Technika ta jest dobrze znana i powszechnie stosowana, nie tylko w systemie WinCC. Metoda ta jednak nie zawsze jest pożądana oraz po prostu potrzebna. Jako, iż wymaga ona nieco pracy inżynierskiej czasem lepiej skorzystać będzie z innych metod, które będą znacznie łatwiejsze w wykonaniu oraz wygodniejsze w obsłudze dla operatora zwłaszcza jeśli elementy szczegółowe, które chcemy przedstawić na prezentacji nie muszą być powiązane ze zmiennymi strukturalnymi, a są to proste elementy graficzne typy pole I/O czy tekst statyczny. Postaramy się tutaj przybliżyć zatem system zarządzania warstwami w trybie Runtime. Duża grupa użytkowników systemu WinCC nie jest świadoma, iż warstwy graficzne mogą być ukrywane lub pokazywane w zależności od rozmaitych parametrów bezpośrednio w trybie pracy systemu. Dosyć utartym przekonaniem jest fakt, iż warstwy ułatwiają pracę z projektem jedynie na etapie inżynierskim ukrywanie nieedytowanych aktualnie elementów graficznych upraszcza poruszanie się po modyfikowanych synoptykach. Warstwy można jednak równie dobrze wykorzystać w celu dynamizacji grafiki w trybie RT. Przypisanie obiektu graficznego do konkretnej warstwy odbywa się zawsze w ten sam sposób czyli przez parametryzację we właściwościach ogólnych obiektu. Po wykonaniu tego zabiegu podstawową funkcjonalnością jaką możemy uzyskać jest ukrywanie warstw po zmianie wartości parametru np. możemy uzależnić widoczność poszczególnych warstw od wartości zmiennej procesowej. Funkcjonalność zarządzania warstwami trybu RT dostępna jest jedynie z poziomu skryptów użytkownika. Poniższy skrypt pokazuje jak w prosty sposób pokazać/ukryć warstwę Layer_0 w zależności od wartości zmiennej WinCC Warstwa. Należy zwrócić uwagę, iż w skryptach numerowanie warstw rozpoczyna się od 1 a nie od 0 tak jak to można zaobserwować w edytorze Graphics Designer. W związku z tym Layer(1) w skrypcie VBS oznacza warstwę Layer_0 patrząc z punktu widzenia edytora graficznego Graphics Designer. W poniższym przykładzie zmienna Warstwa przyjmując wartość 1 pokazuje warstwę pierwszą (Layer_0), natomiast wartość różna od 1 ukrywa ją. Doradztwo techniczne: simatic.pl@siemens.com 1
Function action Dim objscreen Dim Zmienna_warstwa Zmienna_warstwa = HMIRuntime.SmartTags("Warstwa") Set objscreen = HMIRuntime.Screens("NewPdl0") If Zmienna_warstwa = 1 Then objscreen.layers(1).visible = 1 Else objscreen.layers(1).visible = 0 End If End Function Więcej informacji na temat ukrywania warstw w trybie Runtime można odszukać w poniższej lokalizacji sieciowej: http://support.automation.siemens.com/ww/view/en/24074628 Powyższe zarządzanie warstwami w trybie RT jest najprostszym możliwym zastosowaniem tej funkcjonalności. My zmierzamy jednak do ciekawszego zastosowania, a mianowicie wprowadzenia zależności pomiędzy wyświetlaniem warstw, a wartością faktora powiększenia (zoom). Funkcja powiększania/pomniejszania w trybie RT (na przykład przez standardową procedurę przytrzymania klawisza CTRL na klawiaturze oraz operowanie suwakiem myszki znaną dobrze, np. ze środowiska Windows 7) nie jest zbyt często stosowana, co więcej systemowo w WinCC jest ona nieaktywna. Jednak w dobie matryc dodatkowych, gdzie pewne gesty stają się standardami funkcje takie jak przewijanie ekranów czy zmiana faktora powiększenia przez operację multi-touch (nawigacja wieloma palcami) staje się nieodzowną częścią każdego wyświetlacza. Również w przemyśle rozwiązania te coraz częściej znajdują zastosowanie system WinCC od wersji v7.2 również daje możliwość zastosowania funkcjonalności dotykowej z uwzględnieniem pracy wieloma wskaźnikami. W związku z tym warto znać możliwości systemu pod względem bardziej zaawansowanej, a co za tym idzie wygodniejszej nawigacji w obszarze naszego systemu wizualizacji. Wracając do naszego problemu załóżmy więc, że mamy projekt, którego struktura ekranów ogranicza się do jednej dużej synoptyki z uwzględnieniem wielu szczegółów. Chcemy stworzyć więc ekran w ten sposób aby aktywna była funkcjonalność zoom, co więcej w zależności od aktualnie ustawionej wartości tego parametru będziemy chcieli pokazywać lub ukrywać szczegóły naszej wizualizacji w postaci np. opisów czy innych detali informacyjnych. W wielu przypadkach elementy te po pierwsze tworzą zbyt intensywne zagęszczenie obiektów, a co za tym idzie grafiki stają się mało przejrzyste. Dodatkowo w przypadku niewielkich wyświetlaczy, obiekty te mogą być po prostu zbyt małe aby dało się je poprawnie odczytać czy zinterpretować. Powiększając więc wybrany obszar ekranu synoptycznego będziemy pokazywać szczegóły niewidoczne w widoku pełnym. Funkcja ta znajduje się w systemie WinCC pod nazwą decluttering (w wolnym tłumaczeniu - likwidacja nieładu). Poniżej w kilku krokach przedstawiona jest procedura konfiguracyjna opisanej powyżej funkcjonalności. Doradztwo techniczne: simatic.pl@siemens.com 2
1. Pierwszym krokiem w konfiguracji jest aktywacja interesujących nas funkcji tak jak było to już wspomniane - domyślnie w WinCC zarówno opcja zoom jak i decluttering są nieaktywne. Aby to zmienić przechodzimy w drzewku projektu WinCC Explorer w ustawienia naszego komputera, a następnie w zakładkę ustawień graficznych Runtime. W obszarze opcji wyłączonych (Turn Off) odznaczamy dwie ostatnie pozycje zgodnie z tym co zostało zaznaczone na poniższym zrzucie ekranu okna konfiguracyjnego. 2. Kolejnym etapem konfiguracji jest odpowiednie przypisanie warstw w naszym projekcie graficznym. Generalnie opcja będzie funkcjonować w taki sposób, iż w zależności od powiększenia ekranu w trybie RT będziemy mogli pokazać lub ukryć całą warstwę, czyli wszystkie obiekty, do niej przypisane niezależnie od tego czy są one aktualnie widoczne czy też nie. Trzeba to wziąć pod uwagę zwłaszcza w sytuacji gdy wizualizacja pracuje w strukturze wielomonitorowej. Warto więc zastanowić się czy jednej warstwy nie rozbić na kilka oraz, które elementy oraz w jakim obszarze ekranu graficznego powinny się znaleźć w grupie danej warstwy jest to jednak sprawa wtórna i zależna od potrzeb użytkownika. Obiekty graficzne przypisujemy do warstw przez skonfigurowanie odpowiedniej wartości parametru Layer w ustawieniach ogólnych elementów graficznych (zakładka Properties -> klikamy w nazwę obiektu w drzewie właściwości). Doradztwo techniczne: simatic.pl@siemens.com 3
3. Po zorganizowaniu przydziałów obiektów do poszczególnych warstw przechodzimy w ustawienia ich widoku bezpośrednio z poziomu edytora Graphics Designer (View -> Layers). W zakładce Show/Hide Layers konfigurujemy przedział parametru powiększenia zoom dla każdej z warstw, w którym będzie ona widoczna. Poza wybranym przedziałem warstwa zostanie ukryta. W powyższej konfiguracji wraz ze zwiększeniem współczynnika powiększenia pokazywać się będą kolejne warstwy Layer1, 2, 3 oraz 4. Pozostałe grupy widoczne będą zawsze widoczne niezależnie od ustawień użytkownika w trybie pracy wizualizacji. Należy pamiętać aby zaznaczyć również opcję Layers w obszarze Activate Show/Hide After - poniżej tabeli konfiguracyjnej. Wybór opcji Object Size pozwala również zdefiniować rozmiar w pikselach, z zakresie którego obiekt graficzny ma być widoczny lub ukryty. Więcej informacji na temat powyższych ustawień można odszukać w plikach pomocy systemu WinCC klikając przycisk F1 bezpośrednio z poziomu z poziomu okna konfiguracyjnego. 4. Zatwierdzając powyższe okno konfiguracji możemy przejść do trybu Runtime oraz przetestować działanie funkcjonalności. Jeśli posiadamy WinCC w wersji v7.2 oraz ekran z matrycą dotykową multi-touch możemy zmieniać powiększenie - znanymi z urządzeń mobilnych metodami nawigacji dwoma palcami. Funkcjonalność działa jednak identycznie przy wykorzystaniu klasycznego mechanizmu czyli poprzez przytrzymanie klawisza CTRL oraz przesuwanie rolką przewijającą myszki. Doradztwo techniczne: simatic.pl@siemens.com 4
Na poniższym zrzucie ekranu przedstawiony został efekt końcowy tej prostej konfiguracji. Przy znacznym powiększeniu części ekranu procesowego uwidocznione zostały warstwy zawierające szczegółowe informacje na temat interesującego nas wycinku ekranu procesowego. Więcej informacji na temat powyższej funkcjonalności odszukać można w tematach pomocy systemu WinCC w rozdziale Working with WinCC -> Creating Process Pictures -> Elements and Basic Setting of Graphics Designer -> The Basic Setting of Graphics Designer -> Showing and hiding layers and objects. Przykład został przygotowany w oparciu o WinCC v7.0 SP3 oraz Windows 7 64-bit. Doradztwo techniczne: simatic.pl@siemens.com 5