Rozpoczynamy pisanie naszego pierwszego programu w oprogramowaniu XCPPro.
Poprzednie części kursu znajdziesz tutaj:
- Kurs I: Pierwsze kroki ze sterownikiem PLC Xinje serii XC,
- Kurs II: Konfiguracja sterownika PLC Xinje serii XC w XCPPro.
- Kurs III: Sprawdzanie stanu sterownika PLC serii XC
Pierwszy program
Pierwszy program będzie zawierał podstawowe polecenia sterownika PLC Xinje, takie jak: styk normalnie otwarty, styk normalnie zamknięty, cewka wyjściowa, instrukcje sterujące timerem, counterem (licznikiem), inkrementacje wartości w rejestrze danych, zbocze narastające i opadające sygnału oraz operacje SET/RESET.
Omówmy po kolei program pokazany powyżej.
Na początku zostały dodane komentarze do zmiennych użytych w programie. W narzędziu Comment Editor możliwe jest dodanie komentarzy do wszystkich użytych w programie wejść, wyjść, zmiennych pomocniczych (markerów), timerów, counterów itd. Zmienne użyte w programie będą wyświetlone w kolorze niebieskim. Zmienne nieużyte w programie będą wyświetlone w kolorze czarnym.
Pierwsza linia programu zawiera przykładowy komentarz. Komentarze w programie zwiększają czytelność i pozwalają na łatwiejsze zrozumienie działania programu. Numery linii w programie są numerowane na podstawie listy instrukcji języka IL.
W linii 0 programu stan wejścia X0 zostaje bezpośrednio przepisany na stan wyjścia Y0. Oznacza to, że w przypadku uzyskania potencjału 24V DC na styku X0 sterownika, wysterowane zostanie wyjście Y0, na którym pojawi się napięcie 24V DC.
W linii 4 programu stan wejścia X1 zostanie przepisany na wyjście Y1, jeżeli zostanie spełniony warunek, iż marker M10 będzie w stanie niskim (logiczne 0).
W linii 10 programu wykorzystane zostało zbocze narastające markera M11 do załączenia wyjścia Y2 sterownika. Zbocze narastające wysteruje wyjście tylko jeden raz podczas zmiany stanu logicznego markera z niskiego (logiczne 0) na wysoki (logiczna 1).
W linii 14 programu wykorzystane zostało zbocze opadające markera M12 do wyłączenia wyjścia Y2 sterownika. Zbocze opadające wyłączy wyjście tylko jeden raz podczas zmiany stanu logicznego markera z wysokiego (logiczna 1) na niski (logiczne 0).
W linii 18 programu zostały użyte markery specjalne M8000 oraz M8013. Markery te są jednymi z wielu rejestrów specjalnych, które pomagają w pisaniu programów. Marker M8000 oznacza sygnał Always True, który zawsze będzie w stanie wysokim. Marker M8013 jest sygnałem zegara z okresem 1 sekundy, tzn. przed sekundę marker ten przyjmuje stan niski, następnie na sekundę stan wysoki. Proces ten jest powtarzany w nieskończoność. Na końcu linii występuje funkcja inkrementacji wartości w rejestrze D20. Wartość ta domyślnie jest równa 0. Działanie tej linii programu odzwierciedla sytuację, w której co sekundę zwiększana jest o 1 wartość zmiennej w rejestrze D20.
Linia 24 programu inkrementuje wartość licznika C0. Wartość w liczniku jest zwiększana o 1 za każdym razem, gdy marker M13 zmieni swój stan z niskiego na wysoki. Wartość K10 oznacza, że licznik ten doliczy do liczby 10 zapisanej w systemie dziesiątkowym. Możliwe jest także deklarowanie stałych w notacji binarnej (dwójkowej) oraz heksadecymalnej (szesnastkowej). Jeżeli wartość licznika będzie większa lub równa 10, wówczas na wyjściu licznika C0 pojawi się stan wysoki.
Linia 29 programu wyzwala odliczanie timera T0 w przypadku stanu wysokiego markera M14. T0 jest timerem bez akumulacji ze stałą czasową 100 ms. Brak akumulacji oznacza utratę czasu odliczonego i stanu wysokiego wyjścia w przypadku zaniku sygnału wysokiego na wejściu timera. Wartość K20 oznacza, że timer ma doliczyć do 2 sekund. Dzieje się tak ponieważ wartość stałej czasowej timera jest mnożona przez 20. Wynik mnożenia to 2000 ms, czyli 2 s. Po dwóch sekundach wyjście timera T0 zmieni stan z niskiego na wysoki.
W linii 36 programu zmiana stanu markera M15 z niskiego na wysoki spowoduje reset wyjścia licznika C0 oraz jego wartości aktualnej.
Konwersja z LAD na IL
Program w języku LAD możemy za pomocą instrukcji Show Instruction List przekonwertować na język IL (lista instrukcji).
Struktura i organizacja
Istotną rzeczą w pisaniu programów jest ich struktura i organizacja. W oprogramowaniu XCPPro możliwe jest grupowanie części programów w sekcje, co zwiększa czytelność organizację w programie. Instrukcje, które pozwalają na grupowanie części programu to GROUP i GROUPE. Pierwsza z nich otwiera sekcję programu, druga zamyka otwartą sekcję. Możliwe jest także nazywanie poszczególnych sekcji programu poprzez dodanie komentarza poprzedzającego instrukcję GROUP.
Po zastosowaniu grupowania wyraźnie wzrosła czytelność programu. Oprócz tego można zauważyć jednoznaczny podział na sekcje w drzewie projektu. Nazwy sekcji możemy nadawać dowolnie, poprzez komentarz. Wykorzystanie grupowania programu jest niezwykle istotne i przydatne podczas wykonywania dużych programów. Poniżej przedstawiono ostateczny program z podziałem na sekcje w języku IL.
Przejdź do następnej części kursu: