Bài ging tích hp PLC S7 – 200 Ngô Thanh ông
1
NH NG TRONG WINCC
1. TO NH NG THEO CHIU NGANG:
Trong bài này ta to 1 nút nhn dch trái, 1 nút nhn dch phi, 1 nút nhn dng, 2 tag:
tag_dichtrai
và tag_dichphai. Khi nhn nút dch trái nh s dch chuyn sang trái, khi nhn nút dch phi nh s
dch chuyn sang phi, nhn nút dng nh s dng.
Các bc vit chng 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
Vit c action cho ta đ x ca hình tròn
Vi nút nhn dch trái:
Bài ging tích hp PLC S7 – 200 Ngô Thanh ông
2
Làm tng t cho nút nhn dch phi:
Properties / events / mouse / mouse action / C – action
Bài ging tích hp PLC S7 – 200 Ngô Thanh ông
3
Chng trình C – action ca nút nhn dch phi:
#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 tng t cho nút nhn dng:
Properties / events / mouse / mouse action / C – action
Chng trình C – action ca nút nhn dch phi:
#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
}
Vit chng trình cho hình tròn di chuyn:
Kích chut phi lên hình tròn chn properties chn th properties chn Geometry chn
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;
Bài ging tích hp 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. TO NH NG THEO NG CHÉO:
Gi s ta cn to 1 hình tròn di chuyn t ta đ (x,y) = (200,200) đn ta đ (x,y) = (400,300),s
bc dch chuyn 10 bc.
T yêu cu ta có:
dch chuyn theo chiu x là: (400-200)/10 = 20.
dch chuyn theo chiu y là: (300-200)/10 = 10.
Ta mt tag tên
tag_dich_xy1 -loi d liu binary tag, mt tag tên tag_dich_xy2 – loi d liu
unsigned 32 bit, mt nút nhn di chuyn xy, mt nút nhn dng.
Vit chng trình cho đng tròn:
Kích chu
t phi trên đng tròn chn properties chn th properties chn Geometry
chn Position X C-Action và vit đon code nh bên di. (Event name chn trigger 250ms)
Postion Y liên kt đn tag_dich_xy2, chn Upon change.
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
static int x=200,y=200;
Bài ging tích hp 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;
}