一段C脚本,求解释

#include "apdefap.h"

int gscAction( void )
{
static int tic;
//tic=GetTagWord("MM"); //返回类型:WORD 


if (tic>=360) tic=30;
else (tic=tic+30);
 //返回类型:BOOL 
SetTagWord("rotate",tic); //返回类型:BOOL 


// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
 
return 0; 
}

最佳答案

static int tic;
//tic=GetTagWord("MM"); //返回类型:WORD 
if (tic>=360) tic=30;
else (tic=tic+30);
 //返回类型:BOOL 
SetTagWord("rotate",tic); //返回类型:BOOL 

static int tic; 
定义了一个静态变量 tic ,静态变量可以自动保存上一次的值,变量的生命周期中只初始化一次,值等于0.也就是说这个变量在静态存储区被划分出来的时候就初始化为0。以后都保留了最后一次操作后的值。这个就是为什么tic=GetTagWord("MM");可以被注释掉的原因。

if (tic>=360) tic=30;
else (tic=tic+30);
是判断tic 是不是超过或等于360了 超过了就赋给tic值为30
如果小于360就自增30

这个程序被调用一次 tic就变化一次  变化的值是 30 60 90 120 ……330 360 这样一直循环下去,每变化一次的同时将这个tic的值传到rotate这个变量里面。变化的频率随程序触发的频率决定。

实现的功能就是每触发一次这个程序事件,角度就转过30°。

提问者对于答案的评价:
感谢指点!很有帮助,学习啦

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc251647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月5日 下午2:54
下一篇 2018年12月5日 下午2:55

相关推荐

  • 5台PC的Wincc画面与CPU315-2DP(PLC侧无以太网)通讯?

    各位前辈:目前的硬件配置:CPU315-2DP、PC1、PC2、PC3、PC4、PC5。其中PC1加CP5611卡与CPU315-2DP进行通信,该用什么办法才能够让剩下的4台PC…

    SIMATIC WinCC 2020年11月1日
  • 客户端无法连接WINCCserver

    第一种方式,webnavigator 方式,登录之后没有画面,服务器端配置应该没错如下图1至图四,第二种方式,客户端模式,服务器配置为多用户,配置好后,如图五至图六图5找…

    2020年11月1日
  • TIA WINCC弹出窗口

    比如一个项目有一百多个阀,每按一个阀对应弹出一个启停窗口,不可能做一百多个弹窗,而应该是用同一个窗口,然后用结构变量,知道大概的方法,但是不知道具体步骤,有这方面的资料的或者DEM…

    SIMATIC WinCC 2021年7月5日
  • pcs7怎么添加模拟量 ,并在wincc上显示

    pcs7怎么添加模拟量 ,并在wincc上显示 最佳答案 SIMATIC 过程控制系统 PCS 7 入门指南 -&nbs…

    SIMATIC WinCC 2020年11月1日
  • 变量记录注释

    WINCC变量记录中有一项为注释,请问,我如何才能够在画面中显示出来? 问题补充:大家帮帮忙 最佳答案 这个实现不了 提问者对于答案的评价:可以实现 找到解决方案了 最佳…

    SIMATIC WinCC 2020年11月1日
  • 2台wincc使用普通网卡与2台s7-300时间同步

    可以吗?需要哪里设置, 我看西门子工程师给我发的文档里面用到cp1613,是必须的马?我的wincc设置中 只能选cp1613和softnet 300…

    SIMATIC WinCC 2019年6月11日
  • WinCC flexible SMART V3 sp2简体中文完整版

    sp1安装上,sp2安装显示这个状态什么意思 钻石用户推荐最佳答案 WinCC_flexible_SMART_V3SP2.exe:(软件下载链接,直接点击下面这个链接就会开始下载)…

    SIMATIC WinCC 2021年7月5日
  • wincc用C动作使对象变色

    我用C动作使对象变色(变量为BOOL型,变量1为1时对象背景色为绿,变量2为1时对象背景色为红),程序如下?。变量是从STEP7调用上来的if?(GetTagBit("S…

    2021年7月5日
  • WINCC中画面里按钮的问题

    请教一下:WINCC中设置按钮,我现在的设置了鼠标动作:来源是常数1,目标是我的变量。。现在想实现当变量变成1的同事,按钮本身填充颜色。这个应该怎么设置?另外求一下图形编辑器里面各…

    SIMATIC WinCC 2019年6月11日
  • WINCC怎么样批量做结构变量、报警记录?

    比如一个流量值有高高、高、低、低低报警。如果每个流量值都这样建四条报警记录,太麻烦。有没有批量建立的方法? 问题补充:那PCS7 可以批量添加报警记录、结构变量吗?? 最…

    SIMATIC WinCC 2019年6月11日