WINCC做的一个手臂画面,一开始做成0-180度左右旋转,没问题。但是甲方要改成0到-180度左右转,就是从圆的上半部分左右转,而不是圆的下半部分。我是用C语言做的,改完不能转了,就是根本不动了。
这是0-180的程序
#include "apdefap.h"
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10;
int T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12;
static int f1,f2;
Q1=GetTagBit("O220");//取
Q2=GetTagBit("O217");//放
T1=GetTagBit("I222");//取到位
T2=GetTagBit("I223");//放到位
f1=GetTagWord("旋转角度");
if(T1f1<0)
f1=0;
if(T2f1>180)
f1=180;
if((!T1)&&(!T2)&&Q2&&f1<=179)
f1=f1+10;
if((!T1)&&(!T2)&&Q1&&f1>=1)
f1=f1-10;
SetTagWord("旋转角度",(WORD)f1);
return f1;用起来没问题
这是我改后的0到负180度转的,不好用,(我把旋转角度对应的变量也改成了有符号16位)
double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10;
int T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12;
static int f1,f2;
Q1=GetTagBit("O220");//取
Q2=GetTagBit("O217");//放
T1=GetTagBit("I222");//取到位
T2=GetTagBit("I223");//放到位
f1=GetTagWord("旋转角度");
if(T1f1>0)
f1=0;
if(T2f1<-180)
f1=-180;
if((!T1)&&(!T2)&&Q2&&f1>=-179)
f1=f1-10;
if((!T1)&&(!T2)&&Q1&&f1<=-1)
f1=f1+10;
SetTagWord("旋转角度",(WORD)f1);
return f1;
}