Tải bản đầy đủ (.docx) (23 trang)

Tài liệu Wincc Flexible Điều khiển tốc độ động cơ DC bằng thuật toán PID

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 (4.27 MB, 23 trang )

Chào mọi người,
Hi vọng các bạn đọc phần này trước để không phụ lòng của tôi.
Wincc Flexible không hề khó, khi lập trình với Flex có thể nói là khá đơn giản và
thân thiện nữa. Tài liệu Wincc tiếng việt đã có nhiều, nhưng tài liệu Flex thì rất ít, tuy
đơn giản những cái gì khi mới bắt đầu thì chúng ta phải rất nhọc công trong việc tìm
hiểu khi học nó, bởi chúng ta chẳng biết nên bắt đầu như thế nào. Hôm nay tôi muốn gởi
lên cho mọi người một tài liệu có thể nói là khá đơn giản về Flexible, coi như giúp các
bạn học tập tìm hiểu, mong nó sẽ tạo nền tảng cho các bạn để thực hiện các dự án to lớn
sau này. Ngày xưa tôi cũng nhọc công lắm để mò ra, hỏi hết người này đến tìm trên
mạng, nhất là bó tay với cái manual đọc chẳng hiểu gì hết.
Tôi xin gởi một dự án nhỏ mà tôi thực hiện khi học trong trường học, “điều khiển
PID động cơ DC bằng S7-200, giám sát điều khiển bằng Flexible”.
Ta không thể so sánh Wincc và Flex bởi 2 chương trình được thiết kế để thực hiện
hai mục đích khác nhau dù cho trong những dự án nhỏ ta có thể dùng loại nào cũng
được. Khi dùng Flex bạn cảm thấy dung lượng nhỏ hơn rất nhiều.
Hy vọng với mục tiêu học tập là tiếp thu và chia sẻ, tôi mong các bạn hãy suy nghĩ
sâu xa hơn, đừng ích kỷ khi chia sẻ tài liệu với bạn của mình. Người ích kỷ sẽ tự hại
mình, hại cho người khác, hại xã hội thôi. Tôi mong rằng tài liệu này tôi gởi lên là miễn
phí nên các trang Web không được kinh doanh nó để lấy lợi nhuận với bất kỳ hình thức
nào.
Xin cảm ơn mọi người.
Người viết,
Nguyễn Quốc Bình

Đại học công nghiệp TP HCM
MỤC TIÊU:
• Điều khiển tốc độ động cơ DC bằng thuật toán PID trên S7-200.
• Điều khiển giám sát, báo lỗi hệ thống bằng giao diện Wincc Flexible 2008.
NỘI DUNG:
• Thiết kế giao diện điều khiển hệ thống trên Wincc Flexible 2008, giao diện
gồm có:


 Nút nhấn Start/Stop.
 Đảo chiều quay.
 Đèn báo lỗi hệ thống.
 Đồ thị hiển thị trạng thái đáp ứng của động cơ.
• Chương trình điều khiển động cơ trên S7-200.
Khởi động Wincc Flexible:
Giao diện khởi động xuất hiện, chọn Creat an empty project:
Một cửa sổ có tên Devide selection xuất hiện, đây là cửa sổ cho phép ta chọn loại màn
hình HMI sử dụng, nếu quan sát trên máy tính thì chọn PC/ Wincc Flexible Runtime.
Click OK.
Đây là giao diện chương trình, chú thích một số tùy chọn đơn giản nhất:
Và các tùy chọn khác như báo lỗi, Report, Scrip…
Lập trình cho Flexible kết nối với S7-200 gần giống như Wincc, ta không thể kết nối trực
tiếp mà phải sử dụng server OPC làm trung gian kết nối. Ở đây ta sử dụng PC Access.
Khởi động PC Access, cửa sổ chương trình hiện ra, chọn File/ New :
Điều chỉnh độ phân giải, loại màn hình
của giao diện khi chạy RunTime
Vùng tùy chọn thêm giảm các Screen.
Tùy chỉnh chọn loại kết nối, đặt Tag.
Click phải vào biểu tượng có hình PLC chọn New PLC:
Đặt tên là Motor. Click chuột phải vào khoảng trống giữa màn hình chọn New/Item và
đặt các biến như sau:
Tiến hành lưu lại và chạy OPC (nhấn vào biểu tượng Test client status). Chú ý phải lưu
lại để kích hoạt chương trình trên PC Access vứa tạo.
Sau khi lưu thì nhấn vào đây để kích hoạt OPC
Vào lại Wincc Flexible. Vào Communication/Connection:
Màn hình hiện ra như sau, tiến hành đổi tên Connection_1 thành S7-200 server 1 (có thể
đổi tên bất kỳ).
Trong bảng Communication Driver chọn OPC:
Nhấp chuột phải vào đây chọn Add

Connection.
Tên S7200 OPC.Server xuất hiện
Chọn S7200.OPC Server
Trong bảng có các biểu tượng màu xanh bên dưới chọn S7200 OPC.Server, lúc này tại ô
OPC server name sẽ có tên S7200 OPC.Server:
Việc kết nối hoàn tất, lúc này ta tiến hành đặt các biến Tag cho hệ thống.
Vào Communication/Tags:
Chuột phải chọn Add Tag, một Tag mới vừa tạo hiện ra, các thuộc tính của nó bao gồm:
• Name: Tên Tag, nên tiến hành đổi tên Tag cho dể quản lý.
• Display name: Tên hiển thị, có thể dùng chức năng này hoặc bỏ qua, tên hiển thị
mặc định là tên đặt ở mục Name.
• Connection: Chọn loại kết nối sử dụng. Ở đây chọn kết nối OPC vừa tạo ra.
• Data type: Kiểu dữ liệu.
• Symbol: đây là phần quan trọng nhất, là nơi liên kết giữa Wincc Flex với OPC, ví
dụ kết nối biến start với địa chỉ Start trên PC access vừa tạo ở trên:
Tại mục Acquisition Cycle là nơi chọn chu kỳ update, nên chọn 100ms.
Tương tự ta tạo các Tag và kết nối các biến Tag với PC Access như sau:
Quay lại màn hình Screen.
Dùng các Object để tạo ra giao diện như sau:
Simple Object: Dùng Text Field
tạo chú thích,
dùng IO Field để tạo ô xuất nhập dự liệu, dùng
Switch để tạo chọn lựa quay trái quay phải,
dùng Button để tạo các nút nhấn, Circle tạo
đèn báo…
Để vẽ đồ thị ta vào Enhanced Objects/ chọn Trend View:
Ta tạo giao diện như sau:
Bây giờ ta sẽ kết nối thuộc tính của các Object trên giao diện với các Tags mà ta đã tạo.
Trend view
Với các IO Field: Nhấp chuột phải vào IO Field tại S.P chọn Properties, cửa sổ

Properties hiện ra:
Làm theo các bước như trên cho 5 IO Field như sau:
Cycle: chu kỳ
cập nhật dữ liệu,
chọn 100ms
Check vào dấu  sau
khi hoàn thành việc điều
chỉnh để lưu lại.
Sửa đổi kiểu định
dạng cho dữ liệu xuất
nhập.
Kết nối IO với
Tag tương ứng.
Chọn lựa thuộc
tính xuất hay
Cửa sổ Properties của
IO Field.
• S.P: Vận tốc đặt ngoài giao diện. Ta kết nối với biến Setpoint. Kiểu dữ liệu định
dạng là 9999. Chọn lựa xuất nhập là Input (chỉ nhập).
• P.V: Vận tốc đo về. Kết nối Tag Feedback, kiểu dữ liệu là 9999, chọn lựa kiểu
xuất nhập là Output ( chỉ xuất dữ liệu).
• Kp, Ki, Kd: Là các tham số của bộ điều khiển PID, chọn kiểu xuất nhập là
Input/Output, kết nối tương ứng với các Tag cùng tên, kiểu dữ liệu là 99.999999.
Với các nút nhấn:
Nút start:
Vào Event/Click:
Hotkey? Chon F1.
Button Mode: chọn kiểu
hiển thị là hình ảnh hay
text hay ẩn đi. Chọn text.

Chữ hiển thị khi nhấn
(Text on)và không nhấn
(Text off).
Nơi đây là nơi lập trình cho các biến cố xảy ra khi nhấn nút Start. Tại dòng <no
function>, ta nhấp vào nó, biểu tượng  bên phải xuất hiện cho phép ta chọn lựa các
biến cố, chọn Setbit, tại noi có chữ <no value> ta nhấn và chọn đến tag Start.:
Hoàn thành cho nút nhấn Start. Với nút nhấn stop cũng làm tương tự nhưng function là
Resetbit Start.
Với Switch: chuột phải/Properties:
Đèn báo: Chuột phải vào đèn báo chọn Properties. Bảng điều chỉnh hiện ra:
Vào Amination/Apearance. Ta chọn liên kết với Tag Bao loi tại ô Tag và đặt màu sắc,
giá trị cho đèn báo như hình trên.
Chọn kết nối với Tag Dao chieu. Khi
tag này kích lên 1 thì motor quay phải.
Chú ý chọn Value On là 1.
Chọn như vậy thì khi
kích hoạt thì motor sẽ
quay phải, bình thường là
quay trái.
Chọn lựa kiểu hiển
thi, ở đây chọn kiểu
switch.
Chọn màu sắc:
màu viền và màu
nền.
Chọn giá trị
Liên kết Tag
Tùy chỉnh
Proper&es của đèn
báo

Vẽ đồ thị trong Wincc Flexible (TrendView Properties):
Nhấn chuột phải vào TrendView/Properties:
Các thuộc tính Properties cần chú ý tới:
• Apearance: Tùy chỉnh màu nền,màu trục tọa độ, màu thước…
• Layout: Chỉnh vị trí đặt đồ thị.
• Các tùy chọn Axis: Hiệu chỉnh độ lớn, title… của trục tọa độ.
• Trend: Tùy chọn này cho phép hiển thị giá trị các Tag lên đồ thị (liên kết Tag,
chọn màu hiển thị…).
Trên đồ thị ta chọn Left Value Axis, Right Value Axis là 1400. Trên trục X Axis ta chon
Interval Time là 100.
Kết nối biến Setpoint và Feedback với đồ thị:
Properties/Trend/ Chuột phải/Add Trend.
Kết nối PLC và nhấn Runtime để bắt đầu chạy chương trình.
Chọn màu cho đồ thị.
Source setting: Tùy chọn kết nối với
Tag cần đưa lên đồ thị.
Bảng Symbol:
XUNG SMD48 //gia tri hien tai hsc1
CHU_KY_XUNG SMW68 //chu ky xung
DO_RONG_XUNG SMW70 //do rong xung
PID0_Table VB100 //dia chi bat dau pid
PID_ENABLE VB140 //cho phep chay pid (1=run, 0=stop)
SP VD12 //toc do dat (vong/ph)
PV VD28 //toc do do (vong/ph)
XUNG_ENCODER VD32 //so xung cua encoder
TOC_DO_MAX VD40 //toc do toi da cho phep (vong/ph)
KP VD80 KP
KI VD84 KI
KD VD88 KD
PID_PV VD100 toc do do

PID_SP VD104 toc do dat trong pid
OUT VD108 ngo ra
PID_Gain VD112 kp
Ts VD116 thoi gian lay mau ts
Ti VD120 thoi gian tich phan ti
Td VD124 thoi gian vi phan td
BIAS VD128 tong vi phan
OUT_N VD132 output truoc do
Chương trình trên PLC:
TITLE=PROGRAM COMMENTS
Main:
Network 1
// Nap chuong trinh khoi tao xung Encoder, PID, Phat xung trong chu ky quet dau tien.
LD SM0.1
CALL SBR0
CALL SBR1
CALL SBR2
Network 2
// Reset ngo ra o chu ky quet dau tien, cho ngat timer 0, sau do chay chuong trinh HSC
de doc xung va PID de thuc hien thuat toan PID.
LD M0.0
O I0.0
EU //lenh phat hien xung canh len
R Q0.0, 1
ATCH INT0, 10
ENI //cho phep ngat
HSC 1
MOVB 1, VB140
Network 3
// Khi nhan stop thi xoa het cac thong so dang chay cua he thong: Gia tri do duoc, ngo

ra, reset HSC, ngat chuong trinh PID.
LD M0.1
O I0.1
MOVR 0.0, VD100
MOVR 0.0, VD108
MOVR 0.0, VD28
MOVB 0, VB140
MOVD 0, SMD48
Network 4
// Neu nhan M0.2 la dem len.
LD M0.2
S SM47.3, 1
Network 5
// neu khong nhan M0.2 la dem xuong.
LDN M0.2
R SM47.7, 1
Network 6
//bao loi khi nhan start ma motor van khong quay
LD M0.3
AD<= HC1, 5
= V48.1
= Q0.2
Network 7
//bao loi khi nhan stop ma motor van quay hoac motor quay mat dieu khien
LDN M0.3
AD>= HC1, 5
= V48.1
= Q0.2
Chuong trinh khoi tao HSC:
Network 1 // Instruction Wizard HSC

// Chon HSC1 chay o MODE9.
LD SM0.0
MOVB 16#7C, SMB47 //Set control bits: count UP; reset active HIGH;
start
//active HIGH; rate 1X; enabled;
MOVD 0, SMD48 //Load CV
MOVD 0, SMD52 //Load PV
HDEF 1, 9
HSC 1
S SM47.7, 1// Lenh cuoi cung (SET SM47.7) la cho HSC1 hoat dong.
Chuong trinh khoi tao PID:
TITLE=SUBROUTINE COMMENTS
Network 1 // Network Title
// Network Comment
// cai dat thong so cho chuong trinh pid, cac he so kp ti td duoc tinh va nap thang tu
giao dien, khong co dung gia tri mac dinh ban dau.
LD SM0.0
MOVR VD12, VD52
/R 2000.0, VD52 //chia gia tri dat cho toc do toi da

setpoint.
MOVR VD52, VD104
MOVB 0, VB140
MOVR 0.0, VD132
MOVR 0.0, VD28
MOVR 0.1, VD128
MOVR 0.06, VD116 //thoi gian lay mau 0.06s
Khởi tạo bộ điều xung:
Network 1
// Network Title

// Network Comment
LD SM0.0
MOVB 16#D3, SMB67
MOVW 1000, SMW68
MOVW 0, SMW70
MOVB 16#D3, SMB67
PLS 0
Chương trinh ngắt:
TITLE=INTERRUPT ROUTINE COMMENTS
Network 1 // Network Title
LD SM0.1
MOVR VD12, VD52
/R 2000.0, VD52
MOVR VD52, VD104
PID VB100, 0 //goi vong lap chuong trinh pid 0
MOVD HC1, VD0 //dua gia tri hsc vao vd0
DTR VD0, VD4
MOVR VD4, VD8
/R 400.0, VD8
MOVR VD8, VD100
MOVR VD8, VD28
*R 2000.0, VD28
MOVR VD108, VD16
*R 1000.0, VD16
ROUND VD16, VD17
DTI VD17, AC0
MOVW AC0, SMW70
PLS 0
Network 2
LD SM0.0

MOVD 0, SMD48
HSC 1
MOVB 1, VB140
CRETI

×