intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Minh Anh | Ngày: | Loại File: PDF | Số trang:16

397
lượt xem
240
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Gọi chương trình đọc bàn phím ( Keyboard ) , chuyển sang bước 92. 92. Kiểm tra cờ mở cửa nhanh ( Open_fast ), nếu có chuyển sang bước 93, ngược lại chuyển sang bước 90. 93. Gọi chương trình mở cửa ( door ) , chuyển sang bước 94. 94. Kiểm tra Ac_up ( số phần tử có trong hàng đợi xuống cần được phục vụ trong hành trình hiện tại ), Ac_up = 0 chuyển sang bước 95, ngược lại chuyển sang bước 1. 95. Thiết lập cờ busy =...

Chủ đề:
Lưu

Nội dung Text: thiết kế hệ thống điều khiển thang máy, chương 7

  1. Chương 7: Ch−¬ng tr×nh ng¾t ®äc phÝm gäi thang 1. KiÓm tra xem phÝm bÊm tr−íc ®ã ®· ®−îc xö lý ch−a, nÕu ch−a ( key_buff = 1 ) th× sang b−íc 3, råi ( key_buff2 = 0 ) th× sang b−íc 2. 2. TÝnh to¸n vµ ®−a ra m· cña phÝm ®−îc gäi ( Scan code ), set key_buff2=1. 3. KÕt thóc ch−¬ng tr×nh.
  2. 2.7 Ch−¬ng tr×nh chÝnh S ta rt Ke yb oa rd Keyboard Bell Keyboard Y bu B e sy e s =0 ll Ke yb Keyboard ? oa rd Yes Y Y e Yes s e Close =1 s ? Over_weight ? R un Ov Clo er_ =1 wei se =0 ? ght ? ? Y e s Ru -- ++ Running=1 Run up Keyboard nni Cu Cu ng rre rre S03=1 ? nt =1 Rese nt Keyboard R t u S03, Rese t n dn S04, S03, S04, Y S05 S05 e S0 Y Y s 3 e e =1 s s ? S0 S0 Y 5 5 e =1 =1 s ? ? Temp=curr Keyboard Ke oard yb
  3. Temp=curr+1 Yes Ac _u ++Current Rese Ac_u Te Te p= 0? ++ t Cu S04, Ke p=0 mp S03, S05 mp Ke yb ? =U =D *Te yb rre S05 =1 ? oa Yes p_ n_ mp oa nt Rese t rd min ma _up rd S03, S04, *Te =1 S05 ? x? mp ? Yes Y Y _dn Y S0 e e =1 e 5= s s ? s 1 Y Slo Slo ? e w_ w_ s do do wn wn Slow_down S04 =1 ? S0 Slow_down Yes 4 =1 ? Y e s S04 =1 ? S S S0 Yes t t 4 o o =1 p p ? Y e s Stop S05 =1 ? S0 S Yes --Current *Curr_dn=0 5 t S05 =1 ? Ac_up=Wt_up Wt_up=0 =1 o Run =0 ? p Yes Set TIM00 Y ++Current --Current *Curr_up=0 e S05 =1 ? *Curr_dn=0 Ac_dn=Wt_dn --Ac_dn Wt_dn=0 Set TIM00 s Run =1 Yes Set TIM00 ++
  4. S e M0 0 Current *Curr_up=0 t --Ac_up T I Open_f TI TI Ke Ke TI TI Keyboard ast ? M0 M0 yb yb M0 M0 Open_f Ke 0= 0= oa oa 0= 0= ast ? yboard 0? 0? rd rd 0? 0? Yes Yes Yes Op en Y Y Yes Ca Op en _fa st ? e es Call Door _fa st Y ll ? s Do Ca or ll Do es Call Door or Ac Ac Y Bu Bu YAc Ac_ Busy = 0 Y _d _u e sy sy e _u up= Busy Cal e n= p= s = = s p= 0? =0 l s0? Yes Wt_ 0? 0 0 0? Y dn= 0? Do Y e or Y e Cur s r_u p= e s 0-- Wt_ Wt s _u Wt p dn=0 Wt _u ? _u p= Yes p= 0 ? Yes Dn_ max Call Door =cur Curr_dn = 0 r? --Wt_dn 0 ? Up Y _m Yes e in= Dn_m s cur ax>cu r? rr ? Up _m in> cur r? Y e s Run = 0 R Ac_up=Wt_up Wt_up =0
  5. Ac_ dn= un = Wt_ dn 1 Wt_dn =0 H×nh 2-13: L−u ®å thuËt to¸n cña ch−¬ng tr×nh chÝnh ®iÒu khiÓn thang m¸y nhµ cao tÇng.
  6. 1. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ), chuyÓn sang b−íc 2. 2. KiÓm tra cê busy, busy = 0 chuyÓn sang b−íc 1, busy=chuyÓn sang b−íc 3. 3. KiÓm tra cê run, run = 0 chuyÓn sang b−íc 4, run = 1 chuyÓn sang b−íc 50. 4. KiÓm tra cê Over_weight ( qu¸ t¶i ), nÕu Over_weight = 0 chuyÓn sang b−íc 6, Over_weight = 1 chuyÓn sang b−íc 5. 5. B¸o chu«ng qu¸ t¶i, gäi ch−¬ng tr×nh Keyboard, chuyÓn sang b−íc 4. 6. KiÓm tra cê ®ãng cöa hoµn toµn ( Close ), close = 1 chuyÓn sang b−íc 8, ng−îc l¹i chuyÓn sang b−íc 7. 7. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ), chuyÓn sang b−íc 6. 8. ThiÕt lËp cê running = 1 ( ®ang ch¹y ), vµ ra lÖnh ch¹y lªn, chuyÓn sang b−íc 9. 9. KiÓm tra sensor S03, nÕu cã chuyÓn sang b−íc 11, ng−îc l¹i chuyÓn sang b−íc 10. 10. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 9. 11. G¸n Temp = current + 1 ( current lµ tÇng hiÖn t¹i ), chuyÓn sang b−íc 12. 12. KiÓm tra Ac_up ( sè phÇn tö cã trong hµng ®îi lªn cÇn ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_up = 0 chuyÓn sang b−íc 37, ng−îc l¹i chuyÓn sang b−íc 13. 13. KiÓm tra xem tÇng s¾p ®Õn cã cÇn dõng kh«ng, nÕu cã chuyÓn sang b−íc 17, ng−îc l¹i chuyÓn sang b−íc 14. 14. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 15. 15. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 16, ng−îc l¹i chuyÓn sang b−íc 14. 16. T¨ng chØ sè tÇng hiÖn t¹i, Reset c¸c sensor S03, S04, S05, chuyÓn sang b−íc 9.
  7. 17. Ra lÖnh gi¶m tèc, chuyÓn sang b−íc 18. 18. KiÓm tra Sensor S04, nÕu cã chuyÓn sang b−íc 19, ng−îc l¹i chuyÓn sang b−íc 18. 19. Ra lÖnh dõng, chuyÓn sang b−íc 20. 20. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 21, ng−îc l¹i chuyÓn sang b−íc 20. 21. T¨ng gi¸ trÞ tÇng hiÖn t¹i, xo¸ hµng ®îi, trõ sè phÇn tö trong hµng ®îi lªn ®i mét gi¸ trÞ , set TIM0 ( trÔ thêi gian chê më cöa ), chuyÓn sang b−íc 22. 22. KiÓm tra TIM0, nÕu hÕt thêi gian trÔ chuyÓn sang b−íc 25, ng−îc l¹i chuyÓn sang b−íc 23. 23. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 24.
  8. 24. KiÓm tra cê më cöa nhanh ( Open_fast ), nÕu cã chuyÓn sang b−íc 25, ng−îc l¹i chuyÓn sang b−íc 22. 25. Gäi ch−¬ng tr×nh më cöa ( door ) , chuyÓn sang b−íc 26. 26. KiÓm tra Ac_up ( sè phÇn tö cã trong hµng ®îi lªn cÇn ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_up = 0 chuyÓn sang b−íc 27, ng−îc l¹i chuyÓn sang b−íc 1. 27. KiÓm tra sè phÇn tö trong hµng ®îi xuèng Wt_dn, Wn_dn = 0 th× chuyÓn sang b−íc 28, ng−îc l¹i chuyÓn sang b−íc 29. 28. ThiÕt lËp cê busy = 0, chuyÓn sang b−íc 1. 29. So s¸nh gi¸ trÞ Dn_max ( phÇn tö lín nhÊt trong hµng ®îi xuèng ) víi tÇng hiÖn t¹i , nÕu Dn_max = current chuyÓn sang b−íc 30, ng−îc l¹i chuyÓn sang b−íc 31. 30. Gäi ch−¬ng tr×nh më cöa, xo¸ phÇn tö trong hµng ®îi xuèng, gi¶m sè phÇn tö trong hµng ®îi xuèng ®i mét gi¸ trÞ, chuyÓn sang b−íc 32. 31. So s¸nh gi¸ trÞ Dn_max ( phÇn tö lín nhÊt trong hµng ®îi xuèng ) víi tÇng hiÖn t¹i , nÕu Dn_max > current chuyÓn sang b−íc 1, ng−îc l¹i chuyÓn sang b−íc 33. 32. KiÓm tra xem cã phÇn tö trong hµng ®îi xuèng kh«ng, nÕu cã chuyÓn sang b−íc 33, ng−îc l¹i chuyÓn sang b−íc 28. 33. ThiÕt lËp cê run =1, g¸n Ac_dn = Wt_dn, g¸n Wt_dn =0 ( chuyÓn phÇn tö tõ hµng ®îi chê ®−îc phôc vô sang hµng ®îi cÇn ®−îc phôc vô ), chuyÓn sang b−íc 1. 34. So s¸nh gi¸ trÞ Temp víi Dn_max, nÕu Temp = Dn_max th× chuyÓn sang b−íc 38, ng−îc l¹i chuyÓn sang b−íc 35 35. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ), chuyÓn sang b−íc 37. 36. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 36, ng−îc l¹i chuyÓn sang b−íc 37. 37. T¨ng gi¸ trÞ tÇng hiÖn t¹i, reset c¸c sensor S03, S04 vµ S05, chuyÓn sang b−íc 9. 38. Ra lÖnh gi¶m tèc, chuyÓn sang b−íc 39.
  9. 39. KiÓm tra Sensor S04, nÕu cã chuyÓn sang b−íc 40, ng−îc l¹i chuyÓn sang b−íc 39. 40. Ra lÖnh dõng, chuyÓn sang b−íc 41. 41. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 42, ng−îc l¹i chuyÓn sang b−íc 41.
  10. 42. T¨ng gi¸ trÞ tÇng hiÖn t¹i, xo¸ hµng ®îi, trõ sè phÇn tö trong hµng ®îi xuèng ®i mét gi¸ trÞ , chuyÓn Ac_dn = Wt_dn, g¸n Wt_dn = 0, chuyÓn sang b−íc 44. 43. ThiÕt lËp cê run =1, set TIM0 ( trÔ thêi gian chê më cöa ),chuyÓn sang b−íc 44. 44. KiÓm tra TIM0, nÕu hÕt thêi gian trÔ chuyÓn sang b−íc 47, ng−îc l¹i chuyÓn sang b−íc 45. 45. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 46. 46. KiÓm tra cê më cöa nhanh ( Open_fast ), nÕu cã chuyÓn sang b−íc 47, ng−îc l¹i chuyÓn sang b−íc 44. 47. Gäi ch−¬ng tr×nh më cöa ( door ) , chuyÓn sang b−íc 48. 48. KiÓm tra Ac_dn ( sè phÇn tö cã trong hµng ®îi xuèng cÇn ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_dn = 0 chuyÓn sang b−íc 49, ng−îc l¹i chuyÓn sang b−íc 1. 49. ThiÕt lËp cê busy = 0, chuyÓn sang b−íc 1. 50. KiÓm tra cê Over_weight ( qu¸ t¶i ), nÕu Over_weight = 0 chuyÓn sang b−íc 51, Over_weight = 1 chuyÓn sang b−íc 50. 51. B¸o chu«ng qu¸ t¶i, gäi ch−¬ng tr×nh Keyboard, chuyÓn sang b−íc 50. 52. KiÓm tra cê ®ãng cöa hoµn toµn ( Close ), close = 1 chuyÓn sang b−íc 53, ng−îc l¹i chuyÓn sang b−íc 54. 53. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ), chuyÓn sang b−íc 52. 54. ThiÕt lËp cê running = 1 ( ®ang ch¹y ), vµ ra lÖnh ch¹y xuèng, chuyÓn sang b−íc 55. 55. KiÓm tra sensor S03, nÕu cã chuyÓn sang b−íc 57, ng−îc l¹i chuyÓn sang b−íc 56. 56. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 57. 57. G¸n Temp = current ( current lµ tÇng hiÖn t¹i ), chuyÓn sang b−íc 58. 58. KiÓm tra Ac_dn ( sè phÇn tö cã trong hµng ®îi lªn cÇn
  11. ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_dn = 0 chuyÓn sang b−íc 80, ng−îc l¹i chuyÓn sang b−íc 59. 59. KiÓm tra xem tÇng s¾p ®Õn cã cÇn dõng kh«ng, nÕu cã chuyÓn sang b−íc 63, ng−îc l¹i chuyÓn sang b−íc 60. 60. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 61. 61. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 62, ng−îc l¹i chuyÓn sang b−íc 59. 62. Gi¶m chØ sè tÇng hiÖn t¹i, Reset c¸c sensor S03, S04, S05, chuyÓn sang b−íc 55.
  12. 63. Ra lÖnh gi¶m tèc, chuyÓn sang b−íc 64. 64. KiÓm tra Sensor S04, nÕu cã chuyÓn sang b−íc 65, ng−îc l¹i chuyÓn sang b−íc 64. 65. Ra lÖnh dõng, chuyÓn sang b−íc 66. 66. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 67, ng−îc l¹i chuyÓn sang b−íc 66. 67. Gi¶m gi¸ trÞ tÇng hiÖn t¹i, xo¸ hµng ®îi, trõ sè phÇn tö trong hµng ®îi xuèng ®i mét gi¸ trÞ , set TIM0 ( trÔ thêi gian chê më cöa ), chuyÓn sang b−íc 68. 68. KiÓm tra TIM0, nÕu hÕt thêi gian trÔ chuyÓn sang b−íc 69, ng−îc l¹i chuyÓn sang b−íc 71. 69. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 70. 70. KiÓm tra cê më cöa nhanh ( Open_fast ), nÕu cã chuyÓn sang b−íc 71, ng−îc l¹i chuyÓn sang b−íc 68. 71. Gäi ch−¬ng tr×nh më cöa ( door ) , chuyÓn sang b−íc 72. 72. KiÓm tra Ac_dn ( sè phÇn tö cã trong hµng ®îi lªn cÇn ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_dn = 0 chuyÓn sang b−íc 73, ng−îc l¹i chuyÓn sang b−íc 1. 73. KiÓm tra sè phÇn tö trong hµng ®îi xuèng Wt_up, Wn_up = 0 th× chuyÓn sang b−íc 74, ng−îc l¹i chuyÓn sang b−íc 75. 74. ThiÕt lËp cê busy = 0, chuyÓn sang b−íc 1. 75. So s¸nh gi¸ trÞ Up_min ( phÇn tö nhá nhÊt trong hµng ®îi lªn ) víi tÇng hiÖn t¹i , nÕu Up_min = current chuyÓn sang b−íc 77, ng−îc l¹i chuyÓn sang b−íc 76. 76. Gäi ch−¬ng tr×nh më cöa, xo¸ phÇn tö trong hµng ®îi lªn, gi¶m sè phÇn tö trong hµng ®îi lªn ®i mét gi¸ trÞ, chuyÓn sang b−íc 78. 77. So s¸nh gi¸ trÞ Up_min ( phÇn tö nhá nhÊt trong hµng ®îi lªn ) víi tÇng hiÖn t¹i , nÕu Up_min > current chuyÓn sang b−íc 1, ng−îc l¹i chuyÓn sang b−íc 79. 78. KiÓm tra xem cã phÇn tö trong hµng ®îi lªn kh«ng, nÕu cã chuyÓn sang b−íc 79, ng−îc l¹i chuyÓn sang b−íc 74.
  13. 79. ThiÕt lËp cê run =1, g¸n Ac_up = Wt_up, g¸n Wt_up =0 ( chuyÓn phÇn tö tõ hµng ®îi chê ®−îc phôc vô sang hµng ®îi cÇn ®−îc phôc vô ), chuyÓn sang b−íc 1. 80. So s¸nh gi¸ trÞ Temp víi Up_min, nÕu Temp = Up_min th× chuyÓn sang b−íc 84, ng−îc l¹i chuyÓn sang b−íc 81. 81. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ), chuyÓn sang b−íc 82.
  14. 82. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 83, ng−îc l¹i chuyÓn sang b−íc 80. 83. Gi¶m gi¸ trÞ tÇng hiÖn t¹i, reset c¸c sensor S03, S04 vµ S05, chuyÓn sang b−íc 55. 84. Ra lÖnh gi¶m tèc, chuyÓn sang b−íc 85. 85. KiÓm tra Sensor S04, nÕu cã chuyÓn sang b−íc 86, ng−îc l¹i chuyÓn sang b−íc 85. 86. Ra lÖnh dõng, chuyÓn sang b−íc 87. 87. KiÓm tra sensor S05, nÕu cã chuyÓn sang b−íc 88, ng−îc l¹i chuyÓn sang b−íc 87. 88. Gi¶m gi¸ trÞ tÇng hiÖn t¹i, xo¸ hµng ®îi, trõ sè phÇn tö trong hµng ®îi lªn ®i mét gi¸ trÞ , chuyÓn Ac_up = Wt_up, g¸n Wt_up = 0, chuyÓn sang b−íc 89. 89. ThiÕt lËp cê run =1, set TIM0 ( trÔ thêi gian chê më cöa ),chuyÓn sang b−íc 90. 90. KiÓm tra TIM0, nÕu hÕt thêi gian trÔ chuyÓn sang b−íc 93, ng−îc l¹i chuyÓn sang b−íc 91. 91. Gäi ch−¬ng tr×nh ®äc bµn phÝm ( Keyboard ) , chuyÓn sang b−íc 92. 92. KiÓm tra cê më cöa nhanh ( Open_fast ), nÕu cã chuyÓn sang b−íc 93, ng−îc l¹i chuyÓn sang b−íc 90. 93. Gäi ch−¬ng tr×nh më cöa ( door ) , chuyÓn sang b−íc 94. 94. KiÓm tra Ac_up ( sè phÇn tö cã trong hµng ®îi xuèng cÇn ®−îc phôc vô trong hµnh tr×nh hiÖn t¹i ), Ac_up = 0 chuyÓn sang b−íc 95, ng−îc l¹i chuyÓn sang b−íc 1. 95. ThiÕt lËp cê busy = 0, chuyÓn sang b−íc 1. Trªn c¬ së c¸c thuËt to¸n ®· tr×nh bµy, ch−¬ng tr×nh ®iÒu khiÓn thang m¸y ®· ®−îc viÕt theo s¬ ®å Ladder trªn phÇn mÒm SYSMAC do h·ng OMRON cung cÊp, ®· ®−îc so¸t lçi vµ n¹p vµo PLC. Tuy
  15. nhiªn do kh«ng cã ®ñ ®iÒu kiÖn (thiÕu c¸c bµn phÝm ®Çu vµo, c¸c r¬ le trung gian v.vv... ) nªn kh«ng thÓ ch¹y thö nghiÖm ch−¬ng tr×nh. Do ®ã trong phÇn tiÕp theo, em sÏ tr×nh bµy ch−¬ng tr×nh m« pháng thang m¸y trªn m¸y tÝnh.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0