⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initsystem.cpp

📁 hart工业仪表的微机仿真程序,在C++Builder下制作,能够仿真仪表(执行器)的动作以及数学模型,方便实用.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        m_HDCHG=atol(s);
//        fscanf(fp,"\n%5e",&m_HDCHG);  //51、86方向改变极限值   OFF 1~1.00E9
        fscanf(fp,"\n%s",s);  //52、87极限用于零极值监视 OFF 1~100%
        m_HZERO=atof(s);
        fscanf(fp,"\n%3.1f",&m_HOPEN);  //53、88极限用于开极值监视 OFF 1~100%
        m_HOPEN=atof(s);
        fscanf(fp,"\n%s",s);  //54、89极限用于死区极值监视 OFF 1~100%
        m_HDEBA=atof(s);
        fscanf(fp,"\n%3d",&m_PRST);  //55、90预设定 no\Strt\oCAY
        fclose(fp);
      }
      else
        Init_Param();
}




void TMainForm::Init_Code(void)
{
        //TODO: Add your source code here
        m_Work_State=0;   //工作状态,开机进入工作状态
        m_Auto_Init=0;
        Parm_Save();
}

void TMainForm::Parm_Save(void)
{
        FILE *fp;
        fp=fopen("WorkData.dat","wt");
        fprintf(fp,"\n%3d",m_System_State);
        fprintf(fp,"\n%3d",m_Work_AM); //2、2额定反馈角,  两个数,90,33。
        fprintf(fp,"\n%3d",m_Work_State); //2、2额定反馈角,  两个数,90,33。
        fclose(fp);
}

void TMainForm::Parm_Load(void)
{
        FILE *fp;
        if((fp=fopen("WorkData.dat","rt")))
        {
          fscanf(fp, "%3d",&m_System_State);
          fscanf(fp,"%3d",&m_Work_AM); //2、2额定反馈角,  两个数,90,33。
          fscanf(fp,"%3d",&m_Work_State); //2、2额定反馈角,  两个数,90,33。
          fclose(fp);
        }
        else
          Init_Code();
}
void TMainForm::Check_Init_Param(void)
{
       m_STRKS=0;//1,2  行程累积,按+5秒可复位为0(rESEt),需要确认
       m_CHDIR=0;//2,4  阀改变方向次数,按+5秒可复位为0(rESEt)
       m_HCNT=0; //3,6  总报警次数,按+5秒可复位为0(rESEt)
       m_A1CNT=0;//4,8  A1报警次数,按+5秒可复位为0(rESEt)
       m_A2CNT=0;//5,10 A2报警次数,按+5秒可复位为0(rESEt)
       m_HOURS=0;//6,12 总运行时间(小时),以何为标准
       m_WAY=0; //7,13 当前操作方式,与m_YFCT对应,需要确认
       m_Up_Time=0;//8,15 阀上升定位时间,需要确认
       m_Down_Time=0;//9,17 阀下降定位时间,需要确认
       m_LEAK=0;    //10,19执行机构泄漏,需要确认
       m_P0=0;      //11,21
       m_P100=0;    //12,23
       m_IMPUP=0;//13, 25
       m_IMPDN=0;//14  27
       m_DBUP=0;    //15,29 死区正限位,为m_DEBA值
       m_DBDN=0;    //16,31 死区负限位,为-m_DEBA值
       m_SSUP=0;    //17  33
       m_SSDN=0;    //18  35
       m_TEMP=0;    //19,37 当前温度,按”+“可进行摄氏与华氏之间转换
       m_TMIN=0;    //20,39 最小温度,
       m_TMAX=0;    //21,41 最大温度
       m_T1=0;   //22,43 T1运行时间
       m_T2=0;   //23,45 T2运行时间
       m_T3=0;   //24,47 T3运行时间
       m_T4=0;   //25,49 T4运行时间
       m_T5=0;   //26,51 T5运行时间
       m_T6=0;   //27,53 T6运行时间
       m_T7=0;   //28,55 T7运行时间
       m_T8=0;   //29,57 T8运行时间
       m_T9=0;   //30,59 T9运行时间
       m_VENT1=0;  //31,61 压电阀运行循环次数
       m_VENT2=0;  //32,63 压电阀运行循环次数
       m_STORE=0; //33,64 存贮,按”+“5秒后存贮,出现Strt(Start)
       m_PRUP=0;   //34,66
       m_PRDN=0;   //35,68
}
void TMainForm::Check_Data_Save(void)
{
       FILE *fp;
       fp=fopen("CheckData.dat","wt");
       fprintf(fp,"\n%ld",m_STRKS);    //1,2  行程累积,按+5秒可复位为0(rESEt),需要确认
       fprintf(fp,"\n%ld",m_CHDIR);    //2,4  阀改变方向次数,按+5秒可复位为0(rESEt)
       fprintf(fp,"\n%ld",m_HCNT);     //3,6  总报警次数,按+5秒可复位为0(rESEt)
       fprintf(fp,"\n%ld",m_A1CNT);    //4,8  A1报警次数,按+5秒可复位为0(rESEt)
       fprintf(fp,"\n%ld",m_A2CNT);    //5,10 A2报警次数,按+5秒可复位为0(rESEt)
       fprintf(fp,"\n%ld",m_HOURS);    //6,12 总运行时间(小时),以何为标准

       fprintf(fp,"\n%ld",m_Up_Time);  //8,15 阀上升定位时间,需要确认
       fprintf(fp,"\n%ld",m_Down_Time);//9,17 阀下降定位时间,需要确认
       fprintf(fp,"\n%f",m_LEAK);    //10,19执行机构泄漏,需要确认
       fprintf(fp,"\n%f",m_P0);      //11,21
       fprintf(fp,"\n%f",m_P100);    //12,23
       fprintf(fp,"\n%ld",m_IMPUP); //13, 25
       fprintf(fp,"\n%ld",m_IMPDN); //14  27
       fprintf(fp,"\n%f",m_DBUP);    //15,29 死区正限位,为m_DEBA值
       fprintf(fp,"\n%f",m_DBDN);    //16,31 死区负限位,为-m_DEBA值
       fprintf(fp,"\n%f",m_SSUP);    //17  33
       fprintf(fp,"\n%f",m_SSDN);    //18  35
       fprintf(fp,"\n%f",m_TEMP);    //19,37 当前温度,按”+“可进行摄氏与华氏之间转换
       fprintf(fp,"\n%f",m_TMIN);    //20,39 最小温度,
       fprintf(fp,"\n%f",m_TMAX);    //21,41 最大温度
       fprintf(fp,"\n%ld",m_T1);    //22,43 T1运行时间
       fprintf(fp,"\n%ld",m_T2);     //23,45 T2运行时间
       fprintf(fp,"\n%ld",m_T3);     //24,47 T3运行时间
       fprintf(fp,"\n%ld",m_T4);     //25,49 T4运行时间
       fprintf(fp,"\n%ld",m_T5);     //26,51 T5运行时间
       fprintf(fp,"\n%ld",m_T6);     //27,53 T6运行时间
       fprintf(fp,"\n%ld",m_T7);     //28,55 T7运行时间
       fprintf(fp,"\n%ld",m_T8);     //29,57 T8运行时间
       fprintf(fp,"\n%ld",m_T9);     //30,59 T9运行时间
       fprintf(fp,"\n%ld",m_VENT1);  //31,61 压电阀运行循环次数
       fprintf(fp,"\n%ld",m_VENT2);  //32,63 压电阀运行循环次数

       fprintf(fp,"\n%ld",m_PRUP);   //34,66
       fprintf(fp,"\n%ld",m_PRDN);   //35,68
       fclose(fp);
}
void TMainForm::Check_Data_Load(void)
{
      FILE *fp;
      char s[20];
      if((fp=fopen("CheckData.dat","rt")))
      {

       fscanf(fp,"\n%ld",&m_STRKS);    //1,2  行程累积,按+5秒可复位为0(rESEt),需要确认
       fscanf(fp,"\n%ld",&m_CHDIR);    //2,4  阀改变方向次数,按+5秒可复位为0(rESEt)
       fscanf(fp,"\n%ld",&m_HCNT);     //3,6  总报警次数,按+5秒可复位为0(rESEt)
       fscanf(fp,"\n%ld",&m_A1CNT);    //4,8  A1报警次数,按+5秒可复位为0(rESEt)
       fscanf(fp,"\n%ld",&m_A2CNT);    //5,10 A2报警次数,按+5秒可复位为0(rESEt)
       fscanf(fp,"\n%ld",&m_HOURS);    //6,12 总运行时间(小时),以何为标准

       fscanf(fp,"\n%ld",&m_Up_Time);  //8,15 阀上升定位时间,需要确认
       fscanf(fp,"\n%ld",&m_Down_Time);//9,17 阀下降定位时间,需要确认
       fscanf(fp,"\n%s",s);    //10,19执行机构泄漏,需要确认
          m_LEAK=atof(s);
       fscanf(fp,"\n%s",s);      //11,21
          m_P0=atof(s);
       fscanf(fp,"\n%s",s);    //12,23
          m_P100=atof(s);
       fscanf(fp,"\n%ld",&m_IMPUP); //13, 25
       fscanf(fp,"\n%ld",&m_IMPDN); //14  27
       fscanf(fp,"\n%s",s);    //15,29 死区正限位,为m_DEBA值
          m_DBUP=atof(s);
       fscanf(fp,"\n%s",s);    //16,31 死区负限位,为-m_DEBA值
          m_DBDN=atof(s);
       fscanf(fp,"\n%s",s);    //17  33
          m_SSUP=atof(s);
       fscanf(fp,"\n%s",s);    //18  35
          m_SSDN=atof(s);
       fscanf(fp,"\n%s",s);    //19,37 当前温度,按”+“可进行摄氏与华氏之间转换
          m_TEMP=atof(s);
       fscanf(fp,"\n%s",s);    //20,39 最小温度,
          m_TMIN=atof(s);
       fscanf(fp,"\n%s",s);    //21,41 最大温度
          m_TMAX=atof(s);
       fscanf(fp,"\n%ld",&m_T1);    //22,43 T1运行时间
       fscanf(fp,"\n%ld",&m_T2);     //23,45 T2运行时间
       fscanf(fp,"\n%ld",&m_T3);     //24,47 T3运行时间
       fscanf(fp,"\n%ld",&m_T4);     //25,49 T4运行时间
       fscanf(fp,"\n%ld",&m_T5);     //26,51 T5运行时间
       fscanf(fp,"\n%ld",&m_T6);     //27,53 T6运行时间
       fscanf(fp,"\n%ld",&m_T7);     //28,55 T7运行时间
       fscanf(fp,"\n%ld",&m_T8);     //29,57 T8运行时间
       fscanf(fp,"\n%ld",&m_T9);     //30,59 T9运行时间
       fscanf(fp,"\n%ld",&m_VENT1);  //31,61 压电阀运行循环次数
       fscanf(fp,"\n%ld",&m_VENT2);  //32,63 压电阀运行循环次数

       fscanf(fp,"\n%ld",&m_PRUP);   //34,66
       fscanf(fp,"\n%ld",&m_PRDN);   //35,68
       fclose(fp);
      }
      else
        Check_Init_Param();
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -