5
Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông 1 ẢNH ĐỘNG TRONG WINCC 1. TẠO ẢNH ĐỘNG THEO CHIỀU NGANG: Trong bài này ta tạo 1 nút nhấn dịch trái, 1 nút nhấn dịch phải, 1 nút nhấn dừng, 2 tag: tag_dichtrai tag_dichphai. Khi nhấn nút dịch trái ảnh sẽ dịch chuyển sang trái, khi nhấn nút dịch phải ảnh sẽ dịch chuyển sang phải, nhấn nút dừng ảnh sẽ dừng. Các bước viết chương trình cho hình tròn dch chuyn. Nhn dch trái settagbit Tag_dichtrai = 1 Tag_dichphai=0 Nhn dch phi Settagbit tag_dichtrai = 0 tag_dichphai = 1 Nhn nút dng Settagbit Tag_dichtrai = 0 Tag_dichphai = 0 Viết c action cho tọa độ x ca hình tròn Với nút nhấn dịch trái:

Anh Dong Trong Wincc 4137 NoRestriction

Embed Size (px)

Citation preview

Page 1: Anh Dong Trong Wincc 4137 NoRestriction

Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông

1

ẢNH ĐỘNG TRONG WINCC

1. TẠO ẢNH ĐỘNG THEO CHIỀU NGANG:

Trong bài này ta tạo 1 nút nhấn dịch trái, 1 nút nhấn dịch phải, 1 nút nhấn dừng, 2 tag: tag_dichtraivà tag_dichphai. Khi nhấn nút dịch trái ảnh sẽ dịch chuyển sang trái, khi nhấn nút dịch phải ảnh sẽ dịch chuyển sang phải, nhấn nút dừng ảnh sẽ dừng.

Các bước viết chương trình cho hình tròn dịch chuyển.

Nhấn dịch trái settagbit Tag_dichtrai = 1

Tag_dichphai=0

Nhấn dịch phải Settagbit tag_dichtrai = 0

tag_dichphai = 1

Nhấn nút dừng Settagbit Tag_dichtrai = 0

Tag_dichphai = 0

Viết c action cho tọa độ x của hình tròn

Với nút nhấn dịch trái:

Page 2: Anh Dong Trong Wincc 4137 NoRestriction

Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông

2

Làm tương tự cho nút nhấn dịch phải:

Properties / events / mouse / mouse action / C – action

Page 3: Anh Dong Trong Wincc 4137 NoRestriction

Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông

3

Chương trình C – action của nút nhấn dịch phải:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit("tag_dichphai",1); //Return-Type: BOOL

SetTagBit("tag_dichtrai",0); //Return-Type: BOOL

}

Làm tương tự cho nút nhấn dừng:

Properties / events / mouse / mouse action / C – action

Chương trình C – action của nút nhấn dịch phải:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit("tag_dichphai",0); //Return-Type: BOOL

SetTagBit("tag_dichtrai",0); //Return-Type: BOOL

}

Viết chương trình cho hình tròn di chuyển:

Kích chuột phải lên hình tròn chọn properties chọn thẻ properties chọn Geometry chọn Position X C-action:

#include "apdefap.h"

long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

static int a=100;

if (GetTagBit("tag_dichtrai")&&a>=100)

{

a = a - 10;

}

if (GetTagBit("tag_dichtrai")&&a <=100) a = 150;

Page 4: Anh Dong Trong Wincc 4137 NoRestriction

Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông

4

if (GetTagBit("tag_dichphai")&&a<=150)

{

a = a + 10;

}

if (GetTagBit("tag_dichphai")&&a>=150) a = 100;

return a;

}

2. TẠO ẢNH ĐỘNG THEO ĐƯỜNG CHÉO:

Giả sử ta cần tạo 1 hình tròn di chuyển từ tọa độ (x,y) = (200,200) đến tọa độ (x,y) = (400,300),số bước dịch chuyển 10 bước.

Từ yêu cầu ta có:

Độ dịch chuyển theo chiều x là: (400-200)/10 = 20.

Độ dịch chuyển theo chiều y là: (300-200)/10 = 10.

Tọa một tag tên tag_dich_xy1 -loại dữ liệu binary tag, một tag tên tag_dich_xy2 – loại dữ liệu unsigned 32 bit, một nút nhấn di chuyển xy, một nút nhấn dừng.

Viết chương trình cho đường tròn:

Kích chuột phải trên đường tròn chọn properties chọn thẻ properties chọn Geometry chọn Position X C-Action và viết đoạn code như bên dưới. (Event name chọn trigger 250ms)

Postion Y liên kết đến tag_dich_xy2, chọn Upon change.

#include "apdefap.h"

long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

static int x=200,y=200;

Page 5: Anh Dong Trong Wincc 4137 NoRestriction

Bài giảng tích hợp PLC S7 – 200 Ngô Thanh Đông

5

if(GetTagBit("tag_dich_xy1")&& x<400)

{

x = x+20;

y = y+10;

}

if(GetTagBit("tag_dich_xy1")&& x>=400)

{x = 200;

y = 200;

}

SetTagDWord("tag_dich_xy2",y);

return x;

}