Opowiem o 10-ciu zasadach, których przestrzeganie, przez początkujących programistów PLC, pozwoli uniknąć wielu, najczęściej pojawiających się problemów w programowaniu. Skupiłem się na kodowaniu w języku LAD, chociaż część z przedstawionych przeze mnie zasad ma charakter uniwersalny i będziesz mógł je zastosować również w innych językach programowania sterowników PLC.
1. Schemat elektryczny -> Konfiguracja sprzętowa -> Nazwy symboliczne -> Testy sygnałów wejść/wyjść -> Pisanie kodu
Pierwszą zasadą, jaką powinieneś się kierować, to dobra ścieżka pracy w momencie tworzenia nowego projektu. Należy rozpocząć od schematu elektrycznego, a następnie konfiguracja sprzętowa oraz dobraniem odpowiedniego modelu CPU. To wszystko składa się na adresację, która powinna być spójna, aby projekt, a dokładnie kod programu działał poprawnie. Uwagę musisz skierować na schemat elektryczny, na to jaka jest adresacja w danym projekcie czy danym zadaniu. Wtedy dopiero możesz konfigurować odpowiednio moduły wejść wyjść w projekcie TIA Portal lub Step7. Jedynie wtedy możesz tworzyć nazwy symboliczne, czyli opis do danego adresu tzw. „tag”. Jeżeli zostały spełnione te warunki należy sprawdzić czy sygnały wejściowe i wyjściowe zostały właściwie podłączone elektrycznie. Zwracasz uwagę, czy nic się nie uszkodziło bądź rozłączyło. Taki test wykonujesz tylko raz na początku pracy nad projektem (zadaniem). Gdy masz pewność, że wszystko jest w porządku i elektryka-mechanika działa to możesz przejść do etapu pisania kodu i testów tego kodu programu. Bardzo często zdarza się, że w momencie wpisania kodu i testach pojawiają się błędy. Etapy, które wcześniej wykonałeś pozwolą w miarę bezproblemowo i szybko wykonać kod programu do danego zadania. Wiesz już, iż wykryte braki wynikają z Twoich błędów programistycznych a nie z otaczających rzeczy. To pozwoli Tobie łatwiej i szybciej wychwycić błąd logiczny w kodzie programu.
2. Wszystkie zmiany w konfiguracji sprzętowej robimy w trybie OFFLINE
Reguła numer 2 dotyczy konfiguracji sprzętowej i tego, że powinna być tworzona i zmieniana w trybie offline. By dokonać zmian, czyli edytować konfigurację sprzętową należy wyłączyć tzw. okularki oraz rozłączyć ze sterownikiem. Taką konfigurację wykonujesz na początku, w momencie tworzenia projektu. Jest to jedna z dwóch części projektu w środkowisku programistycznym TIA Portal lub Step7, który dzieli się na konfigurację sprzętowa i programową. Obie są od siebie zależne. W trakcie prac często pojawiają się potrzeby zmian lub dodatkowe funkcjonalności np. włączenie przebiegów zegarowych. Wtedy podczas pisania kodu programu należy przejść i taką zmianę dokonać w trybie offline, bez połączenia ze sterownikiem PLC.
3. Gdy rozwiązujemy zadanie, to przy pierwszym programowaniu PLC należy wgrać konfigurację sprzętową oraz kod programu
Zasada trzecia powiązana jest z poprzednią. Konfiguracja sprzętowa oraz kod programu należy wgrywać do PLC. Podczas rozwiązywania zadania konfiguracja sprzętowa może ulec zmianie, więc bardzo ważne jest to, by wgrać ją przynajmniej raz do sterownika PLC. Konfiguracja sprzętowa może ulec zmianie. Możesz wgrać do sterownika pusty kod programu, czyli pusty blok OB1. Jest to ważne w pracy z nowym projektem ponieważ w bloku OB1 czy w samym sterowniku może znajdować się już kod programu, który uniemożliwi testy sygnałów wyjściowych. Czynność ta jest przydatna, zwłaszcza w pracy na używanym sterowniku PLC, gdyż zazwyczaj ma już jakąś zawartość.
4. Jeżeli na offline nie da się zrobić zmiany, wówczas zamykamy edytor konfiguracji sprzętowej i jeszcze raz przechodzimy do Device Configuration
Kolejną przeszkodą mogą być takie sytuacje, w których nie ma możliwości zmiany lub aktywacji opcji w konfiguracji sprzętowej. Środowisko programistyczne to jest software, który nie jest doskonały. Pojawiają się przypadki, że chcesz coś włączyć w konfiguracji sprzętowej, klikasz i nic się nie dzieje. Najlepszym rozwiązaniem jest wyłączenie edytora konfiguracji sprzętowej i przejście jeszcze raz do niego. Edytor się odświeży a Ty możesz przeprowadzić odpowiednią zmianę lub aktywować dana funkcjonalność sprzętową w PLC.
5. Konfigurację sprzętową wgrywamy (Download) zawsze w trybie OFFLINE
Reguła piąta dotyczy wgrania konfiguracji sprzętowej. Najważniejszą kwestią jest to, by zawsze robić to na offline. Jeżeli są edytory połączone aktualnie ze sterownikiem (tryb online), pamiętaj, że należy się rozłączyć. W trakcie pracy na wielu edytorach, ważne jest by zamknąć lub wyłączyć połączenie online danego edytora, na którym zakończyliśmy wykonywanie czynności. Nie ma potrzeby, by wszystko działało w trybie online. W przypadku, gdy jest więcej uruchomionych i połączonych ze sterownikiem PLC edytorów, to wykorzystują one zasoby zarówno komputera jak i sterownika. Wykonanie tych czynności pozwala na skuteczne wgranie konfiguracji sprzętowej, tzw. download. Sterownik PLC będzie realizował nowe funkcjonalności, zgodnie z tym, co wprowadziłeś w formie zmian w konfiguracji sprzętowej.
6. Podgląd kodu programu jest możliwy tylko wtedy, gdy jest zgodność (w danej chwili w projekcie i CPU jest to samo)
Kolejną kwestia jest monitoring kodu programu. Monitoring może być aktywowany wyłącznie w sytuacji, gdy kod programu, który jest w projekcie znajduję się również w sterowniku PLC. „Okularki” bowiem są aktywne jedynie, gdy jest zgodność. Jeżeli wprowadzasz zmianę, to koniecznym jest, by ją zapisać i wgrać do sterownika. Pozwala to, na podglądanie dokonanych zmian i monitorowanie kodu oraz analizę działania. Możesz wtedy stwierdzić czy wszystko działa poprawnie lub wymaga dalszych modyfikacji i poprawek w kodzie programu. Wszelkie wątpliwości o skuteczności działania najlepiej zweryfikować na podglądzie, a ten jest możliwy, jedynie w sytuacji zgodności.
7. W programie liniowych (kod tylko w bloku OB1) powinno być tyle networków, ile jest wyjść w danym zadaniu
Zasada 7 pozwala uniknąć problemów z tzw. nadpisywaniem. W trakcie pisania kodu wyłącznie w bloku OB1 wyjść musi być tylko tyle ile masz Networków (chodzi o zapis oczywiście). Trzymaj się wtedy zasady: 1 Network (segment) powiązany jest z jednym wyjściem. Najłatwiejszym rozwiązaniem przy użyciu cewki przypisania lub wykorzystaniu instrukcji set reset (zastosowanie przerzutnika SR). Przy bardziej rozbudowanych programach tę zasadę można dostosowywać „w danym bloku (FB, FC, OB) jedno wyjście występuje tylko w jednym networku”. Inaczej się to nie uda. Rozpoczynając pracę programisty obsługujesz tylko sygnały cyfrowe. Pamiętaj, więc, że ile masz wyjść cyfrowych to dokładnie takiej liczby segmentów (networków) w bloku organizacyjnym potrzebujesz. Na sterowniku istnieje możliwość dodania większej liczby bloków OB, ale na początek zapisujesz wszystko jako program liniowy, tj. w bloku OB1. Stosowanie powyższej zasady sprawi, że to co zrobisz będzie działać poprawnie.
8. Gdy wykorzystujemy zmienne w programie, to do każdej zmiennej jest potrzebny dodatkowy network
W napisaniu kodu programu niezbędnym elementem są zmienne. Użycie zmiennej spowoduje dodanie kolejnych segmentów (networków). Posiadanie jednego wyjścia w zadaniu i jednej zmiennej powoduje powstanie 2 networków. W mojej opinii rozpoczynając programowanie w większej liczbie przypadków wystarcza wykorzystanie przerzutnika set reset. Należy wtedy od razy napisać warunki kiedy ta zmienna ma być jedynką a kiedy zerem, tj. co ma się wydarzyć. Zmienne służą do przechowywania informacji na dłużej. Warunkiem obsługi wszystkich zmiennych jest posiadanie takiej samej liczby segmentów w kodzie programu. Zmienne są powiązane z networkami, (segmentami) oraz posiadają odniesienie do wyjść w PLC.
9. Gdy zaczynamy pisać logikę (wykorzystanie instrukcji NO i NC oraz operacji AND, OR, XOR) to network musimy zakończyć cewką (instrukcja przypisania) lub przerzutnikiem SR
Kod programu to inaczej pisanie logiki. Jeżeli zaczynasz pisać logikę to koniecznie pamiętaj, że na końcu danego segmentu musisz tę informację w jakiś sposób zapisać w obszarze pamięci. Możesz to zrobić w obszarze pamięci wyjść (obszar Q) lub w pamięci M tzw. markerach. Są na to dwa sposoby. Możesz wykorzystać operację przypisania, czyli cewkę albo przerzutnik z set, reset lub reset set. Jeżeli nie spełnisz tego warunku, czyli nie wykonasz przypisania, przy kompilacji zostanie zgłoszony błąd.
Taka sama sytuacja wystąpi przy tworzeniu rozgałęzienia, kolejnej gałęzi w konkretnym Networku. Pozostawienie pustego rozgałęzienie będzie skutkować błędem. W sytuacji otrzymania informacji o takich błędach należy przejść do odpowiedniego segmentu i wykonać jego naprawę. By zapobiec zbędnej pracy postaraj się pisać wszystko zgodnie z danym założeniem a wtedy na pewno unikniesz kłopotów z kompilacją oraz błędów.
10. Cewką (instrukcja przypisania) lub przerzutnikiem SR może być tylko powiązany z obszarem pamięci Q , M lub blokiem danych DB.
Ta zasada mówi o odniesieniu do obszarów pamięci i zapis informacji w tych obszarach. Instrukcje przypisania powinny być powiązane z obszarem pamięci, takim jak obszar pamięci Q (obszar wyjść), obszar M (markery lub nazywane jako znaczniki wewnętrzne) lub bloki danych (DB). W programie bardziej złożonym znajdują się obszary w pamięci związane ze zmiennymi tymczasowymi (bloki FC, FB, OB) lub statycznymi (blok FB). Co do zasady, na początku kodowania z tych obszarów pamięci się nie korzysta. Najczęściej wykorzystywany jest obszar pamięci Q i M, ewentualnie bloki DB. Dokładnie te obszary możesz powiązać z instrukcjami przypisania, ponieważ to właśnie one służą do zapisu. Mianowicie, są to obszary pamięci: Q jako output, M jako markery, wewnętrzne znaczniki oraz bloki DB jako Data Block.
Reasumując:
Przestrzeganie powyższych zasad zwiększa prawdopodobieństwo działania kodu programu od razu po wgraniu do sterownika PLC. Natomiast, jeżeli nie będzie działał może być to spowodowane trudnościami związanymi z logiką, czyli napisania właściwych warunków. Ale to już jest praca programisty PLC…czyli pisanie warunków używając języka programowania
Pobierz sobie w pdf plik zasady-poczatkujacych-programistow-plc z tymi zasadami, aby mieć ciągle na to zerkać (a w szczególności gdy coś nie działa) ;P
Przyznaj się w komentarzu, którą zasadę łamałeś najczęściej
Kurs wideo
Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce: