Jak generować opóźnienie za pomocą instrukcji TON?

Share
TON w PLC Siemens – jak działa opóźnienie czasowe?

Wprowadzenie do timera TON w Siemens PLC

Instrukcja TON (Timer On Delay) jest kluczowym elementem w programowaniu Siemens PLC, który pozwala na generowanie opóźnień czasowych. Dzięki niej można efektywnie kontrolować czas działania wyjść w systemach automatyki.

Jak działa opóźnienie czasowe TON?

Możesz użyć instrukcji „Generate on-delay”, aby opóźnić ustawienie wyjścia Q o zaprogramowany czas PT. Instrukcja jest uruchamiana, gdy wynik operacji logicznej (RLO) na wejściu IN zmienia się z „0” na „1” (dodatni zbocze sygnału). Zaprogramowany czas PT zaczyna się, gdy instrukcja się uruchamia. Gdy czas PT upłynie, wyjście Q ma stan sygnału „1”. Wyjście Q pozostaje ustawione tak długo, jak długo wejście startowe jest nadal „1”. Gdy stan sygnału na wejściu startowym zmienia się z „1” na „0”, wyjście Q jest resetowane. Aby lepiej zrozumieć sposób działania timera TON, warto zapoznać się z praktycznymi przykładami. Szczególnie pomocny może być symulator języka drabinkowego online, który pozwala testować funkcje bez fizycznego sterownika.

Aktualizacja wartości timera

Aktualna wartość czasu może być zapytana na wyjściu ET. Wartość timera zaczyna się od T#0s i kończy, gdy osiągnięta zostanie wartość czasu trwania PT. Wyjście ET jest resetowane, gdy stan sygnału na wejściu IN zmienia się na „0”. Jeśli instrukcja nie jest wywoływana w programie, ponieważ jest pomijana, wyjście ET zwraca stałą wartość, gdy czas PT upłynie.

Implementacja timera TON w CPU S7-1200 i S7-1500

Dla CPU S7-1200

Timer IEC to struktura typu danych IEC_TIMER lub TON_TIME, którą możesz zadeklarować w następujący sposób:

  • Deklaracja bloku danych typu systemowego IEC_TIMER (na przykład „MyIEC_TIMER”)
  • Deklaracja jako lokalny tag typu TON_TIME lub IEC_TIMER w sekcji „Static” bloku (na przykład #MyIEC_TIMER)

Dla CPU S7-1500

Timer IEC to struktura typu danych IEC_TIMER, IEC_LTIMER, TON_TIME lub TON_LTIME, którą możesz zadeklarować w następujący sposób:

  • Deklaracja bloku danych typu systemowego IEC_TIMER lub IEC_LTIMER (na przykład „MyIEC_TIMER”)
  • Deklaracja jako lokalny tag typu TON_TIME, TON_LTIME, IEC_TIMER lub IEC_LTIMER w sekcji „Static” bloku (na przykład #MyIEC_TIMER)

Aktualizacja wartości rzeczywistych w danych instancji

Dane instancji z „Generate on-delay” są aktualizowane zgodnie z następującymi zasadami:

  • Wejście IN: Instrukcja „Generate on-delay” porównuje aktualne RLO z RLO z poprzedniego zapytania, które jest zapisane w parametrze IN w danych instancji. Jeśli instrukcja wykryje zmianę RLO z „0” na „1”, następuje dodatnie zbocze sygnału i rozpoczyna się pomiar czasu.
  • Wejście PT: Wartość na wejściu PT jest zapisywana w parametrze PT w danych instancji, gdy zmienia się zbocze na wejściu IN.
  • Wyjścia Q i ET: Aktualne wartości wyjść Q i ET są aktualizowane, gdy instrukcja jest wywoływana lub przy dostępie do Q lub ET.

Niebezpieczeństwa związane z używaniem timera IEC

Niebezpieczeństwo

Reinicializacja aktualnych wartości timera IEC podczas działania pomiaru czasu zakłóca funkcję timera IEC. Zmiana aktualnych wartości może prowadzić do niespójności między programem a rzeczywistym procesem, co może spowodować poważne uszkodzenia mienia i obrażenia osobowe.

Następujące funkcje mogą spowodować reinicializację aktualnych wartości:

  • Ładowanie bloku z reinicializacją
  • Ładowanie zrzutów jako aktualnych wartości
  • Kontrolowanie lub wymuszanie aktualnych wartości
  • Instrukcja „WRIT_DBL”

Przed wykonaniem tych funkcji, podejmij następujące środki ostrożności:

  • Upewnij się, że zakład jest w bezpiecznym stanie przed nadpisaniem aktualnych wartości.
  • Upewnij się, że timer IEC wygasł przed inicjalizacją jego aktualnych wartości.
  • Jeśli nadpisujesz aktualne wartości zrzutem, upewnij się, że zrzut został wykonany w czasie, gdy system był w bezpiecznym stanie.
  • Upewnij się, że program nie odczytuje ani nie zapisuje dotkniętych danych podczas transmisji.

Parametry instrukcji „Generate on-delay”

ParametryDeklaracjaTyp danychObszar pamięciDescription
S7-1200S7-1500S7-1200S7-1500
INWejścieBOOLBOOLI, Q, M, D, L lub stałaI, Q, M, D, L, P lub stałaWejście startowe
PTWejścieTIMETIME, LTIMEI, Q, M, D, L lub stałaI, Q, M, D, L, P lub stałaCzas trwania opóźnienia
QWyjścieBOOLBOOLI, Q, M, D, LI, Q, M, D, L, PWyjście, które jest ustawiane, gdy czas PT upłynie.
ETWyjścieTIMETIME, LTIMEI, Q, M, D, LI, Q, M, D, L, PAktualna wartość czasu

Diagram czasowy impulsów

Poniższa figura pokazuje diagram czasowy impulsów instrukcji „Generate on-delay”:

AD 4nXccYCFsl2pmocM2aD6B6qaBzWjJXGMZLJsiUfyop Ra4u82rJmKrLga6BX6ikx91mIJtW

Przykład działania instrukcji

Poniższy przykład pokazuje, jak działa instrukcja:

AD 4nXdFv670zcQFiRNsSCLgQ6GeIYWjpwhfWj3b reJO65HhlV37Ka8yHh0m GX7glX9c 47 a cRAQdr7IJ9bc2oBOx3jBS9xyDsqKv
Share
Recommended course!
Until 20.09.2022 rebate -15% on:

SIMATIC S7 in action

Sign up for the newsletter!
Author of entries
Tomasz Gilewski

Hello, my name is Tomasz Gilewski. I am the author of books on the S7-1200 controller and HMI panels (i.e. Siemens hardware). I have been programming exclusively on Siemens hardware and engineering tools for several years.

Leave a Comment

Select currency
Scroll to Top

Search on