GVHD:Ths:Trần Văn Trinh
ĐỀ 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
1.Lệnh ATCH:
Bit EN : tín hiệu cho phép thực hiện lệnh ATCH INT : Chương trình ngắt được gọi khi
có sự kiện ngắt xảy ra
EVNT : Số thứ tự sự kiện ngắt
Ví dụ:
Khi gặp sự kiện ngắt số 8 ( Sự kiện ngắt Port nối tiếp ), chương trình sẽ gọi chương
trình ngắt INT_0.
1
đ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
GVHD:Ths:Trần Văn Trinh
Bảng sự kiện ngắt:
2
đ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
GVHD:Ths:Trần Văn Trinh
1.1. 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% và điều rộng xung theo tỉ lệ .
1.1.1 Điều rộng xung 50% (PTO):
Để 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
GVHD:Ths:Trần Văn Trinh
Control
PTO
Registe
Enabl Select
Segment
e
Mode
Operatio Base
n
16#81
Yes
PTO
Single
16#84
Yes
PTO
Single
16#85
Yes
PTO
Single
16#89
Yes
PTO
Single
16#8C
Yes
PTO
Single
16#8D
Yes
PTO
Single
r
(Hex
Time
Pulse
Cycle
Count
Time
Value)
1
Load
µ s/cycle
1
µ s/cycle
1
µ s/cycle
Load
Load
1
Load
ms/cycle
1
ms/cycle
1
Load
Load
Load
Load
ms/cycle
16#A0
Yes
PTO
Multiple
16#A8
Yes
PTO
Multiple
Các Byte cho việc định dạng
Ngoài ra:
4
Q0.0
1
µ s/cycle
1
ms/cycle
SMB67 ( cho Q0.0) SMB77 ( cho Q0.1)
Q0.1
đ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
GVHD:Ths:Trần Văn Trinh
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
1.2 Điều rộng xung theo tỉ lệ (PWM):
Để 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
Control
Registe
r
Select
Enabl e Mode
PWM
(Hex
Update
Value)
Method
16#D1
Yes
16#D2
Yes
16#D3
Yes
16#D9
Yes
5
PW
M
PW
M
PW
M
PW
M
Synchronous
Synchronous
Synchronous
Synchronous
Time
Pulse
Cycle
Base
Width
Time
1
Load
µ s/cycle
1
µ s/cycle
1
µ s/cycle
1
ms/cycle
Load
Load
Load
Load
đ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
GVHD:Ths:Trần Văn Trinh
16#DA
Yes
16#DB
Yes
PW
M
PW
M
Các Byte cho việc định dạng :
Synchronous
Synchronous
SMB67 ( cho Q0.0)
1
ms/cycle
1
ms/cycle
Load
Load
Load
SMB77 ( cho
Q0.1)
Ngõ 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
11. Đọc xung tốc độ cao:
Để đọ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
GVHD:Ths:Trần Văn Trinh
7
đ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
Chọ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á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 Star
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
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.
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
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
SVTH: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.
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Bả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:
HSC0 HSC1 HSC2 HSC4
SM37 SM47 SM57 SM147.
.0
.0
.0
0
Active level control bit for Reset**:
0 = Reset active high
1 = Reset active low
Active level control bit for Start**:
SM47 SM57
.1
Description
0 = Start active high
.1
1 = Start active low
Counting rate selection for Quadrature
SM37 SM47 SM57 SM147.
counters:
.2
0 = 4x counting rate
.2
.2
2
1 = 1x counting rate
SM Control Bits for HSC Parameters
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
HSC0 HSC1 HSC2 HSC3
HSC4
HSC5
Description
Counting
direction
SM37 SM47 SM57 SM137 SM147 SM157 control bit:
.3
.3
.3
.3
.3
.3
0 = count down
1 = count up
Write
the
counting
SM37 SM47 SM57 SM137 SM147 SM157 direction to the HSC:
.4
.4
.4
.4
.4
.4
0 = no update
1 = update direction
Write
the new preset
SM37 SM47 SM57 SM137 SM147 SM157 value to the HSC:
.5
.5
.5
.5
.5
.5
0 = no update
1 = update preset
Write the new current
SM37 SM47 SM57 SM137 SM147 SM157 value to the HSC:
.6
.6
.6
.6
.6
.6
0 = no update
1 = update current
SM37 SM47 SM57 SM137 SM147 SM157
.7
.7
.7
.7
.7
.7
Enable the HSC:
0 = disable the HSC
1 = enable the HSC
Các bit trang thái:
Status Bits for HSC0, HSC1, HSC2, HSC3, HSC4, and HSC5
HSC0 HSC1 HSC2 HSC3
HSC4
HSC5
Description
SM36 SM46 SM56 SM136 SM146 SM156 Not used
.0
.0
.0
.0
.0
.0
SM36 SM46 SM56 SM136 SM146 SM156 Not used
.1
.1
.1
.1
.0
.1
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
SM36 SM46 SM56 SM136 SM146 SM156 Not used
.2
.2
.2
.2
.0
.2
SM36 SM46 SM56 SM136 SM146 SM156 Not used
.3
.3
.3
.3
.0
.3
SM36 SM46 SM56 SM136 SM146 SM156 Not used
.4
.4
.4
.4
.0
.4
Current counting direction
SM36 SM46 SM56 SM136 SM146 SM156 status bit:
.5
.5
.5
.5
.0
.5
0 = counting down;
1 = counting up
Current value equals preset
SM36 SM46 SM56 SM136 SM146 SM156 value status bit:
.6
.6
.6
.6
.0
.6
0 = not equal;
1 = equal
Current value greater than
SM36 SM46 SM56 SM136 SM146 SM156 preset value status bit:
.7
.7
.7
.7
.0
.7
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
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Định dạng cho HSC ( xem chi
tiế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ương trình:
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
MAIN:
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
SMD48 = 0, SMD52 = 0
HDEF:
HSC =1, MODE 9
ENI
CALL HSC
PID:
SVTH: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 ĐÓ
RET
PWM:
START
NẠPGIÁ
CÁC
GIÁ TRỊ:
NẠP CÁC
TRỊ:
• CHU KÝ XUNG.
• THỜI GIAN PHÁT MỘT XUNG.
• Ton
XUẤT
XUẤT XUNG
XUNG
RET
RET
INT:
START
CHUẨN HÓA TỐC ĐỘ ĐẶT.
NẠP CÁC GIÁ TRỊ VÀO BỘ PID
GỌI CHƯƠNG TRÌNH PID.
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:
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Kênh A
:
I0.6
Kênh B
:
I0.7
Động cơ
:
Q0.0
3. Chương trình và giới thiệu các câu lệnh dùng:
Khai báo các biến dùng trong chương trình:
a.
3.1 MAIN:
SVTH: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.
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Đưa giá trị vận tốc đặt vào VD24, chuẩn hóa tốc độ do ra từ 0 = > 1.
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Cho phép ngắt timer 0 không cho phép chạy PID và HSC. Tiếp theo gọi chương trình
HSC và đưa vào các giá trị ban đầu cho các thông số PID.
3.2 Chương trình đếm xung ENCODER (HSC):
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
3.3 Bộ điều khiển (PID):
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 Chương trình xuất xung(PWM):
SVTH:Phạm Đức Nhân
GVHD:Ths:Trần Văn Trinh
Khai 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: