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

相关推荐

  • wincc用报警器做的报警闪光灯为什么报警时不闪呢

    wincc用报警器做的报警闪光灯为什么报警时不闪呢wincc用报警器做的报警闪光灯为什么报警时不闪呢wincc用报警器做的报警闪光灯为什么报警时不闪呢 最佳答案 请根据图检查你的设…

    2021年7月5日
  • 300与WINCC通讯

    300的CPU距离太远,我们希望用无线来通讯连接,请问需要订购什么,有什么样的方案。 最佳答案 1、距离太远,即需要远程通讯,并非一般的无线通讯(距离只在几十米)。看看西门子官方的…

    SIMATIC WinCC 2021年7月5日
  • SIMATIC NET建立和PLC的通讯之后,服务器里列表下没有值。

    SIMATIC NET建立和PLC的通讯之后,服务器里列表下没有值,也就看不到各个数据的ID,那我怎么获得PLC里的数据呢?通讯是没问题,已经验证过了,建立成功了。 问题…

    2021年7月5日
  • WinCC归档数据查看

    WinCC归档数据包是如何打开并查看的?是不是要安装相关的软件,有相关教程吗 最佳答案 在Wincc中用趋势、表格控件都可以查看参考:https://cache.industry.…

    SIMATIC WinCC 2020年11月1日
  • 那位大哥有wincc手册中文的

    小弟想学习wincc那位大哥有这方面手册,麻烦给我份 邮箱281754165@qq.com 问题补充:V6.2   V7.0 都可…

    SIMATIC WinCC 2019年6月10日
  • 如何判断WINCC的开发版本

    手上有WINCC的工程,但不知道是用哪个版本的WINCC开发的,要怎么查看?电脑系统为WIN10 X64 钻石用户推荐最佳答案 http://www.ad.siemens…

    SIMATIC WinCC 2020年11月1日
  • 关于wincc7.0的安装遇到消息队列问题和数据库组建问题

    在安装wincc7.0时候遇到需要安装消息队列组建,安装不了,提示插入系统盘,手头没有安装盘,光驱也坏了,请问应该如何安装消息队列,另外:需要的数据库组建也需要在安装wincc之前…

    2017年8月18日
  • 如何用WinCC7.0做单条历史曲线查询

    各位前辈,学生刚接触WinCC,想请教个问题:做了个画面,主要是在线显示各变量的趋势曲线,各变量在变量记录里已经做了过程值归档,画面上用了在线趋势控件实时显示各变量的变化趋势。现在…

    SIMATIC WinCC 2017年11月12日
  • wincc CPU属性中PG/OP如何设置?

    公司整合集中控制,现场有几套s7-300的PLC,没个PLC都有两个工作员站,现在公司把几套PLC都连接到一个集中控制室,把WINCC组态都整合到另两台操作员站上,现场操作员站不撤…

    SIMATIC WinCC 2019年6月11日
  • 消息变量能否为外部变量

    消息变量能否为外部变量 最佳答案 消息变量就是外部变量,一般为了方便,我们存放几个报警在一个变量里面,变量一般是8位,这个变量的不同的位代表了不同的报警,所以报警处理就有了消息变量…

    SIMATIC WinCC 2019年6月11日