wincc定时器有问题

请教专家:
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;
printf("\n"); 
printf("SetTag之前  Valve_SteamPress=  %1.2f ",Valve_SteamPress);  
SetTagDouble("Valve_SteamPress",Valve_SteamPress);
SetTagDouble("Valve_SteamPress_1",Valve_SteamPress);

printf("\n"); 
printf("SetTag之后  Valve_SteamPress=  %1.2f   Valve_SteamPress_1=  %1.2f  ",GetTagDouble("Valve_SteamPress"),GetTagDouble("Valve_SteamPress_1"));
printf("\n"); 
printf("\n");
return 0; 
}
在界面的应用程序窗口里看到的结果是:
SetTag之前  Valve_SteamPress=  55.00 
SetTag之后  Valve_SteamPress=  55.00   Valve_SteamPress_1=  55.00  


SetTag之前  Valve_SteamPress=  60.00 
SetTag之后  Valve_SteamPress=  60.00   Valve_SteamPress_1=  55.00  


SetTag之前  Valve_SteamPress=  65.00 
SetTag之后  Valve_SteamPress=  60.00   Valve_SteamPress_1=  60.00  


SetTag之前  Valve_SteamPress=  70.00 
SetTag之后  Valve_SteamPress=  65.00   Valve_SteamPress_1=  65.00  


SetTag之前  Valve_SteamPress=  75.00 
SetTag之后  Valve_SteamPress=  70.00   Valve_SteamPress_1=  70.00  
从结果可以看到,SetTag之前显示的是中间变量的值,然后中间变量Valve_SteamPress的值SetTag给“Valve_SteamPress”和“Valve_SteamPress_1”这两个内部变量之后,显示出来的却和中间变量值不同。
3、如果是在按钮的C 动作里加同样的程序,然后每2S手动按钮周期运行,则每次的SetTagDouble都可以起作用。结果如下:
SetTag之前  Valve_SteamPress=  55.00 
SetTag之后  Valve_SteamPress=  55.00   Valve_SteamPress_1=  55.00  


SetTag之前  Valve_SteamPress=  60.00 
SetTag之后  Valve_SteamPress=  60.00   Valve_SteamPress_1=  60.00  


SetTag之前  Valve_SteamPress=  65.00 
SetTag之后  Valve_SteamPress=  65.00   Valve_SteamPress_1=  65.00  


SetTag之前  Valve_SteamPress=  70.00 
SetTag之后  Valve_SteamPress=  70.00   Valve_SteamPress_1=  70.00  


SetTag之前  Valve_SteamPress=  75.00 
SetTag之后  Valve_SteamPress=  75.00   Valve_SteamPress_1=  75.00  

请专家再给我解答一次,谢谢!

问题补充:
好吧 算了 不用帮我解答了 谢谢

最佳答案

使用GetTagDoubleWait和SetTagDoubleWait试试。

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

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

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

相关推荐

  • 如何组态操作员更改IO域的模拟量值时触发消息记录?

    描述:画面中有个输入输出型IO域,连接了一个Byte型变量(设置变频器频率),需要记录操作员何时更改了这个频率值,改为何值.我了解报警记录组态只能在某个位的上升沿或者下降沿的时候触…

    SIMATIC WinCC 2019年6月11日
  • Wincc曲线和报警打印问题

    我们要求通过时间查询,打印“数据曲线”和“报警记录”1,新建打印布局,“Test.RPL”,加入曲线控件和报警控件2.新建打印作业,“Print Job001”&nbsp…

    SIMATIC WinCC 2019年6月10日
  • wincc v7.3用户归档做触摸屏的配方怎么实现??

    想知道具体做法,或者还有其他办法?谢谢各位老师了。 最佳答案 配方的调用需要用脚本实现脚本的参考:WinCC/连通性软件包 V7.4 SP1https://su…

    SIMATIC WinCC 2021年7月5日
  • 在线曲线得问题(急)

    上次城老大说了以后情况还是不理想。commonY设置为真对应得Y坐标全部重合了。。那个脚本定义得控件属性好像和它点右键探出来得差不多啊。怎么才能用脚本把几个变量对应一个Y坐标。另外…

    SIMATIC WinCC 2019年6月11日
  • wcc flexible smart v3 传送项目到smart 700 ie v3

    smart 700 ie v3已经设置好IP,网线以太网传送,wcc flexible smart v3 向s…

    SIMATIC WinCC 2021年7月5日
  • WINCC 如何使用脚本?

    问一些初级问题:1,WINCC VB动作 用定时器触发,是不是在动作编辑页面里增加一个定时器就可以?2,要让脚本程序定时触发,还需要什么条件?3,VB脚本里边,…

    SIMATIC WinCC 2019年6月11日
  • WINCC运行时老是卡

    WINCC在编辑时老是卡住,然后不得不重新启动WINCC软件才行,还没怎么编辑呢又卡死了,请问哪位大侠还遇到过这种情况,不吝赐教,谢谢 最佳答案 这个应该和Wincc关系不大(可以…

    SIMATIC WinCC 2019年6月11日
  • wincc内部变量的作用

    请问wincc自带的内部变量有什么作用?麻烦举几个例子详细说明。谢谢! 最佳答案 内部变量是wincc中用来辅助作用。如果想显示当前时间、日期等,都可以用wincc内部变量来实现 …

    SIMATIC WinCC 2019年6月11日
  • wincc许可证

    请教各位大侠,原来系统安装了wincc V7.0 SP1,现升级为wincc V7.0 SP2+upgrade1,请问原来的许可证和硬件狗还…

    SIMATIC WinCC 2021年7月5日
  • 变量记录-非周期无法激活,如何修复

    修改项目过程中出现变量记录选中非周期,根据事件,无法归档(把所有脚本已经关闭,新建了归档变量,归档标志【二进制变量】),改成周期归档正常;新原建个全新项目,根据事件归档也正常。&n…

    SIMATIC WinCC 2019年6月11日