điều khiển tốc độ động cơ DC kết hợp với s7200 bằng phương pháp PID trên giao diện WinCC
Trang 1ĐỀ BÀI : điều khiển tốc độ động cơ DC kết hợp với S7200 bằng phương pháp PID trên giao diện WinCC
I/ giới thiệu các lệnh dùng trong chương trình
Trang 3X u ấ t x u n g t ố c đ ộ c a o
CPU S7_200 có 2 ngõ ra xung tốc độ cao (Q0.0, Q0.1), dùng cho việc điềurộ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% và điều rộng xung theo tỉ lệ
1.1.1 Đ i ều r ộ n g x u n g 50 % ( P TO):
Để thực hiện việc phát xung tốc độ cao ( PTO) trước hết ta phải thực hiện các bước định dạng sau:
• Reset ngõ xung tốc độ cao ở chu kì đầu của chương trình
• Chọn loại ngõ ra phát xung tốc độ cao Q0.0 hay Q0.1
• Định dạng thời gian cơ sở ( Time base) dựa trên bảng sau:
PTO/PWM Control Byte Reference
Result of executing the PLS instruction
3 điều khiển tốc độ động cơ DC kết hợp với S7200 bằng phương pháp PID trên giao diện WinCC
Trang 4PTO Segment Operatio n
Time Base
Pulse Count
Cycle Time
µ s/cycle Load
µ s/cycle Load
µ s/cycle Load Load
Trang 5SMW68 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
1 2 Đ i ều r ộ n g x u n g theo t ỉ l ệ ( P W M ):
Để thực hiện việc phát xung tốc độ cao ( PWM) trước hết ta phải thực hiện các bước định dạng sau:
Reset ngõ xung tốc độ cao ở chu kì đầu của chương trình
Chọn loại ngõ ra phát xung tốc độ cao Q0.0 hay Q0.1
• Định dạng thời gian cơ sở ( Time base) dựa trên bảng sau:
Result of executing the PLS instruction
Time Base
Pulse Width
Cycle Time
5 điều khiển tốc độ động cơ DC kết hợp với S7200 bằng phương pháp PID trên giao diện WinCC
Trang 6GVHD:Ths:Trần Văn Trinh
1ms/cycle Load
1ms/cycle Load Load
Các Byte cho việc định dạng : SMB67 ( cho Q0.0)
SMB77 ( cho 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 11
Đọ c x u n g t ố c độ c a o :
Để đọc xung tốc độ cao, ta cần phải thực hiện các bước cho vệc định dạng Wizard:
Chọn Wizard đọc xung tốc độ cao High Speed Counter:
6 điều khiển tốc độ động cơ DC kết hợp với S7200 bằng phương pháp PID trên giao diện WinCC
Trang 77 điều khiển tốc độ động cơ DC kết hợp với S7200 bằng phương pháp PID trên giao diện WinCC
Trang 8Chọn Mode đọc xung tốc độ cao và loại Counter nào (HC0,HC1…)
Tuỳ từng loại ứng dụng mà ta có thể chọn nhiều Mode đọc xung tốc độ cao khácnhau,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 Star
Mode 2: Đếm tăng hoặc giảm, có Bit Start cũng như bit Reset để cho phép chọn
Trang 9cá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
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
Trang 10đế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
Trang 11Mode 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
Trang 12SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
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
Trang 13Bảng Mô tả chế độ đếm cũng như loại HSC, quy định địa chỉ vào.
Căn cứ vào bảng trên để có thể chọn loại HSC cho từng ứng dụng phù hợp
V
í d ụ : Không thể sử dụng HSC0 cho Mode 5, Mode 8 cũng như Mode 11, vì các
Mode này cần 4 chân Input trong khi đó HSC0 chỉ có 3 chân Input
1 Số Bit được sử dụng để điều khiển các chế độ của HSC:
SM147
0
Active level control bit for Reset**:
0 = Reset active high
1 = Reset active lowSM47
.1
SM57.1
Active level control bit for Start**:
0 = Start active high
1 = Start active low
Trang 14SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
SM137.3
SM147.3
SM157.3
Counting directioncontrol bit:
SM137.4
SM147.4
SM157.4
Write the countingdirection to the HSC:
SM137.5
SM147.5
SM157.5
Write the new presetvalue to the HSC:
SM137.6
SM147.6
SM157.6
Write the new currentvalue to the HSC:
0 = no update
1 = update currentSM37
.7
SM47
.7
SM57.7
SM137.7
SM147.7
SM157.7
SM136.0
SM146.0
SM156.0
SM136.1
SM146.0
SM156.1
Not used
Trang 15SM146.0
SM156.2
SM136.3
SM146.0
SM156.3
SM136.4
SM146.0
SM156.4
SM136.5
SM146.0
SM156.5
Current counting directionstatus bit:
SM136.6
SM146.0
SM156.6
Current value equals presetvalue status bit:
SM136.7
SM146.0
SM156.7
Current value greater thanpreset value status bit:
0 = less than or equal; 1 =greater than
V
í dụ : Muốn sử dụng HSC0 cho việc đếm xung tốc độ cao, trước hết ta định dạng
Wizard, sau khi định dạng Wizard, chương trình sẽ tạo ra 1 chương trình con, HSC_INIT, ta phải gọi chương trình này ở chu kì quét đầu tiên
Gọi chương trình HSC ờ chu
kỳ quét đầu tiên
Trang 16SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Định dạng cho HSC ( xem chitiết các Bit ở phần trên)
Load giá trị hiện tại của bộ đếm bằng 0
Load giá trị đặt bằng 0
Định dạng chế độ đếm ( Mode đếm)
Giá trị hiện tại của HSC0 sẽ nằm trong biến HC0
• Ngoài ra ta còn có thể định dạng cho HSC với những chế độ ngắt khác nhau như: Chương trình ngắt sẽ được thực thi khi giá trị HSC bằng với giá trị đặt
• Chương trình ngắt sẽ được thực thi khi hướng đếm thay đổi ( thay đổi từ chiều đếm thuận sang đếm ngược, đếm tăng, đếm giảm)
• Chương trình ngắt được thực thi khi Bit Reset được thực thi
II/ lưu đồ giải thuật và chương trình điều khiển
1 Lưu đồ ch ư ơ n g t r ì nh:
Trang 17MA I N :
START
CALL HSC CALL PID CALL PWM CALL INT EXIT NGẮT
XUẤT CÁC GIÁ TRỊ OUTPUT:
VD24= TỐC ĐỘ ĐẶT VD28=
TỐC ĐỘ ĐO VW32 = ĐỘ RỘNG XUNG VD36 = TỐC ĐỘ TRƯỚC ĐÓ…
HSC:
START SMB47 = #0FC
Trang 18SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
START
CHUẨN HÓA TỐC ĐỘ ĐẶT.
NẠP CÁC GIÁ TRỊ THÔNG SỐ BAN ĐẦU: TỐC ĐỘ THỜI
GIAN LẤY MẪU, Kp, Ki, Kd.
XUẤT RA GIÁ TRỊ LÀ XUNG SẼ ĐƯA VÀO ĐIỀU KHIỂN
ĐỘNG CƠ, XUNG TRƯỚC ĐÓ
TÍNH TOÁN TỐC ĐỘ RA DỰA VÀO SỐ XUNG, THỜI GIAN LẤY MẪU
LẤY GIÁ TRỊ XUNG ĐƯA VÀO BỘ PHÁT XUNG RA ĐỘNG CƠ
CẬP NHẬT CÁC GIÁ TRỊ HIỆN TẠI VÀ TRƯỚC ĐÓ VÀO BỘ ĐIỀU
KHIỂN PID.
RET
2 Sơ đồ k ết n ối :
Trang 19Kênh A : I0.6
3 C hương t r ì nh v à g i ới t h i ệu c á c c â u l ệ nh d ùn g :
Khai báo các biến dùng trong chương trình:
a
3 1 MA I N :
Trang 20SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Dùng V48.2 để tạo biến START cho chương trình Khi có START thì sẽ gọi chương trình con HSC , PID, PWM, reset ngõ ra Q0.0 ở chu kì đầu tiên và gọi chương trình ngắt để đưa giá trị xung liên tục vào Q0.0 khi hết ngắt thì gọi lại chương trình HSC
và đưa giá trị ban đầu vào thông số PID
Trang 21Đưa giá trị vận tốc đặt vào VD24, chuẩn hóa tốc độ do ra từ 0 = > 1.
Trang 22SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Trang 23Cho phép ngắt timer 0 không cho phép chạy PID và HSC Tiếp theo gọi chương trìnhHSC và đưa vào các giá trị ban đầu cho các thông số PID.
3 2 C hươ n g t r ì nh đ ế m x ung E NC O D ER (HS C ):
Trang 24SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
3 3 B ộ đ i ề u k h i ển ( P I D ):
Cài đặt các thông số ban đầu cho công thức tính toán: tốc độ cài đặt, thời gian lấy mẫu
3 4 C hươ n g t r ì nh x u ấ t x u n g ( P W M ):
Trang 25Khai báo thông số PWM: chu ky xung 1000, Ton =0 và thời gian xuất 1 xung mẫu là16#D3 ứng với 1micros /chu kỳ xuất xung.
3 5 Chương trì nh ngắ t:
Trang 26SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Chuẩn hóa tốc độ đặt và cài đặt các thông số và đưa vào ô nhớ sau đó gọi chương trình PID và sau đó các thông số ngõ ra sẽ được đưa vào các ô nhớ Để tính toán tốc
độ ra thì từ HC1 là giá trị ENCODER ta chia cho số xung tối đa của ENCODER và nhân cho thời gian lấy mẫu ta sẽ có được tốc độ thưc tế
Trang 28SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Giá trị ngõ ra của bộ PID sẽ được chuẩn hóa lại và đưa vào thay đổi độ rộng xung ra
Trang 29a u đó đ ặ t t ê n v à đ ị a ch ỉ :
C
ứ thế t i ếp tục t h i ết lậ p c á c b i ến k h á c n h ư h ì nh:
Trang 30SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Sau đó save lại và gán các biến vừa tạo vào WinCC:
Trang 32SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
T
i ếp tục l à m theo h ì nh v à n h ấ n F i n i s h:
Trang 334 2 G á n b i ến và o t a g l o g g i n g :
T
i ếp th e o đ ặ t tên v à c á c g i á t r ị k h á c như h ì nh:
Trang 34SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Trang 35Ti ếp theo chọ n sel ect:
V
à ch ọ n b i ến c ầ n h i ển thị lên đồ t h ị v à n h â n OK = > f i n i s h:
Trang 36SVTH:Phạm Đức Nhân GVHD:Ths:Trần Văn Trinh
Trang 39ngoài ra tạo thêm các nút nhấn, các trường I/O để nhập và hiển thị các thông số nhưhình:
Để kết nối các trương I/O với biến ta click chuột phải trường đó và chọn:
Trang 40à ch ọ n b i ển t ư ợng h ì nh t r o n g th a n h t a g :
Trang 41III/ Thiết Kế Và Thi Công Phần Cứng
Mạch công suất
Trang 42GVHD:Ths:Trần Văn Trinh