Strona do nauki programowania sterowników PLC

Strona internetowa do nauki programowania PLC

Stworzenie własnego produktu zaprząta moja głowę już od wielu lat. Całe moje zawodowe życie opiera się na dostarczaniu usług. Jak większość ludzi sprzedaję swój czas za pieniądze. Ma to oczywiście swoje zalety. Wystarczy, że umówię się na konkretną stawkę i przychodzę do pracy by wykonywać swoje obowiązki, a co miesiąc na moje konto wpływa wypłata. Programuję maszyny specjalnego przeznaczenia, głównie dla branży medycznej i farmaceutycznej. Zawód ten jest niszowy, w związku z tym stawka może być odpowiednio wysoka. Model taki ma jednak swoje wady. Terminy realizacji są napięte, wpływ na końcowy wygląd produktu jest ograniczony, a w pewnym momencie jest mi on odbierany i przekazywany w ręce automatyków nadzorujących fabrykę zleceniodawcy. Ja chciałabym pielęgnować swoje „dziecko”, poprawiać błędy, wprowadzać udoskonalenia i testować nowe rozwiązania.

Wiele pomysłów, brak działań

Obecnie moim największym marzeniem jest stworzenie platformy do programowania PLC i paneli operatorskich (HMI), kompatybilnej ze sterownikami wszystkich największych producentów takich jak Siemens czy Rockwell (Allen Bradley). Stworzenie nowoczesnego środowiska programistycznego, pozwalającego na kontrolę wersji przy użyciu takich narzędzi jak GIT pozwoliłoby na łatwiejsze i szybsze, a co za tym idzie tańsze tworzenie aplikacji i dokumentacji. Przebicie się uniwersalnej platformy programistycznej do mainstreamu mogłoby pozwolić mniejszym producentom sprzętu zaistnieć na rynku zdominowanym przez wyżej wymienionych producentów. Giganci z branży automatyki przemysłowej każdego roku pokazują nam swoje „innowacyjne” rozwiązania, różniące się od poprzednich wersji kilkoma nieznaczącymi udoskonaleniami, brakiem kompatybilności z poprzednią wersją oraz oczywiście nowa licencja za kilka tysięcy euro.

Pomysły podobnej treści przewijają się w mojej głowie notorycznie. Brak umiejętności, środków finansowych, a przede wszystkim wiary w ich realizację skutecznie je zabija.

Wyzwania programistyczne

Pomysł na stronę nauki programowania sterowników PLC pojawił się w mojej głowie podczas nauki Pythona. Zdecydowałem, że będę równocześnie przechodził kurs podstaw programowania w Pythonie na udacity.com i rozwiązywał zadania na hackerrank.com. Ponad rok temu, kiedy próbowałem zapoznać się z Javą, rozwiązywałem zadania na codingame.com. Już wtedy wykorzystanie przeglądarki do programowania prostych wyzwań w powiązaniu interfejsem przypominającym gry wydawał mi się świetnym pomysłem. A cała zabawa zaczynała się, kiedy napisany przeze mnie algorytm, mógł konkurować z algorytmami innych programistów, za co przyznawane były punkty, na których podstawie ustalany był ranking. Była to dla mnie rodzaj nauki o wiele bardziej atrakcyjny od tego, który pamiętałem ze szkolnej ławki.

Wielu z moich kolegów automatyków rozczarowana tym, że nasza praca często nie ma wiele wspólnego z programowaniem, postanowiło zmienić branże na IT. Sam również zastanawiałem się nad tą ścieżką i od kilku lat obserwuje tą branżę. Zauważyłem wiele świetnych rozwiązań, których implementacja w świecie automatyki przemysłowej, mogłaby pchnąć ją do przodu o lata. Dlaczego by więc nie wykorzystać metody nauki kodowania z informatyki i wdrożyć jej do nauki programowania PLC?

Miejsce na rynku

W Irlandii, gdzie obecnie mieszkam programista PLC jest w stanie znaleźć dobrze płatną pracę od ręki. Płacami niemal dorównują tym w IT, a zapotrzebowanie ciągle rośnie. Myślę więc, że warto uczyć się programowania sterowników PLC, zwłaszcza gdy nie chcemy całego życia spędzić w biurze. Praca automatyka wiąże się bowiem z wieloma wyjazdami służbowymi, bardzo często są to wyjazdy zagraniczne.

Na rynku można znaleźć dziesiątki serwisów, na których możemy rozwiązywać zadania przy użyciu języków takich jak Java, Python, lub C++ nie udało mi się znaleźć takiej, która pozwoliłaby mi się uczyć, rozwiązując zadania przy użyciu Lader Logic czy Structured Text (języki używane w PLC).

Skoro to taki dobry pomysł, to dlaczego dzielę się nim na swoim blogu, ktoś przecież może go wykorzystać? I niech korzysta. W Internecie jest tak wiele platform do nauki programowania komputerów i większość wydaje się nieźle sobie radzić. Dlaczego nie miałaby powstać więcej niż jedna strona z zadaniami programistycznymi dla sterowników PLC? Poza tym jako wieloletni miłośnik gier komputerowych kocham konkurencję i nie mam nic przeciwko rywalizacji na tym polu.

Od czego zacząć?

W związku z tym, że nie posiadam żadnego doświadczenia w tworzeniu aplikacji webowych. Mam dwa wyjścia: nauczyć się ich tworzenia lub zlecić to komuś kto tworzyć takie aplikacje potrafi. Ponieważ stawki w IT do niskich nie należą, nie byłoby mnie prawdopodobnie stać na wynajęcie programisty. Doświadczenie również uczy mnie, że największą przyjemność sprawia mi uczenie się nowych rzeczy i tworzenie. Dlatego właśnie samodzielnie zaprojektowałem i zbudowałem drukarkę 3D, której prawie nie używam.

Postanowiłem również zaangażować do projektu mojego przyjaciela, którego wiedza na temat programowania aplikacji webowych jest jeszcze mniejsza niż moja. Jest on jednak bardzo zdolnym człowiekiem, ale życie nie dało mu jeszcze szansy się o tym przekonać.

Wiem już, że musze zacząć od Minimum Viable Product (MVP), czyli produktu o minimalnej koniecznej funkcjonalności. Będzie nim strona, na której będzie można zrobić kilka prostych zadań z języka drabinkowego, bez rejestracji, zbierania punktów i rankingów. Coś co pozwoli mi sprawdzić zainteresowanie rynku i zacząć gromadzenie potencjalnych użytkowników. Taki produkt pozwoli mi również przekonać samego siebie, że potrafię przekuć swoje pomysły w czyny.

Na liście rzeczy do zrobione mam już kurs HTML i CSS oraz podstawy JavaScript z Udacity. Nie wiem niestety nic o architekturze witryn internetowych i boję się, że założona ścieżka może doprowadzić mnie do ślepego zaułku. Jeśli więc masz doświadczenie w aplikacjach webowych i byłbyś w stanie mi pomoc, proszę o kontakt na codingplc@techsolid.eu lub przez media społecznościowe. Być może wystarczy mi budżetu na konsultację, która pozwoli mi wyeliminować potencjalne błędy i zaoszczędzi czas.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *