Chủ đề: Điều khiển thang máy với S7-300 VÀ WINCC

#include "apdefap.h" int gscAction( void ) { int a; int MO_CUA_CABIN; int DONG_CUA_CABIN; a=GetLeft("THANGMAY.pdl","Rectangle7"); MO_CUA_CABIN=GetTagBit("MO_CUA_CABIN"); DONG_CUA_CABIN=GetTagBit("DONG_CUA_CABIN");

pdf60 trang | Chia sẻ: lylyngoc | Ngày: 22/08/2014 | Lượt xem: 1847 | Lượt tải: 9download
Bạn đang xem nội dung tài liệu Chủ đề: Điều khiển thang máy với S7-300 VÀ WINCC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN-ĐIỆN TỬ ------------------------ BÀI BÁO CÁO MÔN ĐIỀU KHIỂN LẬP TRÌNH 2 Chủ đề: ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC Giáo viên: Trần Văn Sỹ Nhóm sinh viên thực hiện: Phạm Văn Trọng 10701019 TP HCM 11/2012 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 2 Các bước tiến hành Viết chương trình trên s7-300 sau đó là kết nối đồ hoạ trên Wincc I.Viết chương trình trên s7-300 Bước 1: Mở s7-300 NhấpNext ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 3 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 4 Phần này chọn CPU kết nối với các loại CPU với số lượng ngõ vào ,ra số ,analog với dung lượng bộ nhớ khác nhau tuỳ theo yêu cầu. Chọn ngôn ngữ LAD Chọn khối OB1.Các khối OB khác là các khối phục vụ việc ngắt theo các yêu cầu khác nhau Đặt tên cho dự án ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 5 Ta nhấp tiếp vào Simatic 300 Station ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 6 Chọn OB1 Là nơi ta viết chương trình cho s7-300 Bên phải là nơi ta chọn các lệnh như Move, Timer, Couter , Logic bit .chứa các nút lệnh như tiếp điểm, các khối lệnh, v.v ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 7 Giải thích các nút nhấn và ngõ rachương trình:  I0.0 I0.1 I0.2 I0.3: là các nút gọi tầng 1 đến 4.  I0.4 I0.5 I0.6 I0.7: Là các cảm biến đặt ở tầng 1 đến tầng 4.  I1.0: Là rơle nhiệt khi động cơ quá tải.  I1.1: Là nút nhấn mở cửa.  M2.0 M2.1 M2.2 M2.3 : Là các cộng tắc hành trình đặt ở tầng 1 đến 4.  Q0.0: Động cơ quay lên.  Q0.1: Động cơ quay xuống.  Q1.0 Là đèn báo quá tải.  Q1.1: Mở cửa thang máy.  Q0.4 Q0.5 Q0.6 Q0.7: Là các đèn báo vị trí thang máy.  M0.0 M0.1 M0.2 M0.4:Là các ngõ vào nhận tín hiệu tác động của I0.0 đến I0.3.  M1.0 M1.1 M1.2 M1.3: đặt trước Q là vì phải thông qua các biến trung gian Wincc mới hiểu. Vì một vòng quét của Wincc rất nhanh nên ta sử dụng các biến trung gian. ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 8 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 9 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 10 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 11 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 12 Giải thích chương trình:Khi có tác động của các ngõ vào I0.0 đến I0.3 kết hợp với vị trí hiện tại của thang máy thông qua cảm biến I0.4 đến I0.7 sẽ làm Q0.0( quay lên) hoặc Q0.1(quay xuống). Sau khi viết chương trình xong ta mở SIMATIC Manager lên Chọn Option -> Set PG/PC Interface -> chọn phương thức kết nối với Wincc ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 13 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 14 Màn hình Set PG/PC Interface ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 15 Chương trình phục vụ việc mô phỏng bằng cách Insert-> tuỳ theo yêu cầu mà ta chọn Input , Output , vùng nhớ Memory, Couter , Timer. ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 16 Tai nơi viết chương trình ta chọn biểu tượng Download và biểu tượng có hình mắt kính để bắt đầu nạp chương trình cho mô phỏng IIChương trình bên Wincc Kết nối đồ hoạ với Wincc Ta chọn Single user Project ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 17 Nhấp vào Tap mangement -> chọn Driver kết nối với Wincc Sau khi chọn SIMATIC S7 PROTOCOL SUITE ->ta nhấp phải vào MPI chọn-> New Driver Connection-> ta đặt tên cho nó là s7-300( tên tuỳ ý) ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 18 Trong MPI-> Ta tao các biến liên kết với bên ngoài ( chương trình SIMATIC s7-300) Phần name ta đặt tên theo thuộc tính( tuỳ ý) Data type ta chọn Binary tag( biến nhị phân có giá trị 0,1) Sau đó nhấp chọn Select->Data chọn theo tên biến là I,M hoặc Q ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 19 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 20 Tiếp theo ta tạo chương trình đồ hoạ thực hiện việc giám sát. Graphic Designer-> Chọn NewPicture_. Đổi tên theo ý thích bằng cách nhấp phải chọn rename Tạo thuộc tính cho bóng đèn -> ta nhấp phải chọn Property-> hộp thoại Object Property xuất hiện-> property->Flashing(thuộc tính nhấp nháy)- >Flashing Background -> Dynamic value-> Data type ta chọn Boolean- >-> ta chọn các thuộc tính như hình vẽ ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 21 Event name-> ta chọn các thuộc tính như hình vẽ Ta đặt thuộc tính cho bóng đèn, ở dây ta cũng chọn thuộc tính Flashing .Nhưng Flasing background color off/ on ta chọn màu như nhau( có nghĩa là khi bị tác động thì nó sẽ sáng thay vì nhấp nháy) ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 22 Tạo thuộc tính cho cảm biến -> BlinkMode ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 23 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 24 ta cũng làm tương tự nhưng ở đây ta chọn Boolean . Yes( Shaded-2) có nghĩa là nhấp nháy Tạo thuộc tính cho nút chọn tầng ta cũng chọn thuộc tíng Flashing nhấp nháy báo cho ta biết tầng được chọn ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 25 Tạo thuộc tính (Dislay)cho động cơ quay trái , quay phải bằng mũi tên báo hiêu chiều được chọn. Lập trình C cho WINCC với Global Script C (GSC): Cấu trúc chương trình của một C-Action cho một Property của đối tượng a. Cấu trúc của một Action  Câu lệnh #include “apdefap.h” là khai báo thư viện các Function và Action mà WinCC hỗ trợ sẵn.  Header (màu xám): đây là dòng mã lệnh tự động phát sinh giống nhau cho các Properties và không được thay đổi. Bao gồm: o Picture Name (lpszPictureName) o Object Name (lpszObjectName) o Property Name (lpszPropertyName) Sau khi lập trình xong Action cho Property của một đối tượng thì phải chọn Trigger cho nó. b. Một số thủ tục thường gặp khi lập trình  Định nghĩa Tag: cú pháp: #define tên Tag khi lập trình” tên Tag đã khai báo trong Tag Manager” ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 26 Ví dụ:  Khai báo hằng, biến  Khai báo hằng: Cú pháp: # define Tên hằng_Giá trị của hằng Ví dụ: # define Max 365;  Khai báo biến: Các kiểu dữ liệu của biến và tầm sử dụng Cú pháp:Kiểu dữ liệu của biến_Tên biến Ví dụ: int a; int b=0; c. Một số hàm hay sử dụng trong chương trình (1). SetTagBit Cú pháp: BOOL SetTagBit(Tag Tag_Name, short in value) Nội dung: Định giá trị cho một Tag có kiểu dữ liệu là Binary. (2). GetTagBit Cú pháp: BOOL GetTagBit(Tag Tag_Name) Nội dung: Lấy giá trị hiện tại của một Tag có kiểu Binary. (3).GetTop Cú pháp: long int GetTop (LPCTSTR lpszPictureName, LPCTSTR lpszObjectName); Nội dung: Trả về giá trị theo trục Y của điểm cao nhất nằm trên vật muốn trỏ đến. ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 27 (4).GetLeft ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 28 Cú pháp: long int GetLeft (LPCTSTR lpszPictureName, LPCTSTR lpszObjectName); Thuật toán chuyển động lên xuống thang máy: Bắt đầu Chọn T1==1 Chọn T2==1 Chọn T3==1 ChọnT4==1 Đến T1 Đến T2 Đến T3 Đến T4 Kết thúc Ta sẽ viết chương trình như sau: nếu vật cần di chuyển có giá trị nhỏ hơn tọa độ cần đến thì ta trừ giá tri hiện tại với 1 giá trị nào đó(giá trị này là bước nhảy của vật cần di chuyển). Nếu vị trí của vật lớn hơn tọa độ cần đến thì ta cộng vị trí hiện tại với 1 giá trị nào đó . ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 29 MởGlobal Script lên: ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 30 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 31 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 32 #include "apdefap.h" int gscAction( void ) { int CHON_T1;// biến liên kết bên S7-300 int VITRI; int CHON_T2;// biến liên kết bên S7-300 int CHON_T3; //biến liên kết bên S7-300 int CHON_T4;// biến liên kết bên S7-300 VITRI=GetTop("THANGMAY.pdl","Rectangle1"); // Rectangle1 Là //vật muốn di chuyển CHON_T1=GetTagBit("CHON_T1"); CHON_T2=GetTagBit("CHON_T2"); CHON_T3=GetTagBit("CHON_T3"); CHON_T4=GetTagBit("CHON_T4"); ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 33 { if(CHON_T3==1) ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 34 { if(VITRI>180) { VITRI = VITRI-6; } if (VITRI<180) { VITRI = VITRI+6; } else { VITRI=VITRI; } } { if(CHON_T2==1) { if(VITRI>300) { VITRI = VITRI-6; } if (VITRI<300) { VITRI = VITRI+6; } else { VITRI=VITRI; } } { if(CHON_T1==1) { ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 35 if(VITRI>440) { ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 36 VITRI = VITRI-6; } if (VITRI<440) { VITRI = VITRI+6; } else { VITRI=VITRI; } } { if(CHON_T4==1) { if(VITRI>60) { VITRI = VITRI-6; } if (VITRI<60) { VITRI = VITRI+6; } else { VITRI=VITRI; } } SetTop("THANGMAY.pdl","Rectangle1",VITRI); } } } } ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 37 return 0; } ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 38 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 39 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 40 Viết chương trình cho thang máy mở cửa: Ta cũng làm tương tự như phần ở trên Chương trình viết cho cửa bên trái #include "apdefap.h" int gscAction( void ) { int a; int MO_CUA_CABIN; int DONG_CUA_CABIN; a=GetLeft("THANGMAY.pdl","Rectangle6"); MO_CUA_CABIN=GetTagBit("MO_CUA_CABIN"); ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 41 DONG_CUA_CABIN=GetTagBit("DONG_CUA_CABIN"); ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 42 if(MO_CUA_CABIN==1) { if (a>390) { a=a-50; } else { a=a; } } if(DONG_CUA_CABIN==1) { if (a<490) { a=a+50; } { a=a; } else } SetLeft("THANGMAY.pdl","Rectangle6",a); return 0; } ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 43 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 44 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 45 Chương trình viết cho cửa bên phải #include "apdefap.h" int gscAction( void ) { int a; int MO_CUA_CABIN; int DONG_CUA_CABIN; a=GetLeft("THANGMAY.pdl","Rectangle7"); MO_CUA_CABIN=GetTagBit("MO_CUA_CABIN"); DONG_CUA_CABIN=GetTagBit("DONG_CUA_CABIN"); if(MO_CUA_CABIN==1) { if (a<650) { ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 46 a=a+50; } ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 47 else { a=a; } } if(DONG_CUA_CABIN==1) { if (a>550) { a=a-50; } { a=a; } else } SetLeft("THANGMAY.pdl","Rectangle7",a); return 0; } ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 48 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 49 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 50 Viết C cho nút nhấn ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 51 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 52 ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 53 Làm tương tự cho nút nhấn đóng cửa ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 54 Viết C cho nút nhấn chọn tầng thực hiện các bước như trên ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 55 Viết chương trình cho nút nhấn cảm biến ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 56 Bây giở thì ta thiết lập các thông số kết nối Nhấp chọn biểu tượng Computer-> Statup-> Chon các ô như hình vẽ. ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 57 Graphic Runtime-> Start Picture-> nhấp Brow-> chọn đường dẫn tới Picture ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 58 Trong MPI ta chọn System Parameter Trong mục Unit Logical device name ta chọn PLCSIM(MPI) ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 59 Bên dưới MPI ta chọn S7-300 Nhấp phải chọn Property-> chọn số ô ở slot number là 2 Nhấp nút có hình ô vuông để cập nhật giá trị -> sau đó nhấp biểu tượng Runtime hình tam giác ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC ĐH SPKT TP.HCM SVTH: PHẠM VĂN TRỌNG 10701019 Page 60 Kết quả mô phỏng

Các file đính kèm theo tài liệu này:

  • pdf16_dieu_khien_thang_may_voi_s7300_va_wincc_9965.pdf