Tải bản đầy đủ (.doc) (42 trang)

đ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (999.33 KB, 42 trang )

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:


×