Chuẩn bị:
- Trước hết ta tạo một project "example".
- Trong project tạo một tag nội kiểu "Binary Tag" với tên là "bRun", gán giá trị khởi tạo cho nó là FALSE.
- Tiếp theo ta tạo 1 picture "main", trong picture main ta thêm các đối tượng với các thuộc tính như trong bảng sau.
Name
|
Global Shadow
|
Global Color Scheme
|
Position X
|
Position Y
|
Width
|
Height
|
btnStart
|
Yes
|
Yes
|
30
|
30
|
||
btnStop
|
Yes
|
Yes
|
160
|
30
|
||
circle
|
No
|
No
|
30
|
100
|
40
|
40
|
Tạo chuyển động
Để tạo chuyển động cho circle, ta sẽ gán giá trị cho thuộc tính "Position X" và "Position Y" của circle để thay đổi vị trí của circle. Trong WinCC, ta có thể liên tục xác lập vị trí của circle bằng cách dùng timer với action, sau mỗi chu kỳ của timer, ta xác lập lại vị trí của circle bằng cách viết mã trong action.
Tạo một action trong C-Script và gán nó với một timer
- Trong view bên trái của WinCC Explorer, right click trên "Global Script -> Open C Editor" để mở Global Script C.
- Trong Global Script C ở view bên trái right click "Actions -> New" để tạo một action.
- Click biểu tượng trên thanh toolbar để mở hộp thoại "Properties", chọn tab "Trigger".
- Click chọn "Timer -> Cyclic" rồi click "Add" để mở hộp thoại "Add Trigger".
- Chọn kiểu Event là "Standard Cycle", Trigger name là "tmr250", Cycle là "250 ms".
- Click OK trên các hộp thoại để hoàn tất việc tạo timer cho action.
Tạo mã cho action
Bây giờ chúng ta sẽ tạo mã cho action để nó xác lập lại vị trí cho circle sau mỗi chu kỳ của timer 250 ms. Các bạn copy đoạn code dưới đây rồi paste vào trình soạn thảo C-Script của WinCC.
#include
"apdefap.h"
#define
PIC_NAME "main"
#define
CIRCLE_NAME "circle"
#define
TAG_RUN "bRun"
int
gscAction( void
)
{
int
iStepX = 5;
int
iStepY = 5;
int
iMaxX = 200;
int
x, y;
BOOL
bRun;
bRun
= GetTagBit(TAG_RUN);
if(!bRun)
//
Neu khong chay -> khong lam gi ca
return
0;
x
= GetLeft(PIC_NAME, CIRCLE_NAME); //
Lấy tọa độ X của circle
y
= GetTop(PIC_NAME, CIRCLE_NAME); //
Lấy tọa độ Y của circle
if(
x < iMaxX ){
x
+= iStepX; //
Tịnh tiến theo phương X
y
+= iStepY; //
Tịnh tiến theo phương Y
//
Kiểm tra nếu đã đạt tới điểm cuối thì dừng
if(
x >= iMaxX ){
x
= iMaxX;
}
SetLeft(PIC_NAME,
CIRCLE_NAME, x); //
Xác lập tọa độ X mới
SetTop(PIC_NAME,
CIRCLE_NAME, y); //
Xác lập tọa độ Y mới
}
return
0;
}
|
Sau khi tạo mã xong, bạn click trên biểu tượng để compile action, sau đó lưu lại với tên "rotate_circle.pas". Đến đây ta đã xong phần tạo chuyển động cho circle. Bây giờ ta tạo event cho hai nút "Start" và Stop". Ta chỉ cần SET bit "bRun" khi nhấn nút "Start" và RESET nó khi nhấn nút "Stop", ta cũng phải cần xác lập lại vị trí ban đầu cho circle khi nhấn nút "Start".
Tạo event cho button "Start"
Trong Graphic Designer, click chọn nút "Start" -> click biểu tượng để mở hộp thoại "Object Properties" -> chọn tab "Events" -> chọn "Mouse" ở view bên trái -> chọn "Mouse Click" ở view bên phải -> right click -> "C-Action..." -> Mở hộp thoại "Edit Action".
Trong "Edit Action" bạn tạo mã như sau
Click trên biểu tượng để compile rồi click OK để đóng hộp thoại.
Tạo event cho button "Stop"
Làm tương tự như nút "Start".
Tạo mã như bên dưới
Đến đây ta đã xong tất cả các bước, bây giờ ta có thể chạy WinCC Runtime để xem thành quả.
Chạy WinCC Runtime
Do ta dùng Global Action C-Script nên ta phải kích hoạt "Global Script Runtime" cho WinCC Runtime. Ta làm theo các bước sau.
Trong WinCC Explorer, click chọn "Computer" ở view bên trái -> chọn máy tính của bạn ở view bên phải ->double click để mở hộp thoại "Computer properties" -> chọn tab "Starup"
Tick chọn vào mục "Global Script Runtime" trong hộp danh sách
Click OK để đóng hộp thoại.
Cuối cùng bạn quay trở lại WinCC Explorer và Activate WinCC Runtime, bạn hãy thử click nút "Start" và "Stop" để xem hiệu ứng nhé.
Các bài liên quan:
#include
"apdefap.h"
void
OnClick(char*
lpszPictureName, char*
lpszObjectName, char*
lpszPropertyName)
{
#define
PIC_NAME "main"
#define
CIRCLE_NAME "circle"
SetLeft(PIC_NAME,
CIRCLE_NAME, 30); //
Xác lập tọa độ X cua diem dau
SetTop(PIC_NAME,
CIRCLE_NAME, 100); //
Xác lập tọa độ Y cua diem dau
SetTagBit("bRun",
TRUE);
}
|
Click trên biểu tượng để compile rồi click OK để đóng hộp thoại.
Tạo event cho button "Stop"
Làm tương tự như nút "Start".
Tạo mã như bên dưới
#include
"apdefap.h"
void
OnClick(char*
lpszPictureName, char*
lpszObjectName, char*
lpszPropertyName)
{
SetTagBit("bRun",
FALSE);
}
|
Đến đây ta đã xong tất cả các bước, bây giờ ta có thể chạy WinCC Runtime để xem thành quả.
Chạy WinCC Runtime
Do ta dùng Global Action C-Script nên ta phải kích hoạt "Global Script Runtime" cho WinCC Runtime. Ta làm theo các bước sau.
Trong WinCC Explorer, click chọn "Computer" ở view bên trái -> chọn máy tính của bạn ở view bên phải ->double click để mở hộp thoại "Computer properties" -> chọn tab "Starup"
Tick chọn vào mục "Global Script Runtime" trong hộp danh sách
Click OK để đóng hộp thoại.
Cuối cùng bạn quay trở lại WinCC Explorer và Activate WinCC Runtime, bạn hãy thử click nút "Start" và "Stop" để xem hiệu ứng nhé.
Các bài liên quan:
- http://step7control.blogspot.com/2014/02/vi-du-mau-s7-300-lap-trinh-va-mo-phong.html
- http://step7control.blogspot.com/2014/02/data-block-trong-s7-300.html
- http://step7control.blogspot.com/2014/02/lap-trinh-khoi-fb-trong-step7-manager.html
- http://step7control.blogspot.com/2014/02/vi-du-mau-s7-300-mo-phong-tren-wincc.html
bài viết rất hay và chi tiêt
ReplyDeletenhưng minh dùng Wincc trong Tia Portal , minh không biết làm sao để đặt 1 action theo timer trong nay được. bạn có thể hướng dẫn mình vs k?
Siemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download Now
Delete>>>>> Download Full
Siemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download LINK
>>>>> Download Now
Siemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download Full
>>>>> Download LINK c1
hay
ReplyDeletehay lắm anh ơi!
ReplyDeletehay lắm bạn ah thanks bạn nhiều nhé
ReplyDeleteSiemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download Now
ReplyDelete>>>>> Download Full
Siemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download LINK
>>>>> Download Now
Siemens Automation: Tạo Chuyển Động Dùng C-Script Và Timer Trong Wincc >>>>> Download Full
>>>>> Download LINK CL