W poprzednim wpisie przedstawiłem Ci zmienne. Jak wiesz, każdej zmiennej podczas definicji trzeba nadać typ. Dzisiaj zajmiemy się podstawowymi typami, jakie występują w języku SCL. Znaczna większość z nich pokrywa się z typami występującymi w innych językach programowania.
Typy danych
W języku SCL występują dwa rodzaje typów zmiennych, proste oraz złożone. Teraz zajmiemy się typami prostymi. W skrócie można powiedzieć, że typy proste reprezentują wartości liczbowe, wartości logiczne oraz znaki.
Typ danych cechuje rozmiar (liczba bitów) oraz sposób reprezentacji.
W przypadku sterowników PLC wartości liczbowe są najczęściej reprezentowane w systemie:
– binarnym – np. liczba 11 w systemie dzisiętnym będzie zapisane jako 2#00001011 w systemie binarnym. Zapis liczby w systemie binarnym trzeba poprzedzić znakami 2#,
– dziesiętnym,
– szesnastkowym – np. liczba 11 w systemie dzisiętnym będzie zapisane jako 16#B w systemie szesnastkowym. Zapis liczby w systemie szesnastkowym trzeba poprzedzić znakami 16#.
Typy proste
Typy proste reprezentujące wartość liczbową można podzielić na:
a) arytmetyczne całkowitoliczbowe
b) arytmetyczne zmiennoprzecinkowe
Każdy wymieniony typ możesz wykorzystać podczas tworzenia zmiennej w bloku danych. Ostatnio tworzyłeś tagi typu Bool. Na podobnej zasadzie używasz innych typów.
Jako przykład utworzymy tag innego typu niż Bool. Tym razem zamiast odwoływać się do poszczególnych bitów w bajcie wyjściowym (adresie 0), zdefiniujemy tag typu Byte, aby przypisać nowy stan dla wszystkich wyjść za jednym razem.
W PLC tags tworzymy nową tablicę o nazwie Output, co przedstawia poniższy rysunek.
Umieszczamy tag o nazwie Output typu Byte. W kolumnie Address należy wpisać adres QB0. Ponieważ będziemy odwoływać się do całego bajtu, więc w adresie pojawiła się litera B i następnie numer bajtu, czyli w naszym przypadku 0. Jak zapewne pamiętasz, adres fizyczny dla bajtu wyjść cyfrowych został ustawiony w konfiguracji sprzętowej sterownika. Domyślnie jest przydzielany bajt o adresie 0.
W bloku OB1 wykorzystamy utworzony tag o nazwie Output, do którego przypiszemy wartość 11 (czyli binarnie 2#00001011). Kod przedstawiono poniżej
Jak widzisz, przypisanie wygląda w ten sam sposób, jak w przypadku przypisania do tegu typu Bool.
Pozostało tylko przeprowadzić kompilację całego projektu i zaprogramowanie wirtualnego sterownika.
Ostatni krok, to sprawdzenie aktualnej wartości tagu Output w symulatorze. Poniższy rysunek przedstawia utworzone tablice SIM_table.
W tablicy Output_Byte widzisz, że tag Output wynosi aktualnie 11 (kolumna Monitor/Modify value). W kolumnie Bits jest przedstawiona binarna reprezentacja tej liczby. Po prawej stronie znajduje się najmniej znaczący bit (czyli w naszym przypadku to Q0.0). Kolejny bit (druga pozycja od prawej strony) to adres Q0.1.
W tablicy Output_Bit zostały przedstawione dokładnie wartości każdego z bitów odpowiadającym dostępnym wyjściom cyfrowym.
Zatem tylko wyjście o adresie Q0.2 jest w stanie niskim, co jest widoczne również w kolumnie Bits tablicy Output_Byte.
Jeżeli zastanawiasz się, dlaczego wyjście o adresie Q0.0 (MyOutput) jest w stanie, to już Ci mówie. W drugiej linii kodu znajdującego się w bloku OB1 następuje nadpisanie wartości, która została przypisana w pierwszej linii kodu już nową wartością.
Kurs wideo
Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce:
Dzień dobry.
Świetnie, że taki kurs powstał. Trzymam kciuki. Powodzenia.
________________________________
http://michalgorny.blogspot.com