MỤC LỤC
Đư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. 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. Đư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.
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. Đưa vị trí tầng người đứng gọi thang ( Key ) vào hàng đợi xuống; sang bước 3. 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.
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 bước 3. Đưa vị trí tầng người đứng gọi thang ( Key ) vào hàng đợi lên; đặt giá trị tầng nhỏ nhất trong hàng đợi lên bằng tầng đ−ợc gọi; tăng số phần tử trong hàng đợi lên một giá trị; thiết lập cờ busy ( báo bận ) = 1; sang bước 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, ng−ợc lại thì sang b−ớc 6.
Đưa vị trí tầng người đứng gọi thang ( Key ) vào hàng đợi lên; tăng số phần tử trong hàng đợi lên một giá trị; sang bước 3. Đưa vị trí tầng người đứng gọi thang ( Key ) vào hàng đợi lên; sang bước 3.
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. 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. 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.
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. 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. Đ−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.
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. 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. 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.
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. Đ−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. Đ−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.
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. Kiểm tra xem tầng đ−ợc gọi có nhỏ hơn giá trị nhỏ nhất ( Up_min ) trong hàng đợi lên hay không, nếu đúng thì sang bước 15, ngược lại sang bước 20. Gán giá trị ô nhớ Temp vào hàng đợi xuống, tăng giá trị số phần tử có trong hàng đợi xuống lên một giá trị, sang bước 20.
Kiểm tra xem đã hết thời gian trễ chưa, nếu chưa thì sang bước 7, ngược lại sang b−íc 8. Kiểm tra xem phím bấm trước đó đã được xử lý chưa, nếu chưa ( key_buff. Kiểm tra xem phím bấm trước đó đã được xử lý chưa, nếu chưa ( key_buff.
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. 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. 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.
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. 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. 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.
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. 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. 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.
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. 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. 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.
Phím gọi thang lên: Người gọi phải bấm vào số tầng mà người đó đang. Phím gọi thang xuống: Người gọi phải bấm vào số tầng mà người đó đang. Tr−ớc khi chạy ch−ơng trình, công việc cần thiết là phải kiểm tra các đầu nối điều khiển từ card giao tiếp đến biến tần, kiểm tra card giao tiếp, kiểm tra nguồn cung cấp cho biến tần để đảm bảo an toàn trong khi chạy.
Ch−ơng trình mô phỏng thang máy nằm gọn trong một file có tên là Lift.exe; do chương trình sử dụng phần đồ hoạ nên nhất thiết bạn phải có các file. Khi khởi động xong, chương trình bắt đầu chạy thì thang máy được đặt tại tầng 1 và sẵn sàng chờ đọc các tín hiệu gọi thang cũng nh− gọi tầng. Nếu có tín hiệu gọi hợp lệ, chương trình sẽ quét và đưa vào hàng đợi.
Đồng thời nhờ sử dụng mạch biến đổi trên cổng ra số nằm trên một card giao tiếp giữa máy tính với thiết bị ngoại vi nên ch−ơng trình có thể điều khiển trực tiếp một biến tần, mà đ−ợc nối với một động cơ không đồng bộ rotor lồng sóc, với vận tốc tuân theo giản đồ tối −u dành cho truyền động thang máy. Tốc độ động cơ cũng đ−ợc vẽ mô phỏng theo thời gian thực nhờ sử dụng mạch chuyển đổi A/D trên card giao tiếp nói trên. Ngoài ra, vị trí tầng hiện tại đ−ợc ch−ơng trình hiển thị ra trên hàng LED có trên card giao tiếp.
Lý thuyết mạch lôgic và kỹ thuật số , NXB Đại học và giáo dục chuyên nghiệp 1991. [9] Trần Bá Thái, Nguyễn Trí Công, Nguyễn Văn Tam, Vũ Duy Lợi, Phí Mạnh Lợi.