Lưu đồ giải thuật chính của chương trình

Một phần của tài liệu Thiết kế và thi công bơm tiêm điện đa chức năng (Trang 52 - 57)

Sau khi trình bày các chức năng của bơm tiêm điện, tóm tắt quá trình hoạt động và thuật toán của đề tài thì sẽ tiến hành vẽ lưu đồ giải thuật chính cho đề tài. Phần lưu đồ chính chủ yếu sẽ liên quan đến việc chọn loại chức năng và các công thức tính toán giá trị tổng số bước và thời gian quay một bước.

CHƯƠNG 4. THI CÔNG HỆ THỐNG

Hình 4.17 Lưu đồ chính cho đề tài.

Sau khi điều chỉnh xong vị trí và lựa chọn loại kim tiêm, thì tới việc lựa chọn chức năng cho đề tài. Hệ thống có 3 chức năng và sẽ kiểm tra người sử dụng chọn chức năng nào:

- Nếu chọn chức năng 1 là tiêm bình thường thì chương trình bắt đầu chạy các chương trình con nhập thể tích, nhập thời gian tiêm, sau đó tính toán giá trị nhập vào để chuyển thành 2 giá trị tổng số bước và thời gian quay một bước; sau khi tính toán xong thì điều khiển motor bước hoạt động để tiêm thuốc theo giá trị được nhập vào.

- Nếu chọn chức năng số 2 là kiểm soát đau thì chương trình bắt đầu chạy các chương trình con nhập thể tích, nhập thời gian tiêm, nhập thời gian giữa 2 lần tiêm và tính toán các giá trị. Sau đó, chương trình sẽ kiểm tra phím TIÊM có được nhấn hay không, khi có nhấn thì motor bước được điều khiển để tiêm thuốc. Khi tiêm xong chương trình con trì hoãn thời gian giữa 2 lần tiêm được thực hiện và cuối cùng quay lại thao tác kiểm tra phím TIÊM.

CHƯƠNG 4. THI CÔNG HỆ THỐNG

- Nếu chọn chức năng số 3 thì chương trình bắt đầu chạy các chương trình con là nhập cân nặng, tính toán các giá trị và cuối cùng là điều khiển motor bước hoạt động để tiêm thuốc.

Sau khi thực hiện xong một trong ba chức năng thì ta nhấn nút quay về màn hình chính và thực hiện các công việc tiếp theo.

Lưu đồ chương trình con nhập thể tích

Hình 4.18 Lưu đồ chương trình con nhập thể tích. ● Giải thích lưu đồ:

Chương trình thực hiện kiểm tra ba phím nhấn là phím UP, phím DW và phím RI. Nếu phím UP được nhấn, chương trình sẽ kiểm tra biến cột đang ở vị trí nào, nếu ở vị trí của biến chục thì tăng biến chục lên một đơn vị, ở vị trí đơn vị thì tăng biến đơn vị lên một đơn vị, ở vị trí thập phân thì tăng biến thập phân lên một đơn vị, sau đó gán phím biến P_UP = 0 để kiểm tra việc có nhấn phím nữa hay không. Tương tự với phím

CHƯƠNG 4. THI CÔNG HỆ THỐNG

DW, biến cột đang ở vị trí nào thì giảm giá trị của biến tại đó xuống 1 đơn vị. Khi nhấn phím RI, thì giá trị biến cột được thay đổi, nghĩa là vị trí của biến sẽ thay đổi giá trị khi nhấn UP hoặc DW sẽ được thay đổi khi nhấn phím RI. Một cách dễ hiểu, nếu ta đang thay đổi giá trị ở hàng chục, khi nhấn phím RI một lần, thì lúc đó giá trị mà ta đang thay đổi là hàng đơn vị, tương tự khi nhấn lần tiếp theo là hàng thập phân. Sau đó các giá trị chục, đơn vị và thập phân được hiển thị trên LCD với dạng số lớn, và thể tích được tính theo công thức T_TICH=CHUC*100 + DV*10 + TP; (Gấp 10 lần so với thực tế, dễ dàng cho việc tính toán các thông số).

Chức năng chương trình cũng tương tự với các chương trình con nhập thời gian (biến T_GIAN), nhập cân nặng (biến C_NANG). Giá trị cuối cùng được tính đều là số nguyên.

Lưu đồ chương trình con điều khiển motor bước

Hình 4.19 Lưu đồ chương trình con điều khiển motor bước. ● Giải thích lưu đồ:

CHƯƠNG 4. THI CÔNG HỆ THỐNG

Ở chương trình này, ta ràng buộc vòng lặp thông qua biến CHAY, khi biến chạy có giá trị là 0 thì chương trình sẽ thực hiện liên tục. Nếu timer 1 tràn, với thời gian cho một lần tràn là 1ms được tính toán như sau: từ đầu ta set timer với giá trị là 64911 có nghĩa timer 1 sẽ đếm số xung từ 64911 đến 65536 là 625 xung, mỗi chu kì xung là 1,6µs vậy nên mỗi lần tràn là timer đếm 625 xung tương ứng với thời gian là 625x1,6µs = 1000µs = 1ms. Khi đó ta trì hoãn một khoản thời gian là TIME_DELAY được tính ở chương trình con tính toán các giá trị để đảm bảo không bị hao hụt thời gian cho mỗi lần tràn, tăng biến LANTRAN lên một đơn vị và set lại giá trị timer 1 và gán cờ tràn lại bằng 0. Khi biến LANTRAN bằng biến SOLANTRAN, có nghãi là thời gian cần cho một lần tạo nửa xung đã đủ thì ta cho chân RC5 là chân cấp xung đảo trạng thái, gán biến LANTRAN lại bằng 0 để thực hiện tiếp lần đảo chân tiếp theo. Trong chương trình sử dụng biến X1 tăng lên một đơn vị cho mỗi lần đảo chân để kiểm soát xem số lần đảo chân đã đủ chưa, khi X1 tăng lên giá trị bằng giá trị của biến SONUAXUNG thì lúc này ta tắt chế độ định thời timer 1, hiển thị LCD là quá trình hoàn tất và gán biến CHAY bằng 1 để kết thúc chương trình con điều khiển motor bước.

Lưu đồ chương trình con tính toán giá trị

Hình 4.20 Lưu đồ chương trình con tính toán giá trị. ● Giải thích lưu đồ:

CHƯƠNG 4. THI CÔNG HỆ THỐNG

Chương trình con thực hiện tính toán các thông số đã được giải thích ở Chương 3, các thông số được tính toán từ các giá trị nhập vào ở các chương trình con trước đó là nhập thể tích, nhập thời gian và cân nặng. Cụ thể như sau: Biến BUOC là biến tính số bước cần quay của motor bước. Trong đó, biến TILE là hệ số dịch chuyển bơm 1ml thuốc của bơm tiêm (với mỗi loại bơm tiêm sẽ có một hệ số khác nhau), biến T_TICH là biến được tính toán thông qua chương trình con nhập thể tích, số 4000 là số bước quay được 10 vòng của motor bước, và số 175 là số mm quay được sau 100 vòng. Ở lưu đồ sử dụng biến C_NANG để tính toán số bước, ta lấy biến C_NANG nhân 8 để tính thể tích cần bơm. Motor bước quay một bước khi có một xung, chương trình sử dụng timer nên mỗi lần đảo chân là nửa xung để cấp cho motor bước, vậy nên biến SONUAXUNG được sử dụng để giới hạn số lần đảo của chân cấp xung quay cho motor bước.

Chương trình điều khiển motor bước sử dụng timer 1 định thời với thời gian mỗi lần tràn là 1ms, vậy nên để tính thời gian cho một lần đảo chân tạo nửa xung ta cần tính bội số của 1ms, ở đây biến SOLANTRAN được tính với công thức trong lưu đồ. Biến T_GIAN được tính qua chương trình con nhập thời gian nhân với 500 là đổi đơn vị từ giây qua mili giây, vì giảm đi một nửa do biến ta chia là biến BUOC. Ở công thức này, ta lấy phần nguyên để tạo số lần tràn cho mỗi lần đảo chân tạo xung vì vậy sẽ còn sự mất mát khoảng vài trăm micro giây, vì vậy công thức tính TIME_DELAY là để tính số micro giây cần phải trì hoãn cho mỗi lần tràn ở timer để đảm bảo thời gian thực hiện một lần đảo chân là chính xác. Ở lưu đồ sau, thời gian mặc định là 1 giờ tương ứng 3600 giây vì vậy công thức có sử dụng biến T_GIAN ta thay bằng số mặc định là 3600 giây (sử dụng cho chức năng số 3 là thuốc được tiêm trong vòng 1 giờ).

Một phần của tài liệu Thiết kế và thi công bơm tiêm điện đa chức năng (Trang 52 - 57)