60
Đ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

Dieu Khien Thang May Voi S7300 Va Wincc

Embed Size (px)

DESCRIPTION

Dieu Khien Thang May Voi S7300 Va Wincc

Citation preview

Đ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ỀUKHIỂN LẬP TRÌNH 2

Chủ đề: ĐIỀU KHIỂN THANG MÁY VỚI S7-300VÀ 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-300Bước 1: Mở s7-300

Nhấp Next

Đ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 ,rasố ,analog với dung lượng bộ nhớ khác nhau tuỳ theo yêu cầu.

Chọn ngôn ngữ LADChọn khối OB1.Các khối OB khác là các khối phục vụ việc ngắt theocá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ấtnhanh 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 đếnI0.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ênChọn Option -> Set PG/PC Interface -> chọn phương thức kết nối vớiWincc

Đ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êucầ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ượngcó 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 WinccKế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àoMPI chọn-> New Driver Connection-> ta đặt tên cho nó là s7-300( têntuỳ ý)

Đ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ìnhSIMATIC 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áchnhấ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ạiObject 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ấpnhá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ênbá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ọnT1==1

ChọnT2==1

ChọnT3==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 1giá 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-300int VITRI;int CHON_T2;// biến liên kết bên S7-300int CHON_T3; //biến liên kết bên S7-300int CHON_T4;// biến liên kết bên S7-300VITRI=GetTop("THANGMAY.pdl","Rectangle1"); // Rectangle1 Là//vật muốn di chuyểnCHON_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ênChươ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ớiPicture

Đ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ượngRuntime 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