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á
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
GVHD : TS Nguyễn Thiện Thành
SV : Nguyễn Phước Lộc MSSV : 40901457
Trang 2
LỜI CẢM ƠN
Được sự hỗ trợ và giúp đỡ của Công ty TNHH Kỹ Thuật PLC Việt Nam, em đã có cơ hội được nghiên cứu và tìm hiểu về hệ thống PLC và SCADA của Siemens Automation trong quá trình thực tập tốt nghiệp
Đầu tiên em xin gửi lời cảm ơn chân thành nhất đến anh Trần Văn Hiếu, người đã tận tình giúp đỡ, hướng dẫn em trong thời gian thực tập tại công ty
Em cũng xin cảm ơn thầy Phạm Phú Thọ và các anh chị trong Công ty TNHH Kỹ Thuật PLC Việt Nam đã giúp đỡ em trong suốt quá trình thực tập
Ngoài ra em cũng xin cảm ơn thầy Nguyễn Thiện Thành, người đã định hướng, giúp đỡ để
em có thể hoàn thành khóa thực tập này
Cuối cùng em cũng xin cảm ơn sự giúp đỡ và hỗ trợ nhiệt tình của các bạn trong nhóm thực tập
Tp.HCM, ngày 10 tháng 08 năm 2013
Em xin chân thành cảm ơn
Trang 3PHIẾU ĐÁNH GIÁ KẾT QUẢ THỰC TẬP
NHẬN XÉT CỦA CÔNG TY TNHH KỸ THUẬT PLC VIỆT NAM:
ĐIỂM ĐÁNH GIÁ:
Người hướng dẫn: K.Sư Trần Văn Hiếu Xác nhận của đơn vị thực tập
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:
Trang 5
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
Trang 6MỤC LỤC
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
Trang 7PHẦ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:
Trang 8Mộ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_VARVAR_IN_OUT IN_OUT1: INT;
END_VAR
VAR_TEMP TEMP1: INT;
END_VARBEGIN
END_FUNCTION
Để có được cấu trúc như trên ta thực hiện như hình sau:
Trang 9Ví 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#
Trang 10Ví 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
00 to 99
7 (4 MSB) LSD (least
significant decade) of ms
TIME_VALUE AT IN_TIME_TEMP : DINT;
totalSeconds , totalMinutes : DINT;
currentMinute , currentSecond , currentMiliSec, totalHours :INT; MSD_milisec, LSD_milisec, Other : INT;
so_ngay_tinh_tu_dau_nam : DINT;
// Tạo con trỏ để trỏ về 8 byte lưu trữ của kiểu DATE_AND_TIME
STUFF AT OUT_DATE_TIME : STRUCT
Month : BYTE;
Trang 11Other := 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 //
Trang 12totalSeconds := 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 ;
Trang 13CHƯƠNG 2 LẬP TRÌNH S7-300 TRÊN 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
Khởi động phần mềm TIA Portal và tạo project mới
chọn “Configure a device”
Trang 14Chọn CPU, sau đó ấn Enter
Ta được giao diện như hình sau:
Trang 15Bướ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
Trang 16Vậ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
Trang 17CHƯƠNG 3 KẾT NỐI CÁC PHẦN MỀM SCADA VỚI S7300 VÀ OPC
SERVER
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
Trang 18d) Tạo các Tag để liên kết với PLC
Trang 192 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
Trang 20Phầ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
Trang 21c) 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
Trang 22Chú ý: 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
Trang 23Ấn vào nút “Test variable” để kiểm tra giá trị hiện thời của Tag
Trang 24g) 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 …
Trang 25c) Tạo IO Device liên kết với IBH OPC Server (IBHSoftec.IBHOPC.DA)
d) Tạo các Tag
Trang 26Chú ý: Đị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)
Trang 27II) GIAO TIẾP S7-300 VỚI CÁC PHẦN MỀM SCADA THÔNG
Trang 28chọn “Configure a device”
Chọn CPU, sau đó ấn Enter
Trang 29Ta đượ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
Trang 30+ 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
Trang 31Đặt địa chỉ IP
Download cấu hình xuống PLC
Trang 32B 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
Trang 33C 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”
Trang 34- 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
Trang 35- Các thông số khác để mặc định
- Tạo các Tag
Trang 36Kế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
Trang 37CHƯƠ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:
Trang 38Tạo cơ sở dữ liệu mới
Trang 39Đặ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
Trang 40Tiế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
Trang 41Các thông số khác để mặt định, tiếp theo ta chọn database vừa tạo trên SQL server
Trang 42Code trên winCC thực hiện việc xuất dữ liệu ra SQL
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")
Trang 43strSQL = "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
Set objRecordset = CreateObject("ADODB.Recordset")'used to
create, edit or delete databases or tables
Set objCommand = CreateObject("ADODB.Command")
IngValue = objRecordset.Fields(0 ).Value
HMIRuntime.Tags("NewTag_1").Write IngValue
Else
HMIRuntime.Trace "Selection returned no fields" &vbNewLine
Trang 44PHẦN 2 LẬP TRÌNH ĐIỀU KHIỂN VÀ GIÁM SÁT TRẠM MPS
A TRẠM CUNG CẤP
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
Trang 45- Tay quay gấp phôi
- Đèn thông báo và đồng hồ đo áp suất
Trang 46Mô 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
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:
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
Trang 47Địa chỉ các I/O trên bảng điều khiển:
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
Trang 483 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
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 )
Trang 50Khi 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 )
Trang 51Xilanh đẩ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
Trang 52Khi 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
Trang 53Khi có tín hiệu RESET thì đặt lại các tín hiệu cho hệ thống
Trang 54Khi ấn nút STOP thì tắt các ngõ ra
Trang 56 Lập trình cho khối OB100
Trang 574 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:
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);