h. Hình ảnh của module ñ iều khiển
3.2.2.1. Thiết kế cấu trúc chương trình
Mỗi một phần tử máy ñược cấu tạo bởi rất nhiều module. Toàn bộ các module ñều ñược module ñiều khiển trung tâm ñiều khiển. Rất nhiều công việc và rất nhiều module cần phải hoạt ñộng cùng một lúc. Trong khi ñó cấu tạo của tất cả các loại vi ñiều khiển ñều có cấu trúc: tại một thời ñiểm chỉ làm
ñược duy nhất một việc. ðể giải quyết ñược yêu cầu này cần phải có một giải pháp về phần mềm thật hợp lý.
Trong phần này tôi ñưa ra một cấu trúc chương trình có thể ñáp ứng
ñược yêu cầu:
+ Tính thời gian thực
ðây là hai yêu cầu cơ bản của cấu trúc chương trình, không phải là hệ ñiều hành nên với cấu trúc này ñòi hỏi các module viết theo cấu trúc cần có những quy ñịnh chặt chẽ khi viết chương trình.
ðể thực hiện ñược 2 yêu cầu trên ñề tài ñưa ra cấu trúc chương trình theo kiểu vòng quét.
Cấu trúc vòng quét của ñề tài ñưa ra không giống phần mềm trong PLC. Chỉñơn giản là chương trình thực hiện từng module từñầu ñến cuối. Cấu trúc chương trình như hình 3.25:
Hình 3.25: Sơ ñồ cấu trúc chung của chương trình theo trình tự chíp
Như sơ ñồ hình 3.25 ta thấy toàn bộ chương trình hoạt ñộng theo ñúng trình tự của chíp, thực hiện lần lượt từng việc. Tuy nhiên mỗi một việc ñều phải thực hiện trong một thời gian rất ngắn nếu không sẽ không ñảm bảo khả
năng làm việc ña nhiệm. Giả sử tất cả các Program module ñều thực hiện trong một thời gian rất ngắn nên cấu trúc chương trình trên có thể viết như
Main Config and first process Program module 1 Program module 2 Program module n End …….
Hình 3.26: Sơ ñồ cấu trúc chung của chương trình
Từ sơ ñồ cấu trúc chung cho thấy: Nếu chương trình tổng thể sử dụng nhiều module ñược nhìn dưới dạng các chương trình ñộc lập và làm việc song song thì việc lập chương trình sẽ trở nên dễ dàng hơn.
Với cấu trúc chương trình tổng thể như trên, ñề tài tiến hành tính toán các thông số kỹ thuật là tốc ñộ sử lý và thời gian sử lý ñáp ứng cho từng Modul như sau:
•Module ñiều khiển ñộng cơ bước:
ðộng cơ bước có thể quay với tốc ñộ rất lớn. Trong hệ mô hình trên yêu cầu ñộng cơ bước cần quay với tốc ñộ tối ña 500 vòng/ phút, ñộ phân giải là 400 xung/vòng.
Vậy thời gian cần thiết ñể sử lý 1 xung cấp cho ñộng cơ bước là: tstep=1/(500*400/60)=0.0003 giây = 300µs
•Module ñiều khiển ñộng cơ DC_Secvol
ðộng cơ DC ñiều khiển thân robot với tốc ñộ cho phép 100mm/s vận tốc
ñộng cơ 100/3≈34 vòng/s (Thông số ño do phần thiết kế cơ khí cung cấp). Trong hệ thống ñược trang bị encoder 200 xung/vòng. Kết cấu cơ khí cho phép kẹp ñịnh tâm nên không ñòi hỏi robot có ñộ chính xác quá cao, cho phép
sai số dọc thân robot là 0.5mm. Vậy thời gian tối thiểu phải sử lý ñộng cơ là: tdc=(0.5/3)/34≈0.005 giây =5000µs.
•Module hiển thị
Phần hiển thị phụ thuộc vào cảm quan của mắt người, theo cảm quan của tôi và nhiều người cho thấy các con số chạy với tốc ñộ 1/10s một lần thay ñổi là mắt người ñã thấy sự thay ñổi. Chính vì vậy thời gian ñáp ứng của phần hiển thị là: tht=1/10s=100000µs
•Module nhận nút bấm
Một nút bấm và nhả của một thao tác, chỉ cần một thời gian không cần quá ngắn là có thểñáp ứng ñược thao tác nút bấm. tnut=1/100 giây = 10000us.
•Module nhận và chống nhiễu các công tắc hành trình.
Mỗi một công tắc hành trình phụ thuộc vào tốc ñộ ñáp ứng của từng bộ
phận do công tắc hành trình làm vị trí khiểm soát. ðộng cơ bước cần có thời gian ñáp ứng nhanh nhất. Chính vì vậy thời gian ñáp ứng ñể nhận tín hiệu hành trình là: tctht = 300µs
•Các module sử lý tính toán riêng cho từng máy
Phần module cho từng máy phụ thuộc ñặc trưng riêng của từng máy ñó. Phần này tôi xin trình bày ở phần tính toán thiết kế riêng cho từng máy.
Tôi ñã xác ñịnh ñược phần lớn các module và thời gian ñáp ứng của ứng module.
Trong cách viết các module phải ñảm bảo ñược không có lệnh ñợi, lệnh làm chương trình dừng tại chỗ, các module ñược sử lý với tốc ñộ rất nhanh, sẽ ảnh hưởng rất ít ñến tính thời gian thực của hệ thống.
ðể ñáp ứng ñược vấn ñề về thời gian, và cũng ñảm bảo yêu cầu mỗi module thời gian sử lý phải rất nhanh, tôi sử dụng một nhân thời gian thực
ñược tạo ra bởi timer (bộ ñếm xung hệ thống) của chip, sử dụng thạch anh 11.0592Mhz có tần số hoạt ñộng của timer là 11.0592Mhz ñáp ứng ñược yêu
cầu về tốc ñộ sử lý. Mỗi một module cấy thêm một biến ñiều khiển thời gian thực do timer này chi phối, có thểñảm bảo ñược tính thời gian thực.
Hình 3.27: Cấu trúc cơ bản của một module:
Cấu trúc cơ bản như hình 3.27 giúp cho các module chương trình hoạt
ñộng theo ñúng khung thời gian ñã ñược tính toán ở phần trên. Tuy không phải là hệñiều hành và cũng không ñược mức ñộ real timer như hệñiều hành, nhưng cũng giải quyết ñược vấn ñề quản lý chương trình trong các chương trình lớn, còn có ưu ñiểm tốn ít thời gian sử lý hơn hệñiều hành. ðể viết ñược chương trình với cấu trúc này ñòi hỏi người lập trình phải tốn nhiều công sức trong các ñoạn mã chương trình.