Đưa vị trí tầng người đứng gọi thang Key vào hàng đợi xuống; đặt giá trị tầng lớn nhất trong hàng đợi bằng tầng được gọi; tăng số phần tử trong hàng đợi xuống lên một giá trị; thiết lậ
Trang 1chương 3: Thiết kế mạch cho các
sensor
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 sensor
được bố trí như trên hình vẽ 2-3 Tất cả 5 sensor này được đấu song song và đưa
vào một đầu vào ngắt số 0 của PLC Chương trình ngắt sẽ phải giải mã để xác
định 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
Trang 2* 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
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 O pen Close E mer
Sen
sor 5
Sàn tầng
Sen sor 4
Sen sor 3
Khối
đi ều khiểnđộn
g c ơcửa
Phím gọ i lên Phím gọ i xuống
Sen
sor 2
Sen
sor 1
Phím gọ i
Hình 2-3: Vùng dừng cho thang máy.
Trang 32.1 Các chương trình xử lý phím gọi
xuống
2.1.1 Có phím gọi xuống khi thang máy đang dừng ( SBN_1 ):
Key= curr? y
e s
C all_door
*K ey_dn
= 1
D n_m ax= key ++A c_dn Set busy=
1
Set R un= 0 ye
s
yes Key >
Curr
Set R un= 1
H ình 2 -1 : Sơ đồ thuật toán
của chương trình bàn phím gọi xuống khi thang đang dừng (
B usy = 0 )
1 Kiểm tra trường 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
Trang 4bước 3.
2 Gọi chương trình mở - đóng cửa rồi sang bước 7
Trang 53 Đưa vị trí tầng người đứng gọi thang ( Key ) vào hàng đợi xuống; đặt giá trị
tầng lớn nhất trong hàng đợi bằng tầng được gọi; tăng số phần tử trong hàng
đợi xuống lên 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ước 6
5 Thiết lập cờ chạy lên ( Run = 0 ), sang bước 7
6 Thiết lập cờ chạy xuống ( Run = 1 ), sang bước 7
7 Kết thúc chương trình
2.1.2 Có phím gọi xuống khi thang máy đang trong hành trình lên ( SBN_2 ):
*Key_dn=1 yes
*Key_dn
=1 ++Ac_
dn yes
Ac_dn=1
Dn_max<=key?
Dn_max=key
yes
Trang 6Hình 2 -2 : Sơ đồ thuật toán của chương
trình bàn phím gọi xuống khi thang
đang chạy lên ( Run = 0 )
Trang 71 Kiểm tra xem đã có số tầng trong hàng đợi xuống chưa, nếu đã có thì sang
bước 6, nếu chưa thì sang bước 2
2 Đưa vị trí tầng người đứ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
5, ngược lại thì sang bước 4
4 Kiểm tra giá trị tầng lớn nhất ( Dn_max ) trong hàng đợi
so với tầng được gọi, nếu Dn_max <= key thì sang bước
6, ngược lại thì sang bướ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=1 Dn_max<key ?
Dn_max=key
Trang 8Hình 2-3: Sơ đồ thuật toán của
chương trình bàn phím gọi
xuống khi thang đang chạy xuống ( Run = 1 )
Trang 91 Kiểm tra xem đã có số tầng trong hàng đợi xuống chư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 đứng gọi thang ( Key ) vào hàng
đợi xuống; sang bước
3
3 So sánh tầng gọi ( key ) với tầng hiện tại ( current ), nếu nhỏ hơn thì sang bước 4, ngược lại thì sang 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 tiên được đưa vào hàng đợi chờ phục
vụ, nếu đúng thì sang bước 8, ngược lại sang bước 7
7 So sánh phần tử nhỏ nhất trong hàng đợi lên (
Up_min ) với tầng gọi ( key ), 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