MỤC LỤC
Phần 1: LÝ THUYẾT LIÊN QUAN 4
I. Giới thiệu về động cơ điện một chiều 4
1. Cấu tạo 4
2. Nguyên lý hoạt động 4
3. Phân loại 4
4. Phương trình cơ bản của động cơ điện 1 chiều 5
5. Encoder 5
6. Động cơ được sử dụng trong mô hình 6
II. Giới thiệu về Xy-lanh, Van khí nén: 7
1. Xy lanh 7
1.1 Loại một chiều 7
1.2 Loại hai chiều 7
2. Các loại valse khí 8
2.1. Valse (3/2) 3 cửa, 2 vị trí (loại 1 cuộn dây) 8
2.2. Valse (3/2) 3 cửa, 2 vị trí (loại 2 cuộn dây) 9
3. Truyền động bánh răng 9
III. Giới thiệu PLC S7-200 11
1. Sơ đồ khối cấu tạo của PLC 12
2. Ứng dụng xuất xung tốc độ cao 12
2.1. Điều rộng xung 50% (PTO) 13
2.2 Điều rộng xung theo tỉ lệ (PWM) 13
3. Đọc xung tốc độ cao (High Speed Counter - HSC) 14
4. Bộ điều khiển PID 21
IV. Giới thiệu WinCC (Windows Control Center) 27
1. Cài đặt Driver kết nối PLC 27
2.1 Biến nội 28
2.2. Biến ngoại: Sử dụng PC Access 29
1. Tạo và soạn thảo một giao diện người dùng 31
2. Cài đặt thông số cho WinCC Runtime 32
3. Lâp trình C cho WinCC 33
5.1. Một số lệnh thường dùng trong chương trình 35
5.2. Các hàm điều khiển thường dùng 36
6. Hiển thị các giá trị quá trình và vẽ đồ thị trong WinCC 38
6.1. Mở Tag Logging 38
6.2. Cấu hình bộ định thời (Timer) 38
6.3. Tạo vùng lưu trữ (Archive) 38
6.4. Tạo bảng biểu(Table) 39
6.5. Tạo bảng đồ thị 41
8.6. Thiết lập thuộc tính chạy thực (Runtime) 41
Phần 2: THỰC HIỆN ĐỒ ÁN 43
I. Mục đích – yêu cầu của đề tài 43
1. Mục đích 43
2. Yêu cầu 43
II. Phân tích – thi công – thiết kế và điều khiển 43
1. Phân tích 43
2. Tính toán thiết kế - thi công mạch 43
2.1 Thiết kế 43
2.2 Thi công 44
2.2.1 Trình tự thi công 44
2.2.2 Sơ đồ nguyên lý và sơ đồ mạch in 44
2.2.3. Số xung Encoder 47
1. Khâu 2 49
2. Khâu 3 (tay kẹp) 51
3. Tay kẹp quay trái, phải 51
IV. Giao tiếp 53
1. Định nghĩa các vùng nhớ 53
2. Kết nối với PLC 54
2.1. Kết nối với ngõ ra 54
2.2. Kết nối với đầu vào 55
IV. Khảo sát đáp ứng của bộ điều khiển PID 56
V. Lưu đồ giải thuật chương trình 57
1. Lưu đồ giải thuật chương trình điều khiển động cơ 58
2. Lưu đồ giải thuật chương trình con High Speed Counter 60
3. Lưu đồ giải thuật chương trình con PWM (điều xung) 60
4. Giải thuật chương trình xung sang góc 61
5. Giải thuật chương trình góc sang xung 61
6. Lưu đồ giải thuật chương trình cài đặt thông số PID 62
7. Lưu đồ giải thuật chương trình con PID 62
8. Lưu đồ giải thuật chương trình ngắt 63
HƯỚNG PHÁT TRIỂN ĐỀ TÀI 64
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 66
1. Sơ đồ mạch in 66
2. Giao diện Màn hình giao tiếp 68
3. Code chương trình Step 7 Micro Win. 69
4. Code chương trình WinCC 77
82 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2595 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển PID tay máy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
56.5
SM136.5
SM146.0
SM156.5
Current counting direction status bit:
0 = counting down;
1 = counting up
SM36.6
SM46.6
SM56.6
SM136.6
SM146.0
SM156.6
Current value equals preset value status bit:
0 = not equal;
1 = equal
SM36.7
SM46.7
SM56.7
SM136.7
SM146.0
SM156.7
Current value greater than preset value status bit:
0 = less than or equal;
1 = greater than
(Tài liệu - Hướng dẫn sử dụng S7_200 – Hà Văn Trí – Công ty THHH TM&DVKT SIS).
4. Bộ điều khiển PID:
Định nghĩa:
Bộ điều khiển PID (A proportional integral derivative controller) là bộ điều khiển sử dụng kỹ thuât điều khiển theo vòng lặp có hồi tiếp được sử dụng rộng rãi trong các hệ thống điều khiển tự động. Một bộ điều khiển PID cố gắng hiệu chỉnh sai lệch giữa tín hiệu ngõ ra và ngõ vào sau đó đưa ra một một tín hiệu điều khiển để điều chỉnh quá trình cho phù hợp.
Sơ đồ khối của bộ điều khiển PID:
Trong CPU S7 – 200 có bộ ứng dụng PID (Proportional, Integral, Derivative). Bảng tham số của bộ điều khiển PID ở bảng sau.
Quá trình đáp ứng, bộ điều khiển PID giá trị của đầu ra sẽ được điều chỉnh sai số đến bằng không. Sai số được xác định bởi sự sai lệch giữa giá trị đặt (giá trị mong muốn) và giá trị xử lý (giá trị thực tế). Nguyên lý của điều khiển PID được dựa trên phương trình sau đây. Giá trị ra M(t) được mô tả bởi hàm của khâu tỷ lệ, khâu tích phân, khâu vi phân.
M(t) giá trị đầu ra theo thời gian t,
Kc: độ lợi của vòng lặp,
e: sai số = giá trị đặt – giá trị hiện tại,
Mdau: giá trị đầu của ngõ ra.
Để thi hành bộ điều khiển trên kỹ thuật số máy tính. Hàm liên tục phải được lượng tử hóa trong các mẫu tuần hoàn của sai số đầu ra. Phương trình đáp ứng số đầu ra
Mn: giá trị ra ở thời gian lấy mẫu n,
en: sai số ở thời gian lấy mẫu n,
en-1: sai số ở thời gian lấy mẫu trước đó,
KI: hệ số khâu tích phân,
KD: hệ số khâu vi phân.
Phương trình trên, khâu tích phân miêu tả sai số giữa giá trị đầu và giá trị hiện tại. Sự sai lệch của khâu này là hàm của giá trị hiện tại và giá trị trước đó. Trong khi khâu tỷ lệ chỉ hiệu chỉnh giá trị hiện tại.
Tính toán giá trị đầu ra phải phụ thuộc vào sai số của khâu tích phân.
MX: giá trị trước của khâu vi phân
Phương trình trên được rút gọn như sau:
Với:
Giá trị của khâu tỷ lệ:
SPn: giá trị đặt ở thời gian lấy mẫu n
PVn: giá trị xử lý ở thời gian lấy mẫu n
Giá trị của khâu tích phân:
Giá trị của khâu vi phân:
Bảng giá trị các tham số sử dụng trong bộ PID
Vùng nhớ (X...)
Tên
Kiểu định dạng
Loại
Mô tả
0
PVn
Double Word – Real
In
Giá trị xử lý (0.0 ÷ 1.0)
4
SPn
Double Word – Real
In
Giá trị đặt (0.0 ÷ 1.0)
8
Mn
Double Word – Real
In/Out
Giá trị ra (0.0 ÷ 1.0)
12
KC
Double Word – Real
In
Độ lợi (dương hoặc âm)
16
TS
Double Word – Real
In
Thời gian lấy mẫu (giá trị dương)
20
TI
Double Word – Real
In
Thời gian tích phân (giá trị dương)
24
TD
Double Word – Real
In
Thời gian vi phân (giá trị dương)
28
MX
Double Word – Real
In/Out
Tổng tích phân (0.0 ÷ 1.0)
32
PVn-1
Double Word – Real
In/Out
Giá trị xử lý ở n-1
(Tài liệu - Datasheet của S7_200 Siemens).
Hiệu chỉnh PID:
Việc hiệu chỉnh 3 thông số Kp, Ki, Kd sẽ làm tăng chất lượng điều khiển. Ảnh hưởng của 3 thông số này lên hệ thống như sau:
K
T
L
t
Y(t)
Phương pháp Ziegler – Nichols: khi đối tượng có khâu delay có trễ (tử số có hay có khâu quán tính bậc nhất dưới mẫu số điển hình là lò nhiệt. Để tìm thông số cho bộ điều khiển PID đối với đối tượng này thì người ta trước hết khảo sát đặc tính vòng hở của hệ thống, cấp một tín hiệu điều khiển vào cho đối tượng, sau đó khảo sát đặc tính quá độ của hệ thống, từ đó xác định các thông số T và L. Khi đó, các thông số của bộ PID được tính theo T và L.
Đường cong hình chữ S có 2 hằng số, thời gian chậm trễ L và hằng số thời gian T. Thời gian chậm trễ xác định cách vẽ đường tiếp tuyến tại điểm uốn của đường cong
Ziegler – Nichols đề xuất xác định Kp, Ti, Td.
Nguyên tắc hiệu chỉnh theo Ziegler – Nichols
Phương pháp
Kp
Ti
Td
P
T/L
0
PI
0,9 T/L
L/0,3
0
PID
1,2 T/L
2L
0,5L
Cách 2: Hiệu chỉnh theo phương pháp thử sai của Thomas Chen công ty FOXBORO
Ba thông số quan trọng nhất là PID được thể hiện như sau:
P: trong lý thuyết thường thể hiện bằng hệ số tỷ lệ nhưng ngày nay trong hầu hết các hệ thống người ta không sử dụng hệ số tỷ lệ K mà dùng một thông số khác gọi là dải tỷ lệ (proportional band – P band). Ý nghĩa của dải tỷ lệ như sau: P band ="20%" thì với sự thay đổi 20 % giá trị đầu vào bộ điều khiển sẽ gây ra sự thay đổi 100% tín hiệu đầu ra, với P band ="500%" thì với sự thay đổi tín hiệu đo 100 % thì tín hiệu đầu ra chỉ thay đổi có 20%. Quan hệ giữa hệ số tỷ lệ và dải tỷ lệ: K=100/%Pband.
I: Được thể hiện theo đơn vị đo thời gian là giây. Thời gian càng nhỏ thể hiện tác động điều chỉnh tích phân càng mạnh, ứng với độ lệch càng bé.
D: Cũng được thể hiện theo đơn vị đo thời gian là giây. Thời gian càng lớn thì điều chỉnh vi phân càng mạnh, ứng với bộ điều chỉnh đáp ứng với thay đổi đầu vào càng nhanh.
Rất ít các mạch điều chỉnh yêu cầu sử dụng điều chỉnh D. Hầu hết mạch điều chỉnh PI đủ đáp ứng yêu cầu điều chỉnh. Sau đây là phương pháp xác định thông số PI.
Bước 1: Đặt thời gian tích phân cực đại, thời gian vi phân cực tiểu. Khi đó hệ thống chỉ điều khiển tỉ lệ. Sau đó giảm dải tỉ lệ cho đến khi dao động xuất hiện. Đo chu kì của dao động, (khoảng thời gian giữa hai điểm cực đại hoặc cực tiểu của dao động, ta gọi thời gian này là chu kỳ tự nhiên)
Bước 2: Đặt thời gian tích phân bằng chu kỳ tự nhiên. Quan sát chu kỳ dao động mới, nó sẽ tăng thêm khoảng 40 ÷ 43% của chu kỳ tự nhiên. Nếu chu kỳ dao động lớn hơn mức trên thì cần tăng thời gian tích phân.
Bước 3: Cuối cùng ta điều chỉnh dải tỷ lệ sao cho độ lệch và thời gian đạt đến ổn định phù hợp với yêu cầu. Nguyên tắc điều chỉnh như sau dải tỷ lệ càng lớn thì độ lệch điều chỉnh càng lớn, thời gian đạt đến ổn định càng ngắn, dải tỷ lệ càng nhỏ thì độ lệch càng nhỏ, thời gian đạt đến ổn định càng dài.
Nghĩa là: đối với một số đối tượng có hàm truyền trong mẫu số có dạng dao động bậc hai như K/(1+T1s)*(1+T2s), điển hình là động cơ điện DC.
Ta cấp tín hiệu đặt rồi thay đổi dần các thông số Kp, Ki, Kd cho phù hợp. Đầu tiên, sẽ làm cho hệ thống ổn định bằng cách cho Ki, Kd bằng 0.
Sau đó tăng dần Kp lên. Khi Kp càng nhỏ thì Nyquist hệ hở càng xa điểm
(-1,j0). Hệ chắc chắn sẽ ổn định. Nhưng đổi lại, đáp ứng sẽ lâu. Mình tăng dần Kp đến khi hệ thống bắt đầu dao động thì dừng lại. Để triệt tiêu sai số xác lập, mình sẽ tăng dần Ki lên, nhưng đổi lại, do Ki tăng, hệ thống sẽ rất có khả năng bị vọt lố, mình tăng cho đến khi đặc tính quá độ vọt lố chừng 10% thì dừng. Tiếp theo, mình sẽ tăng tiếp Kd. Khi Kd tăng thì rất có thể thời gian xác lập mình dài ra hơn một chút nhưng bù lại sẽ bù trừ được 10% vọt lố ở trên.
IV. Giới thiệu WinCC (Windows Control Center):
Các bước để tạo một Project trong WinCC
Khởi động WinCC,
Tạo một Project mới,
Cài đặt Driver kết nối PLC,
Tạo các biến,
Tạo và soạn thảo một giao diện người dùng,
Cài đặt thông số cho winCC Runtime,
Chạy chương trình (Activate).
1. Cài đặt Driver kết nối PLC:
Để WinCC kết nối được với PLC thì phải cài Driver.
Phải chuột vào Tag Management
chọn Add New Driver
Hộp thoại xuất hiện chọn Driver: OPC.chn
2. Tạo các biến:
Đồng thời tạo các biến để liên kết, hiển thị và điều khiển.
Phải chuột vào Internal tags
Chọn New Tag…
2.1 Biến nội:
Hộp thoại Tag Properties xuất hiện
Chọn Tên Tag
và kiểu dữ liệu
chọn xong bấm OK
2.2. Biến ngoại: Sử dụng PC Access
Khởi động PC Access – File – New chọn
Tên PLC
Địa chỉ PLC
(từ 1 đến 126)
Để tạo các biến ngoại ta chọn
New - Item
Hộp thoại Item Properties xuất hiện:
Sau khi tạo xong các biến ta tiến hành tạo liên kết với WinCC
Trong màn hình WinCC
phải chuột vào OPC Groups
chọn System Parameter
Hộp thoại OPC Item Manager :
Chọn Browse Server – đánh dấu
vào Read Access và Write Access
Nhấp vào “+” tại S7200.OPCServer
Sau đó chon Add và chọn tiếp S7200 – OPCServer và Finish
Tạo và soạn thảo một giao diện người dùng:
Phải chuột vào Graphics
Designer chọn New Picture
Hộp thoại Graphics Designer xuất hiện:
Trong màn hình này ta tạo các vùng liên kết, các nút nhấn và đồ thị hiển thị…. Và chỉnh sửa sao cho phù hợp với người dùng.
Cài đặt thông số cho WinCC Runtime:
Trên cửa sổ WinCC Explorer click chuột phải vào mục Computer, chọn Properies sau đó Chọn Properties lần nữa.
Trên tab Graphics Runtime chọn trang màn hình khởi động và đặt các thuộc tính cho màn hình giao diện
Nhấn Ok để thoát.
Cuối cùng nhấn Active để chạy chương trình.
Lâp trình C cho WinCC:
WinCC còn hỗ trợ các ngôn ngữ lập trình C và Víual Basic.
Sau đây là ngôn ngữ lập trình C.
Từ màn hình Graphics Designer, click phải vào đối tượng (object) cần thiết lập Action chọn Properties.
Click phải vào mục Dynamics hay Action của Properties hay Events và chọn C -Action từ menu hiện ra
Màn hình lập trình xuất hiện
Sau khi lập trình cho Action xong thì biên dịch bằng nút . Nếu có lỗi hiển thị trong Output Window thì Double click vào ngay lỗi để biết vị trí lỗi trong chương trình và sửa lỗi, nếu không có lỗi thì chọn OK để thoát.
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
Câu lệnh # include”apdefap.h” là khai báo thư viện các Function và Action mà WinCC hỗ trợ sẵn.
Header (màu xám): Đây là dòng mã lệnh tự động phát sinh giống nhau cho các Properties và không được thay đổi. Bao gồm :
+ Picture Name (lpszPictureName)
+ Object Name (lpszObjectName)
+ Property Name (lpszPropertyName)
Một số lệnh thường dùng trong chương trình:
5.1.1. SetTagBit:
Cú pháp: Bool SetTagBit (Tag Tag_Name, short int value)
Nội dung: Định giá trị cho một Tag có kiểu dữ liệu là Binary.
5.1.2. SetTagByte:
Cú pháp: Bool SetTagByte (Tag Tag_Name, byte value)
Nội dung: Định giá trị cho một Tag có kiểu dữ liệu là 8 bit.
SetTagSByte
Cú pháp: Bool SetTagSByte (Tag Tag_Name, signed char value)
Nội dung: Định giá trị cho một Tag có kiểu dữ liệu là 8 bit có dấu.
Tương tự có các hàm SetTagWord, SetTagDWord . . .
GetTagBit:
Cú pháp: Bool GetTagBit (Tag Tag_Name)
Nội dung: Lấy giá trị hiện tại của một Tag có kiểu dữ liệu là Binary.
GetTagByte:
Cú pháp: Bool GetTagByte (Tag Tag_Name)
Nội dung: Lấy giá trị hiện tại của một Tag có kiểu dữ liệu là 8 bit.
GetTagSByte:
Cú pháp: Bool GetTagBit (Tag Tag_Name)
Nội dung: Lấy giá trị hiện tại của một Tag có kiểu dữ liệu là 8 bit có dấu.
Tương tự có các hàm GetTagWord, GetTagDWord . . .
Các hàm điều khiển thường dùng:
5.2.1. Thoát khỏi Runtime:
Cú pháp: Bool DecactivateRTProject()
Nội dung: Thoát khỏi chương trình WinCC đang chạy Runtime
5.2.2. Thoát khỏi WinCC:
Cú pháp: Bool ExitWinCC()
Nội dung: Thoát khỏi chương trình WinCC, kể cả WinCC Explorer
5.2.3. Các hàm xử lý tính toán:
5.2.4. Các hàm tính toán trên bit:
5.2.5. Toán tử logic:
5.2.6. Các hàm toán học:
6. Hiển thị các giá trị quá trình và vẽ đồ thị trong WinCC:
6.1. Mở Tag Logging:
Trong cửa sổ bên trái của WinCC Explorer ta chọn mục Tag Logging
Cửa sổ Tag Logging
6.2. Cấu hình bộ định thời (Timer):
Nhấp chuột phải vào Timer, chọn “New” và cài đặt thời gian lấy dữ liệu.
Các thời đoạn ghi và lưu trữ được
tính bằng cách nhân thời gian cơ
sở với hệ số thời gian
6.3. Tạo vùng lưu trữ (Archive):
Trong cửa sổ Tag Logging nhấp chuột phải vào Archive, chọn Archive Wizard, nhấn next và thực hiện các bước như sau:
Archive Type chọn Process Value Archive
Nhấn select chọn Tag cần lưu trữ.
Nhấn Finish để hoàn tất việc tạo vùng lưu trữ.
Nhấn nút Save trước khi đóng cửa số Tag Logging.
6.4. Tạo bảng biểu(Table):
Để tạo bảng biểu trở lại giao diện Graphics Designer, trong bảng đối tượng chọn “Controls” và “WinCC Online Table Control”
Trong hộp thoại cấu hình nhanh ở bảng “General” thiết lập các thông số như hình bên.
Chuyển sang Tab Columns
Sau khi hoàn tất thiết lập các giá trị trên bảng biểu có dạng như hình bên.
6.5. Tạo bảng đồ thị:
Việc tạo bảng đồ thị cũng tương tự như việc tạo bảng biểu. Bảng biểu cho phép lấy giá trị của biến và hiển thị theo thời gian, trong khi đó bảng đồ thị cho phép hiển thị giá trị của biến dưới dạng đồ thị dễ dàng giám sát. Tại cửa sổ Graphics Designer, trong bảng đối tượng chọn “Controls” và “WinCC Online Trend Control”.
Thiết lập các giá trị cho đồ thị trong hộp thoại cấu hình nhanh theo hình dưới.
Kết thúc việc thiết lập nhanh trên màn hình làm việc có bảng đồi thị như sau:
Nhấn nút Save trước khi kích hoạt Project.
8.6. Thiết lập thuộc tính chạy thực (Runtime):
Thiết lập các thuộc tính chạy thực (Runtime) để ghi và đọc giá trị từ các biến có thể bắt đầu ở chế độ chạy thực.
Trong cửa sổ bên trái của WinCC Explorer, nhấp vào “Computer”.
Trong cửa sổ bên phải, nhấp chuột phải vào tên của máy tính đang sử dụng.
Nhấp vào “Startup” đánh dấu vào mục “Tag Logging Runtime”
(Tài liệu - Lập trình vói S7& WinCC – TS. Trần Thu Hà, KS. Phạm Quang Huy – Nhà xuất bản Hồng Đức).
Phần 2: THỰC HIỆN ĐỒ ÁN
Mục đích – yêu cầu của đề tài:
Mục đích:
Hoàn thành đồ án.
Vận dụng kiến thức đã học vào thực tế.
Điều khiển tay máy hoạt động đúng yêu cầu (gắp thả vật ở vị trí cố định).
Điều khiển PID cho tay khâu đế.
Yêu cầu:
Sử dụng PLC S7-200 (CPU 224 DC/DC/DC) để điều khiển tay máy.
Điều khiển chính xác tay máy gắp và nhả vật ở vị trí cố định.
Phân tích – thi công – thiết kế và điều khiển:
Phân tích:
Tay máy hoạt động ở ba vị trí:
Vị trí ban đầu: vị trí tay máy đứng chờ vật tới vị trí gắp vật.
Vị trí gắp vật: vị trí tay máy thực hiện gắp vật.
Vị trí nhả vật: vị trí tay máy thực hiện nhả vật.
Quá trình làm việc của tay máy:
Vị trí ban đầu
Vị trí gắp vật
Xử lý
Vị trí nhả vật
Xử lý
Xử lý
Tính toán thiết kế - thi công mạch:
Thiết kế:
Vì PLC S7-200 (CPU 224 DC/DC/DC) tích cực mức một trong tầm điện áp 15 – 30VDC do đó ta phải chuyển tín hiệu trong ngưỡng đó. Trong mạch này dùng nguồn 24VDC nên tất cả tín hiệu kết nối với PLC được chuyển về mức 24VDC.
Khối nguồn: Các khối Encoder và các tín hiệu điều khiển hoạt động ở 5VDC do đó ta thiết kế nguồn 5VDC. Động cơ DC hoạt động ở tầm điện áp 24VDC.
Mạch thu tín hiệu từ Encoder: lấy tín hiệu từ hai pha của các Encoder và chuyển về tín hiệu 24VDC.
Khối báo động giới hạn: báo động khi đến vị trí giới hạn và cho dừng động cơ.
Mạch công suất điều khiển các Motor quay thuận nghịch.
2.2 Thi công:
2.2.1 Trình tự thi công:
Vẽ sơ đồ nguyên lý và sơ đồ mạch in,
Thi công mạch in,
Ráp linh kiện và cân chỉnh mạch,
Viết chương trình chính và chương trình con,
Kiểm tra mạch và hoàn thiện sản phẩm.
2.2.2 Sơ đồ nguyên lý và sơ đồ mạch in:
2.2.2.1 Khối nguồn:
Tạo nguồn 5V cung cấp cho khối Encoder va khối công suất.
2.2.2.2. Khối thu tín hiệu từ Encoder:
Đưa 2 pha của Encoder thành tín hiệu 24V.
2.2.2.3 Khối báo động giới hạn:
Tay máy chỉ hoạt động trong giới hạn cố định.
Khi tay máy đến vị trí giới hạn thì loa phát ra 3 tiếng kêu và cho ngừng động cơ. Đồng thời có các công tắc hành trình cho ta biết vị trí đầu của Tay máy.
2.2.2.4. Khối công suất:
Mạch này có thể băm xung qua chân PWM Q0.0 và hai chân Select để chọn cho động cơ nào được điều xung
Cho phép động cơ chạy và Đảo chiều của động cơ.
Ghép cầu H của L298 để đảm bảo dòng cho động cơ.
2.2.2.5. Khối cảm biến quang:
Dùng phát hiện vật đến đúng vị trí để điều khiển tay máy hoạt động
J4.2: 24 VDC khi có vật
2.2.3. Số xung Encoder:
Khâu 1: 400 xung
Khâu 2: 300 xung
Khâu 3:
Encoder 1: 240 xung
Encoder 2: 240 xung
III. Giải thuật điều khiển:
Giả sử vật đang ở vị trí như hình vẽ.
Vị trí đầu tay máy trùng với trục Ox, tay kẹp ở vị trí như hình vẽ.
Để tay máy gắp được vật thì khâu đế di chuyển một góc và khâu 2 phải di chuyển một góc . Tay kẹp luôn luôn vuông góc với mặt phẳng ngang.
Ta biết được góc từ cung tròn có chia độ.
Ta tìm góc từ chiều cao hC.
Khâu 3 (tay kẹp) có thể di chuyển qua trái, phải.
Điều khiển khâu đế dùng thuật toán PID.
Điều khiển On/Off cho khâu 2.
Khâu 3 được băm xung vì môment lớn và truyền động trực tiếp.
Điều khiển PID cho khâu đế:
Y
N
Góc đặt
Bộ PID xử lý
Xuất xung qua ngõ Q0.0
Động cơ hoạt động
Encoder hồi tiếp về → góc
Góc hiện tại = góc đặt?
Ngắt xung, thoát bộ PID, dừng động cơ
Khâu 2:
Khâu 2 có chiều dài L = 19cm,
Vùng hoạt động: cung nhỏ:
Do đó khoảng làm việc của tay kẹp từ 5cm ÷ 29cm
Tính toán độ dịch chuyển (góc) của khâu 2 dựa cào chiều cao h.
Nghĩa là dựa vào hC suy ra góc dịch chuyển.
Giả sử vật đang ở C
Ta có:
Ban đầu khâu 2 đang ở vị trí A. Đến C thì đi được 1 góc
Khi đó tay máy di chuyển một góc
Khâu 3 (tay kẹp):
Yêu cầu tay kẹp luôn luôn vuông góc với mặt phẳng ngang. Tính góc dịch chuyển của tay kẹp.
Vị trí ban đầu có
Khi khâu 2 di chuyển một góc thì khâu 3 di chuyển một góc
Quy ước: khâu 2 quay thuận: cùng chiều kim đồng hồ.
khâu 3 quay thuận: ngược chiều kim đồng hồ.
Do đó: khâu 2 di chuyển góc thì khâu 3 di chuyển một góc
Tay kẹp quay trái, phải:
Quay phải:
Động cơ 1 quay cùng chiều kim đồng hồ
Động cơ 2 quay ngược kim đồng hồ.
Quay trái thì ngược lại
Giải thuật điều khiển:
Góc đặt
Quay phải ?
ĐC 1 quay ngược
ĐC 2 quay thuận
ĐC 1 quay thuận
ĐC 2 quay ngược
Đếm xung trả về
→ góc
Góc đo = góc đặt ?
Ngừng động cơ
IV. Giao tiếp:
1. Định nghĩa các vùng nhớ:
start
M0.0
Cho chương trình hoạt động
SSTOP
M0.1
Ngừng động cơ
reset_all
M0.2
Reset tất cả các giá trị
Start qua_trinh
M0.4
Bit cho phép chạy toàn quá trình
dong_co_0
Q0.0
Động cơ khâu đế
dong_co_1
Q0.5
Động cơ khâu 2
dong_co_2
Q0.3
Động cơ khâu 3
dong_co_3
Q0.4
Động cơ khâu
dao_chieu_0
Q1.0
Đảo chiều động cơ khâu đế
dao_chieu_1
Q1.1
Đảo chiều động cơ khâu 2
dao_chieu_2
Q0.6
Đảo chiều động cơ 1 khâu 3
dao_chieu_3
Q0.7
Đảo chiều động cơ 2 khâu 3
start_qua_trinh
M0.4
Hoạt động toàn quá trình
gap_vat
Q0.2
Điều khiển gắp vật
qua_trinh_1
M0.6
Vị trí ban đầu đến vị trí gắp vật
qua_trinh_2
M0.7
Vị trí gắp vật đến vị trí nhả vật
qua_trinh_3
M7.5
Vị trí nhả vật đến vị trí đầu
chieu_cao_hien_tai
VW84
Chiều cao hiện tại lên WinCC
vi_tri_dau
M0.5
Quay về vị trí đầu
HSC_CURENT
SMD38
Giá trị hiện tại của HSC0
PWM_T
SMW68
Chu kỳ xung
PWM_ON
SMW70
Độ rộng xung
T_MAU_ms
VB136
Cài đặt thời gian lấy mẫu (ms)
PID0_Table
VB100
Địa chỉ bắt đầu PID
PID_ENABLE
VB140
Cho phép hoạt động PID
vi_tri_dat_1
vw8
Góc đặt ĐC khâu đế
vi_tri_do_1
vw10
Góc đo khâu đế
T_MAU_s
VD376
Cài đặt thời gian lấy mẫu (s)
KP
VD280
KP
KI
VD284
KI
KD
VD288
KD
PID_Process
VD100
Giá trị xử lý của bộ PID
PID_SETPOINT
VD104
Góc đặt
PID_Output
VD108
PID out
PID_Gain
VD112
KP_PID (Kc)
PID_Sample_Time
VD116
Thời gian lấy mẫu T (ms)
PID_Integral
VD120
Thời gian tích phân Ti
PID_Derivative
VD124
Thời gian vi phân Td
PID_Bias
VD128
Tổng tích phân
PID_Previous
VD132
Out ở Tn-1
hieu
VD420
Góc thành giá trị đặt cho PID
Hieu_1
VD740
2. Kết nối với PLC
2.1. Kết nối với ngõ ra:
J2.1: Q0.1 : Băm xung
J2.2: Q0.2 : Van
J2.3: Q0.3 : Chọn Băm xung
J2.4: Q0.4 : Chọn Băm xung
J2.5: Q0.0 : Điều khiển PID
J2.6: Q0.5 : Điều khiển ON/OFF
J6.1: Q0.6 : Đảo chiều ĐC1 - Băm xung
J6.2: Q0.7 : Đảo chiều ĐC2 - Băm xung
J6.3: Q1.0 : Đảo chiều ĐC3 - PID
J6.4: Q1.1 : Đảo chiều ĐC3
2.2. Kết nối với đầu vào:
HSC0
J12.1: I0.0
J12.2: I0.1
HSC1
J22.1: I0.6
J22.2: I0.7
HSC2
J24.1: I1.2
J24.2: I1.3
HSC4
J26.1: I0.3
J26.2: I0.4
Ngoài ra còn có các ngõ vào nối với các công tắc hành trình.
I1.0: công tắc hành trình khâu đế,
I1.1: công tắc hành trình khâu 2,
I0.2 và I0.5: công tắc hành trình khâu 3.
Khi có các ngõ này tích cực thì Reset các High Speed Counter (HSC),
Ngõ vào I1.5 tích cực khi có vật.
IV. Khảo sát đáp ứng của bộ điều khiển PID:
Với Kp = 10, Ki = 1, Kd = 1
Với Kp = 10, Ki = 1, Kd = 0.01
Với Kp = 10, Ki = 0.01, Kd = 0.001
Với Kp = 7, Ki = 0.01, Kd = 0.001
Chọn Kp = 6÷15, Ki = 0.01÷1, Kd = 0.01÷0.05
V. Lưu đồ giải thuật chương trình:
START
Gọi các chương trình con HSC, Cài đặt thông số PID, PID, PWM, Góc - xung, Xung – góc, chương trình ngắt
Về vị trí đầu
Có vật ?
Gọi chương trình điều khiển động cơ
Gọi chương trình điều xung cho khâu 3
PID khâu đế
On/Off cho khâu 2
Vị trí gắp vật
Vị trí nhả vật
No
Yes
No
Yes
No
Yes
Chờ 2s
Gọi chương trình điều khiển động cơ
1. Lưu đồ giải thuật chương trình điều khiển động cơ:
Đếm giá trị Encoder trả về
→ góc hiện tại, chiều cao hiện tại
Động cơ hoạt động
Góc hiện tại = giá trị đặt?,
h(hiện tại) = h (đặt)?
Góc hiện tại < góc đặt
h(hiện tại)< h(đặt)
Quay nghịch
Quay thuận
Dừng ĐC
Start
2. Lưu đồ giải thuật chương trình con High Speed Counter:
Start
Cài đặt giá trị của HSC
Chọn Mode 9 đếm xung vuông pha từ Encoder
End
SMBX7 = 16#FC
1 1 1 1 1 1 0 0
Enable Chân xóa tích cực cao
Cập nhật HSC0 Chân Start tích cực cao
Cập nhật giá trị đặt HSC0 Hệ số 1
Hướng cập nhật Đếm lên
Lưu đồ giải thuật chương trình con PWM (điều xung):
Start
Cài đặt giá trị của bộ PWM
Đặt chu kỳ T = 100
Nếu quay thuận: Ton=6
Nếu quay ngược: Ton=9
Xuất xung qua Q0.1
Start
SMB77 = 16#DB
1 1 0 1 1 0 1 1
Enable Tạo lại T
PWM Tạo lại Ton
Vận hành đơn Không đếm
Cập nhật đồng bộ ms/stick
Giải thuật chương trình xung sang góc:
Giá trị HSC chuyển thành số thực = a
a*360/240 = b
b: góc hiện tại → hiển thị WinCC
Giải thuật chương trình góc sang xung:
Giá trị góc đặt chuyển thành số thực = c
c*240/360 = d
d: góc đặt từ WinCC → vị trí đặt cho tay máy
Lưu đồ giải thuật chương trình cài đặt thông số PID:
Số xung trong thời gian lấy mẫu
= (số xung Encoder)*(T mẫu)
Start
Tmẫu(ms) Ú (s)
End
Start
Giá trị đặt Ú 0.0 ÷ 1.0
Thời gian lấy mẫu vào byte chứa thời gian ngắt SMB34
End
Lưu đồ giải thuật chương trình con PID:
Start
Bộ PID xử lý
Giá trị đặt Ú0.0 ÷ 1.0
Điều chỉnh giá trị xung đầu ra
Góc đặt = góc hiện tại?
Ngắt xung và thoát bộ PID
Thoát ngắt
Lưu đồ giải thuật chương trình ngắt:
VI. Kết quả - hạn chế:
1. Kết quả:
Tay máy thực hiện được gắp – thả vật theo vị trí cho trước.
Tìm hiểu bộ xuất xung và đọc xung tốc độ cao.
Tìm hiểu và ứng dụng PLC, WinCC vào giám sát và điều khiển hệ thống
2. Hạn chế:
Thời gian đáp ứng còn chậm.
Chỉ gắp vật ở vị trí cố định.
HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Điều khiển tối ưu tay máy.
Hoàn thiện cơ khí để điều khiển thật chính xác các khâu.
Điều khiển tay máy hoạt động linh hoạt.
Điều khiển tay máy thông qua mạng Internet.
TÀI LIỆU THAM KHẢO
Lập trình vói S7 & WinCC – TS. Trần Thu Hà, KS. Phạm Quang Huy – Nhà xuất bản Hồng Đức.
Hướng dẫn sử dụng S7_200 – Hà Văn Trí – Công ty THHH TM&DVKT SIS.
Đo lường và điều khiển bằng máy tính – Nguyễn Đức Thành – Nhà xuất bản Đại Học Quốc Gia Thành Phố Hồ Chí Minh.
Datasheet của S7_200 Siemens.
Help trong Step 7 Microwin 4.0
Giáo trình Hệ thống truyền động thủy khí, PGS. TS Trần Xuân Tùy – ThS. Trần Minh Chính – KS. Trần Ngọc Hải, Đà Nẵng 2005.
www.dientuvietnam.net
www.ant7.com
PHỤ LỤC
Sơ đồ mạch in:
Mạch trên
Mạch dưới:
Mạch báo động mặt trên:
Mạch báo động mặt dưới:
Mạch cầu đôi:
Giao diện Màn hình giao tiếp:
Code chương trình Step 7 Micro Win.
Code chương trình chính
Network 1
//first scan gọi các chương trình con
LD SM0.1
HSC 0
CALL SBR9
CALL SBR2
CALL SBR10
CALL SBR11
CALL SBR16
Network 2
// có Start gọi các chương con PID, ngắt
LD M0.0
EU
CALL SBR1
CALL SBR3
CALL SBR0
R Q0.0, 1
ATCH INT0, 10
ENI
HSC 0
MOVB 1, VB140
Network 3
// gọi chương trình con góc – xung, xung - góc
LD SM0.0
CALL SBR4
CALL SBR5
CALL SBR6
CALL SBR7
CALL SBR12
CALL SBR13
CALL SBR14
CALL SBR15
Network 4
// STOP
LD M0.1
EU
DTCH 10
MOVB 0, VB140
R SM37.7, 1
MOVW 0, SMW70
PLS 0
MOVR 0.0, VD128
MOVR 0.0, VD100
MOVR 0.0, VD132
MOVR 0.0, VD108
MOVR 0.0, VD28
Network 5
//chuyển góc đặt thành số thực
LD M0.0
ITD VW30, AC0
DTR AC0, VD740
Network 6
// ngừng động cơ nếu gặp công tắc hành trình
LD I0.5
LD I0.2
EU
OLD
R Q0.3, 2
Network 7
// đưa tín hiệu đặt vào PID xử lý
LDR< VD740, 0.0
MOVR 0.0, VD420
-R VD740, VD420
Network 8
LDR>= VD740, 0.0
MOVR VD740, VD420
Network 9
LD M0.0
LDW>= VW30, 2
OW<= VW30, -2
ALD
EU
S SM37.7, 1
Network 10
//ngắt xung, ngắt PID nếu đủ góc
LD M0.0
AW>= VW30, -1
AW<= VW30, 1
MOVW 0, SMW70
PLS 0
MOVB 0, VB140
EU
R SM37.7, 1
Network 11
// về vị trí đầu
LD M0.5
CALL SBR8
Network 12
// Dao chieu dong co
LD M0.0
LPS
AW< VW30, 0
S Q1.0, 1
LRD
AW< VW32, 0
S Q1.1, 1
LRD
AW< VW34, 0
S Q0.6, 1
LPP
AW< VW36, 0
S Q0.7, 1
Network 13
// Dao chieu dong co
LD M0.0
LPS
AW>= VW30, 0
R Q1.0, 1
LRD
AW>= VW32, 0
R Q1.1, 1
LRD
AW>= VW34, 0
R Q0.6, 1
LPP
AW>= VW36, 0
R Q0.7, 1
Network 14
// reset all
LD M0.2
EU
HSC 0
HSC 1
R SM37.7, 1
MOVB 0, VB140
MOVW 0, SMW70
PLS 0
R SM37.7, 1
MOVD 0, VD50
MOVD 0, VD84
R T0, 255
R M0.0, 255
R Q0.5, 10
R M0.0, 255
Network 15
// vi tri gap
LD M1.3
EU
ROUND VD300, AC0
DTI AC0, VW62
S M7.0, 1
Network 16