SetTagDouble函数在定时器里不起作用

请教专家:
1、在一个wincc项目里,建立两个内部变量:Valve_SteamPress_1和Valve_SteamPress。并在变量里赋初始值Valve_SteamPress_1=55;
2、全局动作里新建一个周期为2S 的定时器,程序如下:
#include "apdefap.h"

int gscAction( void )
{
double Valve_SteamPress_1;
double Valve_SteamPress;

Valve_SteamPress_1=GetTagDouble("Valve_SteamPress_1"); 
Valve_SteamPress  = 5   +Valve_SteamPress_1;
SetTagDouble("Valve_SteamPress",Valve_SteamPress);
SetTagDouble("Valve_SteamPress_1",Valve_SteamPress);

printf("\n"); 
printf(" Valve_SteamPress=  %1.2f ",Valve_SteamPress);  
printf("\n"); 

printf("zhihou  Valve_SteamPress=  %1.2f   Valve_SteamPress_1=  %1.2f  ",GetTagDouble("Valve_SteamPress"),GetTagDouble("Valve_SteamPress_1"));

return 0; 
}
在界面的应用程序窗口里看到的结果是:
 Valve_SteamPress=  55.00 
zhihou  Valve_SteamPress=  55.00   Valve_SteamPress_1=  55.00  
 Valve_SteamPress=  60.00 
zhihou  Valve_SteamPress=  60.00   Valve_SteamPress_1=  55.00  
 Valve_SteamPress=  65.00 
zhihou  Valve_SteamPress=  60.00   Valve_SteamPress_1=  60.00  
 Valve_SteamPress=  70.00 
zhihou  Valve_SteamPress=  65.00   Valve_SteamPress_1=  65.00  
 Valve_SteamPress=  75.00 
zhihou  Valve_SteamPress=  70.00   Valve_SteamPress_1=  70.00  
 Valve_SteamPress=  80.00 
zhihou  Valve_SteamPress=  75.00   Valve_SteamPress_1=  75.00  
 Valve_SteamPress=  85.00 
zhihou  Valve_SteamPress=  80.00   Valve_SteamPress_1=  80.00  


从上面的结果看,从第二次运行开始,同样的Valve_SteamPress,SetTag之后打印出来和之前打印出来的不一样。为什么从第二个周期SetTag就赋值不进去了呢?
3、如果是在按钮的C 动作里加同样的程序,然后手动按钮周期运行,则每次的SetTagDouble都可以起作用。 
是不是脚本编译器有问题,还是我哪个地方没有设置好?

专家建议

您好!从你的结果来看,赋值语句已经起作用了, 因为Valve_SteamPress值每次都加5。只是第二次的打印语句显示没变化。在显示的时候不要再用操作语句(GetTagDouble),直接用函数中的中间变量Valve_SteamPress。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐

  • wincc画面中设置登录按钮和退出按钮

    我想在画面上点登录,弹出登录对话框,输入用户名、密码后,在画面上显示用户名,并使登录按钮消失,点退出按钮后又恢复初始画面。 最佳答案 在“登录按钮”的属性里的动作下鼠标动作加入相应…

    SIMATIC WinCC 2019年6月11日
  • 触摸屏添加圆形按钮

    如何在触摸屏中添加圆形按钮 钻石用户推荐最佳答案 《Smart屏按钮组态》http://www.ad.siemens.com.cn/service/elearning/course…

    SIMATIC WinCC 2020年11月1日
  • WINCC用户权限管理

    我的系统是 C/S架构的 C中有分工作站和工程师站 我想在工程师站完成整个网络的用户登录权限管理 请问前辈们WINCC是否支持,然后有何好的…

    SIMATIC WinCC 2019年6月11日
  • 诊断变量中显示的是画面脚本还是全局脚本中动作的运行情况?

    WinCC 脚本诊断之如何让WinCC脚本运行更加顺畅 课程编号:V2537 您在使用WinCC时遇到过运行慢,堵塞等…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户…

    2020年11月1日
  • WinCC 脚本系统除了C脚本外还有哪些脚本?

    WinCC 脚本系统除了C脚本外还有哪些脚本? 最佳答案 wincc的脚本除了C脚本外还有VBS, VBA 提问者对于答案的评价:标准答案请参考专家置评。 专家…

    SIMATIC WinCC 2019年6月10日
  • 不同字符串显示不同字体颜色

    请教前辈,有若干个产品数据需要显示在WinCC画面上,根据型号(不同的字符串变量)显示不同的字体颜色,请教前辈怎么实现?谢谢 问题补充:请前辈给个脚本,在每个需要多色显示的地方调用…

    SIMATIC WinCC 2020年11月1日
  • 发生故障后怎样在WINCC上弹出对话框?

    项目里有32个阀门和几台泵,甲方要求元件发生故障后,除了声报警,还要弹出一个对话框,告诉是哪个元件坏了。请问那么多的元件,怎样单独显示呢? 最佳答案 如果是阀门泵的对话框好说,出现…

    SIMATIC WinCC 2019年6月11日
  • Wincc与上位机同时访问S7300的问题

    Wincc与上位机同时访问S7300,发生冲突。具体表现为Wincc或上位机时不时的掉线。 钻石用户推荐最佳答案 1、是TCP/IP连接吗?WinCC组态计算机的IP地址设置为和P…

    SIMATIC WinCC 2021年7月5日
  • 画面窗口的显示问题

    我在主画面中,做了个画面窗口,默认的是不显示,但是显示由3个字节型变量决定,这3个变量是或的关系,只要是其中有一个变量等于1就显示画面窗口,请问该用动态对话框还是C语言啊?&nbs…

    SIMATIC WinCC 2019年6月11日
  • wincc 作为opc ua客户端的问题

    wincc作为opc ua的客户端与kepware通讯,全局脚本中用A变量的‘’有变化时‘’条件来触发脚本运行,并在脚本最开始出判断A变量是否是1,如果是则运行下面的脚本…

    SIMATIC WinCC 2020年11月1日