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.

Một phần của tài liệu Tài liệu Tín hiệu hóa và lý thuyết chung về tối u luật điều khiển thang máy ppt (Trang 29 - 35)

điều khiển thang máy nhà cao tầng.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 28

Gọi ch−ơng trình đọc bàn phím ( Keyboard ), chuyển sang b−ớc 2. Kiểm tra cờ busy, busy = 0 chuyển sang b−ớc 1, busy=chuyển sang b−ớc 3. Kiểm tra cờ run, run = 0 chuyển sang b−ớc 4, run = 1 chuyển sang b−ớc 50. 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.

Báo chuông quá tải, gọi ch−ơng trình Keyboard, chuyển sang b−ớc 4. 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.

Gọi ch−ơng trình đọc bàn phím ( Keyboard ), chuyển sang b−ớc 6. Thiết lập cờ running = 1 ( đang chạy ), và ra lệnh chạy lên, chuyển sang b−ớc 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.

Gọi ch−ơng trình đọc bàn phím ( Keyboard ) , chuyển sang b−ớc 9. Gán Temp = current + 1 ( current là tầng hiện tại ), chuyển sang b−ớc 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.

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.

Gọi ch−ơng trình đọc bàn phím ( Keyboard ) , chuyển sang b−ớc 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.

Tăng chỉ số tầng hiện tại, Reset các sensor S03, S04, S05, chuyển sang b−ớc 9.

Ra lệnh giảm tốc, chuyển sang b−ớc 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.

Ra lệnh dừng, chuyển sang b−ớc 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.

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. 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.

Gọi ch−ơng trình đọc bàn phím ( Keyboard ) , chuyển sang b−ớc 24. Chuyên ngành Tự động hoá XNCN

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 29 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. (adsbygoogle = window.adsbygoogle || []).push({});

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.

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.

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 30 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 đ−ợ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.

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 31 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. (adsbygoogle = window.adsbygoogle || []).push({});

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.

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. Chuyên ngành Tự động hoá XNCN

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 32 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 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. (adsbygoogle = window.adsbygoogle || []).push({});

3.1

Tín hiệu hóa và lý thuyết chung về tối −u luật điều khiển thang máy Huy Mạnh 33

Ch−ơng III

Một phần của tài liệu Tài liệu Tín hiệu hóa và lý thuyết chung về tối u luật điều khiển thang máy ppt (Trang 29 - 35)