EM Poleca (#35) Recenzja książki „Automatyka przemysłowa dla początkujących”

Zanim omówię książkę o jakże intrygującym tytule „Automatyka przemysłowa dla początkujących”, pozwolę sobie umieścić parę zdań o sterownikach programowalnych, czyli PLC, czyli Programmable Logic Controllers, a właściwie o ich programowaniu.

I tak i nie. Są podobieństwa i dość zasadnicze różnice. Po stronie podobieństw jest możliwość programowania (jedna z kilku) w języku tekstowym podobnym nieco do Pascala. Różnic jest dużo więcej. Podstawowa różnica wywodzi się z zaszłości historycznych. Programowanie PLC (będę używał tego terminu w znaczeniu „sterownik programowalny”) jest skokiem ewolucyjnym jaki nastąpił w układach sterowania, kiedy komputery nie były tak tanie jak teraz, żeby sterować pojedynczymi urządzeniami. Układem sterującym była wtedy płyta z elektroniką zawierającą elementy realizujące logikę działania oraz komunikujące się z otoczeniem (odczytywanie danych wejściowych i sterowanie elementami wykonawczymi). Nie były to komputery tylko układy elektroniczne, które wykonywały pewne działania w sposób algorytmiczny. Nie były maszynami o architekturze von Neumanna (patrz: EM Poleca (#34) Benjamín Labatut – „Maniak”), nie przetwarzały strumienia danych w procesorze, ale zmieniały swój stan w zależności od stanu otoczenia. Współczesne sterowniki naśladują tę filozofię działania. W skrócie można powiedzieć, że sterownik wykonuje nieskończoną pętlę programową analizując w każdym obiegu dane wejściowe za pomocą elementów logiki stanowiących właściwy program sterujący i oddziałując na otoczenie za pomocą generowanych sygnałów wyjściowych.

Wykonywanie programu PLC polega na każdorazowej (w każdym obiegu tej pętli) analizie zastanego stanu układu i tworzeniu stanu następnego, będącego stanem początkowym dla następnego obiegu. To trochę inne programowanie niż to, które znamy, wymagające wykształcenia pewnych nawyków myślenia. Dodatkowym utrudnieniem jest brak (dla tańszych sterowników, np. S7-1200) możliwości krokowego wykonywania programu i wstrzymywania go na żądanie (breakpoint), co utrudnia i komplikuje debugowanie, zmuszając do stosowania innych, bardziej uciążliwych technik.

Ponieważ programowanie informatyczne sterowników PLC wyewoluowało z programowalnych sterowników opartych o fizyczne elementy elektroniczne, lutowane na płytce i łączone ścieżkami, istnieją graficzne „języki” programowania naśladujące takie płytki elektroniczne. Jednym z nich jest język LAD (skrót od ladder-drabina), język tzw. drabinkowy, gdzie rolę programu pełni „drabina” ze „szczebelkami”, na których są porozmieszczane elementy logiki programu, a przepływ sterowania przypomina przepływ prądu między „masą” a „cewkami” i innym elementami klasycznej elektroniki. Wbrew pozorom język LAD jest nadal bardzo popularny, zwłaszcza do programowania sterowania o niezbyt skomplikowanej logice. Jest też łatwiejszy do opanowania dla osób nieprogramujących w klasycznych językach programowania. Trzeba przyznać, że jest bardziej pomocny w debugowaniu programu od tekstowego języka SCL, gdyż na bieżąco pokazuje przepływ „prądu” przez układ.

Omawiana książka jest podstawowym kursem programowania sterowników Siemens SIMATIC S7-1200 (generacje G1 i G2) i SIMATIC S7-1500 za pomocą oprogramowania Siemens TIA Portal. Plusem jest uwzględnienie najnowszej wersji pakietu, czyli TIA Portal V20. Autor przystępnie omawia podstawowe aspekty konfiguracji i programowania za pomocą TIA Portal. To ważne, że wykład jest przystępny, bo często zdarza się, że programista przestawiający się z programowania klasycznych aplikacji na programowanie automatyki zdobywa wiedzę w sposób chaotyczny i niepełny, korzystając ze stron internetowych i filmików na YouTube, które są bardzo różnej jakości (oględnie mówiąc). Wiem co piszę, bo sam przez to przeszedłem. Wiedza o programowaniu sterowników Siemensa nie ma takiej bazy wiedzy (Q&A) jak inne języki programowania, na przykład Stack Overflow dla Javy i Pythona. Baza wiedzy prowadzona przez Siemensa jest tak dramatycznie niskiej jakości, że nie przypominam sobie, abym kiedykolwiek był usatysfakcjonowany znalezioną w niej informacją. Jedynym źródłem w miarę (bardzo w miarę) wiarygodnym jest odpytywanie Chatu GPT albo Groka, ale tu należy bardzo uważać na częste konfabulacje.

Liderem rynku automatyki przemysłowej w Polsce jest Siemens i jego linia sterowników SIMATIC, „ogarniająca” około ¾ polskiego rynku. Można więc śmiało powiedzieć, że sterowniki PLC  Siemensa są pierwszym skojarzeniem związanym z tą tematyką, a TIA Portal pierwszym i najważniejszym środowiskiem programistycznym (aczkolwiek mocno niedoskonałym i wymagającym). Dlatego nie uznaję za błąd, że marka Siemens nie została wymieniona w tytule książki. Zapoznanie się z programowaniem sterowników Siemens można uznać za podstawowy kurs programowania sterowników PLC w ogóle.

Autor książki – inżynier praktyk Marcin Podsiadły, dobrze wie, czego potrzeba początkującemu programiście. Nie wiedzy encyklopedycznej, bo ta znajduje się w tzw. helpie. Potrzeba przystepnie wygłoszonego wykładu obejmującego zarówno podstawy jak i wskazówki praktyczne, dobre rady (tips & tricks), schematy postępowania i ostrzeżenia przed polami minowymi. To wszystko jest i chwała Ci Autorze za to. Mam tylko jedną wątpliwość: czy słusznym jest wybór języka drabinkowego (LAD) do prezentowania przykładów programowania. Sam wybrałbym tekstowy SCL, chociażby z uwagi na klasycznych programistów, chcących się przebranżowić na programowanie sterowników. LAD jest wygodny dla nieprogramistów, przypomina obwód elektryczny (bo tym w istocie był x lat temu), ale zaczyna być narzędziem nieporęcznym przy pisaniu dużych, skomplikowanych projektów o wielkiej liczbie zależności.

Poniżej, dla porządku, wymienię tematy poruszone w książce abyś, Czytelniku, wiedział z góry czego się spodziewać:
– na czym polega programowanie PLC,
– zapoznanie się z TIA Portal,
– przegląd języków programowania PLC,
– programowanie – podstawy,
– dobre praktyki,
– programowanie timerów i liczników,
– obsługa sterowników PLC, różne aspekty,
– programowanie paneli HMI (Human Machine Interface) Siemensa.

Marcin Podsiadły „Automatyka przemysłowa dla początkujących. Poznaj sterowniki PLC oraz panele HMI i naucz się je programować”. Wydawnictwo Helion 2025

Notka o autorze:

Marcin Podsiadły, inżynier automatyki i robotyki, ekspert w dziedzinie programowania sterowników PLC. Wykładowca, doświadczony szkoleniowiec, projektant i programista automatyki. Zwycięzca pierwszej edycji Mistrzostw Polski Programistów PLC (2018).

Autor

Wiesław Seweryn
Wiesław Seweryn
Jestem informatykiem i analitykiem. Przez trzy lata analizowałem i prezentowałem dane epidemiczne na Twitterze jako @docent_ws. W gronie pasjonatów z Twitterowej Akademii Nauk (TAN) uzupełniamy wiedzę na temat Covid-19. Na BlueSky jako ‪@wieslawseweryn.bsky.social‬. Piszę o informatyce i Kosmosie, recenzuję i polecam książki popularnonaukowe. Walczę z dezinformacją, którą uważam za największe zagrożenie ery social-mediów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *