Ảnh hưởng của các khâu P,I,D là cơ sở để chọn các hệ số phù hợp với hệ thống trong quá
trình lập trình. Khâu tỉ lệ (P) sẽ ảnh hưởng nhiều đến thời gian lên (rising time) và đáp ứng của hệ
thống, tuy nhiên nếu không chọn giá trị Kp hợp lý sẽ gây ra độ vọt lố cao và làm hệ thống giao
động. Khâu tích phân (I) có tác dụng triệt tiêu sai số xác lập của hệ thống, giúp cho hệ thống đáp
ứng nhanh lên nhưng đồng thời cũng dễ gây ra độ vọt lố lớn và làm tăng thời gian xác lập. Khâu
vi phân ( D) có tác dụng hiệu chỉnh để giảm thời gian xác lập và độ vọt lố, tuy nhiên do đặc tính
của khâu vi phân là nhạy với nhiễu tần số cao nên rất dễ làm cho hệ thống mất ổn định . Vì vậy đây
là khâu ít được sử dụng nhất trong 3 thông số của bộ điều khiển này
80 trang |
Chia sẻ: lylyngoc | Lượt xem: 3701 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Báo cáo Thực tập tốt nghiệp công ty TNHH kỹ thuật PLC Việt Nam, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
.......................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
iv
NỘI DUNG THỰC TẬP
- Tìm hiểu về PLC S7-300, lập trình các hệ thống MPS 300 bằng phần mềm TIA Portal
- Sử dụng phần mềm WinCC 7.0 để thiết kế hệ thống điều khiển giám sát
- Tìm hiểu về các phần mềm OPC: Kepware, IBH OPC
- Tìm hiểu các chuẩn truyền thông MPI, Profinet
MỤC LỤC
LỜI CẢM ƠN i
PHIẾU ĐÁNH GIÁ KẾT QUẢ THỰC TẬP ii
NỘI DUNG THỰC TẬP iv
PHẦN 1 LẬP TRÌNH PLC S7-300 VÀ PHẦN MỀM SCADA 7
CHƯƠNG 1 LẬP TRÌNH SCL S7-300 TRÊN STEP7 MANAGER 7
CHƯƠNG 2 LẬP TRÌNH S7-300 TRÊN PHẦN MỀM TIA PORTAL 13
1). Giới thiệu về phần mềm TIA portal ............................................................................ 13
2). Sử dụng TIA portal để cấu hình cho các trạm MPS 300 ............................................. 13
CHƯƠNG 3 KẾT NỐI CÁC PHẦN MỀM SCADA VỚI S7300 VÀ OPC SERVER 17
I) GIAO TIẾP S7-300 VỚI CÁC PHẦN MỀM SCADA THÔNG QUA CÁP USB MPI 17
1. Kết nối S7-300 với WinCC ......................................................................................... 17
2. Kết nối S7-300 với các phần mềm SCADA khác ....................................................... 19
A. Cấu hình các thông số trên phần mềm IBH OPC Server......................................... 20
B. Cấu hình trên phần mềm Citect SCADA để liên kết với IBH OPC ........................ 24
II) GIAO TIẾP S7-300 VỚI CÁC PHẦN MỀM SCADA THÔNG QUA CÁP
ETHERNET ........................................................................................................................... 27
A. Cấu hình cho PLC ....................................................................................................... 27
B. Cấu hình cho máy tính ................................................................................................ 32
C. Cấu hình cho OPC Server ........................................................................................... 33
CHƯƠNG 4 TRAO ĐỔI DỮ LIỆU TỪ WINCC VÀ SQL DATABASE 37
PHẦN 2 LẬP TRÌNH ĐIỀU KHIỂN VÀ GIÁM SÁT TRẠM MPS 44
A. TRẠM CUNG CẤP 44
1. Chức năng .................................................................................................................... 44
2. Các module và I/O........................................................................................................ 45
3. Lập trình chương trình điều khiển ................................................................................ 48
4. Thiết kế chương trình giám sát ..................................................................................... 57
B. TRẠM PHÂN LOẠI SẢN PHẪM 60
1) Chức năng .................................................................................................................... 61
2) Các module và I/O........................................................................................................ 61
3) Lập trình chương trình điều khiển ................................................................................ 63
4) Thiết kế chương trình giám sát ..................................................................................... 69
C. TRẠM BỒN NƯỚC - EDUKIT PA 72
1. Giới thiệu hệ thống bồn nước: ...................................................................................... 72
2. Cấu tạo: ........................................................................................................................ 72
3. Kết nối hệ thống với PLC S7-300: ............................................................................... 76
4. Giải thuật PID ổn định mực nước và lập trình khối PID bằng Ngôn ngữ SCL ........... 77
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 7 GVHD: TS. Nguyễn Thiện Thành
PHẦN 1 LẬP TRÌNH PLC S7-300 VÀ PHẦN MỀM SCADA
CHƯƠNG 1 LẬP TRÌNH SCL S7-300 TRÊN STEP7 MANAGER
Ngôn ngữ SCL (STRUCTURED CONTROL LANGUAGE) là một cách lập trình của
Step7 bên cạnh các cách lập trình khác như LAD, STL, FBD, GRAPH.
Cách viết chương trình SCL dựa theo Pascal , thường ứng dụng để viết các thuật toán
phức tạp , các hàm toán học, quản lý dữ liệu và công thức pha chế, tối ưu quá trình.
Chương trình SCL đặt trong folder Sources.
Để viết một chương trình SCL ta click phải vào khối Source và chọn như hình:
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 8 GVHD: TS. Nguyễn Thiện Thành
Một chương trình theo ngôn ngữ SCL có cấu trúc như sau:
FUNCTION FC1: VOID
VAR_INPUT
IN1: INT;
END_VAR
VAR_OUTPUT
OUT1: INT;
END_VAR
VAR_IN_OUT
IN_OUT1: INT;
END_VAR
VAR_TEMP
TEMP1: INT;
END_VAR
BEGIN
END_FUNCTION
Để có được cấu trúc như trên ta thực hiện như hình sau:
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 9 GVHD: TS. Nguyễn Thiện Thành
Ví dụ sau đây trình bày cách viết khối FC3 có chức năng gộp (combine) hai kiểu dữ liệu từ đầu
vào là kiểu DATE và kiểu TIME_OF_DAY thành một kiểu dữ liệu duy nhất là DATE_AND_TIME.
** Kiểu dữ liệu dạng DATE được lưu trữ trong S7 bằng 1 word ( 2byte). Giá trị của ô nhớ
chứa kiểu dữ liệu dạng này sẽ là số ngày tính từ mốc 01-01-1990 (ô nhớ này chứa giá trị 0 sẽ là
ngày 01-01-1990).
Định dạng của kiểu dữ liệu này là DATE# hoặc D#
Ví dụ ô nhớ MW0 chứa kiểu dữ liệu là DATE, và giá trị của ô nhớ này là 5, thì có nghĩa là
ngày được lưu ở MW0 là ngày 06-01-1990, tương tự giá trị 200 sẽ là ngày 20-07-1990.
** Kiểu dữ liệu TIME_OF_DAY được lưu trữ trong S7 bằng 2word (4byte), cho biết thời gian
trong 1 ngày. Giá trị của ô nhớ chứa kiểu dữ liệu dạng này sẽ là tổng số milisecond.
Định dạng của kiểu dữ liệu này là TIME_OF_DAY# hoặc TOD#
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 10 GVHD: TS. Nguyễn Thiện Thành
Ví dụ ô nhớ MD0 chứa kiểu dữ liệu dạng TIME_OF_DAY và giá trị của ô nhớ này là 3 600
000 thì có nghĩa thời gian đang là 1 giờ ( 60*60*1000), hay nói cách khác có nghĩa là nếu ta move
TOD#1:00:00 vào ô nhớ MD0 thì ô nhớ này có giá trị là 3 600 000
** Kiểu dữ liệu DATE_AND_TIME được lưu trữ theo mãng gồm 8 byte BCD liên tiếp:
Bytes Content Range
0 Year 1990 to 2089
1 Month 01 to 12
2 Day 1 to 31
3 Hour 0 to 23
4 Minute 0 to 59
5 Second 0 to 59
6 2 MSD (most
significant
decade) of ms
00 to 99
7 (4 MSB) LSD (least
significant
decade) of ms
0 to 9
7 (4 LSB) Weekday 1 to 7 (1 = Sunday)
FUNCTION FC3 : DATE_AND_TIME
VAR_INPUT
IN_TIME: TOD;
IN_DATE: DATE;
END_VAR
VAR_TEMP
IN_DATE_TEMP : DATE;
DATE_VALUE AT IN_DATE_TEMP : INT;
y,m, ddd, mm, dd, mi : DINT;
g : DINT;
day : DINT;
month : DINT;
year : DINT;
IN_TIME_TEMP : TOD;
TIME_VALUE AT IN_TIME_TEMP : DINT;
totalSeconds , totalMinutes : DINT;
currentMinute , currentSecond , currentMiliSec, totalHours :INT;
MSD_milisec, LSD_milisec, Other : INT;
S, Ngay_Trong_Tuan : DINT;
so_ngay_tinh_tu_dau_nam : DINT;
OUT_DATE_TIME : DATE_AND_TIME;
// Tạo con trỏ để trỏ về 8 byte lưu trữ của kiểu DATE_AND_TIME
STUFF AT OUT_DATE_TIME : STRUCT
Year : BYTE;
Month : BYTE;
Day : BYTE;
Hour : BYTE;
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 11 GVHD: TS. Nguyễn Thiện Thành
Minute : BYTE;
Second : BYTE;
MilliSecond : BYTE;
Other : BYTE;
END_STRUCT;
END_VAR
BEGIN
//** DATE ** //
IN_DATE_TEMP := IN_DATE;
//** Các công thức sau trả về chính xác ngày – tháng - năm từ số ngày cách
từ mốc 01-01-1990 ** //
g := DATE_VALUE + 142385;
Ngay_Trong_Tuan := (g MOD 7) + 4;
y := TRUNC((10000*g + 14780)/3652425);
ddd := g - TRUNC(365*y + y/4 - y/100 + y/400);
IF (ddd < 0) THEN
y := y - 1;
ddd := g - TRUNC(365*y + y/4 - y/100 + y/400);
END_IF;
mi := TRUNC((100*ddd + 52)/3060);
month := ((mi + 2) MOD 12) + 1;
year := 1600 + y + TRUNC((mi + 2)/12);
day := ddd - TRUNC((mi*306 + 5)/10) + 1;
Other := DINT_TO_INT(Ngay_Trong_Tuan) + LSD_milisec*256;
// Loại bỏ 2 chữ số đầu của năm để lưu trữ thành 1 byte //
// 90 -> 99 là 1990 - > 1999//
// 00 -> 89 là 2000 - > 2089//
IF ( year >=1900 & year < 2000 ) THEN
year := year - 1900;
ELSIF ( year >= 2000 ) THEN
year := year - 2000;
END_IF;
// Code sau sẽ trả về thứ (day of week), chủ nhật tương ứng số 1 ..//
CASE (DINT_TO_INT(Ngay_Trong_Tuan)) OF
4: Ngay_Trong_Tuan := 4;
5: Ngay_Trong_Tuan := 5;
6: Ngay_Trong_Tuan := 6;
7: Ngay_Trong_Tuan := 7;
8: Ngay_Trong_Tuan := 1;
9: Ngay_Trong_Tuan := 2;
10: Ngay_Trong_Tuan := 3;
END_CASE;
//** Trả về thời gian từ tổng số milisecond ** //
IN_TIME_TEMP := IN_TIME;
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 1 Lập trình SCL S7300 trên Step7
SV: Nguyễn Phước Lộc trang 12 GVHD: TS. Nguyễn Thiện Thành
totalSeconds := TRUNC(TIME_VALUE / 1000);
currentMiliSec := DINT_TO_INT(TIME_VALUE MOD 1000);
currentSecond := DINT_TO_INT(TRUNC((totalSeconds MOD 60)));
totalMinutes := DINT_TO_INT(totalSeconds / 60);
currentMinute := DINT_TO_INT(TRUNC(totalMinutes MOD 60));
totalHours := DINT_TO_INT(TRUNC(totalMinutes / 60));
// Tách MSD và LSD của curentMilisec để lưu trữ vào byte thứ 6 và byte thứ 7
LSD_milisec := currentMiliSec MOD 10 ;
MSD_milisec := (currentMiliSec - LSD_milisec) / 10 ;
// trả về giá trị cho khối
STUFF.Year := DINT_TO_BYTE(year);
STUFF.Month := DINT_TO_BYTE(month);
STUFF.Day := DINT_TO_BYTE(day);
STUFF.Hour := INT_TO_BYTE(totalHours);
STUFF.Minute := INT_TO_BYTE(currentMinute);
STUFF.Second := INT_TO_BYTE(currentSecond);
STUFF.MilliSecond := INT_TO_BYTE(MSD_milisec);
STUFF.Other := INT_TO_BYTE(Other);
FC10 := OUT_DATE_TIME;
END_FUNCTION
// Debug để kiểm chứng kết quả
ORGANIZATION_BLOCK OB1
VAR_TEMP
// Reserved
info : ARRAY[0..19] OF BYTE;
// Temporary Variables
TEMPX : DATE_AND_TIME;
END_VAR
TEMPX := FC3( IN_TIME:= TOD#2:0:0, IN_DATE:= D#2000-01-01);
END_ORGANIZATION_BLOCK
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 2 Lập trình S7-300 trên phần mềm TIA portal
SV: Nguyễn Phước Lộc trang 13 GVHD: TS. Nguyễn Thiện Thành
CHƯƠNG 2 LẬP TRÌNH S7-300 TRÊN PHẦN MỀM TIA PORTAL
1). Giới thiệu về phần mềm TIA portal
Phần mềm TIA portal là phần mềm tự động hóa tích hợp vừa được hãng Siemens
giới thiệu vào cuối năm 2010. Chức năng của phần mềm vừa có thể lập trình cho các dòng PLC
của hãng như S7-200, S7-300/400, S7-1200 vừa lập trình cho HMI trên một giao diện thống nhất.
2). Sử dụng TIA portal để cấu hình cho các trạm MPS 300
Khởi động phần mềm TIA Portal và tạo project mới
chọn “Configure a device”
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 2 Lập trình S7-300 trên phần mềm TIA portal
SV: Nguyễn Phước Lộc trang 14 GVHD: TS. Nguyễn Thiện Thành
Chọn CPU, sau đó ấn Enter
Ta được giao diện như hình sau:
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 2 Lập trình S7-300 trên phần mềm TIA portal
SV: Nguyễn Phước Lộc trang 15 GVHD: TS. Nguyễn Thiện Thành
Bước tiếp theo ta thêm module DI/DO và module truyền thông vào:
+ Kéo và thả module DI/DO vào rack thứ 4
+ Kéo và thử module truyền thông vào rack thứ 5
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 2 Lập trình S7-300 trên phần mềm TIA portal
SV: Nguyễn Phước Lộc trang 16 GVHD: TS. Nguyễn Thiện Thành
Vậy là ta đã hoàn thành việc cấu hình phần cứng cho các trạm MPS, công đoạn cuối cùng
là download cấu hình này xuống cho PLC.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 17 GVHD: TS. Nguyễn Thiện Thành
CHƯƠNG 3 KẾT NỐI CÁC PHẦN MỀM SCADA VỚI S7300 VÀ OPC
SERVER
I) GIAO TIẾP S7-300 VỚI CÁC PHẦN MỀM SCADA
THÔNG QUA CÁP USB MPI
1. Kết nối S7-300 với WinCC
Đối với phần mềm WinCC thì có thể giao tiếp trực tiếp với S7-300 qua driver S7 Protocol Suite.
Các bước cấu hình trên WinCC để giao tiếp với S7-300:
a) Tạo một project mới
b) Add driver để liên kết PC với S7
c) Tạo một kết nối, đặt tên, chỉnh các thông số trong Properties cho phù hợp
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 18 GVHD: TS. Nguyễn Thiện Thành
d) Tạo các Tag để liên kết với PLC
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 19 GVHD: TS. Nguyễn Thiện Thành
2. Kết nối S7-300 với các phần mềm SCADA khác
Đối với các phần mềm SCADA khác thì phải kết nối thông qua các OPC Server.
Phần sau đây sẽ trình bày kết nối giữa S7-300 với phần mềm Citect SCADA thông qua
OPC Server.
Trong các phần mềm OPC server thì Kepware OPC được sử dụng rộng rãi do hỗ trợ rất
nhiều driver kết nối và tài liệu hướng dẫn đi kèm ( hơn 160 loại PLC ). Mặc dù vậy cho đến phiên
bản mới nhất hiện nay là KEPserverEX v5.12 vẫn chưa hỗ trợ kết nối với PLC S7-300 thông qua
cáp USB MPI.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 20 GVHD: TS. Nguyễn Thiện Thành
Phần sau sẽ trình bày cách kết nối Citect SCADA với PLC S7-300 qua phần mềm IBH OPC
Server.
A. Cấu hình các thông số trên phần mềm IBH OPC Server
a) Trên giao diện chính của phần mềm
b) Chọn S7 Simatic NET
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 21 GVHD: TS. Nguyễn Thiện Thành
c) Cấu hình kết nối
d) Set PG/PC interface …
e) Sau khi hoàn thành các bước trên ta click vào nút “Test PLC connection” để kiểm tra kết
nối đã thành công hay chưa. Thông báo sau trả về đúng số hiệu PLC, nghĩa là kết nối đã thành
công.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 22 GVHD: TS. Nguyễn Thiện Thành
Chú ý: Nếu ở bước này phần mềm báo kết nối không thành công hoặc báo về sai số
hiệu PLC thì ta phải kiểm tra lại cấu hình phần cứng của PLC như slot, địa chỉ MPI
…
f) Tạo các Tag để liên kết với PLC
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 23 GVHD: TS. Nguyễn Thiện Thành
Ấn vào nút “Test variable” để kiểm tra giá trị hiện thời của Tag
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 24 GVHD: TS. Nguyễn Thiện Thành
g) Bước cuối cùng là Transfer các cấu hình vừa cài đặt trên IBH OPC Editor xuống IBH OPC
server.
B. Cấu hình trên phần mềm Citect SCADA để liên kết với IBH OPC
a) Tạo một project mới trên Citect Explorer
b) Tạo các server: Clusters, IO Server …
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 25 GVHD: TS. Nguyễn Thiện Thành
c) Tạo IO Device liên kết với IBH OPC Server (IBHSoftec.IBHOPC.DA)
d) Tạo các Tag
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 26 GVHD: TS. Nguyễn Thiện Thành
Chú ý: Địa chỉ của các Tag sẽ có dạng “Tên PLC.Group.Item”.
Ví dụ: Tag có địa chỉ là PLC1.Generic.I0_0 ( do cách đặt tên ở phần mềm IBH OPC editor).
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 27 GVHD: TS. Nguyễn Thiện Thành
II) GIAO TIẾP S7-300 VỚI CÁC PHẦN MỀM SCADA THÔNG
QUA CÁP ETHERNET
Sơ đồ kết nối:
Đối với các dòng CPU S7300 không hỗ trợ truyền thông qua Ethernet ta phải sử dụng module
truyền thông CP-343.
A. Cấu hình cho PLC
Phần sau đây trình bày cấu hình kết nối Ethernet trên CPU 315-2DP sử dụng phần mềm
TIA Portal.
a) Khởi động phần mềm TIA Portal và tạo project mới
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 28 GVHD: TS. Nguyễn Thiện Thành
chọn “Configure a device”
Chọn CPU, sau đó ấn Enter
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 29 GVHD: TS. Nguyễn Thiện Thành
Ta được giao diện như hình sau:
Bước tiếp theo ta thêm module DI/DO và module truyền thông vào:
+ Kéo và thả module DI/DO vào rack thứ 4
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 30 GVHD: TS. Nguyễn Thiện Thành
+ Kéo và thử module truyền thông vào rack thứ 5
Cuối cùng ta đặt địa chỉ IP cho PLC, và download cấu hình xuống PLC
Click đúp vào cổng PROFINET và chọn Add new subnet
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 31 GVHD: TS. Nguyễn Thiện Thành
Đặt địa chỉ IP
Download cấu hình xuống PLC
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 32 GVHD: TS. Nguyễn Thiện Thành
B. Cấu hình cho máy tính
Thay đổi địa chỉ IP trên máy tính cho cùng lớp với địa chỉ IP trên PLC
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 33 GVHD: TS. Nguyễn Thiện Thành
C. Cấu hình cho OPC Server
Phần mềm OPC server được sử dụng là KEPserverEX v5.12
Các bước tiến hành để cấu hình cho KEPserver liên kết với S7-300 qua cáp ethernet:
- Click đúp vào “add new channel” để tạo một kênh mới
- Đặt tên channel, mặc định là channel1
Chọn driver kết nối là “Siemens TCP/IP Ethernet”
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 34 GVHD: TS. Nguyễn Thiện Thành
- Nhấp NEXT, các thông số khác chọn theo mặc định
- Tạo một device, chon model là S7-300
- Gõ vào địa chỉ IP của PLC
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 35 GVHD: TS. Nguyễn Thiện Thành
- Các thông số khác để mặc định
- Tạo các Tag
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 3 Kết nối các phần mềm SCADA với S7-300 và OPC server
SV: Nguyễn Phước Lộc trang 36 GVHD: TS. Nguyễn Thiện Thành
Kết thúc bước này ta có thể sử dụng các phần mềm SCADA như WinCC, Citect để liên
kết với PLC qua KEPserver OPC.
Chú ý:
Nếu Computer liên kết trực tiếp với S7-300 qua cáp ethernet thì cáp này phải là loại cáp
chéo.
Nếu PLC kết nối với modem thì sử dụng cáp thẳng.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 37 GVHD: TS. Nguyễn Thiện Thành
CHƯƠNG 4 TRAO ĐỔI DỮ LIỆU TỪ WINCC VÀ SQL DATABASE
Để trao đổi dữ liệu giữa WinCC và SQL
Khởi động phần mềm SQL Server và tạo cơ sỡ dữ liệu mới:
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 38 GVHD: TS. Nguyễn Thiện Thành
Tạo cơ sở dữ liệu mới
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 39 GVHD: TS. Nguyễn Thiện Thành
Đặt tên cở sở dữ liệu mới và ấn nút Add, OK.
Tạo một Table mới
Tạo 2 column là VALUE1, và VALUE2 sau đó ấn SAVE, đặt tên Table mới tạo là Table_1.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 40 GVHD: TS. Nguyễn Thiện Thành
Tiếp theo ta vào Control Panel\All Control Panel Items\Administrative Tools
Click đúp “Data Sources (ODBC)”
Nhấp Add, sau đó chọn SQL server và ấn Finish
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 41 GVHD: TS. Nguyễn Thiện Thành
Các thông số khác để mặt định, tiếp theo ta chọn database vừa tạo trên SQL server
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 42 GVHD: TS. Nguyễn Thiện Thành
Code trên winCC thực hiện việc xuất dữ liệu ra SQL
Option Explicit
Function action
Dim objConnection
Dim strConnectionString
Dim strSQL
Dim objCommand
Dim mday
Dim NewTag
Dim NewTag_1
mday = FormatDateTime(Now(),0)
strConnectionString ="Provider=MSDASQL;DSN=DEMO;UID=;PWD=;"
NewTag_1 = HMIRuntime.Tags("NewTag_1").Read
NewTag = HMIRuntime.Tags("NewTag").Read
strSQL = "INSERT INTO dbo.Table_1(VALUE1,VALUE2)VALUES('"&
NewTag & "','" & NewTag_1 & "');"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Chương 4 Trao đổi dữ liệu từ WinCC và SQL Database
SV: Nguyễn Phước Lộc trang 43 GVHD: TS. Nguyễn Thiện Thành
objConnection.Close
Set objConnection = Nothing
End Function
Ở code trên ta lưu ý dòng:
DSN=DEMO
strSQL = "INSERT INTO dbo.Table_1(VALUE1,VALUE2)VALUES('"& NewTag
& "','" & NewTag_1 & "');"
với DEMO và Table_1 là tên cở sở dữ liệu và Table ta vừa tạo ở SQL server;
Code thực hiện việc đọc dữ liệu từ SQL về winCC
Option Explicit
Function action
Dim objConnection
Dim objCommand
Dim objRecordset
Dim strConnectionString
Dim strSQL
Dim IngValue
Dim IngCount
strConnectionString = "Provider=MSDASQL;DSN=DEMO;UID=;PWD=;"
strSQL = "select Value2 from Table_1 where ID =1" 'syntax to
record data: SELECT FROM WHERE
Set objConnection = CreateObject("ADODB.Connection")'establish a
connection to an SQL data source
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objRecordset = CreateObject("ADODB.Recordset")'used to
create, edit or delete databases or tables
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText =strSQL
Set objRecordset = objCommand.Execute
IngCount = objRecordset.Fields.Count
If (IngCount>0)Then
objRecordset.movefirst
IngValue = objRecordset.Fields(0).Value
HMIRuntime.Tags("NewTag_1").Write IngValue
Else
HMIRuntime.Trace "Selection returned no fields" &vbNewLine
End If
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 44 GVHD: TS. Nguyễn Thiện Thành
PHẦN 2 LẬP TRÌNH ĐIỀU KHIỂN VÀ GIÁM SÁT TRẠM MPS
A. TRẠM CUNG CẤP
1. Chức năng
Tách các chi tiết gia công khỏi ổ chứa.
Chuyển các chi tiết gia công bằng cơ cấu dẫn quay dùng giác hút.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 45 GVHD: TS. Nguyễn Thiện Thành
2. Các module và I/O
Mặt trước của trạm gồm:
- Bảng điều khiển
- Module PLC
- Nguồn cung cấp
Mặt trên của trạm gồm:
- Các van và ống dẫn khí
- Xilanh đẩy và ổ chứa phôi
- Các cảm biến và công tắc hành trình
- Tay quay gấp phôi
- Đèn thông báo và đồng hồ đo áp suất
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 46 GVHD: TS. Nguyễn Thiện Thành
Mô tả trình tự khởi động và vận hành của trạm:
- Điều kiện tiên quyết cho khởi động:
Ổ chứa được đầy chi tiết phôi.
- Vị trí ban đầu:
Xylanh đẩy chi tiết phôi đi ra hết.
Dẫn động quay ở vị trí “ổ chứa”.
Chân không tắt.
Trình tự:
1) Dẫn động quay quay về vị trí trạm sau nếu chi tiết phôi được kiểm tra ở vị trí trong ổ
và nút “START” đã được ấn.
2) Xylanh đẩy co vào và đẩy chi tiết phôi ra khỏi ổ chứa.
3) Dẫn động quay, quay về vị trí “ổ chứa”.
4) Van tạo chân không được bật, khi chi tiết phôi đã được giữ chắc chắn, công tắc chân
không bật.
5) Xylanh đẩy đi ra và nhả một chi tiết phôi.
6) Dẫn động quay quay về vị trí trạm sau.
Địa chỉ các I/O của trạm:
Name Data
Type
Logical Address Comment
Mag_back Bool %I0.1 Ổ chứa ở vị trí sau
Mag_front Bool %I0.2 Ổ chứa ở vị trí trước
Vaccum Bool %I0.3 Một phôi được hút ở tay quay
Arm_take Bool %I0.4 Tay quay ở vị trí chứa phôi
Arm_put Bool %I0.5 Tay quay ở vị trí trạm kế tiếp
Mat_sen Bool %I0.6 ON khi không có phôi
Follow Bool %I0.7 Sensor phát hiện quang trong trạm sau
Feed Bool %Q0.0 Cuộn điện xi lanh ổ chưa
VacumON Bool %Q0.1 Cuộn điện hút chân không
VacumOFF Bool %Q0.2 Cuộn điện tắt hút chân không
Arm_Right Bool %Q0.4 Cuộn điện tay quay ở ổ chứa
Arm_Left Bool %Q0.3 Cuộn điện tay quay ở vị trí tiếp theo
STARTING Bool %M0.0 Tín hiệu cho thấy hệ thống đã sẵn sàng hoạt
động
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 47 GVHD: TS. Nguyễn Thiện Thành
Địa chỉ các I/O trên bảng điều khiển:
Name Data
Type
Logical
Address
Comment
START_HARDWARE Bool %I1.0 Nút START điều khiển bằng phần
cứng
STOP_HARDWARE Bool %I1.1 Nút STOP điều khiển bằng phần
cứng
RESET_HARDWARE Bool %I1.3 Nút RESET điều khiển bằng phần
cứng
Hình bảng điều khiển ở mặt trước của trạm
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 48 GVHD: TS. Nguyễn Thiện Thành
3. Lập trình chương trình điều khiển
+ Khối OB1 : chương trình điều khiển cho trạm.
+ Khối OB100 : chương trình chỉ chạy một lần khi hệ thống hoạt động, chứa chương trình
reset các tín hiệu, đặt các cơ cấu dẫn động về vị trí chờ khởi động.
Lập trình cho khối OB1:
Network 1,2,3,4,5 lập trình cho bảng điều khiển bằng phần cứng và phần mềm ( điều khiển trực
tiếp trên winCC ).
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 49 GVHD: TS. Nguyễn Thiện Thành
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 50 GVHD: TS. Nguyễn Thiện Thành
Khi có tín hiệu khởi động hệ thống và các điều kiện sau thỏa hệ thống sẽ bắt đầu hoạt động:
- Xilanh đang ở vị trí sau ( xilanh OFF – công tắc hành trình I0.1 ON )
- Cần quay gấp phôi đang ở hành trình phía bên phải ( công tắc hành trình I0.5 ON)
- Có phôi trong ổ chứa ( cảm biến I0.6 OFF )
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 51 GVHD: TS. Nguyễn Thiện Thành
Xilanh đẩy chi tiết phôi ra từ ổ chứa, khi xilanh đi đến cuối hành trình thì công tắc hành trình
I0.2 sẽ ON, lúc này cần quay sẽ quay về phía bên trái.
Khi cần quay đã quay về phía bên trái thì công tắc hành trì I0.4 sẽ ON, lúc này ta kích cho
Q0.1 hoạt động để hút chân không.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 52 GVHD: TS. Nguyễn Thiện Thành
Khi phôi được hút thành công thì cảm biến I0.3 ON, cần quay sẽ quay về phía bên phải.
Khi cần quay đã quay hoàn toàn về phía bên phải, lúc này công tắc hành trình I0.5 ON, ta kích
Q0.2 để tắt tín hiệu hút chân không để nhả phôi.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 53 GVHD: TS. Nguyễn Thiện Thành
Khi có tín hiệu RESET thì đặt lại các tín hiệu cho hệ thống.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 54 GVHD: TS. Nguyễn Thiện Thành
Khi ấn nút STOP thì tắt các ngõ ra.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 55 GVHD: TS. Nguyễn Thiện Thành
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 56 GVHD: TS. Nguyễn Thiện Thành
Lập trình cho khối OB100
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 57 GVHD: TS. Nguyễn Thiện Thành
4. Thiết kế chương trình giám sát
Màn hình giám sát được thiết kế thành 3 phần chính: Bảng điều khiển, Trạm Cung Cấp,
và Trạm Nhận Phôi.
Các chuyển động trên màn hình giám sát được lập trình bằng C và VB.
Ví dụ về lập trình chuyển động xoay cho cần quay:
#include "apdefap.h"
int gscAction( void )
{
int top, left;
int trucquay;
BOOL xoaytrai;
trucquay = GetRotationAngle("MAIN.pdl","TRUCQUAY");
// An cac phoi dang di chuyen
SetVisible("MAIN.pdl","PHOI1",0);
SetVisible("MAIN.pdl","PHOI2",0);
SetVisible("MAIN.pdl","PHOI3",0);
SetVisible("MAIN.pdl","PHOI4",0);
SetVisible("MAIN.pdl","PHOI5",0);
SetVisible("MAIN.pdl","PHOI6",0);
SetVisible("MAIN.pdl","PHOI7",0);
SetVisible("MAIN.pdl","PHOI8",0);
SetVisible("MAIN.pdl","PHOI9",0);
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 58 GVHD: TS. Nguyễn Thiện Thành
SetVisible("MAIN.pdl","PHOI10",0);
SetVisible("MAIN.pdl","PHOI11",0);
SetVisible("MAIN.pdl","PHOI12",0);
SetVisible("MAIN.pdl","PHOI13",0);
SetVisible("MAIN.pdl","PHOI14",0);
SetVisible("MAIN.pdl","PHOI15",0);
SetVisible("MAIN.pdl","PHOI16",0);
SetVisible("MAIN.pdl","PHOI17",0);
SetVisible("MAIN.pdl","PHOI18",0);
//trucquay_2 = GetRotationAngle("Root_Screen.pdl",TRUC_QUAY_2);
if(GetTagBit("STARTING")==1)
{
// Quay TRAI
if (GetRotationAngle("MAIN.pdl","TRUCQUAY") == 0
&& GetTagBit("ARM_PUT") == 1 )
{
SetTagBit("xoaytrai", 1);
}
// Quay PHAI
if ( GetRotationAngle("MAIN.pdl","TRUCQUAY") == -180
&& GetTagBit("ARM_TAKE") == 1 )
{
SetTagBit("xoaytrai", 0);
}
if ( GetTagBit("xoaytrai") == 1 )
{
trucquay = trucquay - 30;
}
else if ( GetTagBit("xoaytrai") == 0 )
{
trucquay = trucquay + 30 ;
}
if ( trucquay < -180 )
{
SetRotationAngle("MAIN.pdl","TRUCQUAY",-180);
}
else if ( trucquay > 0 )
{
SetRotationAngle("MAIN.pdl","TRUCQUAY",0);
}
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Cung Cấp
SV: Nguyễn Phước Lộc trang 59 GVHD: TS. Nguyễn Thiện Thành
else
{
if ( GetTagBit("ARM_RIGHT") ==1 ||
GetTagBit("ARM_LEFT") ==1 )
SetRotationAngle("MAIN.pdl","TRUCQUAY",trucquay);
// khi co mot phoi duoc hut o tay quay
if ( GetTagBit("xoaytrai") == 0 &&
GetTagBit("VACCUM") == 1 )
{
switch (trucquay)
{
case -170: SetVisible("MAIN.pdl","PHOI1",1);
SetVisible("MAIN.pdl","PHOI_DAY",0);break;
case -160: SetVisible("MAIN.pdl","PHOI2",1); break;
case -150: SetVisible("MAIN.pdl","PHOI3",1); break;
case -140: SetVisible("MAIN.pdl","PHOI4",1); break;
case -130: SetVisible("MAIN.pdl","PHOI5",1); break;
case -120: SetVisible("MAIN.pdl","PHOI6",1); break;
case -110: SetVisible("MAIN.pdl","PHOI7",1); break;
case -100: SetVisible("MAIN.pdl","PHOI8",1); break;
case -90: SetVisible("MAIN.pdl","PHOI9",1); break;
case -80: SetVisible("MAIN.pdl","PHOI10",1); break;
case -70: SetVisible("MAIN.pdl","PHOI11",1); break;
case -60: SetVisible("MAIN.pdl","PHOI12",1); break;
case -50: SetVisible("MAIN.pdl","PHOI13",1); break;
case -40: SetVisible("MAIN.pdl","PHOI14",1); break;
case -30: SetVisible("MAIN.pdl","PHOI15",1); break;
case -20: SetVisible("MAIN.pdl","PHOI16",1); break;
case -10: SetVisible("MAIN.pdl","PHOI17",1); break;
case 0: SetVisible("MAIN.pdl","PHOI18",1); break;
}
}
}
}
return 0;
}
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 60 GVHD: TS. Nguyễn Thiện Thành
B. TRẠM PHÂN LOẠI SẢN PHẪM
Hình trạm phân loại sản phẫm
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 61 GVHD: TS. Nguyễn Thiện Thành
1) Chức năng
Trạm Phân loại phân loại các chi tiết phôi qua 3 máng trượt. Cảm biến khuyếch tán phát
hiện chi tiết phôi đầu vào ở phía đầu khởi động của băng tải.
Đặc tính của chi tiết phôi (màu đen, màu đỏ, kim loại) được phát hiện bằng các cảm biến
ở phía trước của cữa chặn và các chi tiết phôi được phân loại vào máng trượt thích hợp.
2) Các module và I/O
Mặt trước của trạm gồm:
- Bảng điều khiển
- Module PLC
- Nguồn cung cấp
Mặt trên của trạm gồm:
- Các van và ống dẫn khí
- Mootor và băng tải
- Các các biến nhận dạng đặc tính phôi
- Cần gạt
- Đồng hồ đo áp suất
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 62 GVHD: TS. Nguyễn Thiện Thành
Địa chỉ các I/O và cảm biến:
Name Data Type Logical Address Comment
moto_bangtai Bool %Q0.0 Mô tơ điều khiển băng tải
cambien_cophoi Bool %I0.0
cambien_switch1_OFF Bool %I0.4
cambien_switch1_ON Bool %I0.5
switch1 Bool %Q0.1 Điều khiển switch1
cambien_switch2_OFF Bool %I0.6
cambien_switch2_ON Bool %I0.7
switch2 Bool %Q0.2 Điều khiển switch2
thanhchan Bool %Q0.3 Thanh chắn kiểm tra vật
cambien_kimloai Bool %I0.1
cambien_phoi_k_co_mau_den Bool %I0.2
cambien_baovatxuong Bool %I0.3
denbao_Start Bool %Q1.0
denbao_Reset Bool %Q1.1
denbao_BangTaiFull Bool %Q1.2
denbao_hethongbiloi Bool %Q0.7
Trình tự khởi động của hệ thống:
Điều kiện tiên quyết khởi động:
Chi tiết phôi ở phía đầu khởi động của băng tải.
Vị trí ban đầu:
Cữa chặn vươn ra, nhánh 1,2 co vào, động cơ băng tải tắt.
Trình tự:
1. Phát hiện chi tiết phôi.
2. Động cơ băng tải bật.
3. Xác minh màu sắc/vật liệu. Phát hiện chi tiết phôi màu đen, chuyển vào máng trươt
phía cuối cùng của băng tải:
4. Cữ chặn co vào.
5. Chi tiết phôi đươc đẩy ra.
6. Bước chạy không.Phát hiện chi tiết phôi kim loại, chuyển vào máng trươt ở giữa của
băng tải:
7. Rẽ nhánh 2 vươn ra.
8. Cữ chặn co vào.
9. Chi tiết phôi đươc đẩy ra.
10. Bước chạy không. Phát hiện chi tiết phôi màu đỏ, chuyển vào máng trươt phía cuối
cùng của băng tải:
11. Rẽ nhánh 1 vươn ra.
12. Cữ chặn co vào.
13. Chi tiết phôi đươc đẩy ra.
14. Bước chạy không.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 63 GVHD: TS. Nguyễn Thiện Thành
15. Động cơ băng tải tắt.
16. Cữ chặn vươn ra.
17. Rẽ nhánh 1 co vào.
18. Rẽ nhánh 2 co vào.
3) Lập trình chương trình điều khiển
Network 1,2,3,4 lập trình chương trình cho bảng điều khiển
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 64 GVHD: TS. Nguyễn Thiện Thành
Network 5 khi có tín hiệu bắt đầu và cảm biến báo có phôi
Network 6 cài đặt thời gian chờ kiểm tra phôi
Network 7: Phát hiện phôi kim loại
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 65 GVHD: TS. Nguyễn Thiện Thành
Network 8: Phát hiện phôi màu đỏ
Network 9: Phát hiện phôi màu đen
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 66 GVHD: TS. Nguyễn Thiện Thành
Network 10: Khi cảm biến báo phôi đã xuống thì ngừng băng tải
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 67 GVHD: TS. Nguyễn Thiện Thành
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 68 GVHD: TS. Nguyễn Thiện Thành
Network 11: Reset hệ thống
Network 12: Khi nhấn Stop thì tắt các ngõ ra
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 69 GVHD: TS. Nguyễn Thiện Thành
4) Thiết kế chương trình giám sát
Màn hình giám sát được thiết kế gồm:
- Bảng điều khiển
- Phôi và băng tải
- Thanh gạt và cửa chặn
- Các cảm biến
Sử dụng VBS và Cscript để lập trình hiệu ứng cho màn hình giám sát:
#include "apdefap.h"
int gscAction( void )
{
int left, top;
left = GetLeft("Root_Screen.pdl","PHOI");
// bang tai chyen dong
if ( GetTagBit ("motor_bangtai")==1 )
{
if ( GetTagWord("THOIGIAN_KIEMTRA") >0 && GetTagBit("THANHCHAN") ==0 )
{
if ( GetLeft("Root_Screen.pdl","PHOI") < 380 )
{
left = left + 10;
SetLeft("Root_Screen.pdl","PHOI",left);
}
else
{
left = 380;
top = 240;
SetLeft("Root_Screen.pdl","PHOI",left);
SetTop("Root_Screen.pdl","PHOI",top);
}
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 70 GVHD: TS. Nguyễn Thiện Thành
}
else if ( GetTagWord("THOIGIAN_KIEMTRA") == 0 &&
GetTagBit("THANHCHAN") == 1)
{
if ( GetTagBit("W2") == 1 && GetLeft("Root_Screen.pdl","PHOI") <
613 )
{
left = left + 15;
SetLeft("Root_Screen.pdl","PHOI",left);
}
else if ( GetTagBit("W1") == 1 &&
GetLeft("Root_Screen.pdl","PHOI") < 708 )
{
left = left + 15;
SetLeft("Root_Screen.pdl","PHOI",left);
}
else if ( GetTagBit("W1") == 0 && GetTagBit("W2") == 0 &&
GetLeft("Root_Screen.pdl","PHOI") < 790 )
{
left = left + 15;
SetLeft("Root_Screen.pdl","PHOI",left);
}
}
}
// dat lai vi tri ban dau
if ( GetTagBit ("co_vat_xuong")==1 )
{
if ( GetTagBit("W2") == 1 && GetTagBit("W1") == 0 ) // PHOI MAU DO
{
left = 689;
top = 92 ;
SetLeft("Root_Screen.pdl","PHOI",left);
SetTop("Root_Screen.pdl","PHOI",top);
}
if ( GetTagBit("W1") == 1 && GetTagBit("W2") == 0 ) // PHOI MAU DEN
{
left = 780;
top = 92 ;
SetLeft("Root_Screen.pdl","PHOI",left);
SetTop("Root_Screen.pdl","PHOI",top);
}
if ( GetTagBit("W1") == 0 && GetTagBit("W2") == 0 ) // PHOI KIM LOAI
{
left = 870; top = 92 ;
SetLeft("Root_Screen.pdl","PHOI",left);
SetTop("Root_Screen.pdl","PHOI",top);
}
}
if (GetTagBit("RESET") == 1 )
{
left = 270; top = 240;
SetLeft("Root_Screen.pdl","PHOI",left);
SetTop("Root_Screen.pdl","PHOI",top);
}
return 0;
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển và giám sát Trạm Phân Loại Sản Phẫm
SV: Nguyễn Phước Lộc trang 71 GVHD: TS. Nguyễn Thiện Thành
}
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 72 GVHD: TS. Nguyễn Thiện Thành
C. TRẠM BỒN NƯỚC - EDUKIT PA
1. Giới thiệu hệ thống bồn nước:
EDUKIT PA là một hệ thống 2 bồn nước đôi được thiết kế bởi Festo nhằm mục đích đào
tạo và nghiên cứu về điều khiển hệ thống vòng kín đơn giản. Bên cạnh đó, người sử dụng sẽ được
làm quen với việc sử dụng một số loại cảm biến như: cảm biến tiệm cận, cảm biến lưu lượng, cảm
biến áp suất, cảm biến điện dung…
2. Cấu tạo:
Hệ thống gồm 2 bồn nước được kết nối với nhau bởi các ống dẫn và van và các
khớp nối rẽ nhánh, một bơm tuyến tính để bơm nước từ bồn B101 sang bồn B102 và các cảm biến
để xác định mực nước trong các bồn, áp suất trong đường ống và lưu lượng nước trong ống.
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 73 GVHD: TS. Nguyễn Thiện Thành
Sơ đồ P&ID của hệ thống
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 74 GVHD: TS. Nguyễn Thiện Thành
Hình ảnh thực tế
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 75 GVHD: TS. Nguyễn Thiện Thành
Các cảm biến sử dụng trên KIT:
Cảm biến lưu lượng: Flow sensor type 2
Cảm biến lưu lượng là thiết bị để cảm biến tốc độ dòng chảy của chất lỏng trong suốt
thông qua hệ thống opto hồng ngoại.
Thông số kĩ thuật:
- Điện áp cung cấp cho phép: 8 – 24 V
- Dòng tiêu thụ: 18 – 30 mA
- Tần số (ngõ ra): 40 – 1200 Hz
- Giới hạn đo: 0.3 – 9 l/min
- Áp suất hoạt động: Max 10 bar
Cảm biến áp suất: Pressure sensor
Cảm biến có thể được kết nối với công nghệ 2 dây hay 3 dây. Việc bù áp suất
được thực hiện bởi 1 lỗ trống trên đàu của cảm biến.
Thông số kĩ thuật:
- Tầm đo: 0 … 400 mbar
- Tầm nhiệt độ:
o Nhiệt độ xử lí: -25ºC … +100ºC
o Nhiệt độ tích lũy: -40ºC … +85ºC
o Nhiệt độ môi trường cho phép: -25ºC … +85ºC
o Tầm nhiệt bù: -10ºC … +55ºC
- Nguồn cung cấp:
o Điện áp danh định: 24 VDC
o Tầm điện áp: 11 VDC … 40 VDC
o Áp cung cấp cho phép max: 40 VDC
- Tín hiệu ra:
o Kỹ thuật 2 dây: 4 … 20 mA
o Kỹ thuật 3 dây: 0 … 20 mA hay 0 … 10 V
- Thời gian đáp ứng: 3ms
Cảm biến tiệm cận điện dung: Capacitive proximity sensor
Nguyên lý hoạt động của cảm biến tiệm cận điện dung dựa trên việc ước lượng 1
thay đổi điện dung của tụ điện trong mạch RC.
Thông số kĩ thuật:
- Điện áp hoạt động cho phép: 12 – 48 VDC
- Khoảng cách ngắt danh định: 9.5 – 10 mm
- Trễ (liên quan tới khoảng cách ngắt): 1.9 – 2 mm
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 76 GVHD: TS. Nguyễn Thiện Thành
- Dòng tối đa trên tiếp xúc: 20 mA
- Tiêu thụ dòng khi rảnh ( tại 55V): ≤20 mA
- Nhiệt độ hoạt động cho phép: -10ºC … +50ºC
Cảm biến siêu âm: Ultrasonic sensor
Hàm nguyên lý của 1 cảm biến siêu âm dựa trên sự phát sóng âm và việc phát hiện
theo phản xạ thông qua 1 đối tượng.
Thông số kĩ thuật:
- Ngõ ra Analogue ( tầm điện áp): 0 – 10V
- Nhiệt độ xung quanh: -25ºC … 70ºC
- Điện áp hoạt động: 24 VDC
- Tầm điện áp hoạt động: 10 – 35 VDC
- Dòng rảnh IO: <50 mA
- Tầm đo:
o Chương trình: 48 – 270 mm
o Cài đặt công nghiệp: 50 – 300 mm
3. Kết nối hệ thống với PLC S7-300:
Loại PLC : CPU 313C6ES7 313-5BF03-0AB0 , có tích hợp module
AnalogAI5/AO2, module DI24/DO16.
Cảm biến siêu âm xác định mực nước trong bồn B102 được nối với ngõ vào analog
PIW752
Cảm biến lưu lượng : PIW754
Cảm biến áp suất : PIW756
Cảm biến tiệm cận xác định giới hạn dưới được nối với ngõ vào: I0.4
Cảm biến tiệm cận xác định giới hạn trên được nối với ngõ vào: I0.3
Bơm tuyến tính được nối với ngõ ra analog PQW 752
Van xả: Q0.0
Relay cho phép bơm hoạt động: Q0.2
Nút nhấn Start: I1.0
Nút nhấn Stop: (thường đóng) I1.3
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 77 GVHD: TS. Nguyễn Thiện Thành
Đấu dây của các cảm biến
4. Giải thuật PID ổn định mực nước và lập trình khối PID bằng Ngôn ngữ SCL
Cơ sở lý thuyết:
PID (Proportional Integral Derivative) là một trong những thuật toán được
sử dụng phổ biến nhất trong điểu khiển quá trình (process control) các hệ thống kín (điều khiển
có hồi tiếp).
Sơ đồ khối của thuật toán PID:
Mô hình toán học của bộ điều khiển PID đơn giản:
𝑈𝑑𝑘(𝑡) = 𝐾𝑝 ∗ 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝑡)𝑑(𝑡)
𝑡
0
+ 𝐾𝑑
𝑑𝑒(𝑡)
𝑑𝑡
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 78 GVHD: TS. Nguyễn Thiện Thành
Ảnh hưởng của các khâu tỉ lệ (P), tích phân (I) và đạo hàm (D) lên hệ
thống:
Đáp ứng vòng
kín
Thời gian lên Độ vọt lố Thời gian xác
lập
Sai số xác
lập
Kp Giảm Tăng Thay đổi nhỏ Giảm
Ki Giảm Tăng Tăng Loại bỏ
Kd Thay đổi nhỏ Giảm Giảm Thay đổi nhỏ
Ảnh hưởng của các khâu P,I,D là cơ sở để chọn các hệ số phù hợp với hệ thống trong quá
trình lập trình. Khâu tỉ lệ (P) sẽ ảnh hưởng nhiều đến thời gian lên (rising time) và đáp ứng của hệ
thống, tuy nhiên nếu không chọn giá trị Kp hợp lý sẽ gây ra độ vọt lố cao và làm hệ thống giao
động. Khâu tích phân (I) có tác dụng triệt tiêu sai số xác lập của hệ thống, giúp cho hệ thống đáp
ứng nhanh lên nhưng đồng thời cũng dễ gây ra độ vọt lố lớn và làm tăng thời gian xác lập. Khâu
vi phân ( D) có tác dụng hiệu chỉnh để giảm thời gian xác lập và độ vọt lố, tuy nhiên do đặc tính
của khâu vi phân là nhạy với nhiễu tần số cao nên rất dễ làm cho hệ thống mất ổn định . Vì vậy đây
là khâu ít được sử dụng nhất trong 3 thông số của bộ điều khiển này.
Xây dựng thuật toán PID điều khiển hệ thống bồn nước bằng ngôn ngữ lập trình
có cấu trúc SCL:
Chương trình chính OB1:
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 79 GVHD: TS. Nguyễn Thiện Thành
Chương trình OB 35:
Khối ngắt thời gian theo chu kỳ OB35 gọi đọc giá trị cảm biến siêu âm, gọi
hàm PID và xuất giá trị điều khiển ra bơm.
Chương trình khối hàm PID FB1:
IF (#Out_type=1) THEN
#KO1 := #Out_max;
#KO2 := -#Out_max;
ELSE
#KO1 := #Out_max;
#KO2 := 0;
END_IF;
#Error_0 := #Set_val- #Real_val;
#Error_sum := #Error_sum_1*0.995+ #Error_0;
IF (#Error_sum > 30000) THEN //hàm bão hòa cho
khâu I
#Error_sum_1 := 30000;
ELSIF (#Error_sum <= -30000) THEN
Báo cáo thực tập tốt nghiệp Công ty TNHH Kỹ Thuật PLC Việt Nam
Lập trình điều khiển Trạm Bồn Nước
SV: Nguyễn Phước Lộc trang 80 GVHD: TS. Nguyễn Thiện Thành
#Error_sum_1 := -30000;
ELSE
#Error_sum_1 := #Error_sum;
END_IF;
IF (#Error_0 >= 1000) THEN
#Udk_temp := #Out_max;
ELSIF (#Error_0>500) THEN
#Udk_temp := #Out_max*3/4;
ELSE
#Error_den:= #Error_0-#Error_1;
#Error_1 := #Error_0;
#Udk_temp := #Kp*#Error_0;
#Udk_temp := #Udk_temp+ #Ki* #Error_sum_1;
#Udk_temp := #Udk_temp+ #Kd* #Error_den;
IF(#Udk_temp >= #Out_max) THEN //hàm bão hòa tín
hiệu ngõ ra
#Udk_temp := #Out_max;
ELSIF (#Udk_temp <= 0) THEN
#Udk_temp := 0;
ELSE
;
END_IF;
END_IF;
IF (#Error_0=0) THEN
#Error_sum := 0;
END_IF;
#Output := REAL_TO_INT( #Udk_temp);
Tùy vào tầm giá trị đặt khác nhau và các hệ thống khác nhau, ta sẽ chọn được các bộ hệ
số PID phù hợp với yêu cầu điều khiển. trong trường hợp này với hệ số đã chọn tương ứng với
giá trị đặt, độ vọt lố của hệ thống <2% và sai số xác lập <=0.5%.
Các file đính kèm theo tài liệu này:
- bao_cao_tttn_np_loc_3632.pdf