分享

WINCC读写记事本创建工艺配方全局脚本源码实例

 Clintony 2012-05-08
void  fjgy_save()//将数据写到记事本中
 {
 FILE*fp;
 int i;
 int a;
 int xx[27];
 float yy[85];
 char ch[40];
 char ch1[40];
 char zz[9][40];
  
  sprintf(ch,"fjgy%s.txt",GetTagChar("发酵工艺名称")); //返回类型:char* 
 
     remove(ch);
     fp=fopen(ch,"wb");
        {
                    for(i=1;i<10;i++)
                      {
                          sprintf(ch1,"设定检测时间_%d",i);
                           a=i-1;
                          xx[a]=GetTagWord(ch1);
                          
                         sprintf(ch1,"温度参考点_%d",i);
                         a=i+8;
                          xx[a]=GetTagWord(ch1);
                        
                          sprintf(ch1,"1#罐段时间设定_%d",i);
                         a=i+17;
                          xx[a]=GetTagWord(ch1);
                                         
                         sprintf(ch1,"阀最大输出_%d",i);
                          a=i-1;
                          yy[a]=GetTagFloat(ch1);
                         
                          sprintf(ch1,"主控死区_%d",i);
                          a=i+8;
                          yy[a]=GetTagFloat(ch1);
                          
               
                         sprintf(ch1,"底温控制偏差_%d",i);
                         a=i+17;
                          yy[a]=GetTagFloat(ch1);
                           
                          sprintf(ch1,"阀1比例_%d",i);
                           a=i+26;
                          yy[a]=GetTagFloat(ch1);
                            
                          sprintf(ch1,"阀2比例_%d",i);
                           a=i+35;
                          yy[a]=GetTagFloat(ch1);
                         
                     
                         sprintf(ch1,"1#罐段温度设定_%d",i);
                           a=i+44;
                          yy[a]=GetTagFloat(ch1);
                          
 
                          sprintf(ch1,"温控提前量_%d",i);
                             a=i+53;
                          yy[a]=GetTagFloat(ch1);
                          
 
                           sprintf(ch1,"压力设定_%d",i);
                             a=i+62;
                          yy[a]=GetTagFloat(ch1);
  
                          sprintf(ch1,"压力偏差_%d",i);
                              a=i+71;
                          yy[a]=GetTagFloat(ch1);
 
   
                          sprintf(ch1,"工艺段%d参数名",i);
                              a=i-1;                                        
                          strcpy(zz[a],GetTagChar(ch1));  
 
 
                       }
                        yy[81]=GetTagFloat("1#罐段温度设定_10");
                         yy[82]=GetTagFloat("P_1");                   
                         yy[83]=GetTagFloat("I_1"); 
                         yy[84]=GetTagFloat("D_1"); 
 
          fwrite(xx,sizeof(int),27,fp);
          fwrite(yy,sizeof(float),85,fp);
          fwrite(zz,40,9,fp);
          fclose(fp);
        }
 
 
 
 
 void fjgy_upload()//从记事本中读取
 {
 FILE*fp;
 int i;
 int a;
 int xx[27];
 float yy[85];
 char zz[9][40];
 char ch[40];
 char ch1[40];
 
  sprintf(ch,"fjgy%s.txt",GetTagChar("发酵工艺名称")); //返回类型:char* 
 
     fp=fopen(ch,"rb");
        {
                  fseek(fp,0L,SEEK_SET);
                  fread(xx,sizeof(int),27,fp);
                  fread(yy,sizeof(float),85,fp);
                  fread(zz,40,9,fp);
 
 
                    for(i=1;i<10;i++)
                      {
                         
                         sprintf(ch1,"设定检测时间_%d",i);
                          a=i-1;
                          SetTagWord(ch1,xx[a]);
 
                          sprintf(ch1,"温度参考点_%d",i);
                          a=i+8;
                         SetTagWord(ch1,xx[a]);
                        
                          sprintf(ch1,"1#罐段时间设定_%d",i);
                          a=i+17;
                           SetTagWord(ch1,xx[a]);
                          
                                    
 
                         sprintf(ch1,"阀最大输出_%d",i);
                          a=i-1;
                          SetTagFloat(ch1,yy[a]);
                         
 
 
                          sprintf(ch1,"主控死区_%d",i);
                           a=i+8;
                          SetTagFloat(ch1,yy[a]);
                          
 
                          sprintf(ch1,"底温控制偏差_%d",i);
                          a=i+17;
                          SetTagFloat(ch1,yy[a]);
                           
                          sprintf(ch1,"阀1比例_%d",i);
                           a=i+26;
                          SetTagFloat(ch1,yy[a]);
                           
         
                          sprintf(ch1,"阀2比例_%d",i);
                           a=i+35;
                          SetTagFloat(ch1,yy[a]);
                            
                     
                         sprintf(ch1,"1#罐段温度设定_%d",i);
                          a=i+44;
                          SetTagFloat(ch1,yy[a]);
                           
 
                          sprintf(ch1,"温控提前量_%d",i);
                           a=i+53;
                          SetTagFloat(ch1,yy[a]);
                           
 
                          sprintf(ch1,"压力设定_%d",i);
                          a=i+62;
                         SetTagFloat(ch1,yy[a]);
                           
 
                          sprintf(ch1,"压力偏差_%d",i);
                          a=i+71;
                          SetTagFloat(ch1,yy[a]);
   
                          sprintf(ch1,"工艺段%d参数名",i);
                          a=i-1;
                          SetTagChar(ch1,zz[a]);
                         
 
                         }
                          SetTagFloat("1#罐段温度设定_10",yy[81]);
                          SetTagFloat("P_1",yy[82]);
                          SetTagFloat("I_1",yy[83]);
                          SetTagFloat("D_1",yy[84]);
 
                  fclose(fp);
         
  
 
          }
 }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多