Ket-noi.com din n cụng ngh, giỏo dc
PLC04- 28
Điều khiển liên tục
Bộ Điều khiển PID
A. Mục đích yêu cầu
1. Nắm đợc nguyên lý bộ điều khiển PID bằng PLC.
2. Lập trình ứng dụng điều khiển quá trình.
B. Chuẩn bi :
1. Modul đào tạo PLC tối thiểu, Hoặc mô đun đầy đủ - S7-200-CPU215.
2. Mô đun EM235.
3. Thết bị lập trình cho PLC, Cáp ghép nối.
4. Máy tính và phần mềm lập trình.
C. Lý thuyết :
Giới thiệu chung : Bộ điều khiển PID bằng PLC - S7-200 có sơ đồ cấu trúc
nh sau:
VD104
E = Sp - Pv
VD108
Pv
Bộ điều khiển PID
Kc, Ti, Td, Ts
Sp
VD100
VD112
VD120
VD124
D/A
Đối tợng
VD116
A/D
Trong đó khối điều khiển (phần trong ô ---- ) đợc thực hiện bằng phần tử
PLC - S7-200-CPU215. Mô đun A/D, D/A đợc thực hiện bằng khối mở rộng
EM235.
Tín hiệu truyền trong hệ thống có cả phần liên tục và phần số.
Hệ điều khiển PID liên tục thực hiện luật điều khiển liên tục nh sau:
Luật điều khiển PID :
209
Ket-noi.com din n cụng ngh, giỏo dc
M(t) = Kc * e(t)
+
Kc/Ti (et)dt + Minitial + Kc* Td * de/dt
(1)
Trong đó :
M(t) :
Tín hiệu ra của khối điều khiển ở thời điểm (t).
Kc
:
Hệ số khuếch đại của bộ điều khiển
e(t)
:
Sai lệch giữa tín hiệu đặt và tín hiệu phản hồi từ quá trình.
Ti
:
Hằng số thời gian tích phân
Minitial:
Giá trị ban đầu của tích phân.
Td
Hằng số thời gian vi phân.
:
Chuyển sang hệ điều khiển số bằng PLC công thức (1) có thể viết thành :
Mn =
MPn
+
Thành phần tỷ lệ
MIn
+
MDn
Thành phần Tích phân Thành phần vi phân
Trong công thức 2 :
MPn: Thành phần tỷ lệ
MPn = Kc * ( SPn - PVn )
MPn: Thành phần tỷ lệ trong tín hiệu ra tại thời điểm n
Kc
hệ số khuếch đại
SPn
Tín hiệu đặt tai thời điểm thứ n
PVn Tín hiệu ra của bộ điều khiển tại thời điểm thứ n
MIn: Thành phần tích phân
MIn = Kc * Ts/Ti * ( SPn - PVn) + MX
210
(2)
Ket-noi.com din n cụng ngh, giỏo dc
Trong đó :
MIn: Thành phần tích phân trong tín hiệu ra tại thời điểm thứ n
Kc:
Hệ số khuếch đại
Ts:
Chu kỳ cắt mẫu
Ti:
Hằng số thời gian tích phân
SPn: Giấ trị đặt tại thời điểm thứ n
PVn: Giá trị ra của quá trình tại thời điểm thứ n
MX: Giá trị đầu của tích phân - (giá trị ra của PID tại thời điểm thứ n-1)
MDn : Thành phần vi phân
MDn = Kc * Td/Ts * ( ( SPn- PVn ) - (SPn - PVn-1 ))
MDn = Kc * Td/Ts * ( PVn -1 - PVn )
Trong đó :
MDn:
Thành phần vi phân trong tín hiệu ra tại thời điểm thứ n
Kc:
Hệ số khuếch đại
Td:
Hằng số thời gian vi phân
Ts:
Chu kỳ cắt mẫu.
SPn :
Giá trị đặt
PVn:
Giá trị đầu ra của quá trình tại thời điểm thứ n
Các thành phần này cùng các tham số Kc, Ti, Td, Ts đều có ảnh hởng đến các
đặc tính đầu ra của quá trình nh : Độ ổn định của hệ thống, Sai số tĩnh-sai số
trong chế độ xác lập, Độ quá điều chỉnh, Thời gian quá độ, số lần dao
động.v.v..Ngời học nên tham khảo thêm các tài liệu liên quan để hoàn thiện kiến
thức.
Giới thiệu về thí nghiệm và chơng trình :
211
Ket-noi.com diễn đàn công nghệ, giáo dục
Tham khảo:
Chương trình S7 – 200 dưới đây chỉ là một ví dụ ngắn về cách sử dụng PID
thông qua ví dụ về điều khiển mức nước trong bể để vừa đảm bảo áp suất vừa đảm
bảo nước trong bình không bị cạn hết. Cấu trúc hệ thống như hình dưới đây:
Yêu cầu thiết bị điều khiển: 01 PLC S7 200/ CPU 215; 216 trở lên và 01 khối EM 235
gồm có 3 đầu vào analog và một đầu ra analog 12 bít
Mô tả hệ thống:
Trong hệ thống này, một bể nước được dùng để khống chế áp lực nước
không đổi. Nước liên tục được lấy ra từ vòi với một tốc độ bất kỳ. Bơm được dùng
để tăng thêm nước vào bể với một tốc độ đủ để duy trì áp suất cũng như mức nước
trong bình không hạ xuống quá mức cho phép.
Giá trị đặt của hệ thống là mức nước (trong ví dụ này là 75% bể). Đại lượng
đầu vào của hệ thống là tín hiệu do một cảm biến đo mức đưa về thông qua đầu vào
analog A+, A-. Tín hiệu đưa về có thể thay đổi từ 4 – 20mA tương ứng với 0 – 100%
mức đầy của bể. Tín hiệu ra của hệ thống là tín hiệu điện áp có thể thay đổi từ 0 – 10
V dùng để điều khiển tốc độ bơm tương ứng là 0 – 100% tốc độ định mức.
Giá trị đặt được quyết định bởi người sử dụng và được đưa trực tiếp vào quá
trình. Trong chương trình này, bộ điều khiển sử dụng hai thông số là P và I, không
dùng đến D. Thời gian lấy mẫu là Ts = 0.1 giây, KC = 0.25 và Ti = 30 phút.
Trước tiên, bể nước sẽ được tiếp đầy nước cho đến khi được 75%. Sau đó,
van xả sẽ được mở để lấy nước từ bể và cùng lúc bơm sẽ được chuyển từ chế độ
điều khiển bằng tay sang chế độ tự động.
Trong quá trình điều khiển bằng tay, tốc độ bơm được qui định bởi số thực lưu
tại VD108 nằm trong khoảng 0.0 tới 1.0.
212
Ket-noi.com diễn đàn công nghệ, giáo dục
SBR0 là hàm thực hiện khởi tạo hệ thống.
SBR 1 là hàm thực hiện kiểm tra lỗi của khối analog.
Đầu vào I0.0 sẽ được dùng là tín hiệu khởi động hệ thống điều khiển tự động.
Đầu ra Q0.7 báo lỗi xảy ra ở module analog
Ngắt INT 0 thực hiện thuật toán PID mỗi 100 ms một lần
Bảng lặp dùng cho PID gồm có 36 byte và những thống số được đặt trong
vùng nhớ V và tất cả đều dùng là double word (VD)
Khoảng
cách so
với địa
chỉ bắt
đầu
0
Thông số tính
toán
Định dạng
vào/ra
Mô tả
Người dùng
có thể định
nghĩa
PV
vào
SP
YES
8
M
In/Out
Tín hiệu về mức nước hiện tại trong bể, khoảng
0.0 – 1.0 tương ứng 0 – 100%
Giá trị đặt về mức nước trong bể, cũng phải nằm
trong khoảng 0.0 – 1.0
Giá trị tín hiệu ra, nằm trong khoảng 0.0 – 1.0
NO
4
12
KC
In
Hệ số khuếch đại P.
YES
16
TS
In
Thời gian trích mẫu
YES
20
Ti
In
Thời gian tích phân.
YES
24
Td
In
Thời gian vi phân
YES
28
Bias (MX)
In/Out
Tổng tích phân (bias MX or integral sum)
YES
32
PVN-1
Double word
- real
Double word
- real
Double word
- real
Double word
- real
Double word
- real
Double word
- real
Double word
- real
Double word
- real
Double word
- real
In/Out
Giá trị mức nước đo được lần lấy mẫu trước
NO
IN
NO
Trong chương trình dùng địa chỉ bắt đầu của bảng là VD100
VD100
VD104
VD108
VD112
VD116
VD120
VD124
VD128
VD132
PV
SP
M
Kc
Ts
Tin hieu qua trinh lấy vào từ AWI0
gia tri dat
Gia tri dau ra PID
He so khuech dai
Thoi gian cat mau
Ti
Hang so thoi gian tich phan
Td
Hang so thoi gian vi phan
MX
Gia tri ban dau cua tich phan
PVN-1
Gia tri dat o buoc thu n-1
Có thể tham khảo thêm về PID trong các tài liệu được cung cấp trong Hướng
dẫn sử dụng hệ thống S7 200 và các sách tham khảo khác.
213
Ket-noi.com diễn đàn công nghệ, giáo dục
Lưu đồ thuật toán
214
Ket-noi.com diễn đàn công nghệ, giáo dục
CHƯƠNG TRÌNH CHINH
// PID
1
2
3
│ SM0.1
0
├─┤
├────────────────────────( CALL
│
│
│ SM0.0
1
├─┤
├────────────────────────( CALL
│
│
├──────────────────────────────( MEND
│
)
LD
CALL
SM0.1
0
// ON tại vòng quét đầu
// Gọi hàm khởi tạo hệ
SM0.0
1
// Luôn luôn ON
// Gọi hàm kiểm tra lỗi của
// khối analog
thống
)
)
LD
CALL
// Kết thúc
MEND
CHUONG TRINH CON
// SBR0: Khởi tạo hệ thống và khởi động ngắt thời gian
┌──────────┐
│ SBR: 0 │
└───┬──────┘
│ SM0.0
MOV_B───┐
5
├─┤
├───────────┬────────────┤EN
│
│
│
K100┤IN OUT├SMB34
│
│
└───────┘
│
│
ATCH────┐
│
├────────────┤EN
│
│
│
K0┤INT
│
│
│
K10┤EVT
│
│
│
└───────┘
│
│
│
└────────────( ENI )
│
6
├──────────────────────────────( RET )
SBR 0
LD SM0.0
MOVB 100, SMB34
// Thời gian ngắt là 100 ms
ATCH 0, 10
// Gọi chương trình ngắt thời gian
(10) để thực hiện thuật toán PID
ENI
// Chấp nhận hoạt động
RET
// Trở về chươn trình chính
// SBR1: Kiểm tra lỗi khối analog và báo lỗi bằng Q0.7
┌──────────┐
│ SBR: 1 │
└───┬──────┘
│ SMB8
KH19
Q0.7
8
├─────┤ == B ├─────┤NOT├─┬──────(
)
│
│
│
│
│
│
│
│
│ SMB9
KH0
│
├─────┤ == B ├─────┤NOT├─┘
│
│
9
├──────────────────────────────( RET )
│
SBR 1
LDB= SMB8, 16#19
// Nếu không có khối EM235 thì báo
lỗi
NOT
LDB= SMB9, 16#0
// Nếu đã có EM235 nhưng có lỗi thì
cũng báo lỗi
NOT
OLD
=
Q0.7
// Error reading analog module
RET
// INT 0: Thực hiện thuật toán PID - Chuonh trinh ngat
215
Ket-noi.com diễn đàn công nghệ, giáo dục
┌──────────┐
│ INT: 0 │
└───┬──────┘
│ Q0.7
WXOR_DW─┐
11 ├─┤ / ├───────────┬────────────┤EN
│
│
│
AC0┤IN1 OUT├AC0
│
│
AC0┤IN2
│
│
│
└───────┘
│
│
MOV_W───┐
│
├────────────┤EN
│
│
│
AIW0┤IN OUT├AC0
│
│
└───────┘
│
│
DI_REAL─┐
│
├────────────┤EN
│
│
│
AC0┤IN OUT├AC0
│
│
└───────┘
│
│
SUB_R───┐
│
├────────────┤EN
│
│
│ KR+6400.00┤IN1 OUT├AC0
│
│
AC0┤IN2
│
│
│
└───────┘
│
│
DIV_R───┐
│
├────────────┤EN
│
│
│
AC0┤IN1 OUT├AC0
│
│ KR+25600.0┤IN2
│
│
│
└───────┘
│
│
MOV_R───┐
│
└────────────┤EN
│
│
AC0┤IN OUT├VD100
│
└───────┘
│ I0.0
PID─────┐
12 ├─┤
├────────────────────────┤EN
│
│
VB100┤TBL
│
│
0┤LOOP
│
│
└───────┘
│ SM0.0
MUL_R───┐
13 ├─┤
├───────────┬────────────┤EN
│
│
│
VD108┤IN1 OUT├AC0
│
│ KR+32000.0┤IN2
│
│
│
└───────┘
│
│
TRUNC───┐
│
├────────────┤EN
│
│
│
AC0┤IN OUT├AC0
│
│
└───────┘
│
│
MOV_W───┐
│
└────────────┤EN
│
│
AC0┤IN OUT├AQW0
│
└───────┘
│
14 ├──────────────────────────────( RETI )
216
INT
0
LDN
Q0.7
// Nếu khối analog không có lỗi
XORD AC0, AC0
// Xóa AC0
MOVW AIW0, AC0
// Lấy giá trị đo được về mức nước
PV
DTR AC0, AC0
// Chuyển đổi sang số thực 32 bít
-R
6400.0, AC0
/R
25600.0, AC0
// Chuyển đổi sang tín hiệu 4 – 20
mA
// Chuyển PV về giá trị thường dùng
MOVR AC0, VD100
// Lưu vào vùng nhớ
// Chế độ Auto
// Thực hiện PID với địa
chỉ bắt đầu là VB100
LD I0.0
PID VB100, 0
// Tín hiệu đầu ra analog
LD SM0.0
MOVR VD108, AC0
*R 32000.00, AC0 //
// Đưa ra AC0
chuyển thang giá trị
TRUNC AC0, AC0
//Chuyển sang số nguyên 32 bít
MOVW AC0, AQW0
// Gửi ra đầu ra
RETI
// Trở lại chương trình chính
Ket-noi.com din n cụng ngh, giỏo dc
D liu DB1 (V Memory):
// Khoi tao cac tham so dieu khien cho bo dieu khien PID co the thuc hien bang cac
lenh MOV trong chuong trinh con SBR_0 hoac tu man hinh TD-200.
VD104
VD112
VD116
VD120
VD124
0.75
0.25
0.10
30.0
0.0
// SV = 0.75 = 75% full
// Kc = 0.25
// Ts = 0.1 seconds
// Ti = 30 minutes
// Td = 0
D. Các bớc thực hành
1. Tìm hiểu kỹ yêu cầu công nghệ nêu trên, phân tích dac điểm của hệ thống và
cách làm việc của hệ.
2. Liệt kê các đầu và ra :
3. Phân cổng vào ra cho PLC :
4. Dựng lu đồ chơng trình - mô ta cách làm việc của chơng trình :
5. Dich lu đồ sang giản đồ thang:
6. Lập trình giản đồ thang vào PLC
7. Nối PLC va cac thiet bi theo so do hinh 7-3
8. Chạy kiểm tra toàn bộ hệ thống - viết báo cáo nhận xét kết quả.
E. Câu hỏi cuối bài học
1. Giải thích nội dung quan sát đợc trong thực hành 8.
2. Thử nghiệm chơng trình trên với các bộ thông số điều khiển Kc, Ti, Td khác
nhau, rút ra nhận xét
3. Tìm tham số điều khiển tối u tác động nhanh của hệ.
217