Tài liệu Đồ án Điều khiển PID tay máy - Nguyễn Công Lộc: Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 1
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Phần 1: LÝ THUYẾT LIÊN QUAN
I. Giới thiệu về động cơ điện một chiều:
Động cơ DC là động cơ điện hoạt động với dòng điện một chiều. Động cơ điện
một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp.
1. Cấu tạo:
Một động cơ DC có 6 phần cơ bản:
– Phần ứng hay Rotor (Armature).
– Cổ góp (Commutator).
– Chổi than (Brushes).
– Trục motor (Axle).
– Nam châm tạo từ trường hay Stator (field magnet).
– Bộ phận cung cấp dòng điện DC.
2. Nguyên lý hoạt động:
Khi đặt lên dây quấn kích từ một điện áp kích từ Uk nào đó thì trong dây
quấn kích từ sẽ xuất hiện dòng kích từ i(kt) làm xuất hiện từ thông Ф. Tiếp đó sẽ
đặt một giá trị điện áp U lên mạch phần ứng thì trong dây quấn phần ứng sẽ có 1
dòng điện i chạy qua. Tương tác giữa dòng điện phần ứng và từ thông kích thích
tạo thành mômen điện từ.
3. Phân loại:
Căn cứ vào phương pháp kíc...
78 trang |
Chia sẻ: hunglv | Lượt xem: 1346 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Điều khiển PID tay máy - Nguyễn Công Lộc, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 1
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Phần 1: LÝ THUYẾT LIÊN QUAN
I. Giới thiệu về động cơ điện một chiều:
Động cơ DC là động cơ điện hoạt động với dòng điện một chiều. Động cơ điện
một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp.
1. Cấu tạo:
Một động cơ DC có 6 phần cơ bản:
– Phần ứng hay Rotor (Armature).
– Cổ góp (Commutator).
– Chổi than (Brushes).
– Trục motor (Axle).
– Nam châm tạo từ trường hay Stator (field magnet).
– Bộ phận cung cấp dòng điện DC.
2. Nguyên lý hoạt động:
Khi đặt lên dây quấn kích từ một điện áp kích từ Uk nào đó thì trong dây
quấn kích từ sẽ xuất hiện dòng kích từ i(kt) làm xuất hiện từ thông Ф. Tiếp đó sẽ
đặt một giá trị điện áp U lên mạch phần ứng thì trong dây quấn phần ứng sẽ có 1
dòng điện i chạy qua. Tương tác giữa dòng điện phần ứng và từ thông kích thích
tạo thành mômen điện từ.
3. Phân loại:
Căn cứ vào phương pháp kích từ người ta chia động cơ 1 chiều thành các
loại như sau :
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 2
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
- Động cơ điện 1 chiều kích từ bằng nam châm vĩnh cửu,
- Động cơ điện 1 chiều kích từ độc lập nghĩa là phần ứng và phần kích từ được cấp
điện bởi 2 nguồn riêng rẽ,
- Động cơ điện 1 chiều kích thích nối tiếp: cuộn dây kích thích được mắc nối tiếp
với phần ứng,
- Động cơ điện 1 chiều kích thích song song: cuộn dây kích thích được mắc song
với phần ứng,
- Động cơ điện 1 chiều kích thích hỗn hợp: gồm có 2 cuộn dây kích từ , 1 cuộn
mắc nối tiếp với phần ứng, 1 cuộn mắc song song với phần ứng,
4. Phương trình cơ bản của động cơ điện 1 chiều:
E = K Φ. W (1)
V = E + Ru.Iu (2)
M = K Φ Iu (3)
Với:
– E: sức điện động cảm ứng (V).
– Φ: Từ thông trên mỗi cực (Wb).
– Iu: dòng điện phần ứng (A).
– V : Điện áp phần ứng (V).
– Ru: Điện trở phần ứng (Ohm).
– w : tốc độ động cơ (rad/s).
– M : moment động cơ (Nm).
– K: hằng số, phụ thuộc cấu trúc động cơ.
5. Encoder:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 3
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Gồm 1 bộ phát ánh sáng (LED phát), một bộ thu ánh sáng nhạy với ánh sáng từ bộ phát (bộ
thu thường là photodiode hoặc phototransistor), 1 đĩa quang có khoét lỗ gắn trên trục quay đặt
giữa bộ phát và thu, thông thường trục quay này sẽ được gắn với trục quay của đối tượng cần đo
tốc độ.
Một encoder thường có các dây sau:
– Dây cấp nguồn (+5V) cho encoder.
– Dây nối đất (GND).
– Dây pha A – tín hiệu ra theo độ phân giải (1 vòng/N xung (N từ vài chục lên đến vài nghìn
xung tuỳ theo độ phân giải)).
– Dây pha B – tín hiệu ra theo độ phân giải (1 vòng/N xung (N từ vài chục lên đến vài nghìn
xung tuỳ theo độ phân giãi)), pha B chậm pha hơn pha A. Thường tuỳ theo trạng thái pha nhanh
hay chậm của 2 pha này ta xác định chiều quay của đối tượng, để từ đấy bộ đếm tiến hoặc đếm
lùi
Hình 2.29 – Dạng song ngõ ra của LED thu
6. Động cơ được sử dụng trong mô hình:
ĐỘNG CƠ DC (MODEL KM3448A)
Tốc độ: 120 Rpm
Công suất: 25w
Tỷ số truyền: 1/40
Áp sử dụng: 24VDC
Đường kính động cơ: 37mm
Chiều dài động cơ: 80mm
Đường kính trục: 6mm
Chiều dài trục: 15mm
Nhông: Sắt
Khối lượng: 250g
Moment có tải: 80 gcm
Moment khởi động: 790 gcm
Dòng khi có tải: 250 mA
Dòng khởi động: 1950mA
Nơi sản xuất: Korea
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 4
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
ĐỘNG CƠ DC (MODEL KM3348A)
Thông số
Tốc độ: 80rmp
Công suất: 15w
Tỷ số truyền: 1/45
Áp sử dụng: 24VDC
Đường kính động cơ: 37mm
Chiều dài động cơ: 55mm
Đường kính trục: 6mm
Chiều dài trục: 15mm
Khối lượng: 150g
Nhông: Sắt ,Đồng
Nơi sản xuất: Taiwan
II. Giới thiệu về Xy-lanh, Van khí nén:
1. Xy lanh:
1.1 Loại một chiều:
Đây là loại tự trở về khi
được kích
Khi không có khí
Khi có khí
1.2 Loại hai chiều:
Khi có khí sẽ đóng
xy-lanh
Khi không có khí sẽ
không tự về mà khi về
thì ta phải cấp khí.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 5
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2. Các loại valse khí:
Một valse khí được đặc trưng bởi số vị trí mà valse có được và số lượng cửa nối
ống. Hai loại valse khí thường dùng:
2.1. Valse (3/2) 3 cửa, 2 vị trí (loại 1 cuộn dây):
Ký hiệu: Hoạt động:
Valse 2 vị trí, 3 cửa có 3 đường nối ống: một đường
khí vào (lỗ 1), hai đường khí ra (lỗ 2, 4) và hai đường
xả (lỗ 3, 5).
Valse có hai vị trí:
Ø Khi cuộn dây không được cấp điện: khí vào 1 ra 2, khí từ 4 xả qua 5 (hình a).
Ø Khi cuộn dây được cấp điện: khí vào 1 ra 4, khí từ 2 xả qua 3 (hình b).
Hình a: Vị trí pitton khi cuộn dây không được cấp điện.
Hình b: Vị trí pitton khi cuộn dây được cấp điện.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 6
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.2. Valse (3/2) 3 cửa, 2 vị trí (loại 2 cuộn dây):
Ký hiệu: Hoạt động:
Tương tự loại 1 cuộn dây, tuy nhiên 2 vị trí của
valse trong trường hợp này là trạng thái bền.
Ø Khi cuộn dây a được cấp điện: khí vào 1 ra 2, khí từ 4 xả qua 5.
Ø Khi cuộn dây b được cấp điện: khí vào 1 ra 4, khí từ 2 xả qua 3
Khi hai cuộn dây đều được cấp điện, vị trí valse không thay đổi.
(Tài liệu – 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)
3. Truyền động bánh răng:
Cơ cấu truyền chuyển động quay giữa các trục và để biến đổi số vòng quay.
Phân loại:
Ø Phân loại về số lượng bánh răng:
• Bánh răng một cấp: chỉ có một cặp bánh răng.
• Bánh răng nhiều cấp: gồm nhiều cặp bánh răng có tỷ số truyền khác
nhau tạo thành hộp tốc độ hộp giảm tốc,…
Ø Phân loại theo quan hệ truyền:
• Quan hệ truyền ăn khớp: có truyền động bánh răng trụ, côn, trục vít,
hypôit và hỗn hợp.
• Quan hệ truyền phức tạp: truyền động bánh răng hành tinh, truyền
động bánh răng sóng,…
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 7
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Các dạng truyền động
a. Thẳng; b. Nghiêng; c. Chữ V; d. Côn; e. Bánh răng xoắn, góc giữa các trục 90o;
g. Hypôit; h. Trục vít lõm (glôbôit)
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 8
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
III. Giới thiệu PLC S7-200:
Thiết bị điều khiển Logic khả trình PLC (Programmable Logic Control) là loại thiết
bị cho phép thực hiện linh hoạt các thuật toán điều khiển số thông qua một ngôn ngữ lập
trình, thay cho việc phải thể hiện thuật toán đó bằng các mạch số. Như vậy trong chương
trình điều. PLC trở thành bộ điều khiển số nhỏ gọn, dễ dàng thay đổi thuật toán và đặc
biệt dễ dàng trao đổi thông tin với môi trường xung quanh (Với các PLC khác hoặc với
máy tính).
Ø Điện áp cấp nguồn: 15 ÷ 30VDC
Ø Ngõ vào tích cực: 15 ÷ 30VDC
Ø Điện áp tại ngõ ra: 15 ÷ 30VDC
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 9
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
1. Sơ đồ khối cấu tạo của PLC:
Có các loại PLC S7-200 (Siemens):
Các loại PLC thông thường: CPU222, CPU224, CPU224XP, CPU226
Theo loại điện áp người ta phân ra 2 loại:
· Loại cấp điện áp 220VAC:
Ngõ vào: tích cực mức 1 ở cấp điện áp +24VDC (15VDC – 30VDC)
Ngõ ra: Ngõ ra rơ le
· Loại cấp điện áp 24VDC:
Ngõ vào: Tích cực mức 1 ở cấp điện áp +24VDC (15VDC – 30VDC)
Ngõ ra: Ngõ ra Transistor
2. Ứng dụng xuất xung tốc độ cao:
CPU S7_200 có 2 ngõ ra xung tốc độ cao (Q0.0, Q0.1), dùng cho việc điều rộng xung tốc độ
cao nhằm điều khiển các thiết bị bên ngoài.
- Việc điều rộng xung được thực hiện thông qua việc định dạng Wizard.
- Có 2 cách điều rộng xung: điều rộng xung 50% (PTO) và điều rộng xung theo tỉ lệ
(PWM) .
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 10
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.1. Điều rộng xung 50% (PTO):
Loại này xuất ra ngõ ra giá trị Ton = 50%T, điện áp trung bình = ½ VDC
Ngoài ra: Q0.0 Q0.1
SMW68 SMW78 : Xác định chu kì thời gian,
SMW70 SMW80 : Xác định chu kì phát xung,
SMD72 SMD82 : Xác định số xung điều khiển.
Các Byte cho việc định dạng SMB67 (cho Q0.0) và SMB77 (cho Q0.1)
Thanh ghi
điều khiển
(Hex Value)
Cho
phép
Mode Kiểu vận hành Time Base
Cập
nhật
Ton
Cập nhật
T
16#81 Yes PTO Single 1 µs/cycle Load
16#84 Yes PTO Single 1 µs/cycle Load
16#85 Yes PTO Single 1 µs/cycle Load Load
16#89 Yes PTO Single 1 ms/cycle Load
16#8C Yes PTO Single 1 ms/cycle Load
16#8D Yes PTO Single 1 ms/cycle Load Load
16#A0 Yes PTO Multiple 1 µs/cycle
16#A8 Yes PTO Multiple 1 ms/cycle
2.2 Điều rộng xung theo tỉ lệ (PWM):
Ứng dụng này điều rộng xung theo tỷ lệ tùy ý. Ton = 0 ÷ 100% T
Định dạng thời gian cơ sở (Time base) dựa trên bảng sau:
Thanh ghi điều
khiển (Hex Value)
Cho
phép
Mode
Phương thức
cập nhật
Time Base
Cập
nhật
Ton
Cập
nhật
T
16#D1 Yes PWM Synchronous 1 µs/cycle Load
16#D2 Yes PWM Synchronous 1 µs/cycle Load
16#D3 Yes PWM Synchronous 1 µs/cycle Load Load
16#D9 Yes PWM Synchronous 1 ms/cycle Load
16#DA Yes PWM Synchronous 1 ms/cycle Load
16#DB Yes PWM Synchronous 1 ms/cycle Load Load
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 11
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Các Byte cho việc định dạng SMB67 (cho Q0.0) và SMB77 (cho Q0.1)
Ngoài ra: Q0.0 Q0.1
SMW68 SMW78 : Xác định chu kì thời gian
SMW70 SMW80 : Xác định chu kì phát xung
SMD72 SMD82 : Xác định số xung điều khiển
3. Đọc xung tốc độ cao (High Speed Counter - HSC):
Định dạng bộ đếm tốc độ cao theo trình Wizard của Step 7 Micro Win.
Chọn trình Wizard HSC:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 12
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Chọn chế độ cho HSC:
Định dạng bộ đếm
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 13
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Tuỳ từng loại ứng dụng mà ta có thể chọn nhiều Mode đọc xung tốc độ cao khác nhau, có
tất cả 12 Mode đọc xung tốc độ cao như sau:
Mode 0,1,2: Dùng đếm 1 pha với hướng đếm được xác định bởi Bit nội.
Mode 0: Chỉ đếm tăng hoặc giảm, không có Bit Start cũng như bit Reset.
Mode 1: Đếm tăng hoặc giảm, có bit Reset nhưng không có bit Start,
Mode 2: Đếm tăng hoặc giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu đếm
cũng như chọn thời điểm bắt đầu Reset. Các Bit Start cũng như Reset là các ngõ Input chọn từ
bên ngoài.
Mode 3, 4, 5: Dùng đếm 1 pha với hướng đếm được xác định bởi Bit ngoại, tức là có thể chọn từ
ngõ vào input.
Mode 3: Chỉ đếm tăng hoặc giảm, không có Bit Start cũng như bit Reset
Mode 4: Đếm tăng hoặc giảm, có bit Reset nhưng không có bit Start
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 14
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Mode 5: Đếm tăng hoặc giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu đếm
cũng như chọn thời điểm bắt đầu Reset. Các Bit Start cũng như Reset là các ngõ Input chọn từ
bên ngoài.
Mode 6, 7, 8: Dùng đếm 2 pha với 2 xung vào, 1 xung dùng để đếm tăng và một xung đếm giảm.
Mode 6: Chỉ đếm tăng giảm, không có Bit Start cũng như bit Reset,
Mode 7: Đếm tăng giảm, có bit Reset nhưng không có bit Start,
Mode 8: Đếm tăng giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu đếm cũng như
chọn thời điểm bắt đầu Reset. Các Bit Start cũng như Reset là các ngõ Input chọn từ bên ngoài.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 15
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Mode 9, 10, 11 : Dùng để đếm xung A/B của Encoder, có 2 dạng:
Dạng 1 (Quadrature 1x mode): Đếm tăng 1 khi có xung A/B quay theo chiều thuận và giảm 1
khi có xung A/B quay theo chiều ngược.
Dạng 2 (Quadrature 4x mode): Đếm tăng 4 khi có xung A/B quay theo chiều thuận và giảm 4
khi có xung A/B quay theo chiều ngược.
Mode 9: Chỉ đếm tăng giảm, không có bit Start cũng như bit Reset,
Mode 10: Đếm tăng giảm, có bit Reset nhưng không có bit Start,
Mode 11: Đếm tăng giảm, có Bit Start cũng như bit Reset để cho phép chọn bắt đầu đếm cũng
như chọn thời điểm bắt đầu Reset. Các Bit Start cũng như Reset là các ngõ Input chọn từ bên
ngoài.
Mode 12: Chỉ áp dụng với HSC0 và HSC3, HSC0 dùng để đếm số xung phát ra từ Q0.0 và HSC3
đếm số xung từ Q0.1 (Được phát ra ở chế độ phát xung nhanh) mà không cần đấu phần cứng,
nghĩa là PLC tự kiểm tra từ bên trong.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 16
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Các chế độ của HSC và kết nối với ngõ vào của PLC để sử dụng bộ HSC:
Chế độ Miêu tả Input
HSC0 I0.0 I0.1 I0.2
HSC1 I0.6 I0.7 I0.2 I1.1
HSC2 I1.2 I1.3 I1.1 I1.2
HSC3 I0.1
HSC4 I0.3 I0.4 I0.5
HSC5 I0.4
0
1
2
Đếm lên xuống Nhịp
Xóa
Bắt đầu
3
4
5
Đếm lên xuống với điều khiển hướng bên
ngoài Nhịp Hướng Xóa
Bắt đầu
6
7
8
Đếm lên xuống với hai xung nhịp Nhịp lên Nhịp xuống Xóa
Bắt đầu
9
10
11
Đếm lên xuống với 2 xung AB vuông pha
từ Encoder Nhịp A Nhịp B Xóa
Bắt đầu
12
Chỉ có HSC0 và HSC3 hổ trợ Chế độ 12
HSC0 đếm số xung và xuất ra Q0.0
HSC3 đếm số xung và xuất ra Q0.1
· Các bit được sử dụng để điều khiển các chế độ của HSC:
HDEF Control Bits (used only when HDEF is executed)
HSC0 HSC1 HSC2 HSC4 Description
SM37.0 SM47.0 SM57.0 SM147.0
Active level control bit for Reset**:
0 = Reset active high
1 = Reset active low
SM47.1 SM57.1
Active level control bit for Start**:
0 = Start active high
1 = Start active low
SM37.2 SM47.2 SM57.2 SM147.2
Counting rate selection for Quadrature
counters:
0 = 4x counting rate
1 = 1x counting rate
Các bit điều khiển:
HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 Description
SM37.3 SM47.3 SM57.3 SM137.3 SM147.3 SM157.3 Counting direction control bit:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 17
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
0 = count down
1 = count up
SM37.4 SM47.4 SM57.4 SM137.4 SM147.4 SM157.4
Write the counting
direction to the HSC:
0 = no update
1 = update direction
SM37.5 SM47.5 SM57.5 SM137.5 SM147.5 SM157.5
Write the new preset
value to the HSC:
0 = no update
1 = update preset
SM37.6 SM47.6 SM57.6 SM137.6 SM147.6 SM157.6
Write the new current
value to the HSC:
0 = no update
1 = update current
SM37.7 SM47.7 SM57.7 SM137.7 SM147.7 SM157.7
Enable the HSC:
0 = disable the HSC
1 = enable the HSC
Các bit trạng thái:
HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 Description
SM36.0 SM46.0 SM56.0 SM136.0 SM146.0 SM156.0 Not used
SM36.1 SM46.1 SM56.1 SM136.1 SM146.0 SM156.1 Not used
SM36.2 SM46.2 SM56.2 SM136.2 SM146.0 SM156.2 Not used
SM36.3 SM46.3 SM56.3 SM136.3 SM146.0 SM156.3 Not used
SM36.4 SM46.4 SM56.4 SM136.4 SM146.0 SM156.4 Not used
SM36.5 SM46.5 SM56.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).
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 18
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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à
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 19
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
0
M(t) * * /
t
dauKc e Kc edt M Kc de dt= + + +ò
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
1
1
* * *( )
n
n C n I dau D n nM K e K M K e e -= + + + -å
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.
1* * *( )n C n I n D n nM K e K e MX K e e -= + + + -
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:
n n n nM MP MI MD= + +
Với:
· Giá trị của khâu tỷ lệ:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 20
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
*( )n C n nMP K SP PV= -
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:
*( )
* /
n I n n
I C S I
MI K SP PV MX
K K T T
= - +
=
· Giá trị của khâu vi phân:
1*( )
* /
n D n n
D C D S
MD K PV PV
K K T T
-= -
=
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).
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 21
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Ø 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:
ü Phương pháp Ziegler – Nichols: khi đối tượng có khâu delay có trễ (tử số có
Tse- hay có khâu quán tính bậc nhất dưới mẫu số 1
1Ts +
đ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
K
T L
t
Y(t)
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 22
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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ì độ
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 23
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 24
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
Hộp thoại xuất hiện chọn Driver: OPC.chn
Phải chuột vào Tag Management
chọn Add New Driver
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 25
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
2.1 Biến nội:
Hộp thoại Tag Properties xuất hiện
Phải chuột vào Internal tags
Chọn New Tag…
Chọn Tên Tag
và kiểu dữ liệu
chọn xong bấm OK
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 26
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.2. Biến ngoại: Sử dụng PC Access
Khởi động PC Access – File – New chọn
Hộp thoại Item Properties xuất hiện:
Tên PLC
Địa chỉ PLC
(từ 1 đến 126)
Để tạo các biến ngoại ta chọn
New - Item
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 27
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Sau khi tạo xong các biến ta tiến hành tạo liên kết với WinCC
Hộp thoại OPC Item Manager :
Trong màn hình WinCC
phải chuột vào OPC Groups
chọn System Parameter
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 28
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Nhấp vào “+” tại S7200.OPCServer
Sau đó chon Add và chọn tiếp S7200 – OPCServer và Finish
1. Tạo và soạn thảo một giao diện người dùng:
Chọn Browse Server – đánh dấu
vào Read Access và Write Access
Phải chuột vào Graphics
Designer chọn New Picture
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 29
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
2. 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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 30
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Nhấn Ok để thoát.
Cuối cùng nhấn Active để chạy chương trình.
3. 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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 31
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 32
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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)
5.1. 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.
5.1.3. 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 . . .
5.1.4. 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.
5.1.5. 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.
5.1.6. 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 . . .
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 33
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
5.2. 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:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 34
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
5.2.5. Toán tử logic:
5.2.6. Các hàm toán học:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 35
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộ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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 36
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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”
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 37
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 38
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 39
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộ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).
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 40
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Phần 2: THỰC HIỆN ĐỒ ÁN
I. Mục đích – yêu cầu của đề tài:
1. 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 đế.
2. 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.
II. Phân tích – thi công – thiết kế và điều khiển:
1. 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:
2. Tính toán thiết kế - thi công mạch:
2.1 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.
Vị trí ban
đầu
Vị trí gắp
vật
Xử lý Vị trí nhả
vật
Xử lý
Xử lý
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 41
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
· 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:
C5
100u (co the bo)
VCC_24VDC
Q14
A671
R2
1K
R1
2K
C1
470uF/50V
SW1
SW POWER
POWER
Vcc_5V
Vcc_5V
C2
470uF/50V
R_CS1
4.7/2W
Q13 A671
J1
24VDC
1
2
U1 7812
1 3
2
VIN VOUT
G
N
D
R_CS2
4.7/2W
D3
RED
D4
RED
VCC_24VDC
U2 7805
1 3
2
VIN VOUT
G
N
D
D1 4007
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:
O_PHASE_A_1
Vcc_5VENCODER
VCC_24VDC
O_PHASE_B_1
ISO3
PC817
1
2
3
4
Q1
A1015
R5
5K6
ISO4
PC817
1
2
3
4
R6
5K6
R13
10K
R12
560
VCC_24VDC
PHASE_B_1
J12
ENCODER1
1
2 O_PHASE_B_1 R1110K
Q2
A1015
PH ASE_A_1
Vcc_5V
O_PHASE_A_1 R10
560
Đưa 2 pha của Encoder thành tín hiệu 24V.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 42
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.2.2.3 Khối báo động giới hạn:
SW_1
D36
RED
R2
330
D38
RED
R2
330
U1
4017
14
13
15
3
2
4
7
10
1
5
6
9
11
12
16
8
CLK
ENA
RST
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
CO
VCC
GND
ISO1
PC817
1
2
3
4
24V
sw_ring
PLC 4
R48
330
SW_7
ISO1
PC817
1
2
3
4
D37
RED
24V
P LC 3
PWM LM555
R52
330
Vcc_5V
5V
D39
RED
R3
22K
Q11
C1815
Q12
C1815
In PLC
SW_5
SW_3
R61 3K3
PLC 4
SW_4
D42
RED
Q3
C1815
Vcc_5V
PLC 2
In PLC
R3
22K
Q10
A1015
R6
1K
R S 4017
D3 1N4148
Q1
C1815
D7
LED
R59
10K
R S 4017
D41
RED
Vcc_5V
ISO1
PC817
1
2
3
4
24V
D40
RED
PLC 3
R2
330
R9
330
D4 1N4148
R53
4K7
BAO DONG GIOI HAN
SW_2
SW_6
LS2
SPEAKER
J6
PLC 34
1
2
R50
330
R58
1 ohm
R51
330
R45
330
R3
22K
SW_8
R49
330
C4
10u
SW_1
R ST_LM555
SW_8
R2
330
SW_6
24V
ISO1
PC817
1
2
3
4
Vcc_5V
sw_ring
Q2
A1015
U8
LM555
34
8
1
5
2
6
7 OUTRST
VCC
GND
CV
TRG
THR
DSCHG
Vcc_5V
5V
SPEAKER
R ST_LM555
R47
330
R3
22K
PLC 1
R60
100K
J5
PLC 12
1
2
R5
5.6k
D35
RED
D2 1N4148
R57
10K
SW_3
PWM LM555
C3
104
PLC 1
R46
330
R56
100
5V
PLC 2
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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 43
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.2.2.4. Khối công suất:
Chon PWM cho DC 1 hoac DC 2 va chon chieu cho DC
R18
22K
CHECK_SELECT_1
Vcc_5V
SW_4
R4
22K
SEL FOR/REV 1
D13 1N4148
CHECK_SELECT_2
Vcc_5V
Vcc_5V
SW_1
SW_3
ISO2
PC817
1
2
3
4
CHECK_H_2_2
D17
1N4148
SEL PWM1
CHECK_L_H_2_1
ISO7
PC817
1
2
3
4
Vcc_5V
Vcc_5V
R7
22k
J13
DONG CO1
1
2
R8
22K
VCC_24VDC
PWM Q0.0
VCC_24VDC
CHECK_L_H_1_2
U3C
7414
5 6
14
7
R23
22K
U3A
7414
1 2
14
7
Vcc_5V
CHECK_L_H_1_1
D15
BLUE
ISO10
PC817
1
2
3
4
Vcc_5V
ISO6
PC817
1
2
3
4
D6
1N4148
D16
1N4148
SW4
SW_Lef t
CHECK_L_H_2_2
R14
22k
U4
L298
5
7
10
12
2
3
13
14
8
6
11
115
94
1A1
1A2
2A1
2A2
1Y1
1Y2
2Y1
2Y2
G
N
D
1EN
2EN
1E2E
VC
C
1
VC
C
2
SW2
SW_Lef t
Vcc_5V
Vcc_5V
D11
GREEN
D14 1N4148
CHECK_H_1_2
D2
BLUE
VCC_24VDC
D5
1N4148
U3B
7414
3 4
14
7
D8 1N4148
SEL PWM2
-
+
D9 BRIDGE
2
1
3
4
U3D
7414
9 8
14
7
CHECK_H_2_1
SW5
SW_Right
R3
22K
CHECK_H_1_1
SEL FOR/REV 2
D7 1N4148
U4
L298
5
7
10
12
2
3
13
14
8
6
11
115
94
1A1
1A2
2A1
2A2
1Y 1
1Y 2
2Y 1
2Y 2
G
N
D
1EN
2EN
1E2E
VC
C
1
VC
C
2D10
GREEN
Vcc_5V
Vcc_5V
Vcc_5V
ISO1
PC817
1
2
3
4
J17
DONG CO2
1
2
SW_2
ISO5
PC817
1
2
3
4
-
+
D12
BRIDGE
2
1
3
4
R24
22K
Vcc_5V
Vcc_5V
R17
22K
VCC_24VDC
R9
22K
SW3
SW_Right
- 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ơ.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 44
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộ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
SW_8
Vcc_5V
SEL FOR/REV 3
D22
1N4148
R40
22K
J35
DONG CO2
1
2
Vcc_5V
D32
BLUE
U7D7414
9 8
14
7
SW_6
U7C7414
5 6
14
7
SW_5
SEL PWM4
Cho DC 1 hoac DC 2 hoat dongva chon chieu cho 2 DC
CHECK_L_H_4_2
VCC_24VDC
U6
L298
5
7
10
12
2
3
13
14
8
6
11
115
94
1A1
1A2
2A1
2A2
1Y1
1Y2
2Y1
2Y2
GN
D
1EN
2EN
1E2E
VC
C1
VC
C2
Vcc_5V
VCC_24VDC
SW9
SW_Right
SW_7
Vcc_5V
CHECK_H_4_2
J31
DONG CO1
1
2
D30 1N4148
R43
22K
SEL FOR/REV 4
-
+
D29
BRIDGE
2
1
3
4
Vcc_5V
R33
22K
D34
1N4148
Vcc_5V
R41
22K
R44
22K
SW8
SW_Left
R34
22K
D31 1N4148
Vcc_5V
CHECK_SELECT_4
D18
BLUE
ISO13
PC817
1
2
3
4
VCC_24VDC
Vcc_5V
Vcc_5V
CHECK_H_4_1
D20
1N4148
SW7
SW_Right
PWM Q0.0
U7A
7414
1 2
14
7
Vcc_5V
CHECK_H_3_2
SW6
SW_Left
R54
22K
Vcc_5V
CHECK_H_3_1
VCC_24VDC
Vcc_5V
D19
1N4148
CHECK_SELECT_3
ISO18
PC817
1
2
3
4
D21 1N4148
Vcc_5V
CHECK_L_H_3_1
D33
1N4148
R55
22K
-
+
D23 BRIDGE
2
1
3
4
ISO16
PC817
1
2
3
4
D28
GREEN
U7B
7414
3 4
14
7
CHECK_L_H_3_2
D24
GREEN
ISO17
PC817
1
2
3
4
CHECK_L_H_4_1
U6
L298
5
7
10
12
2
3
13
14
8
6
11
115
94
1A1
1A2
2A1
2A2
1Y1
1Y2
2Y1
2Y2
GN
D
1EN
2EN
1E2E
VC
C1
VC
C2
Vcc_5V
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 45
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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 a và khâu 2 phải di
chuyển một góc b . Tay kẹp luôn luôn vuông góc với mặt phẳng ngang.
· Ta biết được góc a từ cung tròn có chia độ.
· Ta tìm góc b 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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 46
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Điều khiển PID cho khâu đế:
1. Khâu 2:
Khâu 2 có chiều dài L = 19cm,
· Vùng hoạt động: cung nhỏ: ¼AOB
· 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.
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ơ
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 47
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Giả sử vật đang ở C
Ta có:
· Ch L>
sin acsin( )C C
h L h L
L L
b b
- -
= Þ =
Ban đầu khâu 2 đang ở vị trí A. Đến C thì đi được 1 góc
040a b= -
· Ch L>
sin acsin( )C CL h L h
L L
b b
- -
= Þ =
Khi đó tay máy di chuyển một góc
040a b= +
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 48
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2. 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.
0 180d fÞ + =
Vị trí ban đầu có
0
0
130
50
f
b
=
=
Khi khâu 2 di chuyển một góc a thì khâu 3 di chuyển một góc a
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 a thì khâu 3 di chuyển một góc a-
3. Tay kẹp quay trái, phải:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 49
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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ơ
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 50
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộ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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 51
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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:
SEL PWM4
SEL PWM1
PWM Q0.0
SEL PWM2
PWM Q0.1
VALVE
J2
SELECT PWM
1
2
3
4
5
6
SEL FOR/REV 4
SEL FOR/REV 3
J6
SELECT PORWARD / REVERSE
1
2
3
4
SEL FOR/REV 1
SEL FOR/REV 2
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 52
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2.2. Kết nối với đầu vào:
O_PHASE_B_1
O_PHASE_A_1
J12
ENCODER1
1
2
O_PHASE_A_2
O_PHASE_B_2
J22
ENCODER2
1
2
O_PHASE_B_3
J24
ENCODER3
1
2 O_PHASE_A_3
O_PHASE_A_4
O_PHASE_B_4
J26
ENCODER4
1
2
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.
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 53
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 54
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 55
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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ơ
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 56
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộ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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 57
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2. Lưu đồ giải thuật chương trình con High Speed Counter:
SMBX7 = 16#FC
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
3. Lưu đồ giải thuật chương trình con PWM (điều xung):
Start
Cài đặt giá trị của HSC
Chọn Mode 9 đếm xung vuông
pha từ Encoder
End
1 1 1 1 1 1 0 0
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 58
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
SMB77 = 16#DB
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
4. Giải thuật chương trình xung sang góc:
5. Giải thuật chương trình góc sang xung:
1 1 0 1 1 0 1 1
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á 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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 59
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Số xung trong thời gian lấy mẫu
= (số xung Encoder)*(T mẫu)
Start
Tmẫu(ms) Ú (s)
End
6. Lưu đồ giải thuật chương trình cài đặt thông số PID:
7. Lưu đồ giải thuật chương trình con PID:
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 60
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
8. Lưu đồ giải thuật chương trình ngắt:
VI. Kết quả - hạn chế:
1. Kết quả:
n Tay máy thực hiện được gắp – thả vật theo vị trí cho trước.
n Tìm hiểu bộ xuất xung và đọc xung tốc độ cao.
n 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ế:
n Thời gian đáp ứng còn chậm.
n Chỉ gắp vật ở vị trí cố định.
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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 61
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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.
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 62
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
TÀI LIỆU THAM KHẢO
v 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.
v Hướng dẫn sử dụng S7_200 – Hà Văn Trí – Công ty THHH TM&DVKT SIS.
v Đ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.
v Datasheet của S7_200 Siemens.
v Help trong Step 7 Microwin 4.0
v 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.
v www.dientuvietnam.net
v www.ant7.com
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 63
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
PHỤ LỤC
1. Sơ đồ mạch in:
Mạch trên
Mạch dưới:
Mạch báo động mặt trên:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 64
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Mạch báo động mặt dưới:
Mạch cầu đôi:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 65
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
2. Giao diện Màn hình giao tiếp:
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 66
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
3. 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
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 67
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
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
// vi tri gap
LD M1.4
EU
ROUND VD304, AC0
DTI AC0, VW72
S M7.1, 1
Network 17
//điều khiển ĐC khâu 2
LD M0.0
LD M0.6
O M0.7
O M7.5
ALD
LPS
LDW>= VW32, 2
OW<= VW32, -2
ALD
S Q0.5, 1
LPP
AW< VW32, 2
AW> VW32, -2
R Q0.5, 1
Network 18
/ điều khiển ĐC tay kẹp
LD M0.0
LD M0.6
O M0.7
O M7.5
ALD
LPS
LDW>= VW34, 2
OW<= VW34, -2
ALD
S Q0.3, 1
LRD
AW> VW34, -2
AW< VW34, 2
R Q0.3, 1
LRD
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 68
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
LDW>= VW36, 2
OW<= VW36, -2
ALD
S Q0.4, 1
LPP
AW> VW36, -2
AW< VW36, 2
R Q0.4, 1
Network 19
// Dieu khien do rong xung khau tay kep
LD M0.0
LPS
LDW>= VW34, 2
OW>= VW36, 2
ALD
EU
MOVW 6, SMW80
LPP
PLS 1
Network 20
// phát hiện có vật
LD M7.0
A M7.1
A I1.5
EU
= M8.0
Network 21
LD M8.0
S M0.4, 1
Network 22
LD M0.0
A M0.4
TON T50, 15
Network 23
// chờ 1,5s sau đó cho các khâu hoạt động
LD M0.0
A M0.4
A T50
EU
MOVW VW60, VW8
MOVW VW62, VW52
MOVW 0, VW54
-I VW62, VW54
S M0.6, 1
Network 24
LD M0.0
A M0.6
A SM37.7
ED
S M5.0, 1
Network 25
// kết thúc các khâu
LD M0.0
A M0.4
A M0.6
A M5.0
AN Q0.5
AN Q0.3
AN Q0.4
EU
S M4.0, 1
Network 26
// chờ 1,5s
LD M4.0
TON T40, 15
Network 27
// quay phai
LD M0.0
A M0.4
A M0.6
A M10.1
A T40
EU
+I VW48, VW24
-I VW48, VW26
S M10.2, 1
Network 28
// quay trai
LD M0.0
A M0.4
A M0.6
A M10.0
A T40
EU
-I VW46, VW24
+I VW46, VW26
S M10.3, 1
Network 29
// phát hiện có xoay tay kẹp
LD M0.0
A M0.4
A M0.6
LD M10.2
O M10.3
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 69
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
ALD
A Q0.3
ED
S M11.0, 1
Network 30
LD M0.0
A M0.4
A M0.6
A M11.0
TON T55, 15
Network 31
// chờ 1,5s gắp vật
LD M0.0
A M0.4
A T55
EU
LD M0.0
A M0.4
AW= VW46, 0
A T40
EU
OLD
S M4.1, 1
R M0.6, 1
Network 32
LD M0.0
A M0.4
A M0.6
= M8.2
Network 33
// gắp vật
LD M8.2
ED
S Q0.2, 1
R M11.0, 1
Network 34
LD M0.0
A Q0.2
TON T41, 15
Network 35
// quay ve vi tri ban dau của tay kẹp
// neu quay phai
LD M0.0
A M0.4
A M10.2
A T41
EU
-I VW48, VW24
+I VW48, VW26
S M10.4, 1
Network 36
// quay ve vi tri ban dau cua tay kep
// neu quay trai
LD M0.0
A M0.4
A M10.3
A T41
EU
+I VW46, VW24
-I VW46, VW26
S M10.5, 1
Network 37
LD M0.0
A M0.4
LD M10.4
O M10.5
ALD
A Q0.3
ED
S M11.1, 1
Network 38
LD M0.0
A M0.4
A M11.1
TON T56, 15
Network 39
// chờ 1,5s quay đến vị trí nhả vật
LD M0.0
A M0.4
A T56
EU
LD M0.0
A M0.4
AW= VW46, 0
A T41
EU
OLD
MOVW VW70, VW8
MOVW VW72, VW52
MOVW 0, VW54
-I VW72, VW54
S M0.7, 1
Network 40
LD M0.4
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 70
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
AW> T56, 20
EU
R M5.0, 1
R M4.0, 1
R M10.2, 4
R M11.0, 2
Network 41
LD M0.7
A SM37.7
ED
S M5.1, 1
Network 42
LD M0.0
A M0.4
A M0.7
A M5.1
AN Q0.5
AN Q0.3
AN Q0.4
EU
S M4.2, 1
Network 43
LD M0.0
A M4.2
TON T42, 15
Network 44
LD M0.0
A M0.4
A T42
EU
R Q0.2, 1
R M0.7, 1
Network 45
LD M0.4
A M0.7
= M8.2
Network 46
LD M0.4
A M8.2
ED
S M8.4, 1
Network 47
LD M0.4
A M8.4
TON T53, 15
Network 48
LD M0.0
A M0.4
AW> T42, 20
EU
R M5.1, 1
R M4.2, 1
Network 49
// chờ 1,5s quay về vị trí đầu
LD M0.0
A M0.4
A T53
EU
MOVW 3, VW8
MOVW 5, VW52
MOVW -5, VW54
S M7.5, 1
R M8.4, 1
Network 50
LD M0.0
A SM37.7
ED
S M5.5, 1
Network 51
LD M0.0
A M0.4
A M7.5
A M5.5
AN Q0.5
AN Q0.3
AN Q0.4
EU
S M4.6, 1
Network 52
LD M0.4
A M7.5
A M4.6
TON T54, 30
Network 53
// chờ 3s sau đó chờ có vật
LD M0.4
A M7.5
AW>= T54, 32
EU
R M7.5, 1
R M0.6, 2
R M7.2, 6
R M4.0, 8
R M5.0, 8
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 71
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
R M8.0, 8
R M0.4, 1
Code các chương trình con
Code chương trình con PID
Network 1 // Network Title
// xoa cac gia tri hien tai cua bo PID va dua
thoi gian ngat vao ngat timer
LD SM0.0
MOVR VD420, VD350
/R 360.0, VD350
MOVR 0.0, VD132
MOVR 0.0, VD100
MOVR VD376, VD116
MOVB VB136, SMB34 // SMB34 byte
chua thoi gian ngat
Code chương trình con cai dat
thong so
Network 1 // Network Title
// chuyen thoi gian lay mau thanh so thuc
LD SM0.0
BTI VB136, AC0
ITD AC0, AC0
DTR AC0, VD320
MOVR VD320, VD376
/R 1000.0, VD376
Code chương trình con PWM 0
Network 1 // Network Title
// cai dat cac thong so cho PWM0
LD SM0.0
MOVB 16#DB, SMB67 // T=100ms
MOVW 100, SMW68
MOVW 0, SMW70
MOVB 16#DA, SMB67
PLS 0
Code chương trình con HSC0
Network 1 // Instruction Wizard HSC
LD SM0.0
MOVB 16#7C,
MOVD 0, SMD38 //Load CV
MOVD 0, SMD52 //Load PV
HDEF 0, 9
HSC 0
S SM37.7, 1
Code chương trình con xung – goc
0
Network 1 // Network Title
// Lay gia tri hien tai cua HSC0 ==> VW0
LD SM0.0
MOVD HC0, AC0
DTI AC0, AC0
MOVW AC0, VW0
Network 2
// Chuyen tu xung sang goc cua khau de
==> VW10
LD SM0.0
MOVD HC0, AC0
*D +360, AC0
/D 400, AC0
DTI AC0, VW10
Code chương trình con goc - xung 0
Network 1 // Network Title
// Chuyen tu goc sang xung cua khau de
==> vw20
LD SM0.0
ITD VW8, AC0
*D 400, AC0
MOVD AC0, VD708
/D +360, VD708
DTI VD708, VW20
DTR VD708, VD712 // lay xung hien tai
chuyen thanh so thuc dua vao VD712
Network 2
// Xac dinh sai so can tren va can duoi cua
khau de ==> VW30
LD SM0.0
MOVW VW20, VW30
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 72
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
-I VW0, VW30
Code chương trình con xung –chieu
cao
Network 1 // Network Title
// Lay gia tri hien tai cua HSC1 ==> VW2
LD SM0.0
MOVD HC1, AC1
DTI AC1, AC1
MOVW AC1, VW2
Network 2
// Chuyen tu xung sang goc cua khau 1 ==>
VW12
// 8460: xung Encoder 2
LD SM0.0
MOVD HC1, AC0
*D +360, AC0
/D +8460, AC0
DTR AC0, VD850
ROUND VD850, AC0
DTI AC0, VW12
Network 3
//chuyển xung thành chiều cao hiện tại
LD SM0.0
MOVR 25.2, AC0
/R 90.0, AC0
MOVR AC0, VD854
*R VD850, VD854
MOVR 29.2, AC0
-R VD854, AC0
ROUND AC0, AC0
DTI AC0, VW84
Code chương trình con goc - xung 1
Network 1 // Network Title
// Chuyen tu goc sang xung cua khau 1 ==>
VW22
LD SM0.0
ITD VW52, AC1
*D 8460, AC1
/D 360, AC1
DTI AC1, VW22
Network 2
// Xac dinh sai so can tren va can duoi cua
khau 1 ==> VW32
LD SM0.0
MOVW VW52, VW32
-I VW12, VW32
Code chương trình con về vị trí đầu
Network 1
LD M0.5
TON T101, 3
Network 2 // Network Title
// Chờ 0,3s cho ĐC khâu đé quay ngược
LDW> T101, 3
= Q1.0
Network 3
// khâu đế hoạt động
LDW> T101, 6
EU
MOVW 100, SMW70
PLS 0
Network 4
// độ rộng xung cho tay kẹp
LD SM0.0
MOVW 8, SMW80
PLS 1
Network 5
// đảo chiều ĐC khâu 2
LDW> T101, 3
= Q1.1
Network 6
// ĐC khâu 2 hoạt động
LDW> T101, 12
EU
S Q0.5, 1
Network 7
//khâu tay kẹp hoạt động
LDW> T101, 18
EU
S Q0.3, 2
Network 8
// đừn các động cơ khi gặp công tắc hành
trình
LD I0.5
EU
MOVW 0, SMW80
PLS 1
Network 9
LD I0.5
R Q0.3, 2
Network 10
LD I1.1
R Q0.5, 1
Network 11
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 73
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
LD I1.0
MOVW 0, SMW70
PLS 0
Network 12
// xóa các bit và HSC
LD I1.0
A I1.1
A I0.5
EU
HSC 0
HSC 1
HSC 2
HSC 4
R M0.0, 255
R Q0.5, 10
R T0, 255
HSC 0
Code chương trình con HSC1
Network 1 // Instruction Wizard HSC
LD SM0.0
MOVB 16#FC, SMB47 //Set
control bits: count UP; rate 1X; enabled;
MOVD +0, SMD48 //Load CV
MOVD +0, SMD52 //Load PV
HDEF 1, 9
ENI
HSC 1
Code chương trình con HSC2
Network 1 // Instruction Wizard HSC
LD SM0.0
MOVB 16#FC, SMB57 //Set
control bits: count UP; rate 1X; enabled;
MOVD +0, SMD58 //Load CV
MOVD +0, SMD62 //Load PV
HDEF 2, 9
ENI
HSC 2
Code chương trình con HSC4
Network 1 // Instruction Wizard HSC
LD SM0.0
MOVB 16#FC, SMB147 //Set
control bits: count UP; rate 1X; enabled;
MOVD +0, SMD148 //Load CV
MOVD +0, SMD152 //Load PV
HDEF 4, 9
ENI
HSC 4
Code chương trình con xung – goc
2
Network 1 // Network Title
// lay gia tri hien tai cua HSC2 ==> VW4
LD SM0.0
MOVD HC2, AC2
DTI AC2, AC2
MOVW AC2, VW4
Network 2
// Chuyen tu xung sang goc cua khau 3 ==>
VW14
LD SM0.0
MOVD HC2, AC2
*D +360, AC2
/D 240, AC2
DTI AC2, VW14
Code chương trình con xung – goc 3
Network 1 // Network Title
// Lay gia tri hien tai cua HSC4 ==> VW6
LD SM0.0
MOVD HC4, AC3
DTI AC3, AC3
MOVW AC3, VW6
Network 2
// Chuyen tu xung sang goc cua khau 4 ==>
VW16
LD SM0.0
MOVD HC4, AC3
*D +360, AC3
/D 240, AC3
DTI AC3, VW16
Code chương trình con goc - xung 2
Network 1 // Network Title
// Chuyen tu goc sang xung cua khau 2 ==>
vw24
LD SM0.0
ITD VW54, AC2
*D 240, AC2
/D 360, AC2
DTI AC2, VW24
Network 2
// Xac dinh sai so can tren va can duoi cua
khau 2 ==> vw34
LD SM0.0
MOVW VW24, VW34
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 74
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
-I VW4, VW34
Code chương trình con goc - xung 3
Network 1 // Network Title
// Chuyen tu goc sang xung cua khau 2 ==>
vw24
LD SM0.0
ITD VW54, AC2
*D 240, AC2
/D 360, AC2
DTI AC2, VW24
Network 2
// Xac dinh sai so can tren va can duoi cua
khau 2 ==> vw34
LD SM0.0
MOVW VW24, VW34
-I VW4, VW34
Code chương trình con PWM 1
Network 1 // cai dat thong so cho PWM1
LD SM0.0
MOVB 16#DB, SMB77
MOVW 100, SMW78
MOVW 0, SMW80
PLS 1
MOVB 16#DA, SMB77
Code chương trình ngắt Timer 0
Network 1 // Network Title
// VD712: GIA TRI DAT CHUYEN QUA SO
THUC
LD SM0.0
MOVR VD280, VD112
MOVR VD284, VD120
/R 1.0, VD120
MOVR VD288, VD124
*R VD280, VD124
MOVR VD420, VD350
/R 360.0, VD350
MOVR VD350, VD104
PID VB100, 0
MOVR VD700, VD368
/R VD712, VD368 // so sanh gia tri
HSC hien tai va gia tri dat
MOVR VD368, VD720
/R 360.0, VD720
MOVR VD720, VD100 // PID xu ly
MOVR VD108, VD372 // PID out
chuyen thanh xung hien tai xuat ra Q0.0
*R 100.0, VD372
ROUND VD372, VD716
DTI VD716, VW380
MOVW VW380, SMW70 // xuat xung ra
Q0.0
PLS 0
Network 2
LD SM0.0
MOVD HC0, AC0
DTR AC0, VD500
MOVR VD500, VD700
+R VD504, VD700 // cong don gia tri
HSC0 vao VD700
MOVB 1, VB140
CRETI // thoat ngat
4. Code chương trình WinCC:
Nút “Bắt đầu”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
if (GetTagBit("bien2vtd")==1)
{
SetTagBit("START",0);
MessageBox(NULL,"Dang ve vi tri dau","Thong
tin",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMO
DAL);
// hiện thông báo khi nút “Vị trí đầu” được tích cực
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 75
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
}
else
{
SetTagBit("START",1);
SetTagBit("STOP",0);
SetTagBit("bien1",1);
SetTagBit("bien3",0);
}
}
Nút “Dừng”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
SetTagBit("bien1",0);
SetTagBit("bien2vtd",0);
SetTagBit("bien3",1);
SetTagBit("STOP",1);
SetTagBit("START",0);
SetTagBit("vi_tri_dau",0);
}
Nút “Thoát”
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,
UINT nFlags, int x, int y)
{
DeactivateRTProject ();
}
Nút “Vị trí gắp vật ”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// chuyển chiều cao sang góc
float a,b;
a= GetTagFloat("caidatcao");
if (a >= 19)
{
b = 40 - (180/3.141593)*(asin((a-19)/19));
}
else
{
b =40+ (180/3.141593)*(asin((19-a)/19));
}
SetTagFloat("GOC_GAP_CAO",b);
SetTagFloat("chieucaogap",GetTagFloat("caidatcao"));
SetTagWord("goc_gap",GetTagWord("caidatgoc"));
SetTagBit("vi_tri_gap",1);
SetTagBit("vi_tri_gap",0);
}
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 76
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Nút “Vị trí nhả vật ”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// chuyển chiều cao sang góc
float a,b;
a= GetTagFloat("caidatcao");
if (a >= 19)
{
b = 40 - (180/3.141593)*(asin((a-19)/19));
}
else
{
b =40+ (180/3.141593)*(asin((19-a)/19));
}
SetTagFloat("GOC_NHA_CAO",b);
SetTagFloat("chieucaonha",GetTagFloat("caidatcao"));
SetTagWord("goc_nha",GetTagWord("caidatgoc"));
SetTagBit("vi_tri_nha",1);
SetTagBit("vi_tri_nha",0);
}
Nút “Xóa ”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// xóa tất cacr các giá trị
SetTagBit("RESET_ALL",1);
SetTagBit("RESET_ALL",0);
SetTagFloat("caidatcao",0);
SetTagWord("GOC_DO_0",0);
SetTagWord("goc_gap",0);
SetTagWord("GOC_DAT_0",0);
}
Nút “Về vị trí đầu ”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
if (GetTagBit("bien1")==1)
{
SetTagBit("vi_tri_dau",0);
MessageBox(NULL,"Dang thuc hien qua trinh","Thong
tin",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
// hiện thông báo nếu nút “Bắt đầu” được tích cực
}
else
{
SetTagBit("vi_tri_dau",1);
SetTagBit("bien2vtd",1);
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 77
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
}
}
Nút “Đồ thị ”
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,
UINT nFlags, int x, int y)
{
// hiển thị đồ thị
BOOL Bool;
Bool=TRUE;
PDLRTSetPropEx(0,lpszPictureName,"Dialogbox1","Visible",VT_BOOL,&Bool,NULL,NULL,
0,NULL,NULL);
}
Nút “Mặc định ”
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// đặt các thông số Kp, Ki, Kd
SetTagFloat("KP",7);
SetTagFloat("KI",0.01);
SetTagFloat("KD",0.001);
SetTagWord("T_MAU_MS",60);
}
Biến nội
Đồ án tốt nghiệp: Điều khiển PID tay máy Trang 78
GVHD: ThS Trần Thị Hoàng Oanh SVTH: Nguyễn Công Lộc
Biến ngoại
Các file đính kèm theo tài liệu này:
- Noi dung_sua.pdf