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

📄 global_data.c

📁 一整套电梯控制器源程序
💻 C
📖 第 1 页 / 共 2 页
字号:
};
#define PtrALLData struct tag_PtrALLData

//中间淘汰数据结构体
struct tag_InterData{
	uchar	bFloorCanStop;	//楼层可停(标志电梯在某层是否可停, 0:不可停   1:可停)
	uchar	bVeto;			//一票否决(标志电梯是否被一票否决, 0:否	   1:是)
	uchar    b2FloorMove;	//2层以内运动中(对于某层外呼,标志电梯到达该层所需距离是否不超过2层, 0:否	   1:是)
	uint	nTime;			//到达大致时间(电梯到达外呼层的大致时间, 单位:秒)
	uchar	cWeight;		//承载程度(标志电梯当前承载状态, 0:空载	   1:轻载	2:重载	3:满载 4:超载)
	uchar	bSameDirection;	//顺向(若电梯响应该外呼是否顺向, 0:否, 1:是)
	uchar	cStopCount;		//停靠层站数(标志电梯电梯所能够停靠的层站数)
	uchar	cPRINo;			//电梯优先级号(范围:1->8,优先级递减)
};
#define INTER_DATA struct tag_InterData 

//串口通信用数据结构
struct tag_DT_SCC{
	uchar	ReadFlg;							// receive flag, always TRUE
	uchar	m_ReadBuf[SCCBUF_MAXSIZE];	// pointer to buffer used to receive data
	uchar	dwReadReqSize;					// size of buffer used to receive data
//	uchar	dwpReadSpoolSize;				// size of data received
	uchar	nReadCount;

	uchar	WriteFlg;						// send flag
	uchar	m_WriteBuf[SCCBUF_MAXSIZE];// pointer to buffer used to send data
	uchar	dwWriteReqSize;				// size of buffer used to send data
//	uchar	dwWriteSpoolSize;				// size of data sended
	uchar	nWriteCount;
};
#define DT_SCC struct tag_DT_SCC


   //can总线定义的变量
xdata uchar *can3_cs;                 /*can3 指针*/ 
xdata uchar *can2_cs;                 /*can2 指针*/   
xdata uchar *can1_cs;                 /*can1 指针*/   
xdata uchar *can0_cs;                 /*can0 指针*/

//xdata uchar sbuf_rec;                /* SBUF的缓冲区*/
//uchar time_flag; 					  /* 50ms计数时钟起始标志 */
//xdata uchar time_last;				  /* 50ms计时时钟上次状态 */
//xdata uchar time_now;                 /* 50ms计时时钟本次状态 */
//uchar time_over;                    /* 50ms计时时钟运行结果标志 */
//uchar m_comm_timer;                 /* 60s计时计数*/
//uchar m_comm_60sover_flg;            /* 60s计时结束标志*/ 
//uchar m_comm_enable_flg;                 /* 通讯使能 */ 
//xdata uchar m_timer_60s_last;         /* 60s计时上次状态*/ 
//xdata uchar m_timer_60s_now;          /* 60s计时本次状态*/

//指向传输数据的指针
L_Data			*m_pL_Data;				//楼及总体数据
E_InputData		*m_pE_InputData;		//电梯输入数据
E_OutputData	*m_pE_OutputData;		//电梯输出数据
TIMER			*m_pTimer;				//计时变量

//LHM dyn_test temp动态测试专用变量(移植时不删除)
uchar			m_nNextStopLIdx[ENum_MAX];
uchar			m_bDirect[ENum_MAX];
INTER_DATA		m_InterData[ENum_MAX];				//中间数据--淘汰数据
uchar			m_cCurStageStartFloor[ENum_MAX];	//中间数据--电梯当前运动阶段的起始楼层(选曲线用)
uchar			m_cOvertime[ENum_MAX];				//中间数据--门超时时间(单位:秒)
uchar           m_CalUpLIdx;
uchar           m_CalDownLIdx;

//时钟用
uchar m_year;                   // 年数缓冲区
uchar m_month;                  // 月数缓冲区
uchar m_date;                   // 日数缓冲区
uchar m_time;                   // 时数缓冲区
uchar m_minute;                 // 分数缓冲区
uchar m_set_time;               // 写时钟标志
uchar m_read_time;              // 读时钟标志
uchar m_read_time_count;        // 读时钟计数(因为读1226会造成看门狗不能复位,所以改为每隔一段时间读一次)

//rs232用
uchar sbuf_rec;                 	// SBUF的缓冲区
uchar m_get_senddata_flg;			// 取得发送数据标记(host专用)
uchar m_comm_enable_flg;         	// 通讯使能标记(0:不能 1:能) 
uchar m_host_flg;							// 主客标记(0:客 1:主)客要回答上位机,主不需要
uint  m_ST_60s_count;            	// 60s计数器
uchar m_comm_data_flg;					// 有串口数据标记(0:没有 1:有) 
uchar m_comm_60sover_flg;        	// 60s计时结束标志
uchar m_msg_monitor_flg;		    	// 监视命令标记
uchar m_msg_quit_flg; 					// 解除监视命令标志
uchar m_msg_set_flg;			    		// 参数设定命令标记
uchar m_monitor_delay_flg;				//监视延迟标志
uchar m_monitor_delay_count;			//监视延迟计数
uchar m_active_idx;						//当前有效的地址和类型索引
uchar m_add_type_idx;					//纪录监视参数和地址类型索引
uchar m_resolve_flg;					//命令解析开始标记
//uchar m_make_senddata_flg;				//发送命令作成标记				
xdata uint  m_monitor_ad[MORN_PARAM_NUM];    // 5个监视参数地址
xdata uchar m_monitor_type[MORN_PARAM_NUM];  // 监视参数类型
xdata DT_SCC m_scc;

//用户参数存储和恢复用
//xdata uchar m_restore_flg;     		 //用户参数恢复标记
//xdata uchar m_save_flg;				 //用户参数存储标记
//xdata uchar m_factory_flg;			//工厂参数恢复
//xdata uchar m_save_over_flg;	     //用户参数存储过标记
xdata uchar m_once_param_over_flg;   //一次性参数传送完毕标志

//can通讯用
xdata uint  canx_cs[ENum_MAX];					 //can指针
uchar m_state_20ms;                    //can发送时间
uchar can_send_count;                  //25ms计数
uchar e_out_call_flag;                   //发一组外呼数据
uchar e_lamp_call_flag;                  //发一组外呼灯亮灭
uchar e_display_reflash_floor[ENum_MAX]; //显示刷新某层呼梯灯
uchar e_up_down;                         //刷新上呼还是下呼
uchar e_frame_number=53;                    //帧数据
uchar e_online[ENum_MAX];                       //can在线标志  
uchar bdata abit;
sbit abit_0=abit^0;
sbit abit_1=abit^1;
sbit abit_2=abit^2;
sbit abit_3=abit^3;
sbit abit_4=abit^4;
sbit abit_5=abit^5;
sbit abit_6=abit^6;
sbit abit_7=abit^7;

uchar bdata abit0;
sbit abit0_0=abit0^0;
sbit abit0_1=abit0^1;
sbit abit0_2=abit0^2;
sbit abit0_3=abit0^3;
sbit abit0_4=abit0^4;
sbit abit0_5=abit0^5;
sbit abit0_6=abit0^6;
sbit abit0_7=abit0^7;

struct group_out
{
uchar call_up_out[6];
uchar call_down_out[6];
//uchar choose_out;
//uchar yes_no;
};
xdata struct group_out group_assign[ENum_MAX];
uchar choose_out[ENum_MAX];
uchar yes_no[ENum_MAX];
uint e_online_time_count[4];         //1s计时 
uchar e_online_flag[4]={1,0,0,0};    //1s计时,初值群控器在线
uint e_single_comm_count[4];         //群控方式单梯计时 
uint e_group_comm_count[4];          //群控方式群控计时
uchar e_1_second_flag[4];            //一次性计时

//撤销外呼用标记
//uchar m_ClosingToClosedFlg[ENum_MAX];				//关门中向关门到位跳变标记(跳变为1,使用一次后归0)
uchar m_SendOpenDoorFlg[ENum_MAX];		//发开门命令的标记(命令60)
uchar m_LastDoorState[ENum_MAX];		//上次关门状态(0为非关门到位,1为关门到位)

//静态停靠用
uchar m_SendStaticInSelDataFlg[ENum_MAX];		//发送静态停靠内选数据标记
uchar m_IsExistWaiInFlg;						//是否存在外呼或内选

//高峰停靠用
uchar m_SendPeekInSelDataFlg[ENum_MAX];		//发送高峰停靠内选数据标记

//can复位用
uchar m_can0_flg;       //can0故障标志
uchar m_can1_flg;       //can1故障标志
uchar m_can2_flg;       //can2故障标志
uchar m_can3_flg;       //can3故障标志
uchar m_can0_count;     //can0复位脚拉低计时
uchar m_can1_count;     //can1复位脚拉低计时
uchar m_can2_count;     //can2复位脚拉低计时
uchar m_can3_count;     //can3复位脚拉低计时
uchar m_can0err_flg;    //can0复位脚拉低计时到标记
uchar m_can1err_flg;    //can1复位脚拉低计时到标记
uchar m_can2err_flg;    //can2复位脚拉低计时到标记
uchar m_can3err_flg;    //can3复位脚拉低计时到标记

//淘汰标记滤波计时
    //标记
uchar m_MenGuZhang_flg[ENum_MAX];
uchar m_ManZai_flg[ENum_MAX];
uchar m_ChaoZai_flg[ENum_MAX];
uchar m_JianXiu_flg[ENum_MAX];
uchar m_SiJi_flg[ENum_MAX];
uchar m_ZhiShi_flg[ENum_MAX];
uchar m_BaoLiu_flg[ENum_MAX];
uchar m_SuoTi_flg[ENum_MAX];
uchar m_XiaoFang_flg[ENum_MAX];
uchar m_JiTing_flg[ENum_MAX];
uchar m_GuZhang_flg[ENum_MAX];
uchar m_JingGao_flg[ENum_MAX];
    //计时
uint m_MenGuZhang_count[ENum_MAX];
uint m_ManZai_count[ENum_MAX];
uint m_ChaoZai_count[ENum_MAX];
uint m_JianXiu_count[ENum_MAX];
uint m_SiJi_count[ENum_MAX];
uint m_ZhiShi_count[ENum_MAX];
uint m_BaoLiu_count[ENum_MAX];
uint m_SuoTi_count[ENum_MAX];
uint m_XiaoFang_count[ENum_MAX];
uint m_JiTing_count[ENum_MAX];
uint m_GuZhang_count[ENum_MAX];
uint m_JingGao_count[ENum_MAX];
//2004.07.26 LHM 计时测试(临时)
//uint  m_nTestTimer=0;

⌨️ 快捷键说明

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