Tworzenie projektu w MyWayy

Tworzenie projektu

Otworzenie nowego projektu

Mając już zainstalowane wszystkie potrzebne programy można przejść do tworzenia swojego pierwszego projektu. Strukturę projektu najlepiej pobrać z sieci (na dzień 11.05.2020 dostępny jedynie na serwerze pod adresem https://vcs.klimat-solec.pl/MyWayy-projekty/Pusty/-/tree/master - właściciel reprozytorium to Jerzy Wachniew, z nim należy się kontaktować w sprawie dosępu do plików, w przyszłości nowy projekt ma być generowany z poziomu MyWayy.Viewer). Pusty projekt umieszczamy na swoim komputerze i otwieramy projekt przez oprogramowanie do pisania kodu (przykłady w Visual Studio Code).

Po załadowaniu projektu, klikamy po lewej stronie Visuala w zakładkę Explorer i otwieramy plik Configuration.mwxml.

Teraz możemy uruchomić program MyWayy Viewer uruchamiając MyWayy.Dashboard.Viewer.exe, następnie w programie MyWayy Viewer klikamy w Plik -> otwórz katalog i wybieramy katalog z nowym projektem.

Na tym etapie w MyWayy Viewer powinniśmy zobaczyć logo MyWayy.

Dodanie do projektu pliku kproj

Otwórzmy KIDE, stwórzmy nowy projekt wPLC.101 w kide i zapiszmy go w folderze kproj jako przyklad.kproj. W nazewnictwie projektów unikaj polskich znaków i spacji.

Teraz w strukturze projektu, w folderze kproj widoczny jest nowy plik.

W pliku configuration.mwxml dodajmy obsługę sterownika, na który będzie wgrany nasz przykładowy projekt. Dodanie sterownika plc należy zrobić między polami defininiującymi sterowniki plc -> <plcs> a </plcs>.

<plc id="n1" name="Centrala nawiewna" kproj="przyklad.kproj" ip="192.168.1.100" tag="Centrala" DefaultDeviceId="1" type="wplc"/>

W przykładzie zakładam, że adres sterownika PLC będzie wynosił 192.168.1.100.

Dodaj teraz do projektu .kproj parametry, które będziesz odczytywał z MyWayy. W przykładzie peojekt nie musi zawierać żadnej logiki, ważne, aby parametry się poprawnie kompilowały. Informacje jak tworzyć programy na sterownik PLC znajdziesz tutaj

W przykładzie powyżej stworzono 7 parametrów, 6 analogowych i jeden cyfrowy. Parametry mają zaznaczoną widoczność w modbus oraz muszą być dodane do projektu tak, aby wszystkie parametry się kompilowały. Jeśli któryś z parametrów nie będzie dodany jako Widoczny w Modbus, albo nie będzie użyty w diagramie, program MyWayy nie będzie mógł się do niego odnieść.

Dodaj parametry do listy Parametry HMI. Ustaw cyfry dziesiętne dla temperatur, Zakres wartości i zakres dla Stanu pracy oraz Alarmu, kroki wartości dlatemperatury zadanej i ciśnienia zadanego.

Zakres wartości dla Alarmu:

Zakresy wartości dla Stanu pracy:

Dodaj Ostrzeżenie wywołane wysokiem stanem parametru Alarm:

Skompiluj (Projekt -> Kompiluj) i zapisz(Plik -> Zapisz projekt) projekt w KIDE.

Po skompilowaniu i zapisaniu w lewej dolnej części KIDE pojawi się informacja o poprawnej kompilacji i poprawnym zapisie.

Dodanie widoku mwxml

Kliknij na folder view prawym przyciskiem myszy i wybierz “New File”, nazwij plik n1.mwxml.

Do pliku n1.mwxml skopiuj zawartość pliku main.mwxml. Edytowanie gotowych struktór jest dużo szybsze niż pisanie od zera struktur.

Podstawą widoków w MyWayy są puste tła lub obrazy.

aby dodać puste okno wystarczy wpisać:

<Canvas Height="600" Width="800" Background="White">

W MyWayy Viewer pokaże się białe tło o rozmiarach 600x800 pikseli.

Aby dodać obraz:

<Canvas ImagePath="centralka.png">

W MyWayy Viewer jako tło posłuży obraz centralka.png, przedstawiająca centralkę nawiewną, wyposażoną w chłodnicę i nagrzewnicę.

Obraz centralka.png musi być umieszczona w katalogu images.

Teraz należy przejść do głównego pliku configuration i dodać widok nowego okna wpisując w pole <view>:

<view Name="Centrala" File="n1.mwxml" UseScript="False"/>

Zapisz wszystkie zmiany dokonane w Projekcie w Visualu, teraz w MyWayy Viewerze powinno pojawić się w oknie nawigacji nowe okno “centrala”:

Dodawanie tekstów, parametrów i obrazów do widoku mwxml

Przechodzimy ponownie do pliku n1.mwxml, aby dodać tekst dodaj w polu Canvas kod:

<Texts>

<Text x="400" y="0" Text="Centrala Nawiewna" Size="20" Color="Black"/>

</Texts>

W MyWayy będzie to wyglądało w ten sposób:

Do pola tekst dodajmy jeszcze jedną linijkę:

<Text x="20" y="40" Text="Temperatura Zewnętrzna" Size="15" Color="Black"/>

Teraz przejdźmy do dodawania parametrów. Wprowadź kod w polu Canvas:

<Parameters>

<Parameter x="250" y="40" readparameter="n1/Temperatura_odczyt_1" size="15" Id="temp" />

</Parameters>

Po dodaniu Parametru do widoku, można w MyWayy Viewer ustawić wartość danego parametru. Na podglądzie będzie wyglądało to w ten sposób:

Aby ustalić miejsce, w którym chcesz umieścić element, wystarczy najechać myszką na pole w MyWayy Viewer i w lewym dolnym rogu wyświetlają się współrzędne myszki.

Teraz należy dodać pozostałe parametry do widoku, współrzędne odczytasz najeżdżając myszką na interesujące miejsce, nazwy parametrów znajdziesz w zakładce MyWayy ID w projekcie KIDE.

Teraz jak już wyświetlają się wszystkie parametry na ekranie, dodajmy jeszcze obraz z plikiem do dokumentacji. Do MyWayy można dodać dowolny plik o rozszerzeniu pdf.

Znajdź w sieci ikonę pdf, zapisz ją do katalogu images.

Do katalogu documents dodaj pdf z nazwą instrukcja_centrali.pdf

W pliku n1.mwxml dodaj obraz kodem:

<Images>

<Image Id="instrukcja" x="885" y="240" Path="pdf.png" onClick="document:instrukcja_centrali.pdf"/>

</Images>

Możesz również dodać tekst nad nowym obrazkiem.

W MyWayy będzie się to prezentowało następująco:

Teraz dzięki funkcji:

onClick="document:instrukcja_centrali.pdf"

po kliknięciu w ikonę pdf otworzy się dołączona dokumentacja.

Dodajmy teraz boczną listę z wartością wszystkich parametrów, za linią zawierającą tekst </View> dodaj definicję listy bocznej:

<SideList>

<Group Name="Parametry centrali">

<Position readparameter="n1/Stan_Pracy" writeparameter="n1/Stan_Pracy"/>

<Position readparameter="n1/Temperatura_odczyt_1"/>

</Group>

<Group Name="Alarmy">

<Position ReadParameter="n1/Alarm"/>

</Group>

</SideList>

Teraz w MyWayy Viewer w widoku centrali, po prawej stronie na dole pojawiła się nowa ikona z kołami zębatymi.

Naciśnięcie jej rozwija listę boczną z parametrami.

Dodaliśmy teraz jedną listę boczną i dwie grupy parametrów. Można dodawać nieograniczoną ilość grup. Parametry Alarm i Temperatura_odczyt_1 są parametrami jedynie do odczytu, parametr Stan_Pracy zawiera też argument writeparametr - służy on do definiowania jaki parametr ma być edytowany po kliknięciu w ten parametr. Odnośniki readparametr i writeparametr nie muszą odnosić się do tego samego parametru.

Dodajmy teraz pozostałe parametry do listy bocznej.

Oprócz opcji zmiany parametru z poziomu listy bocznej, można też dodać opcje edycji parametru z poziomu widoku, wystarczy dodać komendę onClick do tekstu albo do obrazu:

<Text x="400" y="40" Text="Stan pracy" Size="15" Color="Black" onClick="set:n1/Stan_Pracy{Zmiana stanu pracy};"/>

Po najechaniu na tekst “Stan pracy” tekst zostanie podkreślony, po kliknięciu 2 razy lewym przyciskiem myszy w MyWayy wyskoczy okno zadawania wartości, w MyWayy Viewer okno informujące, że takie okno wyskoczy.

W tym miejscu ważna jest jeszcze jedna rzecz: parametr “Stan Pracy” w KIDE został zdefiniowany jako parametr Odczyt/zapis i ma ustawione zakresy wartości w parametrach HMI, jeśli wartość parametru będzie wynosiła 0, zostanie wyświetlony komunikat “Stop”, jeśli 1 komunikat “Praca”, jeśli 2, komunikat “Awaria”, użytkownik jednak nie powinien mieć możliwości ustawienia Stanu Pracy w stan awarii, obecnie nie ma też ograniczenia, które niepozwalałoby użytkownikowi ustawić wartość tego parametru poza zakres {0,1,2}. Aby to zmienić należy uruchomić ponownie projekt w KIDE i w liście parametrów zmienić zakres parametru Stan Pracy na minimum = 0 oraz maksimum = 1.

Ograniczenie wartości minimalnej i maksymalnej nie wpływa na stan parametru wystawianego przez sterownik PLC a jedynie na wartości zadawane z zewnętrznych źródeł.

Dodawanie skryptów do projektu

Skrypty pozwalają na zmianę właściwości obiektów zgodnie z wcześniej przyjętym scenariuszem.

Na początku należy uruchomić działanie skryptów w pliku configuration.xml dla widoku n1.mwxml. W tym celu dla widoku Centrala zmień argument UseScript z “False” na “True”.

Następnym krokiem jest stworzenie nowego katalogu w folderze script i nazwanie go funkcje.lua. W funkcje.lua zdefiniuj kolory, dodaj definicję pobierania stanów parametrów oraz kontrolek i stwórz pierwszą funkcje:

wayy_colors = {}
wayy_colors["Red"] = "#E04006"
wayy_colors["Green"] = "#7BBF6A"
wayy_colors["Yellow"] = "#FFA500"
wayy_colors["Gray"] = "##808080"

function get_control(controlName)
    ret = w[controlName]
    if ret == nil then
        helper:Throw("Nie znaleziono kontrolki o id " .. controlName)
    end
    return ret
end

function get_parm(parameterName)
    fullParameterName = ""
    if script_parameters_area == nil then
        fullParameterName = parameterName
    else
        fullParameterName = script_parameters_area .. "/" .. parameterName
    end
    fullParameterName = string.lower(fullParameterName)
    ret = parm[fullParameterName]
    if ret == nil then
        helper:Throw("Nie znaleziono parametru o id " .. fullParameterName)
    end
    return ret
end

function get_parm_global(parameterName)
    parameterName = string.lower(parameterName)
    ret = parm[parameterName]
    if ret == nil then
        helper:Throw("Nie znaleziono parametru o id " .. parameterName)
    end
    return ret
end

function set_green_red(parameterNameI, controlName)
    parameterI = get_parm(parameterNameI)
    control = get_control(controlName)
    if parameterI.Value == 0 then
        control.BackgroundColor = "Transparent"
    elseif parameterI.Value == 1 then
        control.BackgroundColor = "Green"
    else 
        control.BackgroundColor = "Red"
    end
end

Następnie w folderze script stwórz nowy plik n1.lua.

W Pliku n1.lua dodać kod:

require("funkcje")

set_green_red("n1/Stan_Pracy","praca")

Pierwsza linijka dodaje możliwość skorzystania z funkcji zawartych w pliku funkcje. Funkcje set_green_red można by też zawszeć bezpośrednio w pliku n1.lua, ale zamieszczenie jej w w pliku funkcje.lua daje możliwość wielokrotnego wykorzystania danej funkcji.

Teraz ustawiając w symulacji wartości parametrów, na podglądzie będziemy obserwowali zmianę koloru parametru.

Analogicznie można wprowadzić wyświetlanie kolorów tła innych parametrów np. odczytu temperatury albo ciśnienia. Wprowadźmy teraz czerwony kolor podświetlenia temperatury nawiewnej, jeśli temperatura spadnie poniżej +15°C albo powyżej 26°C.

Wprowadźmy jeszcze ikonę alarmu przy napisie “Centrala Nawiewna”. Znajdź w tym celu obraz alarmu w goole, umieść ikonę w folderze images i dodaj rysunek do projektu.

Teraz, jeśli stan parameru Alarm będzie równy 1, w MyWayy zostanie wyświetlona kontrolka alarmu:

Przechodzenie między widokami

Standardowo, można zrealizować przechodzenie między projektami korzystając z listy nawigacyjnej po lewej stronie. Drugim sposobem jest skorzystanie z kontrolki OnClick="open:...", można ją użyć zarówno do tekstu, jak i polygonów.

Polygony są zdefiniowanymi figurami na widoku w MyWayy, stwórzmy nowy projekt w kide z czterema parametrami: temp1, temp2, temp3 i temp4. Parametry widoczne w modbus i zapisane w prezentacji parametrów.

Dodaj w pliku configuration drugi sterownik PLC,

<plc id="wezel" name="Węzeł Cieplny" kproj="wezel.kproj" ip="10.200.1.101" tag="Węzeł" DefaultDeviceId="1" type="wplc"/>

W pliku configuration.xml dodaj widok centrali:

<view Name="Węzeł Cieplny" File="wezel.mwxml" UseScript="False"/>

Stwórz plik wezel.mwxml w folderze view, wykorzystaj przygotowane parametry.

<MyWayy>
    <View MinZoom="1.3" MaxZoom="1.3" InitZoom="1.3">
        <Container Orientation="Horizontal">
            <Canvas Height="400" Width="800" Background="White">
                <Texts>
                    <Text x="400" y="0" Text="Węzeł cieplny" Size="20" Color="Black" ToolTip="Centralna nawiewna, budynek biurowy A, dach wshschód"/>
                    <Text x="20" y="40" Text="Temperatura piec" Size="15" Color="Black"/>
                    <Text x="20" y="80" Text="Temperatura zasilania" Size="15" Color="Black"/>
                    <Text x="20" y="120" Text="Temperatura powrotu" Size="15" Color="Black"/>
                    <Text x="20" y="160" Text="Zadana temperatura zasilania" Size="15" Color="Black"  onClick="set:n1/Stan_Pracy{Zmiana stanu pracy};" ToolTip="Start/Stop"/>
                    <Text x="550" y="80" Text="Schemat technologiczny" Size="15" Color="Black"/>
                </Texts>
                <Parameters>
                <Parameter x="250" y="40" readparameter="wezel/temp1" size="15" Id="temp1" ToolTip="Centralna nawiewna, budynek biurowy A, dach wshschód"/>
                <Parameter x="250" y="80" readparameter="wezel/temp2" size="15" Id="temp2" />
                <Parameter x="250" y="120" readparameter="wezel/temp3" size="15" Id="temp3" />
                    <Parameter x="250" y="160" readparameter="wezel/temp4" size="15" Id="temp3" />
                </Parameters>
                <Images>
                <Image Id="instrukcja" x="620" y="120" Path="pdf.png" onClick="document:instrukcja_centrali.pdf"/>
                </Images>
            </Canvas>
        </Container>
    </View>
    <SideList>
        <Group Name="Parametry węzła">
            <Position readparameter="wezel/temp1" writeparameter="n1/Stan_Pracy"/>
            <Position readparameter="wezel/temp2" writeparameter="n1/Temperatura_zadana"/>
            <Position readparameter="wezel/temp3"/>
            <Position readparameter="wezel/temp4" writeparameter="wezel/temp4"/>
            </Group>
    </SideList>
</MyWayy> 

W pliku n1.mwxml dodaj poligon odnoszącego się do nowego widoku:

<Shapes>
    <Polygon Points="424,110,477,110,474,238,476,354,423,354,416,238" Opacity="0.6" Color="Transparent" BorderColor="Red" BorderThickness="5" onClick="open:wezel.mwxml" ToolTip="Węzeł cieplny"/>
</Shapes>

Kontrolka ToolTip wyświetla określony tekst po najechaniu na obiekt, w tym przypadku tekstem, po najechaniu na nagrzewnicę będzie “Węzeł Cieplny”. Węzeł cieplny będzie też widoczny w oknie nawigacyjnym po lewej stronie.

Dwukrotne kliknięcie w nagrzewnicę spowoduje otwarcie widoku węzła Cieplnego.

Obsługa alarmów

Alarmy w MyWayy wprowadza się już na etapie tworzenia projektu w KIDE. W programie przyklad.kproj otwórz dolną listę Alarmy i ostrzeżenia następnie kliknij w pole Dodaj. Domyślnie zostanie dodane nowe ostrzeżenie, aby zmienić typ na błąd, należy kliknąć w pole Typ i z listy wybrać interesujący nas typ.

Do parametru wyzwalającego przypnij parametr “Alarm”, aby poprawnie przypiąć parametr, parametr musi być parametrem cyfrowym i widocznym w modbus. Uzupełnij Krótki tekst i Długi tekst komunikatami o błędach, Identyfikator wypełni się automatycznie podczas kompilacji programu.

Alarm zostanie wyświetlony, jak wartość parametru wyzwalającego będzie w stanie wysokim.

Alarmy i ostrzeżenia nie są generowane w MyWayy Viewer, można je zobaczyć dopiero po wgraniu projektu na serwer.

Przy każdym błędzie pojawia się data wystąpienia błędu, informacje o źródle: projekt, tekst błedu oraz ikonka potwierdzenia wiadomości. Niepotwierdzony błąd będzie czytany przez lektora z domyślną częstotliwością raz na minutę.

Listy w MyWayy

Na później :)


MyWayy


Spis treści