anh dong trong wincc
TRANSCRIPT
-
8/12/2019 Anh Dong Trong Wincc
1/5
Bi ging tch hp PLC S7 200 Ng Thanh ng
1
NH NG TRONG WINCC
1. TO NH NG THEO CHIU NGANG:
Trong bi ny ta to 1 nt nhn dch tri, 1 nt nhn dch phi, 1 nt nhn dng, 2 tag: tag_dichtraiv tag_dichphai. Khi nhn nt dch tri nh s dch chuyn sang tri, khi nhn nt dch phi nh sdch chuyn sang phi, nhn nt dng nh s dng.
Cc bc vit chng trnh cho hnh trn dch chuyn.
Nhn dch tri settagbit Tag_dichtrai = 1
Tag_dichphai=0
Nhn dch phi Settagbit tag_dichtrai = 0
tag_dichphai = 1
Nhn nt dng Settagbit Tag_dichtrai = 0Tag_dichphai = 0
Vit c action cho ta x ca hnh trn
Vi nt nhn dch tri:
-
8/12/2019 Anh Dong Trong Wincc
2/5
Bi ging tch hp PLC S7 200 Ng Thanh ng
2
Lm tng t cho nt nhn dch phi:
Properties / events / mouse / mouse action / C action
-
8/12/2019 Anh Dong Trong Wincc
3/5
Bi ging tch hp PLC S7 200 Ng Thanh ng
3
Chng trnh C action ca nt 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
}
Lm tng t cho nt nhn dng:
Properties / events / mouse / mouse action / C action
Chng trnh C action ca nt 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 trnh cho hnh trn di chuyn:
Kch chut phi ln hnh trn chn properties chn th properties chn Geometry chnPosition 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
-
8/12/2019 Anh Dong Trong Wincc
4/5
Bi ging tch hp PLC S7 200 Ng Thanh ng
4
if (GetTagBit("tag_dichphai")&&a=150) a = 100;
return a;
}
2. TO NH NG THEO NG CHO:
Gi s ta cn to 1 hnh trn di chuyn t ta (x,y) = (200,200) n ta (x,y) = (400,300),sbc dch chuyn 10 bc.
T yu 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 tn tag_dich_xy1 -loi d liu binary tag, mt tag tn tag_dich_xy2 loi d liuunsigned 32 bit, mt nt nhn di chuyn xy, mt nt nhn dng.
Vit chng trnh cho ng trn:
Kch chut phi trn ng trn chn properties chn th properties chn Geometry
chn Position X C-Action v vit on code nh bn di. (Event name chn trigger 250ms)Postion Y lin 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;
-
8/12/2019 Anh Dong Trong Wincc
5/5
Bi ging tch hp PLC S7 200 Ng Thanh ng
5
if(GetTagBit("tag_dich_xy1")&& x=400)
{x = 200;
y = 200;
}
SetTagDWord("tag_dich_xy2",y);
return x;
}