Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/iautomatyka_header_plc3.jpg

KILKA PORAD PROGRAMOWANIA PLC


W tym wpisie chcę podzielić się z Wami zasadami, jakimi kieruję się przy programowaniu sterowników PLC. Bez obaw, nie będę tłumaczył funkcji logicznych ani programowania drabinkowego. Przedstawię kilka porad i trików ułatwiających nie tylko bieżące pisanie programu ale również późniejszą analizę i modernizację.

W swojej karierze miałem do czynienia z wieloma sterownikami różnych producentów. Napotykałem między innymi sterowniki marki Siemens, Allan Bradley, GeFanuc, Horner, Unitronics i inne. Wiele z nich zaprogramowałem od podstaw ale miałem też sporo przypadków, gdzie musiałem zmodernizować program lub go dokładnie przeanalizować. Natknąłem się przy tym na różne style programowania., gdzie jedne budziły podziw i stanowiły inspirację, inne zaś odpychały od monitora. Nie jestem jakimś Guru programowania sterowników PLC jednak nie jeden sterownik, który zaprogramowałem działa do dzisiaj. Pozwól zatem, że podzielę się z Tobą moimi spostrzeżeniami.


#0 Zapoznaj się ze środowiskiem programowania

Nie ważne jaki sterownik PLC zaczynasz programować, w każdym oprogramowaniu, czy to będzie TiaPortal, Simatic Manager – Step 7, RSLogix czy jakikolwiek inny to powinieneś na początku poświęcić trochę czasu na zapoznanie się z tym środowiskiem programowania. Na początku zapoznaj się z możliwościami tego programu, sprawdź jakie sterowniki i moduły możesz nim zaprogramować. Skonfiguruj ustawienie okien i powyciągaj skróty najczęściej używanych funkcji. Wciśnij klawisz F1 i sprawdź jakie są skróty klawiaturowe. Np. w step 7 F2, F3 wstawiają w programie drabinkowym bramki NO i NC. Spisz lub wydrukuj sobie takie skróty, połóż na biurku i korzystaj z nich.

Sprawdź jakie narzędzia udostępnia Twoje oprogramowanie. Przykładowo w TiaPortal i Step 7 są narzędzia do generowania mapy pamięci sterownika „Cross Reference”. Dzięki temu narzędziu można sprawdzić które obszary pamięci są już wykorzystane i uniknąć wykorzystania np. tego samego markera w dwóch różnych operacjach.

Generalnie: nie rozpędzaj się zbyt szybko, poświęć chwilę na zapoznanie się z narzędziami programowania.

ZALETY:

  • Sprawniejsze pisanie programu,
  • Optymalizacja programu dzięki narzędziom oprogramowania,
  • Programowanie PLC staje się mniej uciążliwe dzięki personalizacji środowiska do programowania.

#1 Organizuj pliki programów

Wypracuj w sobie dobre nawyki. Jednym z nich jest dobra organizacja plików programów PLC. Utwórz swoją własną strukturę folderów, gdzie podzielisz je np. na klientów, pomieszczenia czy maszyny – to już zależy od Twojego charakteru pracy.

Każdą wersję programu zapisuj w nowym pliku/projekcie o nazwie w jednym formacie. Jak dotąd najbardziej odpowiada mi nazwa pliku czy folderu z datą, nazwą i wersją programu:

format: RRRR_MM_DD_NAZWA_WERSJA
np: 2015_07_26_maszyna_do_pakowania_V0.4

Dzięki dacie wiadomo w jakim czasie powstała ostatnia wersja programu, ale też przy wielu projektach wiadomo, kiedy powstała pierwsza wersja, a kiedy ostatnia aktualizacja programu PLC. 

Nazwa określa klienta, miejsce lub rodzaj maszyny w zależności od charakteru projektu.

Wersja programu finalnie nie jest konieczna. Przydaje się w przypadku testowania programu, kiedy tworzymy kilka wersji jednego dnia i kolejno wgrywamy je do sterownika PLC. Taka praktyka jest niezwykle przydatna np. po przypadkowym usunięciu części programu PLC – zawsze można wrócić odo poprzedniej wersji :). Programista docenia to dopiero jak utraci  wielogodzinną pracę na programem PLC.    

Analogicznie można postępować nazywając foldery a w nich umieszczać pliki programu o dowolnej nazwie.

ZALETY:

  • Organizacja plików pozwala na sprawniejsze zarządzanie programami,
  • Wybierając początek nazwy jako RRRR_MM_DD programy będą ustawiać się od najstarszego do najnowszego.

#2 Pisz historię programu PLC

Do każdego projektu PLC możesz utworzyć zwykły plik .txt i umieścić go w głównym folderze z wersjami danego programu PLC. Zapisuj w nim każdą zmianę lub szereg zmian  od momentu finalnej „działającej” wersji programu PLC. Przykład umieściłem na poniższym rysunku:

Organizacja_programow_PLC_Organize

Rys. 1 – Przykład organizacji plików programów PLC i prowadzenia pliku z historią programu

ZALETY:

  • Zarówno Ty jak i każdy inny, komu udostępnisz pliki programu będzie znał historię zmian. Jest to bardzo przydatne w przypadku kilku osób mających dostęp do sterownika PLC – w razie nieprawidłowego działania inna osoba może wgrać poprzednią wersję.
  • Z perspektywy czasu zapominamy jak działa program mimo, że sami go napisaliśmy dlatego im więcej zapiszemy podczas jego tworzenia tym lepiej. 
  • Jedno odpowiednie zdanie z przed roku może przypomnieć bardzo wiele. Bez niego musiałbyś np. analizować na nowo część kodu programu.

#3 Dobrze nazywaj zmienne / symbole w programie

W każdym środowisku programowania zmienne (słowa, bity itp.) można opisywać za pomocą symboli i/lub komentarzy. Małe programy bez szczegółowych komentarzy nie stanowią dużego wyzwania, duże programy bez dobrych opisów są bardzo trudne do analizy. Dobrze opisany program ułatwia programiście dalszą pracę ale też pozwala innym lepiej ten program eksploatować. Jest kilka szkół opisywania adresów danych, niektóre programy zawierają opisy skrótowe a niektóre bardziej szczegółowe. Dokładne opisywanie zajmuje sporo czasu i stosuje się je programach powtarzalnych np. kiedy firma sprzedaje dużo produktów z oprogramowaniem PLC.

Nazwa symbolu (tag) zmiennej zazwyczaj jest ograniczona do kilku znaków. Często symbol zmiennej jest opisywany skrótowo. Dobrze, jeżeli przez ten symbol jesteśmy w stanie wywnioskować jego znaczenie. Przykładowo czujnik optyczny 11B2 jest zainstalowany na transporterze TRX-11. Symbol  zmiennej odpowiadającej za działanie tego czujnika mógłby nazywać się następująco:

  • OPT_11B2_TRANS_TRX-11

Ważne przy tym jest aby następne czujniki i pozostałe zmienne nazywać analogicznie, zachowując logiczny ciąg. Kolejnego czujnika optycznego 12B6 na transporterze TRX-24 nie powinniśmy nazywać np.:

  • FOTOKOMORKA_12B6_TRX-24
    a reczej:
  • OPT_12B6_TRANS_TRX-24

Niektóre oprogramowania PLC nie tolerują spacji i np. polskich znaków w nazwach symboli. Miałem taki przypadek: Musiałem zaprogramować i skomunikować sterownik PLC S7-1200 Siemens i panel dotykowy firmy WEINTEK. W sterowniku PLC S7-1200  używałem w nazwach symboli polskich znaków bez problemu. Dopiero gdy skorzystałem z opcji importowania zmiennych z S7-1200 do WEINTEKA zaczęły się problemy. Zmienne bez polskich znaków były odczytywane i wyświetlane prawidłowo a te z polskimi znakami już nie :).

Do zmiennych w niektórych oprogramowaniach można dodawać komentarze, które nie są widoczne bezpośrednio w kodzie programu a dopiero np. po najechaniu myszką na daną zmienną. Nie tyle dla programisty PLC ale do późniejszego analizowania programu przez inne osoby jest to niezwykle pomocne. Komentarz do naszego czujnika optycznego 11B2 mógłby być następujący:

  • „11B2 – wejście I2.6 – Czujnik optyczny NO na wjeździe transportera TRX-11”

Poniżej zamieszczam przykład ze środowiska TiaPortal Siemensa:

Rys. 2. Przykład ze szczegółowym komentarzem zmiennej w programie PLC

Rys. 2. Przykład ze szczegółowym komentarzem zmiennej w programie PLC

Osobiście uważam, że opisywanie zmiennych co najmniej symbolami w programach PLC jest konieczne. Pominięcie tego obowiązku powinno być karane komisyjną chłostą programisty 🙂

ZALETY:

  • Im więcej opisów zmiennych tym program jest czytelniejszy,
  • Gdy powracamy do programu z przed kilku miesięcy czy nawet lat doceniamy nasz wysiłek włożony w dokładne opisywanie!
  • Program jest czytelny osobom trzecim np. w diagnostyce nieprawidłowego zachowania układu sterowania

#4 Opisuj program PLC

Jeżeli mamy sporo czasu na pisanie programu PLC to warto pokusić się o szczegółowe opisy linijek kodu. Zwłaszcza w przypadku dużych i/lub skomplikowanych programów. Myślę, że każdy network powinien zawierać chociaż tytuł. Niektóre środowiska programowania pozwalają na dodawanie szczegółowych komentarzy do każdego network’a. Przykład w TiaPortal:

Rys. 3. Komentarz do Network'a w programie PLC

Rys. 3. Komentarz do Network’a w programie PLC

ZALETY:

  • Im więcej opisów zmiennych tym program jest czytelniejszy,
  • Gdy powracamy do programu z przed kilku miesięcy doceniamy nasz wysiłek włożony w dokładne opisywanie!
  • Program jest czytelny osobom trzecim np. w diagnostyce nieprawidłowego zachowania układu sterowania

#5 Organizuj przestrzeń pamięci bitowej

Jeżeli w sterowniku nie można organizować pamięci w tablicach to przed przystąpieniem do pisania programu PLC postaraj się chociaż wstępnie rozpisać zapotrzebowanie na obszar pamięci sterownika. Spróbuj oszacować ile słów (rejestrów) będzie wykorzystywane w programie i podziel je funkcjonalnie.

Przykładowo, jeżeli  mamy układ składający się z 10 urządzeń pomiarowych, z których otrzymujemy po jednym pomiarze. Chcemy je zapisywać do rejestrów 32 bitowych typu REAL (float). Nasze pomiary są konfigurowalne z poziomu panela operatorskiego i każde urządzenie pomiarowe wymaga jednej nastawy (parametr nastawialny).  Programujemy sterownik firmy Siemens.

Możemy zatem przyjąć taktykę, że nasze wartości pomiarowe zaczynają się od adresu pamięci MD100:

  • MD100 – pomiar 1
  • MD104 – pomiar 2
  • MD108 – pomiar 3
  • MD112 – pomiar 4
  • ….
  • MD136 – pomiar 10

Nie przewidujemy więcej urządzeń pomiarowych w naszym układzie ale przezornie zostawiamy kilka rejestrów rezerwowych na przyszłe pomiary. Dalej możemy definiować rejestry z nastawami np.:

  • MD160 – nastawa 1
  • MD164 – nastawa 2
  • MD168 – nastawa 3
  • MD172 – nastawa 4
  • ….
  • MD196 – nastawa 10

Głównie chodzi o to, aby zachować analogię i logiczny ciąg parametrów. Nie powinno się mieszać rejestrów pozostawiając je w nieładzie. Im większa powtarzalność Twojego programu tym bardziej jest on czytelny.

ZALETY:

  • Porządek w rejestrach,
  • Czytelność programu poprzez analogię i powtarzalność,
  • Większa kontrola nad pamięcią sterownika.

#6 Korzystaj z bloków danych

Korzystanie z bloków danych (np. w sterownikach Siemens czy Allen Bradley) w znaczny sposób ułatwia organizowanie pamięci sterownika. Rejestry programu mogą być przypisane do odpowiednich bloków ze względu na funkcję, miejsce, struktury, grupy urządzeń itd. Umieszczając rejestry w blokach danych nie musimy przywiązywać zbytnio uwagi na porządek, tak jak  korzystając z pamięci bitowej M ponieważ tablice te są od siebie niezależne.

Przykład 1:

  • DB1 – Przepływomierze (pomiary i nastawy)
  • DB2 – Czujniki ciśnienia (pomiary i nastawy)
  • DB3 – Pompy (pomiary i nastawy)
  • DB4 – Alarmy
  • DB5 – …..

Przykład 2:

  • DB1 – Wartości pomiarowe (przepływomierze, cz. ciśnienia, pompy)
  • DB2 – Nastawy (przepływomierze, cz. ciśnienia, pompy)
  • DB3 – Alarmy
  • DB4 – ….

ZALETY:

  • Większy porządek w rejestrach,
  • Czytelność programu poprzez analogię i powtarzalność,
  • Jeszcze większa kontrola nad pamięcią sterownika.

 

CDN.

 



Utworzono: / Kategoria: , ,
  • Autor: Marcin Faszczewski • iAutomatyka.pl
  • Redaktor naczelny w iAutomatyka.pl. Założyłem blog i portal iAutomatyka.pl aby wspólnie z Automatykami, Firmami i Integratorami publikować i szerzyć informacje związane z automatyką.  Nazywamy to Projektem iAutomatyka! Od artykułów wyjaśniających zasady w świecie automatyki po wpisy informacyjne z wydarzeniami firm. Zapraszam Automatyków do założenia bezpłatnego konta i publikowania artykułów o automatyce razem z nami. Zapraszam też firmy do założenia profilu i umieszczenia swojej działalności w katalogu i na mapie automatyki jak i publikowania artykułów wśród społeczeństwa automatyków.
  • Profil Autora
  • https://iautomatyka.pl/

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY