wincc按钮C语言(fp=fopen)(w+b)(w+t)(r+w)请教?

请教:下面两个按钮属性含义?先谢谢!
下面的C语句其中:
“T_RECORD_1","day_1","time_hour_1","time_min_1","time_sec_1","T_CODE_1","T_VALVE_1",
共记100条(因为字数限制没有写全)

《数据保存》按钮鼠标动作

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
static  int recode=101;
float a[700];
static  float  v_record=0;
char *aa[700]={
"T_RECORD_1","day_1","time_hour_1","time_min_1","time_sec_1","T_CODE_1","T_VALVE_1",
};
int i;
int  record;
time_t t;
struct tm tblock;
FILE  *fp;
SetTagBit("ad1a1_1",1);
while(i<700)
   {    a[i]=GetTagFloat(aa[i]);     i++;      }  
fp = fopen("D:\\thj.txt","w+b");
if (fp==NULL) 
{fclose(fp);
return ;}
for(i=0;i<700;i++)
   { if(fwrite(&a[i],sizeof(float),1,fp)!=1)
       {fclose(fp);
          return ;
        }           
    }
fclose(fp);
fp = fopen("D:\\thj.bak","w+t");
for(i=0;i<700;i++)
fprintf(fp,"%f,",a[i]);
fclose(fp);
SetTagBit("ad1a1_1",0); 
return ;
}

《数据输入》按钮鼠标动作
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
static  int recode=101;
float a[700];
static  float  v_record=0;
char *aa[700]={
"T_RECORD_1","day_1","time_hour_1","time_min_1","time_sec_1","T_CODE_1","T_VALVE_1",
};
int i;
int  record;
time_t t;
struct tm tblock;
FILE  *fp; 
SetTagBit("ad1a2_1",1); 
 fp = fopen("d:\\thj.txt","r+w");
if (fp==NULL) 
{
fclose(fp);
return;
}
   for(i=0;i<700;i++)
       { fread(&a[i],sizeof(float),1,fp);
       SetTagFloat(aa[i],a[i]);         }
fclose(fp);
SetTagBit("ad1a2_1",0); 
return ;
}

最佳答案

数据保存按钮
把700个浮点数变量aa[i]的数据保存到文本文件D:\\thj.txt中,同时保存个D:\\thj.bak备份
数据输入按钮
把文本文件D:\\thj.txt的记录取出并写的变量浮点数变量aa[i]中(700个数据)

说白了数据配方的保存和取出功能

提问者对于答案的评价:
您的提示,我明白了,问题解决了,谢谢

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

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

相关推荐

  • Wincc c脚本定义二进制变量

    请问wincc的c脚本中,如何定义二进制变量?有一个设定值,我想将它设为大于等于20时这二进制变量为1,小于20时为0。请问怎么实现? 最佳答案 什么叫二进制变量?如果是指开关量用…

    SIMATIC WinCC 2021年7月5日
  • wincc和step7的通讯问题

    如题进行通讯连接,发现没有反应,在channel diagnosis中显示错误代码为first7000和last7008,请问是什么原因,谢谢!! 问题补充:mpi协议,…

    SIMATIC WinCC 2019年6月11日
  • 求助wincc开关问题

    本人正在开发一套系统,遇到一个问题,如何用一个按钮来实现一个变量的置位和复位 最佳答案 可以做一个C动作int a;a=getbit(“需要操作的变量”,a);a=set…

    SIMATIC WinCC 2017年12月7日
  • wincc以太网连接400H

    上位机:普通以太网网卡一块,400H每CPU配置1块CP443-1,我的WINCC现在首选连接到主CPU,怎么可以让主CPU出故障时连接到备用CPU? 问题补充:请详细描述步骤,谢…

    SIMATIC WinCC 2019年6月11日
  • 关于WinCC 7.0 SP3 RC版的授权问题

    听说RC和RT只是授权不一样,我想问的是,我的RT是用“Simatic_EKB_Install_2011_05_22”这个东东授权的,那RC的授权也用这个可以吗?如果可以的话,他与…

    SIMATIC WinCC 2017年10月31日
  • wincc 数据库看不到了

    程序文件中的文件夹archievement看不到了,但在激活后能在报表中看到历史记录的数据。之前往移动硬盘上复制过该项目。是不是中毒了?如何解决? 最佳答案 看看是不是隐藏arch…

    SIMATIC WinCC 2019年6月11日
  • OPC客户端访问WINCC AE SERVER

    OPC客户端怎么远程访问WINCC的OPC AE SERVER?是不是需要安装连通软件包?如果需要怎么安装? 最佳答案 是的,使用OPC HDA&nb…

    SIMATIC WinCC 2021年7月5日
  • WINCC7.0 WEB发布授权问题

    之前购买的WINCC订货号为:6AV6 381-2BN07-0AV0我想了解下 这个版本的wincc是否有web发布的授权  是几用户的呢?…

    SIMATIC WinCC 2021年7月5日
  • 博图wincc写生气了sql server 2008 r2数据库的问题

    Dim conDim connDim is_sql,b,aaDim rsDim oComcon="Provider=SQ…

    SIMATIC WinCC 2021年7月5日
  • 博途15wincc报表输出为word

    wincc的表报可不可以输出为word啊,具体怎么操作 问题补充:将带有模拟量趋势图打印报表输出到word 最佳答案 请参考 参考资料:https://www.zhaoplc.co…

    SIMATIC WinCC 2020年11月1日