wincc程序类型问题?

大家好!
    我想让程序对一个小时单位的变量求和,通过每3分钟读取一个小时平均值再除以20来表达3分钟的数,但是因为变量数值比较大,每次都会到超过65535的时候返回到0。程序周期2S,gas_col_A_1与gas_sum_1为32位浮点内部变量,局部程序如下:
static unsigned float gas_sum_31=0;
static unsigned int gas_cnt_31=0;
int open_value;

gas_cnt_31++;//3minTimer
if(gas_cnt_31>89)
{
gas_cnt_31=0;
SetTagWord("gas_col_A_1",(unsigned int)(rand()/32767.0*6000.0+22000.0));//随机数
open_value=GetTagWord("gas_col_A_1");
gas_sum_31+=(float)open_value/20.0;
SetTagWord("gas_sum_1",(unsigned int)gas_sum_31);
open_value=GetTagWord("gas_sum_1");
printf("3-2SUM=%u\r\n",open_value);
}
输出结果3-2SUM总是小于65535,不明白怎么回事。希望哪位老师能抽空帮忙看下,先谢谢了。

问题补充:
与open_value这个变量的int型无关,我把open_value换成过long,结果还是一样。

最佳答案

你可以让你的数值的单位增大呀!比如你的当前是32000m3/h,那么用单位是万M3/h,那么当前值就是3.2了。你的程序只要把当前值除以10000后再进行处理就好了。

提问者对于答案的评价:
谢谢老师,您这也确实是好个办法,但是我们给客户看的数还是要大一点的才好,因为我们做的是节约量统计,因为他们不是太专业的人,数位太少了不好看。原因自己已经找到了是存入内部变量的表达式SetTagWord类型错了Word没超过65535,改成SetTagDWord就解决了。

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

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

相关推荐

  • wincc vb脚本提示弹不出窗口?

    用Vb脚本写的弹出窗口,点了没反应,求大神帮忙看看,附图,看看问题出在哪。1、先建立结构变量和变量元素。2、建立模板画面电动阀控制.pdl里面有远程、开到位、关到位、故障、开指令、…

    2020年11月1日
  • 鼠标

    设备的操作用的西门子触摸屏wincc组态监控,把工控机的硬盘装到PC机上怎么不能支持鼠标操作,怎么解决? 最佳答案 工控机的系统外围的硬件与PC机不一致。解决方法:1.重做PC系统…

    SIMATIC WinCC 2018年12月14日
  • 博图wincc弹窗

    问一下博图wincc里的弹窗画面除了用按钮触发,能用变量来自动触发吗?比如绑定一个整型变量a,当a=10的时候,画面自动弹出事先做的小窗口,这样我就可以在程序里通过给a赋值来控制小…

    2021年7月5日
  • WINCC6.0图形画面

    图形画面视图语言英文改成中文,确定保存画面,画面?消失画面显示正常,重新打开该画面故障扔就一样,显示?没有被保存,请高手赐教? 最佳答案 1、编辑的画面组态语言与原先的组态语言不符…

    SIMATIC WinCC 2021年7月5日
  • 菜鸟我还是问wincc与200的通讯问题

    我用wincc与224通讯,采用OPC通讯方式,在计算机上做模拟,想问一下,是不是一定要加一个CP243-1啊,我看例子上有这个模块。现在通讯还不成功,不知道是因为没有这个模块的原…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible怎么制作每天加1的计数器

    前提没有PLC,必须使用WINCC制作!开始值532,每过一天加1。一直累加显示在屏幕上!求各位大神指教!! 问题补充:有没有详细的回答??我也知道可以用VBS脚本实现,本人小白请…

    SIMATIC WinCC 2021年7月5日
  • 在WinCC中如何取得系统日期和时间并显示

    请教各位高手,请问在WinCC中如何取得当前系统的日期和时间,并在WinCC的画面中分开显示(即日期在一行显示,时间在另一行显示),谢谢! 最佳答案 三种方法,供楼主选择:&nbs…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0图形编辑

    在wincc7.0图形编辑器里面可不可以把图形旋转或者其他的操作,使得原对象轴对称得到另一个对象?,比如下图,通过左边的电机生成另一个与之通过红线对称的电机? 最佳答案 有的可以,…

    SIMATIC WinCC 2017年6月3日
  • 关于wincc中vbs的On Error Goto问题

    On Error Goto errerr:        MsgBox…

    SIMATIC WinCC 2020年11月1日
  • Wincc 连接DB 报Server busy 然后就死机了

    软件版本pcs7 v8.2亚洲版,系统win7 64位英文旗舰版,在db里建的中间变量 老是频繁出现server busy 然后按…

    SIMATIC WinCC 2021年7月5日