Tải bản đầy đủ (.pdf) (9 trang)

thiết kế hệ thống điều khiển thang máy, chương 5 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (799.37 KB, 9 trang )

Chng 5: Xử

phím
gọi
tầng
2.3.1 Có
phím
gọi tầng khi thang máy đang
dừng
(
SBN_7 ).
St
a
r
t
Key=62
?
Ye
s
0<Key
<61
?
Y
e
s
Key>curr
?
Ye
s
*Key_up=1
Up_mi


n=key
++
Ac_up
Busy=1;
run=0
Key<c
urr
?
Ye
s
*Key
dn=1
Dn_ma
x
=key
++
Ac_d
n
Busy=1;
run=1
Call
Do
or
E
nd
Hình 2-7:
Sơ đồ
thuật
toán
ch


ơn
g
trình xử lý phím
gọi
tầng
khi thang
đang
dừng ( run =0
).
1. Kiểm tra
phím
mở cửa nhanh, nếu có
thì
chuyển sang
b

ớc
7,
ng

ợc
lại
thì
chuyển sang
b

ớc 2.
2.
Phát

hiện xem phím bấm có
nằm
trong
khoảng
0 < key
< 61 không, nếu
đúng thì
sang
b

ớc
3,
ng

ợc l

i
sang
b

ớc
8. Trong
tr

ờng
hợp
này, chỉ
cho phép tín hiệu gọi tầng
v
à

tín hiệu mở cửa
nhanh, cấm
phím
dừng khẩn
cấp
và phím đóng
cửa
nhanh.
3. So
s
á
nh
tầng
đợc
gọi xem có nhỏ hơn tầng hiện
t

i
không,
nếu
đúng
thì
sang
b

ớc
6,
ng

ợc

lại thì
sang
b

ớc 4.
4. Kiểm tra xem
phím
bấm có
lơn hơn
tầng hiện
tại không,
nếu
đúng thì
sang b

ớc
5,
ng

ợc
lại
sang
b

ớc 8.
5.
Đ

a
tầng

đợc
gọi
vào hàng đợi lên; gán
gi
á
trị
nhỏ nhất
trong
hàng đợi

n
= tầng
đợc
gọi;
tăng giá trị
số phần tử trong
hàng đợi lên
một
giá trị;
thiết lập cờ busy = 1; bật cờ run = 0 (
chạy lên
), sang
b

ớc
8
.
6.
Đ


a
tầng
đợc
gọi
vào hàng đợi
xuống;
gán
gi
á
trị
lớn
nhất
trong
hàng
đợi
xuống = tầng
đợc
gọi;
tăng
gi
á
trị
số phần tử trong
hàng
đợi
xuống
lên
một
giá trị;
thiết lập cờ busy = 1; bật cờ run

= 1 (
chạy
xuống ), sang
b

ớc
8
.
7. Gọi
ch

ơng
trình
mở -
đóng
cửa ( door ), sang
b

ớc 8.
8. Kết thúc
ch

ơng
trình.
++
A
c
_dn
2.3.2 Có
phím

gọi tầng khi thang máy đang chạy xuống
( SBN_8 ).
Star
t
Key=63
?
Temp=cur
r
Yes
Key=
61 ?
Tem
p=1 ?
Yes
Yes
Key=
62 ?
*Temp_dn
=1
?
Yes
Yes
Runni
ng=1
?
Y
es
Runni
ng=1
?

Y
es
*Key_d
n=1 ?
Y
es
Key<
=curr
?
*Temp
_
dn=1
++Ac
_dn
Close-fast=1
Open-
fast=1
*Key_dn=1
*Key_u
p=1 ?
Yes
*Key
_up=1
++Wt_u
p
*Up_min<key
?
No
No
Wt_up=1 ?

Up
_min=key
H
ì
nh
2-8:

đ

thuật
toán
xử lý
phím
gọi
tầng
khi thang
đang
trong
hành
tr
ì
nh
chạy
xuống ( run=1
).
End
1. Kiểm tra
phím
dừng khẩn cấp có
m

ã
( Scan code ) = 63 ,
nếu có
thì
chuyển
sang
b

íc
16,
ng

îc
l¹i
chuyÓn sang
b

íc 2.
2. KiÓm tra
phÝm ®ãng
cöa nhanh cã

( Scan code ) = 61,
nÕu cã
th×
chuyÓn sang
b

íc
3,

ng

îc
l¹i th×
chuyÓn sang
b

íc 5.
3. KiÓm tra cê ®ang
ch¹y
running, nÕu
®−îc
bËt th× chuyÓn
sang
b

íc 20,
kh«ng th×
sang
b

íc 4.
4. ThiÕt lËp cê
®ãng
cöa nhanh, sang
b

íc 20.
5. KiÓm tra
phÝm

më cöa nhanh cã

( Scan code ) = 62,
nÕu cã th× chuyÓn sang
b

íc
6,
ng

îc
l¹i th×
chuyÓn sang
b

íc 8.
6. KiÓm tra cê ®ang
ch¹y
running, nÕu
®−îc
bËt th×
chuyÓn sang
b

íc 20,
kh«ng th×
sang
b

íc 7.

7. ThiÕt lËp cê më cöa nhanh, sang
b

íc 20.
8. So
s
á
nh
tầng
đợc
gọi với
giá
tr

tầng hiện
tại,
nếu lớn
hơn
thì
chuyển
sang
b

ớc
9,
ng

ợc
lại
sang

b

ớc 11.
9. Kiểm tra xem
giá trị
tầng
đợc
gọi
đã
có trong
hàng đợi lên
hay
ch

a,
nếu có
thì
về
b

ớc
20,
ng

ợc
lại
sang
b

ớc 10.

10.
Đ

a
giá trị
tầng
đợc
gọi
v
à
o
hàng đợi lên; tăng giá trị
của
phần tử có trong
hàng đợi
l
ê
n
( Ac_up ) một
giá trị,
sang
b

ớc 20.
11. Kiểm tra xem
giá
trị tầng
đợc
gọi
đã

có trong
hàng đợi
xuống hay
ch

a,
nếu có
thì
về
b

ớc
20,
ng

ợc
lại
sang
b

ớc 12.
12.
Đ

a
giá
trị tầng
đợc
gọi
v

à
o
hàng đợi
xuống;
tăng giá
trị
của phần tử

trong
hàng đợi
xuống ( Wt_dn )
lên
một
giá trị,
sang
b

ớc 13.
13. Kiểm tra xem tầng
đợc
gọi có
phải là
phần tử
đ
ầu
tiên
trong
hàng
đợi
xuống

không,
nếu
đúng
sang
b

ớc
15,
ng

ợc
lại
sang
b

ớc
14.
14. Kiểm tra xem tầng
đợc
gọi có lớn hơn
giá
trị lớn nhất
trong hàng đợi xuống hay
không,
nếu
đúng
th
ì
sang
b


ớc
15,
ng

ợc
lại
sang
b

ớc 20.
15.
Gán giá
trị Dn_max =
giá trị
tầng
đợc
gọi, sang
b

ớc 20.
16.
Đ

a
giá trị
tầng hiện
tại
cộng 1
vào ô

nhớ
tạm
Temp, sang
b

ớc 17.
17. So
s
á
nh gi
á
trị
ô
nhớ Temp với 60, nếu
bằng
về
b

ớc
20,
ng

ợc
lại
sang b

ớc 18.
18. Kiểm tra
giá trị ô
nhớ Temp có trong

hàng đợi
hay
ch

a,

thì
chuyển
sang b

ớc
20,
ch

a
sang
b

ớc 19.
19.
Gán giá
tr

ô
nhớ Temp
v
à
o
hàng đợi
lên, tăng

giá
trị số
phần tử có trong
hàng đợi
l
ê
n
lên
một
giá trị,
sang
b

ớc 20.
20. Kết thúc
ch

ơng
trình.
2.3.3 Có
phím
gọi tầng khi thang máy đang chạy lên (
SBN_9 ).
St
art
Key=63
?
Temp=curr+
1
Yes

Key=
61 ?
Temp=60
?
Yes
Ye
s
Key=
62 ?
*Temp
_up=1
?
Yes
Yes
Runn
ing=1
?
Yes
Y
es
Running=
1 ?
*Key_
up=1 ?
Y
es
Key>
curr ?
*Temp
_up=

1
++Ac
_up
Close-
fast=1
Open-
fast=1
*Key_
up=1
++Ac
_up
*Key_
dn=1 ?
Yes
*
Key_dn=1
++Wt
_dn
Dn_max<key
?
Ye
s
No
Wt_dn=1 ?
Dn_max=key
H
ì
nh
2-9
:

Sơ đồ
xử

phím
gọi
tầ
ng
khi thang
đang
trong
hành
t
r
ì
nh
l
ê
n ( run =0 ).
End
1. Kiểm tra
phím
dừng khẩn cấp có
m
ã
( Scan code ) = 63 ,
nếu có
thì
chuyển
sang
b


íc
16,
ng

îc
l¹i
chuyÓn sang
b

íc 2.
2. KiÓm tra
phÝm ®ãng
cöa nhanh cã

( Scan code ) = 61,
nÕu cã
th×
chuyÓn sang
b

íc
3,
ng

îc
l¹i th×
chuyÓn sang
b


íc 5.
3. KiÓm tra cê ®ang
ch¹y
running, nÕu
®−îc
bËt th×
chuyÓn sang
b

íc 20,
kh«ng th×
sang
b

íc 4.
4. ThiÕt lËp cê
®ãng
cöa nhanh, sang
b

íc 20.
5. KiÓm tra
phÝm
më cöa nhanh cã

( Scan code ) = 62,
nÕu cã th× chuyÓn sang
b

íc

6,
ng

îc
l¹i th×
chuyÓn sang
b

íc 8.
6. KiÓm tra cê ®ang
ch¹y
running, nÕu
®−îc
bËt th× chuyÓn
sang
b

íc 20,
kh«ng th×
sang
b

íc 7.
7. ThiÕt lËp cê më cöa nhanh, sang
b

íc 20.
8. So
sánh
tầng

đợc
gọi với
giá
trị tầng hiện
tại,
nếu
nhỏ
hơn
hoặc
bằng
thì
chuyển sang
b

ớc
9,
ng

ợc
lại
sang
b

ớc 11.
9. Kiểm tra xem
giá
trị tầng
đợc
gọi
đã

có trong
hàng
đợi
xuống hay
ch

a,
nếu có
thì
về
b

ớc
20,
ng

ợc
lại
sang
b

ớc 10.
10.
Đ

a
giá
trị tầng
đợc
gọi

v
à
o
hàng đợi
xuống;
tăng giá
trị của phần tử

trong
hàng đợi
xuống ( Ac_dn )
lên
một
gi
á
trị,
sang
b

ớc 20.
11. Kiểm tra xem
giá trị
tầng
đợc
gọi
đã
có trong
hàng
đợi lên
hay

ch

a,
nếu có
thì
về
b

ớc
20,
ng

ợc
lại
sang
b

ớc 12.
12.
Đ

a
giá trị
tầng
đợc
gọi
v
à
o
hàng đợi lên; tăng giá trị

của phần tử có trong
hàng đợi
xuống ( Wt_up )
lên
một
giá trị,
sang
b

ớc 13.
13. Kiểm tra xem tầng
đợc
gọi có
phải là
phần tử
đầu
tiên
trong
hàng đợi
l
ê
n
không,
nếu
đúng
sang
b

ớc
15,

ng

ợc
lạ
i
sang
b

ớc
14.
14. Kiểm tra xem tầng
đợc
gọi có nhỏ
hơn giá
trị nhỏ
nhất ( Up_min )
tr
ong
hàng
đợi
l
ê
n
hay
không,
nếu
đúng
th
ì
sang

b

ớc
15,
ng

ợc
lại
sang
b

ớc
20.
15.
Gán giá
trị Up_min =
giá trị
tầng
đợc
gọi, sang
b

ớc
20.
16.
Đ

a
giá trị
tầng hiện

tại vào ô
nhớ
tạm
Temp, sang
b

ớc 17.
17. So
sánh giá trị ô
nhớ Temp với 1, nếu
bằng
về
b

ớc
20,
ng

ợc
lại
sang
b

ớc
18.
18. Kiểm tra
giá trị ô
nhớ Temp có trong
hàng đợi
hay

ch

a,

thì
chuyển
sang b

ớc
20,
ch

a
sang
b

ớc
19.
19.
Gán giá trị ô
nhớ Temp
vào hàng đợi
xuống,
tăng
gi
á
tr

số phần tử có
tr

ong
hàng đợi
xuống
lên
một
giá trị,
sang
b

ớc 20.
20. Kết thúc
ch

ơng
trình.

×