Báo cáo TTTN lập trình S7300 và hệ thống SCADA

3,532 views
3,465 views

Published on

Báo cáo TTTN lập trình S7300 và hệ thống SCADA

Published in: Education
3 Comments
7 Likes
Statistics
Notes
  • de dowload duoc tai lieu cac ban dang ký thanh vien trang web bang gmail sau do kich hoat member-> sau do nhan vào nút Save giao dien web la duoc
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Ban cho minh gui cho minh xin tai lieu nay voi? ndk.grel@gmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Lam sao download duoc tai lieu Báo cáo TTTN lập trình S7300 và hệ thống SCADA, chi cho minh voi? Xin cam on!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,532
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
606
Comments
3
Likes
7
Embeds 0
No embeds

No notes for slide

Báo cáo TTTN lập trình S7300 và hệ thống SCADA

  1. 1. ĐẠ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
  2. 2. i 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.
  3. 3. ii PHIẾ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
  4. 4. iii NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN: ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ...............................................................................................................................................
  5. 5. 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
  6. 6. 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
  7. 7. 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:
  8. 8. 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:
  9. 9. 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#
  10. 10. 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;
  11. 11. 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;
  12. 12. 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
  13. 13. 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”
  14. 14. 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:
  15. 15. 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
  16. 16. 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.
  17. 17. 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
  18. 18. 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
  19. 19. 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.
  20. 20. 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
  21. 21. 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.
  22. 22. 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
  23. 23. 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
  24. 24. 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 …
  25. 25. 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
  26. 26. 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).
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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”
  34. 34. 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
  35. 35. 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
  36. 36. 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.
  37. 37. 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:
  38. 38. 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
  39. 39. 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.
  40. 40. 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 PanelAll Control Panel ItemsAdministrative Tools Click đúp “Data Sources (ODBC)” Nhấp Add, sau đó chọn SQL server và ấn Finish
  41. 41. 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
  42. 42. 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
  43. 43. 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 <Expression> FROM <Name of the table> WHERE <Condition> 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
  44. 44. 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.
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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 ).
  49. 49. 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
  50. 50. 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 )
  51. 51. 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.
  52. 52. 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.
  53. 53. 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.
  54. 54. 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.
  55. 55. 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
  56. 56. 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
  57. 57. 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);
  58. 58. 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); }
  59. 59. 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; }
  60. 60. 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
  61. 61. 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
  62. 62. 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.
  63. 63. 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
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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); }
  70. 70. 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;
  71. 71. 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 }
  72. 72. 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.
  73. 73. 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
  74. 74. 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ế
  75. 75. 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
  76. 76. 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
  77. 77. 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 + 𝐾𝑑 𝑑𝑒(𝑡) 𝑑𝑡
  78. 78. 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:
  79. 79. 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
  80. 80. 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%.

×