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日 上午2:04
下一篇 2019年6月11日 上午2:04

相关推荐

  • 用户归档显示行数

    用户归档显示行数最多显示行数是多少,如何设置?我的用户归档最多显示行数怎么是3行? 最佳答案 最多显示65535,差不多只有3行,是不是你画面编辑中只有这么大空间另外就是你3行以后…

    SIMATIC WinCC 2019年6月11日
  • WinCC 7.0SP3 运行时如何显示画面名称

    WinCC 7.0SP3 英文版运行时如何显示画面名称? 问题补充:运行时自动显示画面名称,不需要懂鼠标 最佳答案 用VBS获取当前画面名称:http://wa…

    SIMATIC WinCC 2020年11月1日
  • WINCC中用VBS编一个对字符串的操作的程序

    VBS编一个对字符串的操作的程序,不知道怎样把字符串编程字符数组,然后遍历一下,找出特定的字符,我不想用InStr,就想用数组比较的操作,得出结果。请明示 想问一下,怎样…

    SIMATIC WinCC 2021年7月5日
  • RedundancyControl.exe应用程序错误

    每次项目关闭时系统都弹出 出错的对话框,显示RedundancyControl.exe应用程序错误,“0X00000020”指令引用的“0X00000020”内存,该内存…

    SIMATIC WinCC 2019年6月11日
  • 用户归档控件用鼠标指定当前数据记录

    在用户归档显示控件中,用鼠标单击选中行,使用归档专用函数,读取当前选中数据记录中指定字段的值,按照系统帮助中的示例做没有问题,但是不使用uaArchiveMoveFirst函数,直…

    SIMATIC WinCC 2017年11月16日
  • WINCC的图库元件不能翻转

    在WINCC的画面上放置西门子图库里的元件,例如阀门,罐体等,但是不能翻转90°,就是说,选中了一个元件,点击画面上方的“旋转”图标,阀门不变动。请问这是怎么回事? 最佳答案 你这…

    SIMATIC WinCC 2019年6月11日
  • WINCC趋势图

    现场两台一摸一样的工控机,用来操作监控一个站,但最近出现一个问题,其中的一台工控机的说有压力,温度,流量。趋势图都不显示,历史记录也不全,重新激活一下后历史记录和当前记录就都有了,…

    SIMATIC WinCC 2019年6月11日
  • 如何查询WINCC的SQL SERVER里的数据

    请问如何编写脚本来对数据库里的数据进行查询并显示呢?比如按某个属性值(时间)等.谢谢 最佳答案 1.建立数据库连接, 有VB语言和C语言的,论坛里有。 &nbs…

    SIMATIC WinCC 2019年6月11日
  • WINCC 是否能够显示CU320中的故障信息

    WINCC是否能够直接通过控件显示CU320中的信息,另外是否支持SIMOTION诊断缓冲区的显示。类似显示1500诊断存储区一样的方式,直接有控件支持,编程显示各种故障的话,有点…

    SIMATIC WinCC 2020年11月1日
  • wincc不能监控数字量信号吗?

    监控的数字量信号出来的都是锯齿波,应该是方波才对啊?请大神指导 最佳答案 趋势控件中的趋势类型需要选择“步进值”,最好将Y轴范围设置为-0.5~1.5。 图片说明:  &…

    2017年6月12日