Jakiś czas temu pisałem Ci o zmiennych oraz blokach danych. Do tej pory to właśnie w blokach danych były tworzone zmienne. Jeżeli programowałeś sterowniki klasyczne firmy Siemens takie jak S7-300 lub S7-400 to na pewno słyszałeś o markerach lub obszarze pamięci M. Ta pamięć jest jednym z obszarów do wykorzystania przez programistę.
Aby utworzyć zmienną w obszarze pamięci M, to należy dodać do projektu nową tablice PLC tags. Przykładowo utworzone zmienne przedstawiono na poniższym rysunku
Zmienne z pamięci bitowej można wykorzystywać, analogicznie jak inne zmienne umieszczone w blokach danych DB. Przykład przypisania przedstawia poniższy kod programu
"ZmiennaTypuBool" := TRUE; "ZmiennaTypuByte" := 69;//zapis w postaci dziesiętnej "ZmiennaTypuWord" := 16#F;//zapis w postaci szesnastkowej
Trzeba pamiętać o odpowiednim przydzielania adresów zmiennym w pamięci M. Adresy zmiennych w pamięci nie powinny się pokrywać. Chyba że jest to nasz celowy zabieg. Jeżeli nie jest to nasz celowy zabieg, to należy uważać, ponieważ kompilator nie zawsze zgłosi błąd, a to będzie powodować błędne działanie programu.
Firma Siemens w swoich dokumentacjach zaleca, aby w przypadku nowych sterowników takich jak S7-1200 oraz S7-1500 nie korzystać z pamięci M (czyli markerów). Wynika to z tego, że wykonanie kodu programu trwa dłużej, niż w przypadku użycia zmiennych zdefiniowanych w optymalizowanym bloku danych (jest to opcja domyślna przy tworzeniu nowego bloku danych).
Przebiegi zegarowe
Dlaczego wcześniej pisałem o pamięci, a teraz przechodzimy do generatorów sygnałów zegarowych? Ponieważ są to tematy w pewien sposób ze sobą powiązane. Jeżeli zastanawiałeś się, jak zrobić pulsowanie diodą Led, to za chwilę tego się dowiesz.
W sterowniku jest umieszczony pewien obszar elektroniki odpowiedzialny za generowanie impulsów zegarowych o określonych częstotliwościach. Przebiegi zostały przedstawione na poniższym rysunku
Jak widzisz, na przebiegu przedstawiono pięć różnych przebiegów. Dostępnych jest ogólnie siedem. Po prawej stronie każdy przebieg jest opisany. W nawiasach kwadratowych jest adres pamięci zmiennej. Zauważ, że te przebiegi pochodzą właśnie z pamięci M.
Więc w jaki sposób uzyskać takie przebiegi? Uaktywnienie odbywa się w konfiguracji sprzętowej sterownika PLC. Przejść trzeba do zakładki System and clock memory. Konfiguracja polega na zaznaczeniu opcji Enable the use of clock memory byte oraz podaniu numery bajtu. Przedstawia to poniższy rysunek
Dla przykładu możemy podać bajt o numerze 69. Nie ma możliwości skorzystania w innych sposób z tych przebiegów, dlatego powinny być to jedyny bajt wykorzystywany w pamięci M (oczywiście poza bajtem System memory bits, o którym w przyszłości napiszę).
Do każdego bitu jest przypisany odpowiedni przebieg. Jak z nich skorzystać. Na początek trzeba zrobić kompilację konfiguracji sprzętowej sterownika i wgrać do PLC. Wówczas w tablicy tagów o nazwie Default tag table pojawi się lista tagów, które zostały przedstawione poniżej
Teraz już możesz w kodzie programu korzystać z tych tagów. Jedyna uwaga, że są one tylko do odczytu. Nie można zapisywać swoich wartości podczas wykonywania programu do bajtu zegarowego. Ponieważ spowoduje to błędne działanie programu.
Kurs wideo
Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce: