📄 initsystem.cpp
字号:
#include <vcl.h>
#include "math.h"
#include "stdlib.h"
#include "stdio.h"
#include "dos.h"
#include "Sim_Valve.h"
//二、系统初始化
//内容包括:
//1、开机初始化
//InitSystem(void)
//2、设定参数
//Init_Param() 设定参数至缺省数据
//Init_Save() 存贮设定参数
//Init_Load() 读入设定参数
//3、运行参数
//Init_Code() 运行参数至缺省状态
//Parm_Save()
//parm_Load()
//4、统计诊断参数
//Init_Check_Param()统计参数回0
//Work_Time_Save()
//Work_Time_Load()
//
void TMainForm::InitSystem(void)
{
//TODO: Add your source code here
//Init_Param();
Set_Load(); //初始化设定参数
Parm_Load(); //读入运行参数
Check_Data_Load(); //读入诊断统计参数
Disp_Debug_Param(); //显示参数,单片机时无用
m_Work_State=0;
}
void TMainForm::Init_Param(void)
{
//TODO: Add your source code here
int i;
m_YFCT=1;//WAY Turn,WAY,LWAY,ncSt,-ncSt
m_YAGL=1;//33 额定反馈角, 两个数,90,33。
m_YWAY=0;//OFF 行程范围, 15种,OFF/5/10/15/20/25/30/35/40/50/60/70/90/110/130
m_INITA=1;//no 自动初始化,3个状态,0~3 noini no Strt
m_INITM=1;//no 同上
m_SCUR=1; //4mA 电流范围, 2个数 0mA对应0~20mA,4mA对应4~20mA
m_SDIR=0; //rise 方向设定, 2个数 rise FALL
m_SPRA=0.0; //0.0 分程范围设定,起点,0.0~100.0
m_SPRE=100.0; //100.0分程范围设定,终点,0.0~100.0
m_TSUP=-1; //0 10、17斜率上升点AUTO,0~400
m_TSDO=0; //0 11、19斜率设计CLOSE,0~400
m_SFCT=0; //Lin 12、20输出设定 共8个数,0~7,Lin\1:25\1:33\1:50
for(i=0;i<21;i++)
m_SL[i]=i*5.0; // 13、21设定折点 0.0~100.0
// 33、41设定折点 0.0~100.0
m_DEBA=0.0; //34、45控制器死区 AUTO 0.1~10.0
m_YA=0.0; //35、49行程上限值 0.0~100.0
m_YE=100.0; //36、53行程下限值 0.0~100.0
m_YNRM=0; //37、54行程标定 MPOS、FLOW
m_YDIR=0; //38、55行程方向 rise、FALL
m_YCLS=0; //39、56”紧密关闭“带人工操作变量 no\up\do\up do
m_YCDO=0.5; //40、60”紧密关闭“值,下降 0.0~100.0%
m_YCUP=99.5; //41、64”紧密关闭“值,上升 0.0~100.0%
m_BIN1=0; //42、65二进制输入BIN1的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
m_BIN2=0; //43、66二进制输入BIN2的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
m_AFCT=0; //44、67报警功能
m_A1=10.0; //45、71报警响应阈值1 0.0~100.0%
m_A2=90.0; //46、75报警响应阈值2 0.0~100.0%
m_HFCT=0; //47、76报警输出功能
m_HTIM=-1; //48、77监视时间设定 Auto 0~100
m_HLIM=-0.1; //49、78故障信号的响应阈值 Auto 0~100
m_HSTRK=0; //50、82行程累计极限值 OFF 1~1.00E9
m_HDCHG=0; //51、86方向改变极限值 OFF 1~1.00E9
m_HZERO=-0.1; //52、87极限用于零极值监视 OFF 0.0~100.0%
m_HOPEN=-0.1; //53、88极限用于开极值监视 OFF 0.0~100.0%
m_HDEBA=-0.1; //54、89极限用于死区极值监视 OFF 0.0~100.0%
m_PRST=0; //55、90预设定 no\Strt\oCAY
m_System_State=0; //当前系统状态,0未初始化1已初始化
m_Work_AM=0; //当前系统状态,0手动1自动
m_Valve_Check_Pos_Old=0;
m_A1_Timer=0;
m_A2_Timer=0;
m_A1_Alarm=0;
m_A2_Alarm=0;
Set_Save();
}
void TMainForm::Set_Save(void)
{
FILE *fp;
int i;
fp=fopen("SetData.dat","wt");
fprintf(fp,"\n%3d", m_YFCT);
fprintf(fp,"\n%3d", m_YAGL); //2、2额定反馈角, 两个数,90,33。
fprintf(fp,"\n%3d", m_YWAY); //3、3行程范围, 15种,OFF/5/10/15/20/25/30/35/40/50/60/70/90/110/130
fprintf(fp,"\n%3d", m_INITA);//4、4自动初始化,3个状态,0~3;
fprintf(fp,"\n%3d", m_INITM);//5、5同上
fprintf(fp,"\n%3d", m_SCUR); //6、6电流范围, 2个数 0mA对应0~20mA,4mA对应4~20mA
fprintf(fp,"\n%3d", m_SDIR); //7、7方向设定, 2个数 rise FALL
fprintf(fp,"\n%3.1f",m_SPRA); //8、11分程范围设定,起点,0.0~100.0
fprintf(fp,"\n%3.1f",m_SPRE); //9、15分程范围设定,终点,0.0~100.0
fprintf(fp,"\n%3d", m_TSUP); //10、17斜率设计OPEN,0~400
fprintf(fp,"\n%3d", m_TSDO); //11、19斜率设计CLOSE,0~400
fprintf(fp,"\n%3d", m_SFCT); //12、20输出设定 共8个数,0~7,Lin\1:25\1:33\1:50
for(i=0;i<21;i++)
fprintf(fp,"\n%3.1f", m_SL[i]); //13、21设定折点 0.0~100.0
//33、41设定折点 0.0~100.0
fprintf(fp,"\n%3.1f",m_DEBA); //34、45控制器死区 0.1~10.0
fprintf(fp,"\n%3.1f",m_YA); //35、49行程上限值 0.0~100.0
fprintf(fp,"\n%3.1f",m_YE); //36、53行程下限值 0.0~100.0
fprintf(fp,"\n%3d", m_YNRM); //37、54行程标定 MPOS、FLOW
fprintf(fp,"\n%3d", m_YDIR); //38、55行程方向 rise、FALL
fprintf(fp,"\n%3d", m_YCLS); //39、56”紧密关闭“带人工操作变量 no\up\do\up do
fprintf(fp,"\n%3.1f",m_YCDO); //40、60”紧密关闭“值,下降 0.0~100.0%
fprintf(fp,"\n%3.1f",m_YCUP); //41、64”紧密关闭“值,上升 0.0~100.0%
fprintf(fp,"\n%3d", m_BIN1); //42、65二进制输入BIN1的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
fprintf(fp,"\n%3d", m_BIN2); //43、66二进制输入BIN2的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
fprintf(fp,"\n%3d", m_AFCT); //44、67报警功能
fprintf(fp,"\n%3.1f",m_A1); //45、71报警响应阈值1 0.0~100.0%
fprintf(fp,"\n%3.1f",m_A2); //46、75报警响应阈值2 0.0~100.0%
fprintf(fp,"\n%3d", m_HFCT); //47、76报警输出功能
fprintf(fp,"\n%3d", m_HTIM); //48、77监视时间设定 Auto 0~100
fprintf(fp,"\n%3.1f", m_HLIM); //49、78故障信号的响应阈值 Auto 0~100
fprintf(fp,"\n%ld", m_HSTRK); //50、82行程累计极限值 OFF 1~1.00E9
fprintf(fp,"\n%ld", m_HDCHG); //51、86方向改变极限值 OFF 1~1.00E9
fprintf(fp,"\n%3.1f", m_HZERO); //52、87极限用于零极值监视 OFF 1~100%
fprintf(fp,"\n%3.1f", m_HOPEN); //53、88极限用于开极值监视 OFF 1~100%
fprintf(fp,"\n%3.1f", m_HDEBA); //54、89极限用于死区极值监视 OFF 1~100%
fprintf(fp,"\n%3d", m_PRST); //55、90预设定 no\Strt\oCAY
fclose(fp);
}
void TMainForm::Set_Load(void)
{
FILE *fp;
char s[20];
int i;
if((fp=fopen("SetData.dat","rt")))
{
fscanf(fp,"\n%s",s);
m_YFCT=atoi(s);
// fscanf(fp,"\n%3d",&m_YFCT);
fscanf(fp,"\n%3d",&m_YAGL); //2、2额定反馈角, 两个数,90,33。
fscanf(fp,"\n%3d",&m_YWAY); //3、3行程范围, 15种,OFF/5/10/15/20/25/30/35/40/50/60/70/90/110/130
fscanf(fp,"\n%3d",&m_INITA);//4、4自动初始化,3个状态,0~3;
fscanf(fp,"\n%3d",&m_INITM);//5、5同上
fscanf(fp,"\n%3d",&m_SCUR); //6、6电流范围, 2个数 0mA对应0~20mA,4mA对应4~20mA
fscanf(fp,"\n%3d",&m_SDIR); //7、7方向设定, 2个数 rise FALL
fscanf(fp,"\n%s",s); //8、11分程范围设定,起点,0.0~100.0
m_SPRA=atof(s);
fscanf(fp,"\n%s",s); //9、15分程范围设定,终点,0.0~100.0
m_SPRE=atof(s);
fscanf(fp,"\n%3d",&m_TSUP); //10、17斜率设计OPEN,0~400
fscanf(fp,"\n%3d",&m_TSDO); //11、19斜率设计CLOSE,0~400
fscanf(fp,"\n%3d",&m_SFCT); //12、20输出设定 共8个数,0~7,Lin\1:25\1:33\1:50
for(i=0;i<21;i++)
{
fscanf(fp,"\n%s",s); //13、21设定折点 0.0~100.0
m_SL[i]=atof(s);
} //33、41设定折点 0.0~100.0
fscanf(fp,"\n%s",s); //34、45控制器死区 0.1~10.0
m_DEBA=atof(s);
fscanf(fp,"\n%s",s); //35、49行程上限值 0.0~100.0
m_YA=atof(s);
fscanf(fp,"\n%s",s); //36、53行程下限值 0.0~100.0
m_YE=atof(s);
fscanf(fp,"\n%3d",&m_YNRM); //37、54行程标定 MPOS、FLOW
fscanf(fp,"\n%3d",&m_YDIR); //38、55行程方向 rise、FALL
fscanf(fp,"\n%3d",&m_YCLS); //39、56”紧密关闭“带人工操作变量 no\up\do\up do
fscanf(fp,"\n%s",s); //40、60”紧密关闭“值,下降 0.0~100.0%
m_YCDO=atof(s);
fscanf(fp,"\n%s",s); //41、64”紧密关闭“值,上升 0.0~100.0%
m_YCUP=atof(s);
fscanf(fp,"\n%3d",&m_BIN1); //42、65二进制输入BIN1的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
fscanf(fp,"\n%3d",&m_BIN2); //43、66二进制输入BIN2的功能OFF\ON\bloc1\bloc2\uP\doWn\StoP\NC\-on\-uP\-doWn\-StoP
fscanf(fp,"\n%3d",&m_AFCT); //44、67报警功能
fscanf(fp,"\n%s",s); //45、71报警响应阈值1 0.0~100.0%
m_A1=atof(s);
fscanf(fp,"\n%s",s); //46、75报警响应阈值2 0.0~100.0%
m_A2=atof(s);
fscanf(fp,"\n%3d",&m_HFCT); //47、76报警输出功能
fscanf(fp,"\n%3d",&m_HTIM); //48、77监视时间设定 Auto 0~100
fscanf(fp,"\n%s",s); //49、78故障信号的响应阈值 Auto 0~100
m_HLIM=atof(s);
fscanf(fp,"\n%s",s);
m_HSTRK=atol(s);
// fscanf(fp,"\n%5e",&m_HSTRK); //50、82行程累计极限值 OFF 1~1.00E9
fscanf(fp,"\n%s",s);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -