ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 1

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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ấp Next

SVTH: PHẠM VĂN TRỌNG 10701019

Page 2

Đ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

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 4

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Ta nhấp tiếp vào Simatic 300 Station

SVTH: PHẠM VĂN TRỌNG 10701019

Page 5

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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
SVTH: PHẠM VĂN TRỌNG 10701019 Page 6

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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.

SVTH: PHẠM VĂN TRỌNG 10701019

Page 7

Đ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

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 12

Đ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

Màn hình Set PG/PC Interface

SVTH: PHẠM VĂN TRỌNG 10701019

Page 14

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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.

SVTH: PHẠM VĂN TRỌNG 10701019

Page 15

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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
SVTH: PHẠM VĂN TRỌNG 10701019 Page 16

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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ỳ ý)

SVTH: PHẠM VĂN TRỌNG 10701019

Page 17

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 18

Đ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

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ẽ

SVTH: PHẠM VĂN TRỌNG 10701019

Page 20

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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)

SVTH: PHẠM VĂN TRỌNG 10701019

Page 21

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Tạo thuộc tính cho cảm biến -> BlinkMode

SVTH: PHẠM VĂN TRỌNG 10701019

Page 22

Đ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

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 24

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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) 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”
SVTH: PHẠM VĂN TRỌNG 10701019 Page 25

o Property Name (lpszPropertyName)

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Ví dụ:  Khai báo hằng, biến  Khai báo hằng: Cú pháp: Ví dụ: 365;  Khai báo 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.
SVTH: PHẠM VĂN TRỌNG 10701019 Page 26 Các kiểu dữ liệu của biến và tầm sử dụng

# define Tên # define Max

hằng_Giá trị của hằng

Cú pháp:Kiểu dữ liệu của biến_Tên biến

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

(4).GetLeft

SVTH: PHẠM VĂN TRỌNG 10701019

Page 27

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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ọn T4==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 đó .
SVTH: PHẠM VĂN TRỌNG 10701019 Page 28

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Mở Global Script lên:

SVTH: PHẠM VĂN TRỌNG 10701019

Page 29

Đ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

#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");
SVTH: PHẠM VĂN TRỌNG 10701019 Page 32

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

{ if(CHON_T3==1)

SVTH: PHẠM VĂN TRỌNG 10701019

Page 33

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

{

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) {
SVTH: PHẠM VĂN TRỌNG 10701019 Page 34

}

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

if(VITRI>440) {

SVTH: PHẠM VĂN TRỌNG 10701019

Page 35

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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); } } } }
SVTH: PHẠM VĂN TRỌNG 10701019 Page 36

}

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

return 0; }

SVTH: PHẠM VĂN TRỌNG 10701019

Page 37

Đ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

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");
SVTH: PHẠM VĂN TRỌNG 10701019 Page 40

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

DONG_CUA_CABIN=GetTagBit("DONG_CUA_CABIN");

SVTH: PHẠM VĂN TRỌNG 10701019

Page 41

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

if(MO_CUA_CABIN==1) { if (a>390) { a=a-50; } { a=a; } } else

if(DONG_CUA_CABIN==1) { if (a<490) { a=a+50; } else { a=a; } } SetLeft("THANGMAY.pdl","Rectangle6",a); return 0; }
SVTH: PHẠM VĂN TRỌNG 10701019 Page 42

Đ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

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) {
SVTH: PHẠM VĂN TRỌNG 10701019 Page 45

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

a=a+50; }

SVTH: PHẠM VĂN TRỌNG 10701019

Page 46

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

{ a=a; } }

else

if(DONG_CUA_CABIN==1) { if (a>550) { a=a-50; } else { a=a; } } SetLeft("THANGMAY.pdl","Rectangle7",a); return 0; }

SVTH: PHẠM VĂN TRỌNG 10701019

Page 47

Đ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

Viết C cho nút nhấn

SVTH: PHẠM VĂN TRỌNG 10701019

Page 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 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

Làm tương tự cho nút nhấn đóng cửa

SVTH: PHẠM VĂN TRỌNG 10701019

Page 53

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Viết C cho nút nhấn chọn tầng thực hiện các bước như trên

SVTH: PHẠM VĂN TRỌNG 10701019

Page 54

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Viết chương trình cho nút nhấn cảm biến

SVTH: PHẠM VĂN TRỌNG 10701019

Page 55

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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ẽ.

SVTH: PHẠM VĂN TRỌNG 10701019

Page 56

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Graphic Runtime-> Start Picture-> nhấp Brow-> chọn đường dẫn tới Picture

SVTH: PHẠM VĂN TRỌNG 10701019

Page 57

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Trong MPI ta chọn System Parameter

Trong mục Unit Logical device name ta chọn PLCSIM(MPI)

SVTH: PHẠM VĂN TRỌNG 10701019

Page 58

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

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

SVTH: PHẠM VĂN TRỌNG 10701019

Page 59

ĐIỀU KHIỂN THANG MÁY VỚI S7-300 VÀ WINCC

ĐH SPKT TP.HCM

Kết quả mô phỏng

SVTH: PHẠM VĂN TRỌNG 10701019

Page 60