[西门子] 西门子wincc画面中,扇叶旋转动画的实现

[复制链接]
查看117 | 回复0 | 2024-11-28 08:34:47 | 显示全部楼层 |阅读模式
>


   之前公众号分享过西门子Wincc旋转动画脚本文章,今天将介绍另外一种方法。

1、在wincc画面中,放置3个部分圆,分别设置好其半径、起始角度,结束角度:80、90、150;80、210、270;80、330、390;并将其中心并一起放置,如三图所示:

2、对起“始角度为90、结束角为150”部分圆的起始角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=90;

if(GetTagBit("S7$程序(1)/PD1_QD") )

 if(i<450)

   {

    i=i+30;

   }

  if(i==450)

   {

   i=90;

 }

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=90;

 }

return i; 

}

3、对起“始角度为90、结束角为150”部分圆的结束角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=150;

 if(GetTagBit("S7$程序(1)/PD1_QD") )

  if(i<510)

   {

    i=i+30;

   }

 if(i==510)

   {

   i=150;

 }

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=150;

 }

return i; 

}

4、对起“始角度为210、结束角为270”部分圆的起始角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=210;

if(GetTagBit("S7$程序(1)/PD1_QD") )

  if(i<570)

   {

    i=i+30;

   }

  if(i==570)

   {

   i=210;

   }

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=210;

 }

return i; 

}

5、对起“始角度为210、结束角为270”部分圆的结束角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=270;

 if(GetTagBit("S7$程序(1)/PD1_QD") )

 if(i<630)

   {

    i=i+30;

   }

 if(i==630)

   {

   i=270;

 }

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=270;

 }

return i; 

}

6、对起“始角度为330、结束角为390”部分圆的起始角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=330;

  if(GetTagBit("S7$程序(1)/PD1_QD") )

   if(i<690)

   {

    i=i+30;

   }

 if(i==690)

   {

   i=330;

}

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=330;

 }

return i;

}

7、对起“始角度为330、结束角为390”部分圆的结束角度进行动作C脚本编写,编写完成,设置好其触发周期:250ms(触发周期建议使用变量周期,相关文档参见使用变量触发器触发西门子Wincc动画),如下图所示。

具体C脚本:

#include "apdefap.h"

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

{

#pragma option (mbcs)

static  int i=390;

 if(GetTagBit("S7$程序(1)/PD1_QD") )

if(i<750)

   {

    i=i+30;

   }

  if(i==750)

   {

   i=390;

 }

if (!GetTagBit("S7$程序(1)/PD1_QD") )

 {

 i=390;

 }

return i; 

}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则