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

相关推荐

  • wincc7.0与两台OPC服务器通讯

    请教一下各位大牛,我想在一项目中设计这样:三台电脑,一台是wincc服务器,另两台是专门的OPC服务器,OPC软件用KEPServer,其中两台OPC服务器读取的数据是一模一样的,…

    SIMATIC WinCC 2021年7月5日
  • vb如何访问wincc

    现在需要用vb做一个程序来访问wincc中的实时变量数据并通过计算机串口送到外部模拟屏中,怎样用vb访问wincc中的实时变量? 问题补充:to城外之人:按照你的方法,如果直接用w…

    SIMATIC WinCC 2019年6月11日
  • 自动打印报表

    我最近在做一个动态打印报表的功能,曾在论坛中请教过大侠们解答,也有人给了我答案,我将答案整理了一下,但是无法实现功能,大家能不能帮我想想到底是哪里的问题。 脚本如下:&n…

    SIMATIC WinCC 2019年6月11日
  • 大家都来告诉我啊

    1。老板需要我开机即进入主流程图和各个分画面,此时是哪个用户登陆的,我连接了变量@currentuser,此时显示什么都没有,为何我还能操作按钮?  &nbsp…

    SIMATIC WinCC 2019年6月11日
  • flexible 棒图显示问题

    tag是0-160的整数 但是要在棒图里显示成0-1.60 怎么弄 最佳答案 在屏里是很难转换的的,最好就是在plc转换成实数。 如果你要不嫌麻烦可以…

    SIMATIC WinCC 2019年6月11日
  • STEP和WINCC的变量编译

    我现场有三个STEP7-300的PLC站分别是PLC1、PLC2和PLC3,三个PLC站通过以太网连接到中控室,三个PLC站的程序我已经编写好,我在WINCC里面建了三个连接分别为…

    SIMATIC WinCC 2019年6月11日
  • wincc监视模拟量

    wincc 监视300的模拟量地址是pqw288, 用mpi监视300的时候怎么找到这个地址。 问题补充:l pqw288输不进去。 最佳答案 L&n…

    SIMATIC WinCC 2019年6月11日
  • 怎样调整wincc报警表布局

    各位大侠,想请教一下,wincc报警表怎么才能调整它的布局呢?好像我做的那个报警表只有画面的1/4呢?请教一下具体怎么做呢?谢谢 最佳答案 这是因为默认情况下只有3列:日期、编号、…

    SIMATIC WinCC 2019年6月11日
  • 如何把工业相机拍摄的照片通过wincc v7.3随时传送到外网中

    能否按条件拍到的照片用wincc v7.3功能随时传送到外网中?请求指导!谢谢你! 最佳答案 wincc 本身不具备此功能,可以尝试使用脚本的方式,将照片放置到…

    SIMATIC WinCC 2021年7月5日
  • wicc解密

    现在有一部分wicc,被加密了。结果在电脑上激活的时候击不活,不知道怎么才能解决这个问题。 最佳答案 1.可能画面中或者全局脚本里做了自动取消激活脚本。 2.可能授权转移…

    SIMATIC WinCC 2019年6月11日