fbpx

Pierwszy program – Symulator PLCSIM

Intelisense

W poprzednim wpisie został utworzony nowy projekt w narzędziu programistycznym TIA Portal oraz została wykonana konfiguracja sprzętowa. Uruchomiliśmy symulator PLCSIM (wirtualny sterownik), który został zaprogramowany. Jednak projekt nie zawiera żadnego kodu programu. W takiej sytuacji sterownik nic nie robi. Dzisiaj napiszemy pierwszy program, którym zaprogramujemy symulator PLCSIM. Skorzystamy z tego samego projektu, czyli FirstProject. Kod programu będzie odpowiedzialny za wysterowanie wyjścia cyfrowego.

Pierwszy program – Symulator PLCSIM

Sterownik odbiera sygnały zewnętrzne przez wejścia cyfrowe lub analogowe. Natomiast do kontroli elementów zewnętrznych wykorzystuje wyjścia cyfrowe. Każde wejście oraz wyjście w sterowniku posiada swój adres fizyczny, który musi być unikalny. Aktualne adresy fizyczne można sprawdzić w konfiguracji sprzętowej sterownika (otwieramy z drzewa projektu Device configuration) w zakładce Device overview.

CPU Adresy fizyczneDomyślnie wejściom oraz wyjściom cyfrowym przydzielony jest adres startowy 0.Można to także sprawdzić w oknie inspektora otwierając zakładkę Propertis i następnie IO tags. Adresy wejść cyfrowych w sterowniku są poprzedzone %I. Sterownik CPU1211C posiada sześć wejść. Adresy fizyczne wyjść cyfrowych są poprzedzone %Q. W przypadku wyjść cyfrowych sterownik ma ich tylko cztery.

Budowa adresu fizycznego na przykładzie %I0.0 wygląda następująco:

%I[numer_bajtu.numer_bitu]

numer_bajtu oraz numer_bitu są wartościami liczbowymi. W chwili obecnej nie znasz jeszcze typów danych, więc teraz przyjmij po prostu, że tak jest.

W naszym przypadku numer_bajtu jest adresem startowym, który określa się w zakładce Device overview. W tej chwili numer bajtu dla wejść cyfrowych wynosi 0 (kolumna I address w zakładce Device overview). W przypadku wyjść cyfrowych numer bajtu również wynosi 0 (kolumna Q address w zakładce Device overview). Wartość numeru bajtu można zmieniać, jeżeli jest taka potrzeba.

Numery bitów zmieniają się od 0 do 5 w przypadku wejść cyfrowych. Wyjść cyfrowych sterownik CPU1211 posiada tylko cztery, dlatego numer bitu zmienia się od 0 do 3.

Adresowanie symboliczne

Odwołanie się w tej chwili do wejścia lub wyjścia w kodzie programu polegałoby teraz na wykorzystaniu adresu fizycznego. Jednak ten sposób nie jest dobrym rozwiązaniem, ponieważ trzeba pamiętać za co odpowiada dany adres. Nie ma bezpośredniego powiązania wejścia/wyjścia sterownika z nazwą. Jest to tzw. adresowanie absolutne. Taki sposób jest bardzo niewygodny w przypadku większych programów. Drugi powód, to zmiana podłączenia np. czujnika z wejścia o adresie %I0.0 na %I0.1 powoduje konieczność zmiany tego adresu w całym kodzie programu.

Rozwiązaniem tej sytuacji jest wykorzystanie adresowania symbolicznego. Do tego celu służą tablice PLC tags. W drzewie projektu należy rozwinąć PLC tags i wybrać Add new tag table.Pojawi się nowa tablica, gdzie należy zmienić jej nazwę na InputOutput. Kolejny krok, to otwarcie tej tablicy i zdefiniowanie nazwy, która pozwoli nam w prosty i czytelny sposób odnosić się do fizycznego adresu wyjścia cyfrowego.

PLC tagsZostał utworzony tag o nazwie MyOutput opisujący wyjście fizyczne o adresie Q0.0. Otwórz teraz jeszcze raz konfigurację sprzętową sterownika i sprawdzić w oknie inspektora otwierając zakładkę Propertis i następnie IO tags jak wygląda to teraz.

Pierwszy program

Kod pierwszego programu w języku S7-SCL umieścimy w bloku organizacyjnym OB1. Bloki organizacyjne są pewnego rodzaju połączeniem pomiędzy sprzętem w sterowniku a programem pisanym przez programistę. Blog organizacyjny OB1 jest cyklicznie wykonywany (pętla nieskończona) podczas pracy sterownika PLC. Blok OB1 (nazwany  Main) znajdujący się w folderze Program blocks zostaje domyślnie dodany do projektu. Jednak po otwarciu tego bloku widzimy Network 1.

OB1 LADW networkach umieszcza się elementy języka LAD. My będziemy programować w języku S7-SCL, więc należy ten blok OB1 usunąć z projektu. Zaznaczmy ten blok w projekcie klikając lewym przyciskiem myszki i naciskamy na klawiaturze przycisk Delete. Pojawi się okno Confirm deletion gdzie naciskamy przycisk Yes.

Teraz dodamy blok OB1 do projektu jeszcze raz. W folderze Program blocks znajdującym się w drzewie projektu wybieramy Add new block

Add new blockW otwartym oknie Add new block wybieramy Organization block i następnie Program cycle. Należy wybrać język SCL i nacisnąć przycisk OK.

Dodany do projektu blok OB1 należy otworzyć (klikając dwukrotnie). W pierwszej linii wpiszemy nazwę symboliczną wyjścia cyfrowego.

IntelisensePo wpisaniu kilku pierwszych liter pojawia się podpowiedź. Jest to duże ułatwienie, gdyż nie ma potrzeby wpisywania całych nazw. Wystarczy kilka pierwszych liter i następnie można kursorami na klawiaturze wybrać potrzebną w danej chwili nazwę tagu lub zmiennej. System podpowiedzi można uruchomić w dowolnym momencie, wystarczy nacisnąć na klawiaturze kombinację CTRL + SPACJA.

Cały kod programu, który należy umieścić w OB1 to:

„MyOutput” := TRUE;

Zgodnie z wcześniejszą zapowiedzią kod programu ustawia wyjście cyfrowe (w naszym przypadku MyOutput) w stan wysoki. Szczegółowy opis poszczególnych składników tej linii kodu już w następnym wpisie. Wtedy też przeprowadzimy kompilację tego kodu i programowanie wirtualnego sterownika PLCSIM.

Praca domowa: Umieść w utworzonej tablic PLC tag o nazwie InputOutput jeszcze jedną nazwę symboliczną dowolnie wybranego wyjścia cyfrowego. Napisz w komentarzu, który adres fizyczny wyjścia cyfrowego oraz jaka nazwę wybrałeś. Wykorzystamy to w następnych wpisach.

Kurs wideo

Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce:

pl-usb-1p1-tia-1200-scl_sterownik-plc_w-praktyce-1

 

 

 

 

 

 

 

 

 

 

Podziel się tym wpisem na:
  • Facebook
  • Google Bookmarks
  • Twitter
  • Wykop

Pozostaw komentarz

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

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Newsletter - Zapisz się i jako pierwszy otrzymasz najnowsze informacje