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日 下午2:39
下一篇 2020年11月1日 下午2:39

相关推荐

  • wincc6.0没有配方列表控件

    wincc6.0没有配方列表控件,怎么解决。wincc6.0用cp5611卡通讯不上,请教高手怎么解决 最佳答案 WINCC使用配方,需要用用户归档选件。CP5611你要看有你的操…

    SIMATIC WinCC 2021年7月5日
  • WinCC不能打开与文件夹同名的MCP文件

    WinCC6.0SP4(2003SERVER SP1)打开D盘的项目,如果项目文件夹与MCP文件同名,提示“The user does no…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0更改用户密码

    怎样组态一个按钮以实现密码更改对话框得调用 最佳答案 WINCC–如何在程序中动态修改用户密码 1、点击“开始”–》“设置”–》“控制面板”–》“管理工具”–》…

    SIMATIC WinCC 2019年6月11日
  • PC/PG接口设置问题

    如果安装wincc的上位机有cp5611和cp5613两个通讯卡,那PC/PG接口要怎么设置,wincc中通信单元的系统参数要怎么设置?这两者有没有关系?step7与PLC通信需要…

    SIMATIC WinCC 2017年6月4日
  • Function Trend Control 怎么设置线宽

    请教各位:Function Trend Control 怎么设置趋势线的宽度?我只找到颜色的设置选项。 问题补充:我打开控件属性里 没有看到…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible smart sp2 wingdow 10家庭版安装问题

    求教怎么安装 钻石用户推荐最佳答案 1、请重新做系统,使用WIN10专业版,家庭版本是不兼容的2、系统使用微软原版系统,可以在这里下载;https://msdn.itellyou.…

    SIMATIC WinCC 2020年11月1日
  • CPU351-2PN/PD 用以太网与DCS通讯

    CPU351-2PN/PD 用自身的以太网口与DCS通讯,怎么配置。其中一个网口用于WINCC 通讯,现场要DCS远程监控,请高手指教。 问题补充:以往都是做&…

    SIMATIC WinCC 2017年6月6日
  • WinCC画面延迟严重

    软硬件配置:WinCC7.5 ,TIA博图V16,下位机1513R冗余CPU,工程师站+操作员站,PC均配置内存8G,I5-9500 3.00GHz,64位wi…

    2021年7月5日
  • 能否提取字符串中的一位,转为ASC

    在编程时遇到需要从一个产品序号中提取第三位,然后转为ASC码,第三位是大写字母。现在做的程序中定义TITTLE为string类型,LEFT为保留左边两位,然后RIGHT为保留右边一…

    2020年11月1日
  • 如何在wincc中做报警延时

    我们一台风机的监控参数总有瞬时报警(假)信息,一种方法是在程序中作出延时。但是可以在wincc中作出延时吗?例如所有模拟量报警延时3秒。具体如何做?谢谢各位指导 问题补充:我的目的…

    SIMATIC WinCC 2019年6月11日