一段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

相关推荐

  • WINCC怎样联结外部文本?

    我想在wincc运行的时候能调用WORD里的内容,能做到吗?该怎样做?如果不能,我怎么做到在线看我的文字内容,比如,操作说明书之类的东西?谢谢!小弟急用 最佳答案 利用动态向导里面…

    SIMATIC WinCC 2019年6月11日
  • 画面控制过程

    请问各位老师:在wincc画面中如何做一个“清零”按扭,点击该按扭就可以将累积的数据清零。我是新手,请各位老师说详细一点。在线等  谢谢!急 问题补充:累积流量…

    SIMATIC WinCC 2019年6月11日
  • 请帮我详细解读下这段脚本

    Sub Datamanage(strSQL) Dim objConnection Dim strConnectionString,…

    SIMATIC WinCC 2019年6月11日
  • wincc 安装故障

    今天刚装的新系统,但在安装完step7之后,安装wincc flexible 2008 SP4时出现‘stop simatic n…

    SIMATIC WinCC 2017年10月31日
  • wincc datanonitor 中怎么在报表中删除发布的报表?

    1、wincc datanonitor  中怎么在报表中删除发布的报表? 最佳答案 在以下路径中找,然后删除:C:\Program File…

    SIMATIC WinCC 2017年12月8日
  • TP1500怎么复制到另一个项目里

    怎么把一个项目里TP1500的界面,变量等完全复制到另一个项目里? 最佳答案 在现在的项目,视图窗口里显示参考项目,在参考项目里打开TP1500项目,然后将TP1500项目拖拽到当…

    SIMATIC WinCC 2021年7月5日
  • 查看服务器的wincc客户端连接为disconncetions

    PCS7系统中,两台冗余服务器1和服务器2,服务器1为主,服务器2为副,两台服务器之间通过CP1623和同步接口的冗余线进行同步,在服务器1wincc管理器TOOL菜单中查看Cli…

    2021年7月5日
  • 整点归档问题请教

    想让归档整点进行:设置归档类型为周期,采集周期为1分钟,归档周期为60*1分钟,1分钟定时器的循环起始点设为0分0钞,结果归档不在整点进行而XX:07.14,请问这是什么原因?查看…

    SIMATIC WinCC 2019年6月11日
  • wincc v6.2授权问题

    wincc v6.2授权和wincc v6.0授权一样么? 另外,现在工控机大多不带软驱,如何授权? 最佳答案 不一样. 你可以找个带软驱的…

    SIMATIC WinCC 2019年6月11日
  • MP370死机

    我用的MP370有时出现死机现象,即触摸MP370屏任何地方,无反应,PLC为317-2DP,屏与PLC为MPI通讯,西门子的工程师说做一下OS更新,但也不行.请叫各位老师!谢谢 …

    SIMATIC WinCC 2019年6月11日