ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ GVHD : TS. Nguyễn Thiện Thành
SV : Nguyễn Phước Lộc
MSSV : 40901457
TP.HCM - 08/2013
i
NHẬN XÉT CỦA CÔNG TY TNHH KỸ THUẬT PLC VIỆT NAM:
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
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
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
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;
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 ;
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
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
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