📄 common.h
字号:
#ifndef EXTERN
#define EXTERN extern
#endif
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define schar signed char
#define sint signed int
#define slong signed long
#define LNum_MAX_OVERGROUND 48
#define LNum_MAX_UNDERGROUND 8
#define LNum_MAX (LNum_MAX_OVERGROUND+LNum_MAX_UNDERGROUND) //最大楼层数(地上最大48层,地下最大8层)
#define ENum_MAX 8 //最大群控电梯数(该宏关系到串口通讯程序的变量地址,慎重修改)
#define ARRAY_BYTENUM 7 //"内选数据""内选可停""上呼可停""下呼可停"数组所占字节数
#define QuXianShu_Max 8 //最大曲线数
#define MenChaoShi_Num 5 //门超时判定数量
//-------------------------- 输入数据结构 start ------------------------//
struct tag_E_FangXiang{ //运动方向
uchar bShang; //上
uchar bXia; //下
};
#define E_FangXiang struct tag_E_FangXiang
struct tag_E_Men{ //门状态
uchar bKaiMenDaoWei; //开门到位
uchar bGuanMenDaoWei; //关门到位
uchar bKaiMenAnNiu; //开门按钮
uchar bGuanMenZhong; //关门中
uchar bMenGuZhang; //门故障
};
#define E_Men struct tag_E_Men
struct tag_E_ChengZai{ //承载状态
uchar bKongZai; //空载
uchar bQingZai; //轻载
uchar bZhongZai; //重载
uchar bManZai; //满载
uchar bChaoZai; //超载
};
#define E_ChengZai struct tag_E_ChengZai
struct tag_E_TeBie{ //特别状态
uchar bJianXiu; //检修
uchar bSiJi; //司机
uchar bZhiShi; //直驶
uchar bBaoLiu; //保留
uchar bSuoTi; //锁梯
uchar bXiaoFang; //消防
uchar bJiTing; //急停
uchar bGuZhang; //故障
uchar bJingGao; //警告
};
#define E_TeBie struct tag_E_TeBie
struct tag_E_TongXun{ //通讯状态
uchar bCanChuShiOK; //Can初始化OK
uchar bZhiShi; //通讯指示
};
#define E_TongXun struct tag_E_TongXun
struct tag_E_MenTime{ //门时间
uchar cKaiMenTime; //开门时间
uchar cGuanMenTime; //关门时间
uchar cGMYanChiTime; //自动关门延迟时间
};
#define E_MenTime struct tag_E_MenTime
struct tag_E_DianTi{ //电梯数据
//来源于Can的输入数据
uchar bZhunBeiHao; //准备好
uchar bDanOrQun; //单梯/群控
uchar cDangQianCeng; //当前层
uchar bDongOrJing; //运动/静止
E_FangXiang FangXiang; //运动方向
E_Men Men; //门状态
E_ChengZai ChengZai; //承载状态
E_TeBie TeBie; //特别状态
uchar bNeiXuan[ARRAY_BYTENUM];//内选数据
//来源于群控器的输入数据
uchar cPortNo; //控制器端口号
uchar cChengZhong; //承重值
uchar cZaoGFCeng; //高峰停靠层(早)
uchar cWuGFCeng; //高峰停靠层(午)
uchar cWanGFCeng; //高峰停靠层(晚)
signed char cJuDiCengShu; //起始层距地面楼层数
uchar cXueXiCengShu; //学习楼层数
uchar cYouXianJi; //优先级
uchar cQuXianShu; //曲线数
uint nTiSu[QuXianShu_Max]; //各曲线匀速段梯速
uint nJiaSuDu; //额定加速度
uint nZhuanSu; //电机转速(取值范围:1400-1500 单位:转/分)
uchar cPinLv; //电机频率(取值范围:30-60 单位:Hz)
uchar cEDingTiSu; //额定梯速(取值范围:5-30 单位:分米/秒)
uchar cYunXingTiSu; //运行梯速(取值范围:5-30 单位:分米/秒)
ulong lBMQMaiChongShu; //编码器脉冲数
ulong lDGCMaiChongShu; //等高层脉冲数
uchar bQunKong; //群控选中
uchar cMinFenPei; //分配最小楼层数
uchar cMinCancelFenPei; //取消分配最小楼层数
uchar cZuiDiCeng; //可到最底层
uchar cZuiGaoCeng; //可到最高层
uchar cChaoShiTime[MenChaoShi_Num];//门超时时间
E_TongXun TongXun; //通讯状态
E_MenTime MenTime; //门时间
uchar bNeiXuanKeTing[ARRAY_BYTENUM]; //内选可停
uchar bShangHuKeTing[ARRAY_BYTENUM]; //上呼可停
uchar bXiaHuKeTing[ARRAY_BYTENUM]; //下呼可停
//2004.05.19 added by LHM (为解决撤销外呼追加)
uchar bLingSuXinHao; //零速信号
uchar bBenCengKaiMen; //本层开门
//end
};
#define E_DianTi struct tag_E_DianTi
struct tag_E_WaiHu{ //外呼状态
uchar bShang[ARRAY_BYTENUM]; //上呼
uchar bXia[ARRAY_BYTENUM]; //下呼
};
#define E_WaiHu struct tag_E_WaiHu
struct tag_E_InputData{ //输入数据
E_DianTi mDianTi[ENum_MAX];
E_WaiHu mWaiHu;
};
#define E_InputData struct tag_E_InputData
//-------------------------- 输入数据结构 end ------------------------//
//-------------------------- 输出数据结构 start ------------------------//
struct tag_E_XiangYing{ //外呼响应状态
uchar bShang[ARRAY_BYTENUM]; //上呼
uchar bXia[ARRAY_BYTENUM]; //下呼
};
#define E_XiangYing struct tag_E_XiangYing
struct tag_E_Deng{ //外呼响应状态
uchar bShang[ARRAY_BYTENUM]; //上呼
uchar bXia[ARRAY_BYTENUM]; //下呼
};
#define E_Deng struct tag_E_Deng
struct tag_E_OutputData{//输出数据
E_XiangYing mXiangYing[ENum_MAX];
E_Deng mDeng[ENum_MAX];
};
#define E_OutputData struct tag_E_OutputData
//-------------------------- 输出数据结构 end ------------------------//
//-------------------------- 楼及其他总体数据 start --------------------//
struct tag_L_YearMonDat{
uchar cYear;
uchar cMonth;
uchar cDate;
uchar cWeek;
};
#define L_YearMonDat struct tag_L_YearMonDat
struct tag_L_HourMin{
uchar cHour;
uchar cMinute;
uchar cSecond;
};
#define L_HourMin struct tag_L_HourMin
struct tag_L_SysTime{
L_YearMonDat mYearMonDat;
L_HourMin mHourMinSec;
};
#define L_SysTime struct tag_L_SysTime
struct tag_L_GaoFeng{ //高峰信息
L_HourMin lStartTime; //高峰开始时间
L_HourMin lEndTime; //高峰结束时间
};
#define L_GaoFeng struct tag_L_GaoFeng
#define L_GaoFeng struct tag_L_GaoFeng
struct tag_L_Data{ //楼及其他总体数据
uchar cLNum; //最大楼层数
uchar cENum; //最大群控电梯数
uint nTKYanChiTime; //静态停靠延迟时间
L_SysTime mSysTime; //系统时间
L_GaoFeng ZaoGF; //早高峰
L_GaoFeng WuGF; //午高峰
L_GaoFeng WanGF; //晚高峰
// uchar cJTTingkaoCeng[ENum_MAX]; //静态停靠层
};
#define L_Data struct tag_L_Data
//-------------------------- 楼及其他总体数据 end --------------------//
struct tag_Temp_Timer{
long lJingTaiTimer; //静态计时
long lChaoShiTimer[ENum_MAX]; //电梯门超时计时
};
#define TIMER struct tag_Temp_Timer
struct tag_PtrALLData{ //所有数据
L_Data *pL_Data;
E_InputData *pE_InputData;
E_OutputData *pE_OutputData;
TIMER *pTimer;
};
#define PtrALLData struct tag_PtrALLData
//Variable Defination
EXTERN xdata L_Data mL_Data;
EXTERN xdata E_InputData mE_InputData;
EXTERN xdata E_OutputData mE_OutputData;
EXTERN xdata TIMER m_Timer;
//xdata L_Data mL_Data;
//xdata E_InputData mE_InputData;
//Function Refrence
void Set0Data(uchar *pData, uchar cMOD);
uchar GetArrayData(uchar *pData, uchar cIdx);
void SetArrayData(uchar *pData, uchar cIdx, uchar cVal);
void SetArrayData_INTERRUPT(uchar *pData, uchar cIdx, uchar cVal);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -