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画面背景

    wincc画面背景或者图片背景怎么能做成透明的? 最佳答案 只能在其它的图片处理软件里弄。 比如 flash,先选定图片,然后右击,选择“分离”,然后用“橡皮擦…

    SIMATIC WinCC 2019年6月11日
  • 关于WICC6.0打印问题

    想问一下如何在在WINCC运行画面里打印当前画面?用按钮或热键,具体怎么做?谢谢! 最佳答案 做一个按钮,分配上某个热键,用动态向导里的Hardcopy走一下即可。 提问者对于答案…

    SIMATIC WinCC 2019年6月11日
  • WinCC全局库中Toggle Buttons中On_Off4使用间接变量

    需要从不同地方进入同一个画面使用该切换按钮改变不同开关型变量的状态,于是想使用间接变量,用IO域间接改变值没问题,但用全局库中Toggle Buttons中On_Off4…

    SIMATIC WinCC 2017年12月7日
  • 为什么wincc中全局动作不可以执行?

    在wincc中的全局动作中写了个全局动作,每2秒执行一次,但运行wincc发现并没有执行相应的语句,这是为什么? 最佳答案 1,检查触发器是否设置了; 2,wincc的计…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC安装中出现的一些问题

    安装时,在消息队列中安装mictosoft  message queuing 5.0,可惜没有安装盘,安装不了,无盘的情况下如何安装,求技术…

    SIMATIC WinCC 2017年11月25日
  • wincc 设置

    新手 第一次用wincc 项目有两个315-2DP,一个153,WINCC中三个站都有要监视的变量,并且三个站之间还有数据交换.在项目中应该怎么设??&nbsp…

    SIMATIC WinCC 2019年6月11日
  • HMI上怎么样显示与PLC的以太网通讯正常呢?

    HMI上怎么样显示与PLC的以太网通讯正常呢?怎么样正确真正的显示以太网正常通讯的状态呢~ 最佳答案 需要在PLC里有一个常为1的变量(I,Q,M,DB点都可以),然后在WINCC…

    SIMATIC WinCC 2019年6月11日
  • 在WinCC 做的图控画面上如何实现用户登陆、退出和关闭WinCC图控的功能

    各位高手你们好!小弟我请教一个问题:我需要实现的功能描述如下: 1、WinCC图控专案运行时,会先打开一张主画面,主画面中包括很多按钮,其中一个是用户登陆的按钮,当我点击…

    SIMATIC WinCC 2019年6月11日
  • wincc c语言

    我从单位拷的wincc程序在家中的电脑打开后,在图形编辑器中的按钮属性的事件鼠标c语言动作没法打开,显示不可用是怎么回事,怎样能打开 最佳答案 1.WINCC中的计算机名称要和你的…

    SIMATIC WinCC 2019年6月11日
  • 如何卸载wincc

    如何卸载wincc6。2?我在控制面板里卸载不好使。听说需要设置注册表,怎么弄?用360等软件卸载行吗? 最佳答案 重装系统吧 提问者对于答案的评价:.

    SIMATIC WinCC 2019年6月11日