S
ystemy sterowania PLC są systemami czasu rze-
czywistego, w wielu przypadkach są to systemy
typu Hard Real Time, co oznacza, że podczas ich
pracy muszą być spełnione określone uwarunkowania
czasowe, dotyczące przede wszystkim determinizmu
i powtarzalności czasów wykonania określonych czę-
ści programu. Są to często funkcje o znacznym stop-
niu złożoności obliczeniowej, których czas wykona-
nia w środowisku PLC jest długi, a jednocześnie jest
on parametrem krytycznym podczas pracy systemu
sterowania. Z kolei sprzęt i oprogramowanie zapew-
niające spełnienie wymagań czasu rzeczywistego jest
znacznie kosztowniejsze od wersji podstawowych
sprzętu i oprogramowania (np. cena oprogramowa-
nia soft PLC SIEMENS Win AC RTX zapewniającego
spełnienie wymagań czasu rzeczywistego jest o ok.
50 % wyższa niż wersji podstawowej BASIS).
Dokładny pomiar czasów cyklu i czasów odpowie-
dzi na poziomie sprzętu jest dość złożony i często wy-
maga znacznej ingerencji w strukturę sprzętową te-
stowanego urządzenia. W praktyce przemysłowej jest
zwykle niemożliwy do wykonania. Z kolei szacowania
czasów wykonania poszczególnych funkcji lub bloków
funkcyjnych podawane przez producentów sprzętu są
często niedokładne [5]. Dodatkowym, niefortunnym
zbiegiem okoliczności jest także to, że w przypadku
sterowników programowalnych największa złożoność
obliczeniowa zbiega się z największymi wymaganiami
czasowymi (sterowanie numeryczne i robotyka). Z te-
go względu poprawne oszacowanie oraz prosty po-
miar czasu wykonania programu lub jego krytycznych
części ma duże znaczenie praktyczne.
Z powyższych względów wydaje się uzasadnione
zaproponowanie metody pozwalającej na prosty pro-
gramowy pomiar czasu wykonania pojedynczych zło-
żonych funkcji numerycznych, mających kluczowe
znaczenie dla poprawności działania programu.
Oszacowanie czasu wykonania
programu użytkownika
w systemie PLC
Zagadnienia oszacowania czasów cyklu i czasów od-
powiedzi sterownika PLC były omawiane m.in. w pra-
cach: [4, 5, 6, 7, 8]. Aby zdefiniować pojęcie czasu cyklu
i czasu odpowiedzi, należy opisać poszczególne fazy
realizacji cyklu programowego sterownika PLC (np.
[4, 8]). Są one pokazane na rys.1. Na schemacie tym
zaznaczono również czasy: cyklu oraz odpowiedzi ste-
rownika. Zgodnie z rys. 1 mogą one być zdefiniowane
następująco:
Poprzez czas cyklu T
s
rozumiemy czas trwania jed-
nego cyklu programowego sterownika, zaczynają-
cego się inicjalizacją, a kończącego się wykonaniem
autodiagnostyki.
Poprzez czas odpowiedzi T
r
rozumiemy czas po-
między odczytem danego wejścia sterownika a za-
pisem sygnału sterującego na skojarzone z tym wej-
ściem wyjście.
Podczas konfiguracji i programowania PLC mamy
wpływ na wartości obu tych czasów, przy czym pod-
czas analizy uwarunkowań czasowych realizacji za-
dania sterowania istotniejsza jest znajomość czasu
odpowiedzi, gdyż to on decyduje o szybkości i deter-
minizmie czasowym wygenerowania sygnału steru-
jącego.
Programowy pomiar czasu realizacji
złożonych procedur obliczeniowych
w środowisku PLC
Krzysztof Oprzędkiewicz *
Dokładny pomiar czasów cyklu i odpowiedzi na poziomie sprzętu jest dość złożony
i często wymaga znacznej ingerencji w strukturę sprzętową testowanego urządze-
nia. W praktyce zwykle jest niemożliwy do wykonania. Największa złożoność obli-
czeniowa sterowników programowalnych zbiega się z największymi wymaganiami
czasowymi (sterowanie numeryczne i robotyka). Z tego względu poprawne oszaco-
wanie oraz prosty pomiar czasu wykonania programu lub jego krytycznych części
ma duże znaczenie praktyczne. Z tych względów wydaje się uzasadnione zapro-
ponowanie metody pozwalającej na prosty programowy pomiar czasu wykonania
pojedynczych złożonych funkcji numerycznych, mających kluczowe znaczenie dla
poprawności działania programu.
Pomiary Automatyka Robotyka 2/2006
*
dr inż.Krzysztof Oprzędkiewicz
– Instytut Automatyki, Wydział EAIiE,
Akademia Górniczo-Hutnicza
22
Podstawową miarą czasu odpowiedzi jest czas od-
powiedzi jednej pętli regulacyjnej T
o
. Jest regułą, że
czas T
o
podczas pracy sterownika nie jest wielkością
stałą, lecz waha się pomiędzy wartością minimalną
i maksymalną. Czas wykonania programu użytkow-
nika w systemie PLC jest częścią czasu cyklu i czasu
odpowiedzi. Może on być wyrażony następującą re-
lacją:
(1)
gdzie: T
u
oznacza czas wykonania programu użyt-
kownika lub jego części, T
instr
są czasami wykonania
poszczególnych instrukcji programu, F > 1,0 jest stałą
zależną od sprzętu. Czasy T
instr
są zależne od rodzaju
operacji i typu danych, na jakich są one wykonywane.
Bardziej szczegółowe dane na ten temat można zna-
leźć w pracach [5, 6, 7]. Generalnie, można stwierdzić,
że najdłuższy czas wykonania mają operacje na licz-
bach zmiennoprzecinkowych oraz funkcje trygono-
metryczne.
Programowa metoda pomiaru czasu
wykonania procedury
Proponowany w pracy algorytm pomiaru czasu wy-
konania funkcji obliczeniowej, zrealizowany z wy-
korzystaniem grafu sekwencji jest przedstawiony na
rys. 2.
Działanie algorytmu z rys. 2 jest następujące:
etap INIT: wykonywane jest ustawienie zmiennej
KONIEC:= FALSE
sygnał START uruchamia jako procesy współbieżne:
wykonanie testowanej procedury oraz odliczanie
czasu przez timer PT. Wartość zadaną czasu timera
należy ustawić długą (np. kilkadziesiąt minut). Za-
kończenie wykonywania testowanej procedury jest
sygnalizowane ustawieniem na TRUE zmiennej lo-
gicznej READY, która jest warunkiem zakończenia
sekwencji współbieżnej i przejścia do etapu ZAPIS_
CZASU
etap ZAPIS_CZASU: zapis bieżącej wartości czasu ti-
mera do zmiennej RECENT oraz wyznaczenie czasu
wykonania testu (pętla FOR zawierająca testowaną
procedurę wykonywaną N
max
razy) wg następują-
cej relacji: CZAS_WYN:= PREV – RECENT (gdzie
PREV oznacza wartość czasu z timera odczytaną
w poprzednim cyklu z dokładnością do 1 ms) oraz
przypisanie: PREV:= RECENT i ustawienie na TRUE
zmiennej logicznej KONIEC powodującej zakończe-
nie wykonywania testu.
Wykonywanie procedury należy zakończyć po ze-
braniu odpowiedniej liczby próbek i minięciu czasu
równego wartości zadanej czasu timera PT użytego
do testu.
Wyznaczony podczas testu CZAS_WYN jest nastę-
pująco powiązany z wartością czasu wykonywania
testowanej procedury:
CZAS_WYN = N
max
T
e
+ T
t
(2)
23
Pomiary Automatyka Robotyka 2/2006
Rys. 1. Cykl programowy sterownika PLC
u
instr
T
F
T
=
∑
INIT
ZAPIS
CZASU
Rys. 2. Algorytm pomiaru czasu wykonania procedury obli-
czeniowej
Pomiary Automatyka Robotyka 2/2006
24
co można zapisać w następującej równoważnej po-
staci:
(3)
gdzie N
max
oznacza liczbę wykonań pętli FOR, T
e
–
czas wykonania testowanej procedury, T
t
– czas nie-
zbędny do uruchomienia i wykonania timera PT. Jego
uwzględnienie jest niezbędne, gdyż „równoległe” z te-
stowaną funkcją działanie timera jest w przypadku
maszyny jednoprocesorowej tylko teoretycznym za-
łożeniem, niemożliwym do realizacji.
Badania doświadczalne
Do badań doświadczalnych wykorzystano środowi-
sko programowe TwinCAT (Beckhoff) [8] oferujące
zarówno zestaw narzędzi programowych zgodnych
z normą, jak też środowisko soft PLC i symulator. Za-
sadniczą ideą systemów sterowania soft PLC jest wy-
korzystanie interfejsów procesowych oraz narzędzi
programowych z klasycznych systemów PLC, przy
jednoczesnym zastąpieniu CPU sterownika realizowa-
nej sprzętowo przez jednostkę realizowaną wirtualnie
w środowisku sprzętowo-programowym komputera
klasy PC lub panelu wielofunkcyjnego, pod nadzorem
systemu operacyjnego WINDOWS. Koncepcja soft
PLC ma wiele niezaprzeczalnych zalet, do których na-
leżą m.in.: łatwość zintegrowania na jednej platformie
CPU i systemu SCADA, znacznie większe możliwości
obliczeniowe systemu soft PLC przy znacznie niższej
cenie sprzętu, łatwość implementacji na nowej plat-
formie oprogramowania napisanego dla systemu hard
PLC. System soft PLC jest realizowany zawsze w kon-
figuracji rozproszonej, komunikacja pomiędzy kom-
puterem i modułami wejść i wyjść jest realizowana
z wykorzystaniem sieci (PROFIBUS, ETHERNET). Naj-
większym problemem podczas stosowania systemów
soft PLC są trudności ze spełnieniem wymagań czasu
rzeczywistego, a w szczególności z zachowaniem de-
terminizmu czasowego podczas pracy systemu ste-
rowania. Trudność ta wiąże się z pracą systemu pod
nadzorem środowiska WINDOWS, które do niedawna
nie zapewniało spełnienia wymagań czasu rzeczywi-
stego. Spełnienie tych wymagań wymaga rozbudowy
środowiska WINDOWS o jądro czasu rzeczywistego,
co jednak podnosi koszty. Generalnie, środowiska
programowe soft PLC są dostępne w dwu wersjach.
Wersja podstawowa jest tańsza, ale nie zapewnia
w 100 proc. spełnienia wymagań czasu rzeczywistego
i jest przeznaczona do pracy w aplikacjach mniej kry-
tycznych pod względem czasowym (np. SIEMENS
WinAC Basis). Wersja zapewniająca spełnienie wyma-
gań czasu rzeczywistego jest droższa (np. SIEMENS
WinAC RTX), ale zapewnia spełnienie krytycznych
wymagań czasowych.
W badaniach doświadczalnych zastosowano opro-
gramowanie w wersji podstawowej, niemającej jądra
czasu rzeczywistego. Do badań wykorzystano wyłącz-
T
CZAS WYN
T
N
e
t
=
−
_
max
nie wirtualną jednostkę centralną, nie definiowano
układu wejść i wyjść, gdyż dla celów eksperymentu
było to zbędne. Wszystkie operacje arytmetyczne wy-
konano na liczbach zmiennoprzecinkowych.
Jako przykład do badań testowych rozważono
fragment rozwiązania zadania kinematyki prostej dla
robota przemysłowego o 5 stopniach swobody ([2]
s. 109). Zadanie takie jest rozwiązywane numerycznie
podczas wyznaczania sygnału sterującego dla robota
i musi być wykonane ze spełnieniem określonych re-
żimów czasowych.
Konwersja układu współrzędnych napędowych ro-
bota do równoważnej postaci układu współrzędnych
konfiguracyjnych wymaga rozwiązania następującego
układu równań:
gdzie: q oznacza współrzędne konfigurac yjne,
A – współrzędne napędowe, a, b, k, l, F – parametry
geometryczne manipulatora.
Rozwiązanie równania (4) zostało dokonane w funk-
cji definiowanej przez użytkownika, której argumen-
tami wejściowymi były geometryczne parametry ma-
nipulatora oraz tablica współrzędnych napędowych,
a argumentem wyjściowym była tablica współrzęd-
nych konfiguracyjnych. Funkcja ta dla przykładowych
danych liczbowych została 250 tys. razy wykonana
w pętli FOR…DO, przy czym eksperyment wykonano
1000 razy. Wszystkie operacje arytmetyczne wyko-
nano na danych typu rzeczywistego (REAL). Do eks-
perymentu wykorzystano timer PT. CZAS_WYN mie-
rzono z dokładnością 1 ms. Na podstawie wyników
doświadczalnych oraz relacji (3) można wyznaczyć
zakres czasów wykonania testowanej funkcji. Są one
pokazane w postaci histogramu na rys. 3.
(4)
Rys. 3. Liczba wystąpień poszczególnych wartości czasu wyko-
nania testowej funkcji
4,75 4,76 4,76 4,77 4.78 4,78 4,79 4,8 4,81
liczba wystąpień
czas wykonania funkcji (mikrosekundy)
Pomiary Automatyka Robotyka 2/2006
25
W rozważanym wypadku czas wykonania timera T
t
w relacji (3) może być pominięty, gdyż jest on znacz-
nie krótszy od czasu wynikowego CZAS_WYN.
Liczby wystąpień poszczególnych wartości czasów
wykonania procedury są opisane rozkładem normal-
nym, podobnie, jak wartości czasów cyklu sterownika
[5]. Parametry tego rozkładu zostały oszacowane na
podstawie histogramu z rys. 3 i są podane w tabeli 1.
Tabela 1. Parametry rozkładu normalnego opisującego
rozkład wartości czasów wykonania procedury
Parametr
Wartość
Wartość średnia µ
55,5556
Odchylenie standardowe s
168,6368
Tabela 2. Czasy wykonania testowanej funkcji zmierzone
podczas eksperymentu
Czas wykonania
Wartość (µs)
minimalny
4,748
najbardziej prawdopodobny
4,764
maksymalny
4,812
Na podstawie wyników badań doświadczalnych
można stwierdzić, że w rozważanym przykładzie czas
wykonania testowanej funkcji w żadnym wypadku nie
przekroczył 5 µs przy różnicy pomiędzy jego warto-
ścią minimalną a maksymalną nieprzekraczającej 2 %.
Wynik ten należy uznać za bardzo korzystny z punktu
widzenia spełnienia wymagań czasu rzeczywistego.
Uwagi końcowe
Proponowana metoda pozwala na proste wyznacze-
nie wartości czasów wykonania złożonych funkcji
obliczeniowych, przy czym jedynym ogranicze-
niem jest tu konieczność użycia Grafu Sekwencji
do budowy programu testującego.
Omawiany algorytm jest w pełni niezależny od po-
miaru czasu cyklu sterownika, co znacznie uprasz-
cza jego użycie, gdyż dostęp do tego parametru nie
jest możliwy na każdym sprzęcie.
Proponowana metoda pozwala na testowanie wy-
branych, krytycznych pod względem czasowym
fragmentów programu, co pozwala na postawienie
tezy, że pomimo prostoty cechuje się ona dużą pre-
cyzją, gdyż pozwala np. ominąć procedury obsługi
wejść i wyjść wykonywane podczas pracy całego
programu, znacznie wydłużające w sposób losowy
czas jego wykonania.
Bibliografia
1. S.
Benett,
Real – Time Computer Control. An Intro-
duction, Prentice Hall Europe, 1994.
2. J.J
.
Craig,
Wprowadzenie do robotyki. Mechanika
i sterowanie, WNT, Warszawa, 1993.
3. W.
Grega,
Sterowanie cyfrowe w czasie rzeczywis-
tym, Wyd. Wydz. EAIiE AGH, 1999.
4. T. Legierski i inni, Programowanie sterowników
PLC, Wyd. Prac. Komp. J. Skalmierski, Gliwice,
1998.
5. I. Oprzędkiewicz, Problemy oszacowania pa-
rametrów statystycznych rozkładów czasów
cyklu sterowników PLC, Przegląd Mechaniczny,
PM-116/05 (w druku).
6. K. Oprzędkiewicz, Uwarunkowania czasowe
realizacji specjalnych algorytmów sterowania
w systemach PLC, Pomiary, Automatyka, Robotyka
(PAR), nr 4, s. 48 – 52, 2003.
7. K. Oprzędkiewicz, Spełnienie wymagań czasu
rzeczywistego w środowisku sprzętowo-progra-
mowym soft PLC podczas realizacji predyktora
Smitha, Informatyka Teoretyczna i Stosowana,
nr 7, s. 49 – 58, 2004.
8. R. Tadeusiewicz, G.G. Piwniak, W.W. Tkaczow,
W.G. Szaruda, K. Oprzędkiewicz, Modelowanie
komputerowe i obliczenia współczesnych ukła-
dów automatyzacji, Wyd. AGH, 2004.
9. Strona firmy Beckhoff: http://www.beckhoff.
com
REKLAMA