fbpx

Szkoła PLC – funkcje czasowe – tryb Auto

czujnik-palet

Ostatnio poznałeś funkcje do odmierzania czasu. Dzisiaj zajmiemy się praktycznym wykorzystaniem tych funkcji, czyli timerami. Taka naprawdę wykorzystamy jedną z nich.

Timery – funkcje czasowe

Wykonamy dzisiaj kolejne punkty w naszych założeń projektowych, które wymagają użycia pomiaru czasu. Jest to punkt numer 23, czyli W trybie Auto transporter T1 jest uruchamiany w momencie, gdy czujnik D1 wykrywa obiekt. Należy dobrać taki czas włączenia transportera, aby paleta opuściła transporter. Następnie wykonamy punkt numer 24 oraz 25. Są to analogiczne zadania dla pozostałych transporterów.

Ponieważ teraz kod realizujący tryb automatyczny wygląda następująco

//T1
”HD_MotorData”.T1.Run := TRUE;
”HD_MotorData”.T1.DirectionForward := TRUE;
//T2
”HD_MotorData”.T2.Run := TRUE;
”HD_MotorData”.T3.DirectionForward := TRUE;
//T3
”HD_MotorData”.T3.Run := TRUE;
”HD_MotorData”.T3.DirectionForward := TRUE;

Każdy z transporterów jest uruchamiany i działa cały czas bez względu na to, czy palety są wykrywane przez czujniki.

Do warstwy logic w drzewie projektu dodamy nowy moduł o nazwie Mode. W tym miejscu będzie znajdował się kod odpowiedzialny za tryby pracy. Teraz zajmujemy się trybem automatycznym, zatem dodajemy kolejną grupę o nazwie Auto. W tej grupie umieścimy funkcję, która będzie zajmować się sterowaniem transporterów w trybie automatycznym. Ta funkcję napiszemy dla jednego transportera, a później zostanie wykonane wywołanie dla każdego z dostępnych transporterów.

Do grupy Auto dodajemy funkcję typu FB o nazwie LOG_AutoControl. W kodzie tej funkcji wykorzystamy timer, więc będzie potrzebny blok danych instance DB. Dzięki temu, że wybrana została funkcja typu FB, która potrzebuje również bloku instance DB, to będzie możliwość utworzenia jednego bloku instance DB, czyli tak multiinstance DB.

W sekcji interfejsu funkcji LOG_AutoControl() utworzymy kilka parametrów. Parametry wejściowe (Input) to:

Sensor – parametr typu Bool, który przekazuje do funkcji stan czujnika

ConveyorWorkTime – parametr typu Time, który pobiera wartość czasu, przez który powinien być włączony transporter

Parametr wyjściowy (Output) to MotorData typu stt_Motor, czyli struktura zawierająca informacje o silniku.

W sekcji kodu programu zaczniemy od wykorzystani timera. Do wykonania założeń projektowych najlepsza będzie funkcja czasowa, która od momentu wykrycia palety przez czujnik uruchomi transporter i będzie mógł on pracować przez określony czas, czyli czas na przejazd palety przez cały transporter (czas zostanie dobrany z małym zapasem). Tym timerem jest funkcja TOF.

W pierwszej kolejności należy utworzyć dwie zmienne tymczasowe (Temp), które użyjemy do timera. Tworzymy zmienną typu Bool o nazwie t_Q oraz zmienną typu Time, którą nazwiemy t_ET. W kodzie programy należy wywołać timer TOF, a następnie trzeba utworzyć blok Multi instance DB. To wszystko wykonujemy w oknie Call option. Następnie trzeba przypisać odpowiednie parametry, co przedstawia poniższy kod

#IEC_Timer_0_Instance(IN:=#Sensor,
PT:=#ConveyorWorkTime,
Q=>#t_Q,
ET=>#t_ET);
#MotorData.Run := #t_Q;
#MotorData.DirectionForward := #t_Q;

Zmienna t_Q została wykorzystana do przypisania wartości do pół Run oraz DirectionForward w parametrze wyjściowym MotorData.

Teraz pozostało nam wywołać funkcje LOG_AutoControl() w funkcji LOG_ClassLogic(). Poprzedni kod zamieniamy następującym

//point 23 – T1
"LOG_AutoControl_DB8"(Sensor:="D1",
ConveyorWorkTime:=T#8s,
MotorData=>"HD_MotorData".T1);
//point 24 – T2
"LOG_AutoControl_DB9"(Sensor:="D2",
ConveyorWorkTime:=T#10s,
MotorData=>"HD_MotorData".T2);
//point 25 – T3
"LOG_AutoControl_DB10"(Sensor:="D3",
ConveyorWorkTime:=T#10s,
MotorData=>"HD_MotorData".T3);

Dla każdego transportera został wywołana funkcja LOG_AutoControl(), gdzie utworzone nowe bloki instance DB i też przypisano odpowiednie parametry.

Zapisujemy projekt i uruchamiamy kompilację. Sprawdzamy, czy nie ma błędów i wówczas wgrywamy do sterownika.

Testowanie

Przejdźmy teraz do Factory IO i sprawdźmy, jak działa napisany przez nas kod. Wybieramy przyciskiem tryb Auto. Naciskamy przycisk Start i linia została uruchomiona. Transportery są po kolei uruchamiane. Gdy zatrzymamy produkcję przyciskiem Finish, to po chwili powinien wyłączyć się transporter T1, zaraz po nim T2 i T3.

Kod programu został napisany poprawnie, ponieważ punkty z założeń projektowych są wykonywane poprawnie.

Wideo

Proces pisania kodu programu możesz zobaczyć też na wideo

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

ec

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