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

Bộ điều khiển PID trong PLC

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 (148.93 KB, 9 trang )

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:
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
Sp
Bộ điều khiển PID
Kc, Ti, Td, Ts
D/A
Đối tợng
A/D
Pv
VD104
E = Sp - Pv
VD108


VD100
VD112
VD120
VD124
VD116
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 :
Trong công thức 2 :
MPn: Thành phần tỷ lệ
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
210
M(t) = Kc * e(t) + Kc/Ti

dtet)(
+ Minitial + Kc* Td * de/dt (1)
Mn = MPn + MIn + MDn (2)
Thành phần tỷ lệ
Thành phần Tích phân
Thành phần vi phân
MPn = Kc * ( SPn - PVn )

MIn = Kc * Ts/Ti * ( SPn - PVn) + MX
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
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.
SP
n
: Giá trị đặt
PV
n
: 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
MDn = Kc * Td/Ts * ( ( SP
n

- PV
n
) - (SP
n
- PV
n-1
))
MDn = Kc * Td/Ts * ( PV
n -1
- PV
n
)
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
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
Thông số tính
toán
Định dạng vào/ra Mô tả Người dùng
có thể định
nghĩa
0 PV Double word
- real
vào 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%
NO
4 SP Double word

- real
IN Giá trị đặt về mức nước trong bể, cũng phải nằm
trong khoảng 0.0 – 1.0
YES
8 M Double word
- real
In/Out Giá trị tín hiệu ra, nằm trong khoảng 0.0 – 1.0 NO
12 KC Double word
- real
In Hệ số khuếch đại P. YES
16 TS Double word
- real
In Thời gian trích mẫu YES
20 Ti Double word
- real
In Thời gian tích phân. YES
24 Td Double word
- real
In Thời gian vi phân YES
28 Bias (MX) Double word
- real
In/Out Tổng tích phân (bias MX or integral sum) YES
32 PVN-1 Double word
- real
In/Out Giá trị mức nước đo được lần lấy mẫu trước NO

Trong chương trình dùng địa chỉ bắt đầu của bảng là VD100
VD100 PV Tin hieu qua trinh lấy vào từ AWI0
VD104 SP gia tri dat
VD108 M Gia tri dau ra PID

VD112 Kc He so khuech dai
VD116 Ts Thoi gian cat mau
VD120 Ti Hang so thoi gian tich phan
VD124 Td Hang so thoi gian vi phan
VD128 MX Gia tri ban dau cua tich phan
VD132 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
Lưu đồ thuật toán
214
CHƯƠNG TRÌNH CHINH
// PID

│ SM0.1 0
1 ├─┤ ├────────────────────────( CALL )


│ SM0.0 1
2 ├─┤ ├────────────────────────( CALL )


3 ├──────────────────────────────( MEND )

LD SM0.1 // ON tại vòng quét đầu
CALL 0 // Gọi hàm khởi tạo hệ
thống
LD SM0.0 // Luôn luôn ON
CALL 1 // Gọi hàm kiểm tra lỗi của
// khối analog

MEND // Kết thúc
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

┌──────────┐
│ 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 )
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
// Chuyển đổi sang tín hiệu 4 – 20
mA
/R 25600.0, AC0
// Chuyển PV về giá trị thường dùng
MOVR AC0, VD100
// Lưu vào vùng nhớ
LD I0.0 // Chế độ Auto
PID VB100, 0 // Thực hiện PID với địa
chỉ bắt đầu là VB100
// Tín hiệu đầu ra analog
LD SM0.0
MOVR VD108, AC0 // Đưa ra AC0
*R 32000.00, 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
216
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 0.75 // SV = 0.75 = 75% full
VD112 0.25 // K
c
= 0.25
VD116 0.10 // T
s
= 0.1 seconds

VD120 30.0 // T
i
= 30 minutes
VD124 0.0 // T
d
= 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

×