[KURS PLC, CZĘŚĆ 9] Sterowniki SIMATIC S7-1200 (CPU1211C) – generatory impulsów
Tworzenie tablicy PLC tags
W kodzie programu odwołamy się do wyjść cyfrowych sterownika. Musimy utworzyć nazwy symboliczne, co wykonamy w nowej tablicy o nazwie Led_output.
Teraz możemy przejść do pisania kod w bloku organizacyjnym OB1. W pierwszej kolejności zajmiemy się lampą czerwoną. Zgodnie z treścią zadania lampa powinna pulsować z częstotliwością 2 Hz. Aby wykonać to zadanie, należy wykorzystać bit zegarowy o częstotliwości 2 Hz, który posiada nazwę symboliczną Clock_2Hz.
Kod programu
Kod umieszczony w bloku OB1 sterujący lampą czerwoną przedstawiono poniżej.
„LedRed” := „Clock_2Hz”;
Wartość logiczna bitu zegarowego o nazwie Clock_2Hz jest przypisywana na wyjście cyfrowe LedRed. Jeżeli bit Clock_2Hz jest w stanie wysokim, to wyjście cyfrowe też jest w stanie wysokim i czerwona dioda LED świeci. Gdy bit Clock_2Hz jest w stanie niskim, to czerwona LED nie świeci.
Funkcja Frequency
Napisalismy kod sterujący czerwoną lampą sygnalizacyjną. Teraz przejdziemy do sterowania zieloną lampą sygnalizacyjną. Można to zrobić w podobny sposób, jak poprzednio czyli wykorzystać jeden z bitów zegarowych. Jednak teraz pokażę Ci inny sposób. Skorzystamy z funkcji dostarczonej dla PLC (w TIA Portalu) przez firmę Siemens.
Programiści Siemensa przygotowali bibliotekę zawierającą funkcje, która generuje na wyjściu sygnał prostokątny o zadanej częstotliwości. Bibliotekę można pobrać ze strony http://support.automation.siemens.com/WW/view/en/87507915.
Po pobraniu pliku Pulse_Gen_Lib.zip i rozpakowaniu należy bibliotekę dołączyć do projektu. Polega to na wybraniu z prawej strony TIA Portal zakładki Libraries. Wówczas należy rozwinąć zakładkę Global libraries i wybrać z paska narzędzi przycisk Open global library, co przedstawia poniższy rysunek.
Teraz należy wskazać plik Lib_Pulse_Gen.al12. Po zatwierdzeniu przyciskiem Open pojawi się okno przedstawione na poniższym rysunku.
Jak wskazuje treść wiadomości, biblioteka została utworzona w TIA Portal V12. Świadczy o tym także rozszerzenie al12 pliku zawierającego bibliotekę. Zatwierdzamy naciskając przycisk Yes. Spowoduje to aktualizację biblioteki. Po zakończeniu aktualizacji na liście w zakładce Global libraries pojawi się biblioteka o nazwie Lib_Pulse_Gen_V13_SP1.
Graficzna reprezentacja funkcji implementowanej w PLC CPU1211C została przedstawiona na poniższym rysunku.
Parametr wejściowy Frequency typu Real służy do określenia częstotliwości sygnału zegarowego, który pojawi się na parametrze wyjściowym funkcji o nazwie Q. Parametr wyjściowy typu Time o nazwie Countdown określa pozostały czas, po którym nastąpi zmiana stanu z wyjścia Q na przeciwny. Jeżeli do parametru Frequency przypiszemy wartość 0.5 to na wyjściu Q pojawi się przebieg prostokątny o okresie 2 sekund. Przedstawiono to na poniższym rysunku.
Treść zadania podaje, że zielona lampa sygnalizacyjna powinna pulsować z częstotliwością 0,4 Hz. Zatem taką wartość przypiszemy do parametru wejściowego Frequency.
Należy zdefiniować stałą określającą wartość częstotliwości, którą umieścimy w tablicy PLC tags. Dodajemy do projektu nową tablicę o nazwie CONST, co przedstawiono na poniższym rysunku.
W tej tablicy umieszczamy stałą o nazwie CONST_LED_GREEN typu Real o wartości 0.4.
Pozostało nam wywołanie w bloku OB1 funkcji Frequency. Można to wykonać wykorzystując metodę przeciągnięcia tej funkcji z biblioteki do sekcji kodu w bloku OB1. Drugi sposób, na ręczne wpisanie w kodzie nazwy funkcji. Po napisaniu „Frequency” pojawi się okno Call options, którego widok pokazano poniżej.
Wpisujemy nazwę bloku danych instance DB, który zostanie skojarzony z funkcją FB o nazwie Frequency. Zatwierdzamy wybierając przycisk OK.
Pozostało tylko przypisać zmienne do parametrów funkcji, co przedstawiono na poniższym rysunku.
W taki sposób zostało zakończone pisanie kodu programu realizującego wykonanie podanego zadania. Parametr wyjściowy Countdown nie jest wykorzystywany, ponieważ treść zadania nie mówi o informowaniu o pozostałym czasie do zmiany stanu sygnalizacji świetlnej na przeciwny. Kod funkcji Frequency (blok FB1) został nieznacznie zmodyfikowany, ponieważ przebieg na wyjściu Q odbiegał nieznacznie od zakładanego.
Jedną z różnic pomiędzy funkcją typu FC a typu FB jest taka, że do wszystkich parametrów funkcji FC trzeba przypisać zmienne, natomiast w funkcji FB można tylko do wybranych parametrów przypisać zmienne. I z tej możliwości skorzystano w tym przykładzie.
Teraz pozostało skompilować cały projekt i zaprogramować sterownik.
Testowanie programu
Po zaprogramowaniu sterownika PLC można zobaczyć, jak migają diody. Zmiany stanów na wyjściach PLC pokazano na poniższym wykresie.
Jeden okres dla diody zielonej wynosi 2,49 sekundy. W tym samym czasie zmieściło się pięć okresów dla diody czerwonej, więc jak łatwo policzyć jeden okres trwa 0,5 sekundy.
Tomasz Gilewski