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

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

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chng 5: Xử lý 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 lê 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: Sơ đ ồ 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ã m· ( 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ã m· ( 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ử có 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, có 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ử lý 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ã m· ( 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ã m· ( 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ử có 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, có 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. . 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 lê 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. 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. đợ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

Ngày đăng: 02/07/2014, 08:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan