chng 3: Thiết kế
mạch
cho các
sen
s
or
Nh
trên
đã đề
cập,
để
dừng
chính xác
buồng thang
thì phải
có
tín
hiệu báo
giảm
tốc
tr
ớc
khi phanh
hãm đến sàn. Tại
vùng dừng,
ng
ời
ta bố trí 5
thứ tự
các
tín hiệu
để báo
cho
ch
ơng
trình chính biết
để
có
c
á
c
phản
ứng
phù hợp.
*
1
2
3
4
5
6
7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25
26 27 28 29 30 31
32 33 34 35 36 37 38 39
c
ơ
cửa
Ph
í
m g
ọ
i l
ê
n
Phím g
ọ
i
x
u
ố
ng
Se
n
sor 2
Se
n
sor 1
P
h
í
m g
ọ
i
x
all_door
*K
ey_dn
= 1
D
n_m
ax= key
++A
c_dn
Set
busy=
1
Set
R
un= 0
y
e
s
yes
Key >
Curr
Set
R
un= 1
H
ì
nh
2
-
1
hợp
ng
ời
gọi thang đứng ở đúng tầng
mà
Cabin
thang
máy đang
dừng, nếu
đúng thì
sang
b
ớc
2, nếu sai
thì
sang
b
−
íc 3.
2. Gäi
ch
−
¬ng
tr×nh
më -
®ãng
cöa råi sang
b
một
gi
á
trị;
thiết lập cờ busy (
báo
bận ) = 1;
sang
b
ớc 4.
4. So
sánh vị
trí tầng
ng
ời
đứng
gọi thang với tầng hiện
tạ
i
( Current ), nếu lớn
hơn thì
sang
b
ớc
5, nếu sai sang
b
dn
yes
Ac_dn=1
Dn_m
ax<=key?
Dn_m
ax=key
yes
Hình 2
-2
:
Sơ
đ
ồ
thuật
toán
của
ch
ơn
g
trình bàn
phím gọi xuống khi thang
đang chạy lên
( Run = 0 )
1. Kiểm tra xem
đã
có số tầng trong
hàng đợi
xuống
gọi thang ( Key )
vào hàng đợi
xuống; tăng
số
phần tử trong
hàng đợi
xuống
lên
một
giá
trị;
sang
b
ớc 3.
3. Kiểm tra xem có
phải là
ng
ời
gọi
đầu
tiên
không,
nếu
đúng thì
sang
b
ớc
ớc 5.
5. Đặt Dn_max =
key.
6. Kết thúc
ch
ơng
trình.
2.1.3 Có phím gọi xuống khi thang máy đang
trong hành trình xuống(SBN_3
):
*Key_dn=1?
yes
*Key_d
n=1
yes
Key>curr?
++Wt_dn
++Ac_dn
Wt_dn=1
Dn_max<key ?
yes
yes
D
n_max=key
Hình
2
-
3
:
a,
nếu
đã
có
thì
sang
b
ớc
9, nếu
ch
a
thì
sang
b
ớc 2.
2.
Đ
a
v
ị
trí
tầng
ng
ời
b
ớc
5.
4.
Tăng
số phần tử
đang đợc
phục vụ ( Wt_up ) trong
hàng đợi lên
1
giá
trị, sang
b
ớc 9.
5. Tăng số phần tử chờ
đợc
phục vụ ( Ac_up ) trong
hàng đợi
lên 1
giá
trị, sang
b
ớc 9.
6. Kiểm tra xem có
phải là
phần tử
đầu
nếu nhỏ
hơn thì
sang
b
ớc
8,
ng
ợc
lạ
i
sang
b
ớc 9.
8. Đặt
giá trị
Up_min =
key.
9. Kết thúc
ch
ơng
trình.