W ostatnim wpisie czytałeś na temat sprzętowych generatorów sygnałow zegarowych. Dzisiaj wykorzystamy tą wiedzę w praktyce, czyli w projekcie linii transportowej.
Pulsowanie sygnalizacji świetlnej
Tak jak pisałem poprzednio, aby korzystać z tych sprzętowych generatorów, to należy je aktywować. Czyli przechodzimy do konfiguracji sprzętowej sterownika S7-1200. W oknie nadzoru wybieramy zakładkę System and clock memory. Znajduje się tam pole Clock memory bits, gdzie należy zaznaczyć Enable the use of clock memory byte. Następnie wykonujemy kompilację konfiguracji sprzętowej i wgrywamy do sterownika. W ten sposób przebiegi zegarowe są dostępne na poszczególnych bitach bajtu MB69. Możesz to podejrzeć w tablicy PLC tags o nazwie Default tag table.
Implementacja
Teraz przejdź do założeń projektowych linii technologicznej. Interesuje nas teraz punkt 11 oraz 15. Jak pamiętasz, te założenia zostały już wykonane, jednak nie do końca. W każdym z tych punktów brakuje pulsowania. Teraz dodamy te funkcjonalności.
Kod programu realizujący punkt 11 został umieszczony w funkcji LOG_BacklightButton(). Aby podświetlenie przycisku Reset pulsowało, należy wykorzystać operator binarny AND oraz sygnał zegarowy o częstotliwości 0,5Hz. Poniżej przedstawiono kod programu
"ResetLight" := "MAN_LineMode".Error AND "Clock_0.5Hz";
Ta linia kodu działa w ten sposób, że jeżeli pojawił się błąd i sygnał zegarowy (Clock_0.5Hz) jest w stanie wysokim, to wówczas podświetlenie przycisku Reset jest włączone. Jeżeli jest błąd, a sygnał zegarowy jest w stanie niskim, to podświetlenie przycisku Reset nie jest włączone. W ten sposób co 2 sekundy następuje zmiana stanu logicznego dla wyjścia, czy krótko mówiąc wyjście cyfrowe odpowiedzialne za podświetlenie przycisku Reset pulsuje.
W podobny sposób należy wykonać punkt 15, czyli pulsowanie lampy żółtej z kolumny sygnalizacyjnej. Należy przejść do funkcji LOG_ColumnLight(), ponieważ tam znajdują się instrukcje sterujące kolumną sygnalizacyjną. Przedstawia to poniższy kod
"YellowVSI" := "MAN_LineMode".Manual AND "MAN_LineMode".Start AND "Clock_1Hz";
Jak widzisz, kod jest analogiczny, jak w przypadku podświetlenia przycisku Reset. Zmieniła się jedynie częstotliwość, z jaką będzie pulsować żółta lampa.
Testowanie
Aby sprawdzić, czy napisany kod działa, to trzeba tak jak zawsze skompilować go i wgrać do sterownika. Następnie przejść do Factory IO. Następnie uruchomić symulację (naciskamy przycisk Play). Teraz wybieramy tryb ręczny, czyli naciskamy przycisk Manual znajdujący się obok linii. Pozostało nam tylko nacisnąć przycisk Start (podłączony fizycznie do sterownika). W tym momencie zobaczysz, że żółta lampa z kolumny sygnalizacyjne zacznie pulsować.
Podświetlenia przycisku Reset jeszcze nie sprawdzimy, ponieważ nie mamy zaimplementowanej obsługi błędów.
Nagranie wideo
Poniżej możesz też obejrzeć wideo, gdzie krok po kroku pokazuję wykorzystanie generatora przebiegów zegarowych oraz implementacje ich w kodzie programu
Projekt TIA Portal
Aktualny projekt linii transportowej możesz pobrać tutaj.
//———-
Licencja FACTORY I/O wypożyczona dzięki uprzejmości firmy Encon-Koester Sp. z o. o. Sp. K.
Encon-Koester Sp. z o. o. Sp. k.
ul. Gagarina 4
54-620 Wrocław
Kurs wideo
Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce: