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=  90.00 
zhihou  Valve_SteamPress=  85.00   Valve_SteamPress_1=  85.00  
 Valve_SteamPress=  95.00 
zhihou  Valve_SteamPress=  90.00   Valve_SteamPress_1=  90.00  
 Valve_SteamPress=  100.00 
zhihou  Valve_SteamPress=  95.00   Valve_SteamPress_1=  95.00  

为什么从第二 三个周期就赋值不进去了呢?
3、如果是在按钮的C 动作里 加同样的程序,然后手动按钮周期运行,则每次的SetTagDouble都可以起作用。

最佳答案

第四个 printf 语句中的 GetTagDouble 应该替换为 GetTagDoubleWait。即:
printf("zhihou  Valve_SteamPress=  %1.2f   Valve_SteamPress_1=  %1.2f  ",GetTagDoubleWait("Valve_SteamPress"),GetTagDoubleWait("Valve_SteamPress_1"));

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午4:08
下一篇 2019年6月11日 上午4:08

相关推荐

  • wincc与modbus通信

    wincc怎么与modbus协议通信,是不是要将modbus协议转换成opc协议才行呀,用什么转换呀,请高手指点一下,谢谢 能不能给我一个能够将modbus转换成opc协…

    SIMATIC WinCC 2019年6月11日
  • 谁有wincc6.0—7.0的软件

    哪位有wincc6.0—7.0的软件,能给传我吗?谢谢呀!我的邮箱:sunway090808@163.com 最佳答案 WinCC V6.0 软件下载链接—…

    SIMATIC WinCC 2019年6月11日
  • WINCC更改网卡配置

    在创建项目时,wincc提示“未指定的错误”,“不能创建项目”,查了一下说是没有连接网络造成这种情况。我的WINCC在安装时到最后的时候出现一个确认框,好像是要求确认采用哪个网卡,…

    2017年7月26日
  • 请教关于WinCC项目集成到STEP7项目的问题

    技术论坛没有人回答,我到找答案来请教这几个关于WinCC项目集成到STEP7项目的问题   1.集成前,现有WinCC项目已建好了很多变量,是否需要删…

    SIMATIC WinCC 2017年12月8日
  • WINCC6.0 SP2无法无法运行,停止在激活22%

    大家好: WINCC6.0 SP2无法无法运行,停止在激活22% 这是为什么啊? 计算机名字改了的啊,授权也有,找不到别的原因 最佳答案 工…

    SIMATIC WinCC 2019年6月11日
  • Pdlrt.exe 文件出错

    软件环境:win xp x64 pro +VMware workstation 7.0 + Winc…

    SIMATIC WinCC 2019年6月11日
  • 请教如何写VBS来处理csv文件

    面板是MP270  我想写个脚本来打开csv文件,请问怎么写呢?  我试过 set createobject …

    SIMATIC WinCC 2019年6月11日
  • 风机动画

    请问高手在WINCC中如何制作三页风机的动画。并且请问哪有专门的WINCC论坛我想加入。 最佳答案 1.在WINCC空间里找找看有没有合适的。或者有几个搅拌机画面叠加交替显示来实现…

    SIMATIC WinCC 2019年6月11日
  • MP270B key–10TFT 屏替代

    MP270B  key–10TFT 屏 订货号:6AV6542–0AG10–0AX0现需要找替代屏的订货号是 最佳答案 替代原则:外形…

    SIMATIC WinCC 2017年6月9日
  • 求导出excl

    wincc导出EXCL怎么弄? 问题补充:一个工件的温度,要求一个工件取一个温度,大概45秒钟一个工件。温度在WINCC上我做了归档变量,做了曲线,但是老板要显示在EXCEL上面 …

    SIMATIC WinCC 2017年11月1日