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

📄 datainit.lst

📁 一整套电梯控制器源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 346      =1  void serial_command_resolve(void);
 347      =1  void serial_make_senddata(void);
 348      =1  
 349      =1  //datainit.c
 350      =1  void data_init(void);
 351      =1  void orgdata_init(void);							//恢复原始数据
 352      =1  void orgdata_init_total(void);
 353      =1  void orgdata_init_input(void);
 354      =1  void orgdata_init_output(void);
 355      =1  void GetUserParamSaveOverFlg();
 356      =1  void SetUserParamSaveOverFlg();
 357      =1  
 358      =1  //param_save_restore.c
 359      =1  void restore_user_param(void);
 360      =1  void save_user_param(void);
 361      =1  void restore_factory_param(void);
 362      =1  uchar erase(uint addr);
 363      =1  uchar writef(uint x,uchar y);
 364      =1  
 365      =1  //can.c
 366      =1  void can_init(uint pointa);          					//can初始化
 367      =1  void can_reset(void);
C51 COMPILER V6.12  DATAINIT                                                               06/05/2005 15:44:45 PAGE 14  

 368      =1  void can_call_in(uchar a);           //外呼
 369      =1  can_receive_more(uchar a);      //控制器
 370      =1  can_receive_only(uchar a);      //控制器
 371      =1  clear_unknow_code(uchar a);     //清乱码
 372      =1  void can_call_assign();              //外呼分派
 373      =1  can_call_lamp();                //暂定50ms循环点灯,灭灯
 374      =1  
 375      =1  
   2          
   3          void data_init(void)
   4          {
   5   1      	xdata uchar j=0;
   6   1      	//取得用户参数存储过标记
   7   1      	GetUserParamSaveOverFlg();
   8   1      
   9   1      //	mE_InputData.mDianTi[0].TongXun.bZhiShi=m_save_over_flg;
  10   1      	if(m_save_over_flg==0){	//未存储
  11   2      		orgdata_init();
  12   2      	}else if(m_save_over_flg==0x01){	//存储过
  13   2      		restore_user_param();
  14   2      //2004.06.22 added by LHM 
  15   2      		//外呼数据
  16   2      		for(j=0; j<ARRAY_BYTENUM; j++){
  17   3      			switch(j){
  18   4      				case 0:	mE_InputData.mWaiHu.bShang[j]=0;	   mE_InputData.mWaiHu.bXia[j]=0;	break;
  19   4      				case 1:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  20   4      				case 2:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  21   4      				case 3:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  22   4      				case 4:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  23   4      				case 5:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  24   4      				case 6:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
  25   4      				default: break;
  26   4      			}
  27   3      		}
  28   2      		//输出数据
  29   2      		orgdata_init_output();
  30   2      //END
  31   2      		//中间数据初始化
  32   2      		InitData();
  33   2      	}
  34   1      } 
  35          
  36          //原始数据初始化
  37          void orgdata_init(void)
  38          {
  39   1      	//总体数据初始化
  40   1      	orgdata_init_total();		
  41   1      
  42   1      	//输入数据初始化
  43   1      	orgdata_init_input();
  44   1      
  45   1      	//输出数据初始化
  46   1          orgdata_init_output();
  47   1      
  48   1      	//中间数据初始化
  49   1      	InitData();
  50   1      
  51   1      }
  52          
  53          //总体数据初始化
  54          void orgdata_init_total(void)
  55          {
C51 COMPILER V6.12  DATAINIT                                                               06/05/2005 15:44:45 PAGE 15  

  56   1      	//总体数据初始化
  57   1      	mL_Data.cLNum=LNum_MAX;										//最大楼层数
  58   1      //2004.05.13 LHM (暂时为4路CAN)
  59   1      //	mL_Data.cENum=ENum_MAX;										//最大群控电梯数
  60   1      	mL_Data.cENum=4;							
  61   1      //end			//最大群控电梯数
  62   1      	mL_Data.nTKYanChiTime=300;							//静态停靠延迟时间(秒)
  63   1      	mL_Data.mSysTime.mYearMonDat.cYear=0x04;			//系统时间
  64   1      	mL_Data.mSysTime.mYearMonDat.cMonth=0x01;		//系统时间
  65   1      	mL_Data.mSysTime.mYearMonDat.cDate=0x01;			//系统时间
  66   1      	mL_Data.mSysTime.mYearMonDat.cWeek=0x01;			//系统时间(暂时未使用)
  67   1      	mL_Data.mSysTime.mHourMinSec.cHour=0;			//系统时间
  68   1      	mL_Data.mSysTime.mHourMinSec.cMinute=0;		//系统时间
  69   1      	mL_Data.mSysTime.mHourMinSec.cSecond=0;		//系统时间(暂时未使用)
  70   1      
  71   1      	mL_Data.ZaoGF.lStartTime.cHour=0x08;				//早高峰
  72   1      	mL_Data.ZaoGF.lStartTime.cMinute=0;
  73   1      	mL_Data.ZaoGF.lStartTime.cSecond=0;
  74   1      	mL_Data.ZaoGF.lEndTime.cHour=0x09;					
  75   1      	mL_Data.ZaoGF.lEndTime.cMinute=0x30;
  76   1      	mL_Data.ZaoGF.lEndTime.cSecond=0;
  77   1      
  78   1      	mL_Data.WuGF.lStartTime.cHour=0x11;				//午高峰
  79   1      	mL_Data.WuGF.lStartTime.cMinute=0x30;
  80   1      	mL_Data.WuGF.lStartTime.cSecond=0;
  81   1      	mL_Data.WuGF.lEndTime.cHour=0x13;
  82   1      	mL_Data.WuGF.lEndTime.cMinute=0x30;
  83   1      	mL_Data.WuGF.lEndTime.cSecond=0;
  84   1      
  85   1      	mL_Data.WanGF.lStartTime.cHour=0x17;				//晚高峰
  86   1      	mL_Data.WanGF.lStartTime.cMinute=0;				
  87   1      	mL_Data.WanGF.lStartTime.cSecond=0;				
  88   1      	mL_Data.WanGF.lEndTime.cHour=0x19;					
  89   1      	mL_Data.WanGF.lEndTime.cMinute=0;				
  90   1      	mL_Data.WanGF.lEndTime.cSecond=0;	
  91   1      }
  92          
  93          void orgdata_init_input(void)
  94          {
  95   1      	xdata uchar i,j;
  96   1      	
  97   1      	//电梯数据
  98   1      	for(i=0; i<ENum_MAX; i++){
  99   2      		mE_InputData.mDianTi[i].bZhunBeiHao=0;					//准备好
 100   2      		mE_InputData.mDianTi[i].bDanOrQun=0;					//单梯/群控
 101   2      		mE_InputData.mDianTi[i].bZhunBeiHao=0;					//准备好
 102   2      		mE_InputData.mDianTi[i].bDanOrQun=0;					//单梯/群控
 103   2      		mE_InputData.mDianTi[i].cDangQianCeng=9;				//当前层
 104   2      		mE_InputData.mDianTi[i].bDongOrJing=0;					//运动/静止
 105   2      		mE_InputData.mDianTi[i].FangXiang.bShang=0;			    //运动方向
 106   2      		mE_InputData.mDianTi[i].FangXiang.bXia=0;				//运动方向
 107   2      		mE_InputData.mDianTi[i].Men.bKaiMenDaoWei=0;			//开门到位
 108   2      		mE_InputData.mDianTi[i].Men.bGuanMenDaoWei=1;		    //关门到位
 109   2      		mE_InputData.mDianTi[i].Men.bKaiMenAnNiu=0;				//开门按钮
 110   2      		mE_InputData.mDianTi[i].Men.bGuanMenZhong=0;			//关门中
 111   2      		mE_InputData.mDianTi[i].Men.bMenGuZhang=0;				//门故障
 112   2      		mE_InputData.mDianTi[i].ChengZai.bKongZai=1;			//空载
 113   2      		mE_InputData.mDianTi[i].ChengZai.bQingZai=0;			//轻载
 114   2      		mE_InputData.mDianTi[i].ChengZai.bZhongZai=0;			//重载
 115   2      		mE_InputData.mDianTi[i].ChengZai.bManZai=0;				//满载
 116   2      		mE_InputData.mDianTi[i].ChengZai.bChaoZai=0;			//超载
 117   2      		mE_InputData.mDianTi[i].TeBie.bJianXiu=0;				//检修
C51 COMPILER V6.12  DATAINIT                                                               06/05/2005 15:44:45 PAGE 16  

 118   2      		mE_InputData.mDianTi[i].TeBie.bSiJi=0;					//司机
 119   2      		mE_InputData.mDianTi[i].TeBie.bZhiShi=0;				//直驶
 120   2      		mE_InputData.mDianTi[i].TeBie.bBaoLiu=0;				//保留
 121   2      		mE_InputData.mDianTi[i].TeBie.bSuoTi=0;					//锁梯
 122   2      		mE_InputData.mDianTi[i].TeBie.bXiaoFang=0;				//消防
 123   2      		mE_InputData.mDianTi[i].TeBie.bJiTing=0;                //急停
 124   2      		mE_InputData.mDianTi[i].TeBie.bGuZhang=0;				//故障
 125   2      		mE_InputData.mDianTi[i].TeBie.bJingGao=0;				//警告
 126   2      //		mE_InputData.mDianTi[i].bNeiXuan[ARRAY_BYTENUM];	    //内选数据
 127   2      		for(j=0; j<ARRAY_BYTENUM; j++){
 128   3      			mE_InputData.mDianTi[i].bNeiXuan[j]=0x00;
 129   3      		}
 130   2      		mE_InputData.mDianTi[i].cPortNo=0;						//控制器端口号
 131   2      		mE_InputData.mDianTi[i].cChengZhong=0;					//承重值
 132   2      		mE_InputData.mDianTi[i].cZaoGFCeng=9;					//高峰停靠层(早)
 133   2      		mE_InputData.mDianTi[i].cWuGFCeng=9;					//高峰停靠层(午)
 134   2      		mE_InputData.mDianTi[i].cWanGFCeng=9;				    //高峰停靠层(晚)
 135   2      		mE_InputData.mDianTi[i].cJuDiCengShu=0;					//起始层距地面楼层数
 136   2      		mE_InputData.mDianTi[i].cXueXiCengShu=2;				//学习楼层数
 137   2      		mE_InputData.mDianTi[i].cYouXianJi=i+1;					//优先级
 138   2      		mE_InputData.mDianTi[i].cQuXianShu=8;					//曲线数
 139   2      //		mE_InputData.mDianTi[i].nTiSu[QuXianShu_Max];		    //梯速
 140   2      		for(j=0; j<QuXianShu_Max; j++){
 141   3      			switch(j){
 142   4      				case 0:	mE_InputData.mDianTi[i].nTiSu[j]=20;	break;
 143   4      				case 1:	mE_InputData.mDianTi[i].nTiSu[j]=25;	break;
 144   4      				case 2:	mE_InputData.mDianTi[i].nTiSu[j]=30;	break;
 145   4      				case 3:	mE_InputData.mDianTi[i].nTiSu[j]=35;	break;
 146   4      				case 4:	mE_InputData.mDianTi[i].nTiSu[j]=40;	break;
 147   4      				case 5:	mE_InputData.mDianTi[i].nTiSu[j]=45;	break;
 148   4      				case 6:	mE_InputData.mDianTi[i].nTiSu[j]=50;	break;
 149   4      				case 7:	mE_InputData.mDianTi[i].nTiSu[j]=55;	break;
 150   4      				default: break;
 151   4      			}
 152   3      		}
 153   2      		mE_InputData.mDianTi[i].nJiaSuDu=300;					//额定加速度(取值范围:200-1000 单位:mm/s2)
 154   2      		mE_InputData.mDianTi[i].nZhuanSu=1450;						//电机转速(取值范围:1400-1500	单位:转/分)
 155   2      		mE_InputData.mDianTi[i].cPinLv=50;							//电机频率(取值范围:30-60		单位:Hz)
 156   2      		mE_InputData.mDianTi[i].cEDingTiSu=16;						//额定梯速(取值范围:5-30		单位:分米/秒)
 157   2      		mE_InputData.mDianTi[i].cYunXingTiSu=16;					//运行梯速(取值范围:5-30		单位:分米/秒)
 158   2      		mE_InputData.mDianTi[i].lBMQMaiChongShu=600;				//编码器脉冲数
 159   2      		mE_InputData.mDianTi[i].lDGCMaiChongShu=23200;				//等高层脉冲数
 160   2      		mE_InputData.mDianTi[i].bQunKong=1;						//群控选中
 161   2      		mE_InputData.mDianTi[i].cMinFenPei=2;						//分配最小楼层数
 162   2      		mE_InputData.mDianTi[i].cMinCancelFenPei=3;				//取消分配最小楼层数
 163   2      		mE_InputData.mDianTi[i].cZuiDiCeng=9;					//可到最底层(注意工厂数据不要超过10,静态停靠时分配牵连)
 164   2      		mE_InputData.mDianTi[i].cZuiGaoCeng=10;					//可到最高层
 165   2      //		mE_InputData.mDianTi[i].cChaoShiTime[MenChaoShi_Num];//门超时时间
 166   2      		for(j=0; j<MenChaoShi_Num; j++){
 167   3      			switch(j){
 168   4      				case 0:	mE_InputData.mDianTi[i].cChaoShiTime[j]=5;	break;
 169   4      				case 1:	mE_InputData.mDianTi[i].cChaoShiTime[j]=10;	break;
 170   4      				case 2:	mE_InputData.mDianTi[i].cChaoShiTime[j]=15;	break;
 171   4      				case 3:	mE_InputData.mDianTi[i].cChaoShiTime[j]=20;	break;
 172   4      				case 4:	mE_InputData.mDianTi[i].cChaoShiTime[j]=90;	break;
 173   4      				default: break;
 174   4      			}
 175   3      		}
 176   2      		mE_InputData.mDianTi[i].TongXun.bCanChuShiOK=0;		    //Can初始化OK
 177   2      		mE_InputData.mDianTi[i].TongXun.bZhiShi=0;				//通讯指示
 178   2      		mE_InputData.mDianTi[i].MenTime.cKaiMenTime=7;			//开门时间(秒)
 179   2      		mE_InputData.mDianTi[i].MenTime.cGuanMenTime=7;		    //关门时间(秒)
C51 COMPILER V6.12  DATAINIT                                                               06/05/2005 15:44:45 PAGE 17  

 180   2      		mE_InputData.mDianTi[i].MenTime.cGMYanChiTime=3;		//自动关门延迟时间(秒)
 181   2      //		mE_InputData.mDianTi[i].bNeiXuanKeTing[ARRAY_BYTENUM];	//内选可停
 182   2      		for(j=0; j<ARRAY_BYTENUM; j++){
 183   3      			switch(j){
 184   4      				case 0:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 185   4      				case 1:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 186   4      				case 2:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 187   4      				case 3:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 188   4      				case 4:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 189   4      				case 5:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 190   4      				case 6:	mE_InputData.mDianTi[i].bNeiXuanKeTing[j]=0xFF;	break;
 191   4      				default: break;
 192   4      			}
 193   3      		}
 194   2      //		mE_InputData.mDianTi[i].bShangHuKeTing[ARRAY_BYTENUM];	//上呼可停
 195   2      		for(j=0; j<ARRAY_BYTENUM; j++){
 196   3      			switch(j){
 197   4      				case 0:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 198   4      				case 1:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 199   4      				case 2:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 200   4      				case 3:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 201   4      				case 4:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 202   4      				case 5:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 203   4      				case 6:	mE_InputData.mDianTi[i].bShangHuKeTing[j]=0xFF;	break;
 204   4      				default: break;
 205   4      			}
 206   3      		}
 207   2      //		mE_InputData.mDianTi[i].bXiaHuKeTing[ARRAY_BYTENUM];		//下呼可停
 208   2      		for(j=0; j<ARRAY_BYTENUM; j++){
 209   3      			switch(j){
 210   4      				case 0:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 211   4      				case 1:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 212   4      				case 2:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 213   4      				case 3:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 214   4      				case 4:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 215   4      				case 5:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 216   4      				case 6:	mE_InputData.mDianTi[i].bXiaHuKeTing[j]=0xFF;	break;
 217   4      				default: break;
 218   4      			}
 219   3      		}
 220   2      //2004.05.19 added by LHM 
 221   2      		mE_InputData.mDianTi[i].bLingSuXinHao=0;
 222   2      		mE_InputData.mDianTi[i].bBenCengKaiMen=0;
 223   2      //end
 224   2      	}
 225   1      	
 226   1      	//外呼数据
 227   1      	for(j=0; j<ARRAY_BYTENUM; j++){
 228   2      		switch(j){
 229   3      			case 0:	mE_InputData.mWaiHu.bShang[j]=0;	   mE_InputData.mWaiHu.bXia[j]=0;	break;
 230   3      			case 1:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
 231   3      			case 2:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
 232   3      			case 3:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;
 233   3      			case 4:	mE_InputData.mWaiHu.bShang[j]=0x00;	mE_InputData.mWaiHu.bXia[j]=0x00;	break;

⌨️ 快捷键说明

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