dyplom ii VEN2ENGYUSO3MNDGMYQJUTVUWGRBL7MDHAGCRHY


7. Realizacja programowa nadzoru systemu bezprzerwowego zasilania.

7.1 Algorytm główny programu

Poniższy algorytm0x08 graphic
0x08 graphic
0x08 graphic
przedstawia zasadę działania oprogramowania. Po uruchomieniu układu lub jego restarcie ustawiane są parametry początkowe. Są to parametry założone przez programistę i tylko część z nich może zostać zmieniona przez obsługę urządzenia. Szczegółowy opis zostanie przedstawiony w dalszej części opracowania. Następnie z pamięci EEPROM pobrane zostają wartości parametrów elektrycznych. Dane te zmieniane są przy użyciu klawiatury umieszczonej na przednim panelu obudowy systemu bezprzerwowego zasilania. Następną operacją jest sprawdzenie klawiatury lokalnej. W przypadku stwierdzenia wciśniętego przycisku program przechodzi do wykonania przypisanej operacji. Wszystkie wielkości analogowe, które definiowane są przez obsługę, sprawdzane są cyklicznie. W przypadku stwierdzenia przekroczenia założonej wartości maksymalnej danego parametru, procesor wysyła sygnał sterujący wyłączeniem zagrożonego układu, zapala diodę LED informującą o awarii urządzenia, a na wyświetlaczu pokazywany jest kod uszkodzenia. Algorytm główny programu przedstawiony jest na rys. 7.1-1.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Rys. 7.1-1 Algorytm główny programu

7.2 Kod źródłowy programu i opis zasady działania.

7.2.1. Deklaracja stałych i zmiennych występujących w programie.

Poniżej przedstawiono deklarację stałych i zmiennych wewnętrznej pamięci RAM.

org 0h

org 0bh

kursor equ 08h

bufor equ 09h ;bufor wykorzystywaby w obliczeniach

tryb equ 10h ;bajt wskazujacy tryb normal/serwis

stanr equ 11h ;bufor przetwornika AC

ress equ 14h ;wynik konwersji A/A - setki

rest equ 13h ;wynik konwersji A/C - dziesiątki

wejac equ 15h ;numer wejścia analogowego

buf2 equ 16h ;bufor ress

npar equ 28h ;numer parametru przy zapisie i

;odczycie z EEPROM

val equ 20h ;wartosc wpisywana do EEPROM

pkl equ 25h ;mnoznik powtorzen petli przy

;odczycie klawiatury

wmax equ 26h ;wartosc max wyswietlacza

opozk2 equ 27h ;mnoznik2 opoznienia wyswietlania

opozk equ 29h ;opoznienie klawiatury

wys1 equ 54h ;wartość wyświetlacza nr 1

wys2 equ 2ch ;wartość wyświetlacza nr 2

wys equ 2dh ;cal liczba wyswietlona

hbajtad equ 2eh ;starsze bity konwersji A/C

lbajtad equ 2fh ;młodsze nity konwersji A/C

wys3 equ 31h ;jednosci

wys4 equ 32h ;dziesiatki

nrwys equ 35h ;nr wyswietlacza

wynik equ 34h ;<100

wys5 equ 33h ;setki

przen equ 36h ;przeniesienie

wyniks equ 37h ;setki

wyniksmax equ 38h ;max ilosc setek

powt equ 39h ;powtorzenia przy odzczycie z

;klawiatury

numbyt equ 3ah ;numer bitu zapisywanego i

;odzczytywanego z EEPROM

subadres equ 3bh ;subadres EEPROM

wmin equ 3dh ;min wartosc wyniku

opozw equ 3fh ;opoznienie wyswietlania

i2 equ 40h ;wartość zadana

ims equ 42h ;wartość mierzona (setki)

imd equ 43h ;wartość mierzona (dziesiątki)

izs equ 4ah ;wartość zadana (setki)

izd equ 4bh ;wartość mierzona (dziesiątki)

iz equ 4ch ;wartość zadana

im equ 4dh ;wartość mierzona

znake1 equ 24h ;bajt pomocniczy znak różnicy iz -im

zne equ znake1.0;bit pomocniczy znaku różnicy iż - im

spo equ 23h ;sposób obliczenia

spo equ sposob.0;bit pomocniczy

eset equ 4eh ;wartość uchybu (setki)

ed equ 4dh ;wartość uchybu (dziesiątki)

tc equ 4fh ;stała całkowania

de equ 50h ;przyrost wartości uchybu wielk.

;mierzonej

eold equ 51h ;poprzednia wart. uchybu

znakde equ 21h ;znak przyrostu wart. uchybu

znde equ znakde.1 ;bit pomocniczy

;rejestr ADC

adcon equ 0c5h

adch equ 0c6h

;rejestry I2C

s1adr equ 0dbh ;rej. adresu (slave)

s1dat equ 0dah ;rej. danych

s1sta equ 0d9h ;rej. stanu

s1con equ 0d8h

;rejestry PWM

pwmp equ 0feh

pwm0 equ 0fch

pwm1 equ 0fdh

;bity I2C

aa equ s1con.2

si equ s1con.3

sto equ s1con.4

sta equ s1con.5

;rejestry timera

ien0 equ 0a8h

ien1 equ 0e8h

ip0 equ 0b8h

ip1 equ 0f8h

p4 equ 0c0h

7.2.2 Ustawienie parametrów początkowych

Po każdym włączeniu lub restarcie procesora, program ustawia parametry początkowe. Następnie pobiera dane zapisane w pamięci EEPROM.

ljmp restart

org 100h

restart:

mov wys,#00h ;ustawianie parametrow poczatkowych

mov kursor,#07h

mov tryb,#0 ;ustawienie trybu pracy

mov wyniks,#00h ;zeruj liczbę dziesiątek

mov wejac,#1 ;zacznij konwersję od wej ADC1

mov opozk,#02h ;ustawienie czasu opóźnienia klawiatury

mov opozw,#005h ;ustawienie czasu opóźnienia wyświetlacza

mov wynik,#00h ;ustawienie wartości pocz. „wyniku” = 0

mov wmin,#00h ;wartość minimalna = 0

mov wys1,#00h ;wyświetlacz nr 1 - wstaw 0

mov wys10,#00

mov opozk2,#01h ;mnożnik opóźnienia klawiatury

mov wmax,#064h ;wartość max młodszego bajtu liczby = 100

mov wyniksmax,#0Ah ;wartość max starszego bajtu liczby = 10

mov wyniksmin,#00h ;wartość minimalna starszego bajtu = 0

mov pkl,#03h

setb p1.6 ;ustaw wyjścia IIC

setb p1.7

mov s1con,#0c1h ;ustaw rejestry IIC

mov s1adr,#00h

mov numbyt,#02h

mov subadres,#10h ;adres początkowy odczytu z EEPROM

call odczyt ;odczytanie danych z pamięci EEPROM

mov izs,5ah

mov izd,5bh

mov pwm1,05fh ;ustawienie początkowe PWM

mov pwmp,#0ffh

mov de,#0 ;uchyb początkowy = 0

mov eold,#0 ;uchyb n-1 początkowy = 0

mov tl1,#37h ;ustawienie licznika

mov th1,#50h

mov tl0,#37h

mov th0,#50h

setb et0

setb tr0

setb ea

mov ien0,#10001010b

mov ien1,#00h

mov ip0,#00000010b

mov tmod,#00010001b

:

7.2.3 Blok dekodowania numeru wyświetlacza oraz liczby (informacji podawanej na wyświetlaczu).

Poszczególne segmenty wyświetlacza załączane są sekwencyjnie tzn w danej chwili świeci tylko jeden z nich. Aby uniknąć efektu migotania każdy wyświetlaczy załączany jest powtórnie w czasie krótszym niż 20ms.

Podprogram sterujący wyświetlaczami zamieszczono poniżej.

w1:

mov nrwys,r1 ;wpisanie numeru wyświetlacza

mov a,nrwys

swap a

add a,wys1

mov wys,a

mov a,#12h

mov r0,a

mov a,wys

movx @r0,a ;wysłanie informacji do

;wyświtetlacza

djnz opozw,w1 ;zliczanie - wprowadzenie

;opóźnienia

mov opozw,#005h

inc r1

mov a,#6

cjne r1,a,w1 ;opuszczenie pętli gdy r1>5

7.2.4 Blok obsługi klawiatury

Klawiatura sprawdzana jest sekwencyjnie. W momencie wciśnięcia przycisku dane wyjście portu P4 zwierane jest do masy co powoduje wystąpienie na nim logicznego 0. Fakt ten wykrywany jest przez procesor. Następnie procesor powtarza czynność sprawdzenia kilkakrotnie, aby upewnić się, że nie wystąpiło zakłócenie. Następnie występuje skok do instrukcji przypisanej do danego przycisku. Podprogram „klawp” sterujący klawiaturą umieszczono poniżej.

klawp:

setb p4.7 ;ustawia stan wysoki portu 4.7

nop

djnz opozk,klawp

mov opozk,#0ffh

djnz opozk2,klawp ;opóźnienie

mov opozk,#02h

mov opozk2,#05h

jb p4.7,klzmn ;jeśli p4.7 = 0 skocz „klzmn”

jnb p4.5,trserw ;jeśli p4.5 = 1 skocz „trserw”

inc wys10 ;zwiększ wartość wys10

mov a,wys10

mov b,#0ah

div ab

mov wys1,a

cjne a,#0ah,skok1 ;wartość max. „wys1” = 09

mov wys1,#00h

mov wys10,#00h

ljmp start

skok1:

ljmp start

trserw:

setb p1.1 ;zmiana trybu serwis/praca

mov a,tryb

cpl a

mov tryb,a

trserw1:

mov p4,#0ffh

nop

mov a,p4

jnb acc.5,trserw1

klzmn:

setb p4.3

nop

djnz opozk2,klzmn

jb p4.3,klaw ;jeśli p4.3 = 0 skok do „klaw”

mov opozk,#0ffh

ljmp zmniejsz

klaw:

;sprawdza wcisniecie klawisza

;zwiekszania wyniku o jeden

mov a,#0ffh

djnz 027h,klaw

jb p4.4,klaw2

ljmp powieksz ;jezeli klawisz wcisniety to skok

;do zwiekszenia wartosci o jeden

klaw2:

setb p4.6 ;przycisk zapisu do pamieci EEPROM jb p4.6,klaw3

djnz powt,klaw2

mov powt,#0fh

klawzap:

mov a,wys1 ;ustalenie subadresu zapisu

mov b,#02h

mul ab

mov subadres,a

mov val,wynik

acall zapis

inc subadres

mov val,wyniks

acall zapis

klaw3:

setb p4.5 ;przycisk odczytu z pamieci EEPROM

jb p4.5,powrot

djnz powt,klaw3

mov powt,#0fh

call odczyt

mov a,tryb

cjne a,#00h,kl1

sjmp powrot

kl1:

mov b,#02h

mov a,wys1

mul ab

add a,#05ah

mov r0,a

mov wynik,@r0

inc r0

mov wyniks,@r0

powrot:

mov a,tryb

cjne a,#00h,powrot1

ljmp przetworniki

powrot1:

powrot3:

powrot2:

ljmp start

zmniejsz:

djnz opozk,zmniejsz ;zmniejszenie wartości o 1

nop

mov a,wynik

cjne a,#00h,zmniejsz1

mov wynik,#063h

mov a,wyniks

cjne a,#00h,zmniejsz2

mov wyniks,#09h

sjmp skok

zmniejsz1:

dec wynik

sjmp skok

zmniejsz2:

dec wyniks

sjmp skok

powieksz: ;zwieksza liczbe o jeden

nop

djnz opozk,powieksz

mov opozk,#0ffh

inc wynik

mov a,wynik

cjne a,wmax,skok ;zeruje liczbe jesli

;przekroczy 99

mov wynik,#00h

inc wyniks

mov a,wyniks

cjne a,wyniksmax,skok

mov wyniks,#00h

7.2.5 Protokół komunikacji procesora z pamięcią EEPROM przy

zapisie i odczycie danych

Protokół komunikacji mikroprocesora z pamięcią EEPROM wykorzystuje interfejs, w jaki wyposażony jest procesor 80552. Ten format wymiany informacji z otoczeniem stosowany jest przez wiele specjalizowanych układów scalonych. Zastosowanie ich do współpracy z procesorem nie wyposażonym w taki interfejs wymaga pisania specjalnych procedur obsługi IIC. W przypadku tego typu mikrokontrolera problem ten jest znacznie uproszczony. Może on być zaprogramowany bardzo elastycznie. Pełni rolę nadrzędną (w komunikacji z pamięcią) i podrzędną (w przypadku wywołania przez komputer zewnętrzny).

Podprogram zapisu do pamięci zaczyna się od wywołania instrukcji „zapis” po wciśnięciu przycisku dostępnym na przednim panelu sterownia.

zapis: ;protokol zapisu do EEPROMeep: mov s1con,#0c1h ;wpisanie adresu EEPROMeeprom: setb sta ;ustawienie bitu startueep0: jnb si,eep0 mov a,s1sta cjne a,#10h,eep8 ;jeśli błąd #10 to skok do „eep8”

sjmp eep7

eep8:

cjne a,#08h,eerr

eep7:

mov s1dat,#0a0h

clr sto

clr si

eep1:

jnb si,eep1

mov a,s1sta

cjne a,#18h,eep

mov a,subadres ;subadres

mov s1dat,a

clr sta

clr sto

clr si

eep2:

jnb si,eep2

mov a,s1sta

cjne a,#28h,eep

mov s1dat,val

clr si

clr sto

clr sta

eep3:

jnb si,eep3

mov a,s1sta

cjne a,#28h,eerr

eee:

clr sta

clr si

setb sto

sjmp eepkon

eerr:

clr sta

clr si

setb sto

eepkon:

ret

Program jest zabezpieczony na wypadek wystąpienia zakłócenia podczas transmisji danych. W momencie wystąpienia przerwania wykonywana jest instrukcja zależna od stanu. Tabela poniżej przedstawia kody stanu i sterowania interfejsem IIC w trybie nadawania.

Tabela 7.2-1 Kody stanu interfejsu i szyny w trybie zapisu

0x08 graphic

odczyt: ;protokół odczytu z EEPROM

readee:

nop

read:

mov s1con,#0c1h

mov s1adr,#00h

setb p1.6

setb p1.7

mov r0,#5ah

setb sta

read9:

jnb si,read9

mov a,s1sta

cjne a,#08h,rerr1

mov s1dat,#0a0h

clr sto

clr si

read5:

jnb si,read5

mov a,s1sta

cjne a,#18h,rerr1

mov s1dat,#00h

clr sta

clr sto

clr si

sjmp read6

rerr1:

ljmp rerr

read6:

jnb si,read6

mov a,s1sta

cjne a,#28h,rerr

clr sto

clr si

setb sta

read7:

jnb si,read7

mov a,s1sta

cjne a,#10h,rerr

mov s1dat,#0a1h

clr sto

clr si

read1:

jnb si,read1

mov a,s1sta

cjne a,#40h,rerr

clr si

clr sto

clr sta

setb aa

read2:

jnb si,read2

mov a,s1sta

cjne a,#50h,rerr

mov @r0,s1dat

inc r0

read8:

clr si

clr sto

clr sta

setb aa

read3:

jnb si,read3

mov a,s1sta

cjne a,#50h,rerr

mov @r0,s1dat

inc r0

cjne r0,#7dh,read8

clr si

clr sto

clr sta

clr aa

read4:

jnb si,read4

mov a,s1sta

cjne a,#58h,rerr

mov @r0,s1dat

clr sta

clr si

setb sto

sjmp readk

rerr:

clr sta

clr si

setb sto

sjmp readk

readp:

ljmp read

readk:

ret

Kody stanu i sterowanie interfejsem IIC w trybie odbioru przedstwaiono w tabeli 7.2-2

Tabela 7.2-2 Kody stanu interfejsu IIC w trybie odbioru

0x08 graphic

7.2.6 Podprogram odczytujący sygnały z wejść analogowych.

Procesor 80552 wyposażony jest w przetwornik analogowo-cyfrowy o 10 bitowej rozdzielczości. Zakres konwersji określa dodatnie i ujemne napięcie odniesienia, ich wartości muszą mieścić się w zakresie +5V- 0V. Konwersja trwa 50 cykli co przy użytym zegarze 12MHz daje czas 50ms. Dzięki multiplekserowi analogowemu na wejście przetwornika można podać wybrane wejście portu 5.

W poniższym programie korzystanie z przetwornika przebiega w sposób następujący. Najpierw zerowane są bity b4 i b3 rejestru ADCON. Następnie poprzez ustawienie bitów b2, b1, b0 wybierane jest wejście, z którego sygnał poddany zostanie konwersji. Przy pomocy przesunięcia bitów w lewo formuje się 10 bitową liczbę złożoną bitów ADCH i pozostałych 2 bitów ADCON. Na koniec zerowany jest bit b4 co powoduje, że przetwornik gotowy jest do następnej konwersji. Program przechodzi do przetworzenia sygnału pochodzącego z następnego wejścia.

przetworniki:

adc:

adc1:

mov r0,wejac ;numer wejścia analogowego z ;którego sygnał poddany zostanie ;konwersji

anl adcon,#11111000b

ad1:

inc adcon

djnz r0,ad1

anl adcon,#11011111b

konw1:

anl adcon,#11101111b

orl adcon,#00001000b

konw2:

clr c

mov a,adcon

jnb acc.4,konw2

mov hbajtad,#0

mov lbajtad,adch

mov r1,#2

konw3:

clr c

mov a,lbajtad

rlc a

mov lbajtad,a

mov a,hbajtad

rlc a

mov hbajtad,a

djnz r1,konw3

mov a,lbajtad

mov a,adcon

anl a,#11000000b

rl a

rl a

orl a,lbajtad

mov lbajtad,a

mov r1,#0ffh

konw4:

clr c

inc r1

mov a,lbajtad

subb a,#100

mov lbajtad,a

mov a,hbajtad

subb a,#0

mov hbajtad,a

jnc konw4 ;wykonuje petle do moment wyzerowania

mov a,lbajtad ;wskaznika przeniesienia

add a,#100

mov lbajtad,a

mov a,r1 ;r1 = ilosc petli = ilosci setek

konw5:

mov ress,a ;wynik konwersji (setki)

konw6:

mov rest,lbajtad ;wynik konwersji (dziesiątki)

zabezpiecz:

mov a,adcon

clr acc.4

mov adcon,a

mov a,wejac

mov b,#2

mul ab

add a,#5ah

mov r0,a

mov a,@r0

mov bufor,a

clr c

inc r0

mov a,@r0

subb a,ress ;czy wielkość mierzona przekracza

;max.

jc wlzab

cjne a,#00h,zab1

clr c

mov a,bufor ;jeśli wielkość mierz. > max to

;włącz zabezpieczenie

subb a,rest

jc wlzab

zab1:

clr c

mov a,wejac

cjne a,wys1,zab2

cjne a,#07h,zab3

mov wejac,#01h

sjmp zab4

zab3:

inc wejac

zab4:

cjne a,#2,zab41

setb p1.5

sjmp zab42

zab41:

clr p1.5

zab42:

mov wyniks,ress

mov wynik,rest

ljmp powrot1

zab2:

mov a,wejac

cjne a,#7,zab5

mov wejac,#1

ljmp powrot1

zab5:

inc wejac

ljmp powrot1

wlzab:

clr c

mov wynik,#0

mov wyniks,#0

mov tryb,#0ffh

mov wys1,wejac

clr P1.1

7.2.7 Algorytm ładowania baterii akumulatorów

Do ładowania stosuje się tylko prąd stały. Normalnym sposobem ładowania jest ładowanie prądem o stałym (niezmiennym) natężeniu. Normalne natężenie prądu ładowania akumulatorów Centra wynosi C/4 dla normalnooporowych i C/5 dla niskooporowych. W czase ładowania wzrasta napięcie poszczególnych ogniw od wartości ok. 1,4V do ok. 1,8V. Przy ładowaniu na mrozie napięcie ogniw dochodzi do wartości 2,2V.

Ogniwa do ładowania łączy się szeregowo, tzn. dodatni biegun jednego ogniwa łączy się z ujemnym biegunem następnego ogniwa. Zewnętrzne zaciski tak utworzonej baterii łączy się z zaciskami źródła prądu.

Liczba ogniw szeregowo połączonych do ładowania wynika z podzielenia napięcia źródła prądu przez napięcie końcowe ładowania pojedynczego ogniwa.

Współpraca między źródłem ładowania, baterią akumulatorową i odbiornikami energii elektrycznej stanowi o rodzajach pracy baterii. Rozróżniamy zasadnicze rodzaje:

0x08 graphic

Rys.7.2- 2 Przykładowa charakterystyka ładowania akumulatorów

kwasowych i zasadowych. Wartości w nawiasach dla

kwasowych.

Poniżej przedstawiono algorytm ładowania baterii.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Rys 7.2.- 3 Algorytm ładowania baterii kwasowych i zasadowych

7.2.8 Regulator PI w procesie ładowania baterii kondensatorów

W procesie ładowania akumulatorów wykorzystano program odpowiadający regulatorowi proporcjonalno -całkującemu. Sygnał wyjściowy

tego typu regulatora jest proporcjonalny do sumy sygnału uchybu i całki tego sygnału. Zadaniem regulatora PI jest zapewnienie stabilizacji wielkości regulowanej, osiągnięcie wysokiej dobroci stanów dynamicznych i korekcji w układzie regulacji prądu.

W rozwiązaniu tym zastosowano algorytm opisany zależnością:

ΔY = ΔRP + ΔRI

gdzie: ΔY - przyrost wartości sygnału nastawiającego

ΔRP - przyrost wartości składowej proporcjonalnej

ΔRI - przyrost wartości składowej całkowej

Składowa RP jest proporcjonalna do przyrostu uchybu. Człon ten zapewnia szybką (skokową) zmianę sygnału nastawiającego przy każdej zmianie uchybu dzięki czemu skraca się czas regulacji. Składowa całkowa sygnału wyjściowego regulatora PI jest natomiast proporcjonalna do całki uchybu, dzięki czemu jej wartość zależy nie tylko od wartości uchybu, ale także od kształtu jego przebiegu. Człon całkujący regulatora PI zapewnia dużą dokładność regulacji (sprowadza uchyb do zera). Przez zmianę parametrów regulatora można dopasować go do współpracy z określonym układem regulacji. Regulator typu PI jest regulatorem standardowym stosowanym w wielu układach regulacji.

Wynikiem obliczeń jest ciąg przyrostów wartości sygnału nastawiającego w kolejnych przedziałach czasu. Bieżącą wartość sygnału otrzymuje się przez sumowanie bieżącego przyrostu z poprzednią wartością bezwzględną. Algorytm prędkościowy przeznaczony jest do sterowania procesów o dużych stałych czasowych.

START

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

KONIEC

Rys. 7.2-4 Algorytm regulatora PI

Zmienne występujące w opisie procedury „regulator”:

Kp - wzmocnienie części proporcjonalnej,

Kc - wzmocnienie części całkującej,

Tc - stała całkowania,

To - okres próbkowania,

RP - wartość składowej proporcjonalnej,

ΔRP - przyrost wartości składowej proporcjonalnej,

RI - wartość składowej całkującej,

ΔRI - przyrost wartości składowej całkującej,

e - wrtość uchybu wielkości mierzonej,

Δe - przyrost wartości uchybu wielkości mierzonej,

e n-1 - poprzednia wartość uchybu wielkości mierzonej.

regulacja:

regc:

inc tc

mov a,tc

cjne a,#03fh,we

mov tc,#1

sjmp we16

push acc

mov tl0,#37h

mov tl1,#50h

we:

clr spo ;obliczenie uchybu

mov a,izs

clr c

subb a,ims

cjne a,#0,we1

setb spo

mov a,izd

subb a,imd

jc we15

mov ed,a

sjmp we1

we15:

clr c

mov a,imd

subb a,izd

mov ed,a

setb c

we1:

jc we2

clr zne

sjmp we3

we2:

setb zne

we3:

jb spo,we4

we5:

mov a,izs

mov b,#10

mul ab

mov r0,a

mov a,izd

mov b,#10

div ab

add a,r0

mov r0,a

mov a,ims

mov b,#10

mul ab

mov r1,a

mov a,imd

mov b,#10

div ab

add a,r1

mov r1,a

mov a,r0

clr c

subb a,r1

jc we51

mov r0,a

cjne a,#0,we52

sjmp konreg

we52:

sjmp we20

we51:

xrl a,#0ffh

mov r0,a

setb zne

sjmp we10

we11:

setb zne

sjmp we10

we16:

ljmp konreg

we4:

mov a,ed

mov b,#03h

div ab

mov r0,a

mov a,b

mov b,#1

div ab

add a,r0

mov r0,a

cjne a,#0,we10

sjmp konreg

we10:

mov a,ed

clr c

subb a,eold

jc we35

mov de,a

mov a,r0

add a,de

mov r0,a

mov eold,ed

sjmp we20

we35:

mov a,eold

subb a,ed

clr c

setb znde

mov de,a

mov a,r0

subb a,de

mov r0,a

mov eold,ed

clr c

we20:

jb zne,we8

we6:

mov a,pwm1

cjne a,#0,we7

sjmp konreg

we7:

dec pwm1

djnz r0,we6

sjmp konreg

we8:

we18:

mov a,pwm1

cjne a,#0ffh,we9

sjmp konreg

we9:

inc pwm1

mov a,r0 ;nowa wartość zadana

cjne a,#0,we91

sjmp konreg

we91:

djnz r0,we18

sjmp konreg

konreg:

pop acc

setb tr0

reti

end

8. Badanie układu

8.1 Badanie parametrów statycznych przetworników I/U

W niniejszej pracy dyplomowej zastosowano przetworniki prądowe zbudowane na bazie transformatora TS2/15M. Usunięto z nich uzwojenie pierwotne, zastępując 3-ma zwojami drutu o przekroju 1mm2.

0x08 graphic
W zakresie badań sprawdzono liniowość przekładnika co pokazane jest na rysunku 8.1-1

Rys. 8.1-1 Wykres U = f(Ip) - zależność napięcia przetwornika w

funkcji prądu pierwotnego przetwornika

Wynika z niego, że w zakresie małych wartości prądu płynącego przez przetwornik wartość napięcia podawanego jako sygnał wejściowy procesora zmienia się liniowo. Wraz ze wzrostem prądu po stronie pierwotnej sygnał zaczyna być przekształcany nieliniowo.

0x08 graphic

Rys. 8.1-2 Wykres Ik = f(Ip) - prąd konwersji A/C procesora w funkcji

prądu pierwotnego przetwornika

0x01 graphic

Rys. 8.1-3 Przebieg napięcia przetwornika prąd napięcie (1 - wartość

wyprostowana 2 - przebieg napięcia na uzwojeniu wtórnym

przetwornika)

0x01 graphic

Rys.8.1-4 Przebieg napięcia na wyjściu przetwornika prąd/napięcie

( układ z kondensatorem filtrującym 22μF)

0x01 graphic

Rys. 8.1-3 Przebieg napięcia przetwornika prąd/napięcie

(kondensator filtrujący 47μF).

9. Wnioski:

Obecnie bardzo wiele urządzeń wykorzystuje nadzór mikroprocesorowy. W dalszym ciągu widać dynamiczny wzrost w tej dziedzinie. Konstruktorzy coraz częściej zastępują skomplikowane układy analogowe, zwłaszcza automatyki przemysłowej, układami mikroprocesorowymi. Wynika to przede wszystkim z możliwości jakie dają te układy. Za ich pomocą można realizować nawet najbardziej skomplikowane algorytmy regulacji.

Mikroprocesory zaczynają być niezastąpione w wielu dziedzinach przemysłu. W wyniku budowania coraz to bardziej złożonych systemów, sterujących i monitorujących licznymi podprocesami, koniecznością wydaje się archiwizacja stanów alarmowych. Ma na to na celu przede wszystkim przyspieszenie lokalizacji zakłócenia procesu, co z kolei wpływa na czas eliminacji uszkodzenia.

Systemy takie można spotkać w bardzo skomplikowanych procesach wytwórczych. Również coraz częściej występują one w urządzeniach powszechnego użytku jak samochody czy telewizory. W momencie awarii, serwisant po uprzednim podłączeniu komputera nadrzędnego, otrzymuje informację co uległo uszkodzeniu. Przyspiesza to w znacznym stopniu czas naprawy.

W niniejszym opracowaniu zajmowano się nadzorem mikroprocesorowym do sytemu bezprzerwowego zasilania. Nadzór polegał na monitorowaniu wybranych parametrów urządzenia, reakcji w przypadku przekroczenia założonych wartości maksymalnych oraz regulacji ładowania baterii akumulatorów.

W przypadku użycia mikroprocesora do sterowania zabezpieczeniami urządzeń, należy uwzględnić jego czas reakcji na zakłócenie, który to nie może być zbyt długi. Zazwyczaj układy te monitorują i przetwarzają kilka parametrów w sposób cykliczny. Procesory posiadające wbudowane przetworniki A/C potrzebują pewnego czasu na przetworzenie sygnału analogowego na cyfrowy. Czas ten nazywamy czasem konwersji. Przy użyciu generatora kwarcowego 12MHz czas pojedynczej konwersji wynosi 50ms. Spowodowało to, że w niniejszym opracowaniu czas reakcji na zakłócenie w wyniku cyklicznego sprawdzania sześciu parametrów, przy najbardziej niekorzystnych warunkach, początkowo wynosił 300ms. Po wymianie generatora kwarcowego czas ten udało się zredukować do 150ms. Drugim sposobem przyspieszenia reakcji jest skrócenie czasu konwersji poprzez zmniejszenie jej dokładności z 10-bitowej na 8-bitową. W przypadku zabezpieczeń szybkość jest bardziej istotna niż dokładność.

Ważną rolę w procesie monitorowania odgrywają sprzęgi. Jako przetworniki prądu przemiennego wykorzystano zmodyfikowane transformatory sieciowe typu TS2/15. Usunięto z nich uzwojenie pierwotne, które zastąpiono trzema zwojami drutu. Przetwornik ten charakteryzuje dobra liniowość.

Gdy procesor wykorzystywany jest do skomplikowanych obliczeń o wymaganej duże precyzji, należy używać jednostek 16- to lub 32-bitowych.

Niniejszą pracę zbudowano w oparciu o układ 8-bitowy, co powodowało znaczne utrudnienie obliczeń i skomplikowało algorytm regulatora PI.

Układ nadzoru i archiwizacji wykonany został w sposób umożliwiający ustawienie parametrów krytycznych monitorowanego urządzenia w zależności od rodzaju użytych baterii oraz obciążenia. Obsługa ma możliwość zmiany nastaw po uprzednim wprowadzeniu kodu dostępu. Ograniczony dostęp wynika z konieczności ochrony sprzętu przed osobami niepowołanymi co mogłoby spowodować uszkodzenie w wyniku ustawienia zbyt dużych wartości maksymalnych.

Układ daje możliwość ładowania wszystkich rodzajów baterii według zmiennych parametrów, ustalanych za pomocą klawiatury. Biorąc pod uwagę dynamikę procesu jakim jest ładowanie akumulatorów, właściwości regulatora PI zrealizowanego w ramach pracy są dobre. Przy odpowiedzi na skok jednostkowy przeregulowanie wynosi 3%, natomiast czas regulacji 2,5s. W dużej mierze wynika to z dużej pojemności kondensatora użytego jako filtr sygnału pochodzącego z wyjścia PWM, wykorzystywanego jako zadajnik.

10. Wykaz literatury

[1] Barlik R., Nowak M.”Poradnik inżyniera energoelektronika” WNT

Warszawa 1998

[2] Dmowski A. „Energoelektroniczne układy zasilania prądem stałym”

WNT Warszawa 1998

[3] Gałka P. „Podstawy programowania mikrokontrolerów 80C51”

Wydawnictwo MIKOM Warszawa 2000

[4] Korcz K. „Pomiary prądów i napięć elektrycznych w urządzeniach

energoelektroniki” Materiały konferencyjne (referat)

[5] Marusak A. „Urządzenia elektroniki” WSiP Warszawa 1994

[6] Nadachowski Z. Kulka A. „Analogowe układy scalone” WNT

Warszawa 1994

[7] Pułaczewski J. „Podstawy automatycznej regulacji” WSiP Warszawa

1988

[8] Rydzewski A. „Mikrokomputery jednoukładowe rodziny MCS-51”

WNT Warszawa 1992

[9] Starecki S. „Mikrokontrolery jednoukładowe rodziny 51”

Wydawnictwo NOZOMI Warszawa 1996

[10] „Komputery w technice”

[11] „Poradnik inżyniera elektryka” część II

[12] „Nadzór systemów zasilających, baterii, i innych urządzeń

przemysłowych” dokumentacja techniczna SAN produkcji APS

Bydgoszcz

[13] „80C51- based 8-bit microcontrollers” katalog firmy Philips

Semiconductors

[14] http//www.avis.com.pl

Układ nadzoru i archiwizacji stanów alarmowych systemu bezprzerwowego zasilania

64

Str.

0x01 graphic

0x01 graphic

START

Ustawienie parametrów początkowych

Pobranie wartości początkowych z pamięci EEPROM

Włączenie wyświetlacza

Sprawdzenie klawiatury

T

Przycisk

wciśnięty

Wykonaj przypisaną operację

N

STOP

Sprawdzenie wielkości analogowych

Wykryto zakłócenie

ie

T

Zabezpiecz

+

informacja

N

Ładowanie baterii akumulatorów

KONIEC

0x01 graphic

0x01 graphic

0x01 graphic

START

Sprawdzenie temp ogniwa

Ładowanie stałym prądem

KONIEC

Ibat<

C/4

Pomiar prądu baterii

Ładowanie stałym napięciem 1,74V

Tbat<

35°C

Ubat < 1,74V

Wstrzymaj ładowanie

Tbat <

35°

Sprawdzenie napięcia baterii

Ładowanie stałym napięciem 1,4V

Wyliczenie uchybu

E = I2 - I

Wyliczenie ΔRI

(część calkująca)

0x01 graphic

Wyliczenie przyrostu uchybu Δe

0x01 graphic
I

Wyliczenie ΔRP

(część proporcjonalna)

ΔRP = Kp * Δe

Wyliczenie wartości zadanej

F = F+ΔRI+ΔRP



Wyszukiwarka

Podobne podstrony:
1.PRZYKŁADOWE TEMATY PRAC DYPLOMOWYCH, II semestr, seminarium magisterskie - prof. Wojnarowski
PRACA DYPLOMOWA II
dyplom II klasa
PRZYKŁADOWE TEMATY PRAC DYPLOMOWYCH, II semestr, seminarium magisterskie - prof. Wojnarowski
opracowane zagadnienia na dyplomację opcja II
Europa, Geneza II w.św-dyplomacja europejska 1939, Geneza II w
Tematyka seminarium dyplomowego dla II roku BP
niestacjonarne przed egzaminem dyplomowym, Skrypty, PK - materiały ze studiów, II stopień, mgr
Periodyzacja polskiej polityki zagranicznej po II wojnie światowej, Dyplomaca Europejska, 4 semestr,
do druku ROZDZIAŁ II, cykl VII artererapia, Karolina Sierka (praca dyplomowa; terapia pedagogiczna z
Egzamin Dyplomowy - TSIP cz2, Budownictwo - studia, II stopień, dyplom - pytania
Zaproszenie - II wersja, dyplomy, zaproszenia, podziękowania, zaproszenia
DYPLOM ukończenie klasy II
8. Zarzadzanie Przedsięwzięciami Budowlanymi, Budownictwo - studia, II stopień, dyplom - pytania
3. Projektowanie konserwatorskie, Budownictwo - studia, II stopień, dyplom - pytania
Regulamin AON-praca dyplomowa edycja-wbn 2012, II semestr, gr. seminaryjna dr. Kuliczkowskiego
TEMATY PREZENTACJI seminarium dyplomowe ZIP II st niestacj (1)

więcej podobnych podstron