Maciej Miękus
Janusz Piekarz
Układ sterowania ogniw słonecznych
Cel ćwiczenia
Celem ćwiczenia było stworzenie aplikacji w środowisku GENIE 3.0 sterującej nadążnym systemem ogniw słonecznych. Jako sprzęt pośredniczący między komputerem a obiektem sterowania wykorzystano moduły DAQ rodziny ADAM4000.
Opis stanowiska laboratoryjnego
Schemat przedstawiający sposób sterowania silnikami
Odczyty sygnałów z obiektu :
wartość ośw. padającego z góry ADAM4018 (adres01) kanał :0
wartość ośw. padającego z dołu ADAM4018 (adres01) kanał :1
wartość ośw. padającego z lewej ADAM4018 (adres01) kanał :2
wartość ośw. padającego z prawej ADAM4018 (adres01) kanał :3
pozycja w pionie ADAM4018 (adres01) kanał : 4
pozycja w poziomie ADAM4018 (adres01) kanał : 5
górny wył. krańcowy ADAM4050 (adres02) bit :3
dolny wył. krańcowy ADAM4050 (adres02) bit :2
lewy wył. krańcowy ADAM4050 (adres02) bit :1
prawy wył. krańcowy ADAM4050 (adres02) bit :0
Ustawienie wyjść modułu ADAM4060 (adres 02) przy sterowaniu silnikami
przek. ruch |
R1 (bit 0) |
R1 (bit 1) |
R1 (bit 2) |
R1 (bit 3) |
Do góry |
0 |
1 |
0 |
1 |
W dół |
0 |
1 |
1 |
0 |
W lewo |
1 |
0 |
1 |
0 |
W prawo |
1 |
0 |
0 |
1 |
Opis stworzonej aplikacji
widok okna „Display Designer”
widok okna „Task Designer”
Basic script
Sub SCR1()
dim wylg as TAG
dim wyld as TAG
dim wyll as TAG
dim wylp as TAG
dim R1 as TAG
dim R2 as TAG
dim R3 as TAG
dim R4 as TAG
dim gora as TAG
dim dol as TAG
dim lewo as TAG
dim prawo as TAG
dim zatrzymaj as TAG
set wylg = GetTag("Task1","DI1")
set wyld = GetTag("Task1","DI2")
set wyll = GetTag("Task1","DI3")
set wylp = GetTag("Task1","DI4")
set R1 = GetTag("VirTask","R1")
set R2 = GetTag("VirTask","R2")
set R3 = GetTag("VirTask","R3")
set R4 = GetTag("VirTask","R4")
set gora = GetTag("Disp1","BBTN1")
set dol = GetTag("Disp1","BBTN2")
set lewo = GetTag("Disp1","BBTN3")
set prawo = GetTag("Disp1","BBTN4")
set zatrzymaj = GetTag("Disp1","BBTN5")
R1.value=0
R2.value=0
R3.value=0
R4.value=0
if gora.value=1 then
if wylg.value=1 then
R1.value=0
R2.value=1
R3.value=0
R4.value=1
end if
end if
if dol.value=1 then
if wyld.value=1 then
R1.value=0
R2.value=1
R3.value=1
R4.value=0
end if
end if
if lewo.value=1 then
if wyll.value=1 then
R1.value=1
R2.value=0
R3.value=1
R4.value=0
end if
end if
if prawo.value=1 then
if wylp.value=1 then
R1.value=1
R2.value=0
R3.value=0
R4.value=1
end if
end if
if zatrzymaj.value=1 then
R1.value=0
R2.value=0
R3.value=0
R4.value=0
end if
End Sub
Wnioski
Aplikacja stworzona przez nas umożliwia ręczne sterowanie układem fotoogniw. W oknie „Display Designer” znajdują się cztery sygnalizatory wyłączników krańcowych, czujniki natężenia światła, wskaźniki obrazujące aktualne położenie fotoogniw i przyciski sterujące. Wszystkie te elementy połączone są z odpowiadającymi im wejściami cyfrowymi lub analogowymi umieszczonymi w oknie „Task Designer”.
Sterowanie silnikami odbywa się poprzez wyjścia cyfrowe i połączone z nimi wirtualne tagi. W zależności od stanu zero - jeden na poszczególnych tagach uruchamiany jest jeden z dwóch silników. W oknie „Task Designer” znajduje się element Baisc Script. Odpowiedzialny jest on za ustawienie wirtualnych tagów i za ich pośrednictwem wyjść cyfrowych w odpowiedni stan w zależności od wciśniętego przycisku sterującego na panelu sterowania.
Stworzona przez nas aplikacja działała prawidłowo. W trakcie wykonywania ćwiczenia nie pojawiły się żadne istotne przeszkody i problemy.