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报警控件的几个问题

    用WINCC6.2建立了报警记录,然后再图形编辑器中组态WINCC报警控件,运行以后,发现在这个控件中显示的 状态 是一个+号,确认状态是一个*号,用户名为空。…

    2019年6月11日
  • wincc如何实现画面元素的曲线或线段任意点弯曲?

    本人看有系统是用INTOUCH做的中纤板压机画面(参看示例图片)。画面上有个模拟压机钢带多点位施压(伺服液压)在压机钢带上。而上部的钢带受力面的线段会各段随压力升降而平滑的各段各自…

    2021年7月5日
  • wincc激活运行后出现的问题?

    WINCC激活后运行到Alarm Logging Run Time 60%后就出现系统提示:Runtime Error\Progr…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC里的动态画面

    我最近想做一个WINCC的动态画面,炼钢用的挡渣小车,在WINCC画面上开始在右边,当我点前进的时候往左边开,开到中间停下来,车头的夹头自动打开,过三秒自动夹紧,然后前臂抬起,再往…

    SIMATIC WinCC 2019年6月11日
  • 智能对象里没有 ‘输入输出域

    WINCC软件后发现在对象选项板的智能对象里没有 ‘输入输出域‘ ,刚安装有,突然就没有了, 这个问题请高手指点一下。谢谢!!! 图片说明: &nbs…

    2017年11月16日
  • 怎么样添加脚本

    #pragma code("kernel32.dll");    Void GetLocalTimes(SYSTEMTI…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.3版本定时控制

    我想在界面输入00:00:00形式的时间,当我输入一个这样的时间,系统时间到达此时间时,就能给一个变量置位,实现定时启动效果,并且能在界面随时改变间这个时间,然后wincc都能实现…

    SIMATIC WinCC 2021年7月5日
  • 仪器仪表如何通过485连接到WINCC

    现场空压机有485接口,想把压力等参数传到中控室的WINCC电脑上,便于操作人员抄表,请问软件上如何编程?硬件上要如何与PC连接? 最佳答案 不知wincc版本几何,如果空压机控制…

    SIMATIC WinCC 2021年7月5日
  • 复制后wincc项目无法与300PLC通讯

    环境:win7+wincc7.3  315-2DP CP343-1过程:计划组态4台计算机,分别为单用户站与315-2DP通讯。wincc项目通过项目…

    2017年6月6日
  • WINCC 怎样获取电脑名

    我想WINCC运行的时候直接登陆系统,而不必弹出登陆框,因为我有6台client,而且分成不同的区域,也就是不同的区域有不同权限. 想想可能写个脚本,获取电脑名,然后根据…

    SIMATIC WinCC 2019年6月11日