| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #pragma once
- #define MAXACCA 0.6
- #define LOWBRAKEA 0.1
- #define COMMONBRAKEA 0.4
- #define FASTBRAKEA 0.7
- #define ENERGYBRAKEA 0.8
- const short QY = 1; //牵引
- const short DX = 2; //惰行
- const short CYZD = 3; //常用制动
- const short TCZD = 4; //停车制动 8为假牵引、缓解制动指令
- const short BCZD = 5; //保持制动
- const short KSZD = 6; //快速制动
- const short JJZD = 7; //紧急制动
- const short GJS = 8; //高加速
- struct TDateIn
- {
- BOOL SigSetV; //是否设定速度
- double SetV; //设定的速度(单位km/h)
- short JW; //设定的级位(380A sifang)
- short TrainJW; //380A型车牵引级位(380A sifang)
- double dDistance ; //车头所在的位移
- double dInitPos ; //偏移距离
- short MetV; //网压
- short gk; //工况
- short SD,TractionSD; //唐山牵引级位 //司控器手柄位置(控制量参考值) 按0~100整数计算(计算过程中折换成百分比) 快速制动取125(只针对摩擦制动,对电制动应该无效)
- BOOL SDType; //牵引制动手柄是否分开0:一个 1:分开
- UINT uiPassengerNum; //乘客人数
- UCHAR ucModeB2andN1; //低位到高位:0-停放制动,1-停放缓解,2-保持制动 for 气路
- UCHAR ucDirectionControlPos; //主手柄位置
- long lValidMotionAxle; //电机模块有效状态 从低位起每4位表示一节动车;0表示电机不工作;1表示工作
- long lInvalidBrakeAxle,lInvalidBrakeAxle1; //070716 制动模块失效状态 从低位起每2位表示一节车;0表示B14未隔离or正常;1表示隔离or故障
- UCHAR ucOperationMode; //当前模式 ATO SM RM TCC CM shutdown standby等
- bool bEBreak; //电制动有效标志(逻辑提供)
- double GetTrainParkBrakeAxletreePressure[10][10]; //闸瓦压力
- double GetTrainBrakePipePressure; //列车制动管压力
- double sSpeedSetPos; //恒速:速度设定
- BOOL SetHS; //恒速设定信号
- BOOL PZDSIG; //平直道信号
- short A_jw; //380B唐山车制动减速度级位
- bool JJZDDZ; //紧急制动电阻制动和空气制动混合有效标志
- BOOL FZZD; //辅助制动有效标志
- double FZFtot; //辅助制动力
- double NXZDFtot; //耐雪制动
- BOOL NXZD; //耐雪制动有效标志(0:无效,1:有效)
- double BrakePower; //实际空气制动力
-
- double dSetSpeed; //设定速度
- double dRouteLength; //进路长度
- double dTrainPosOff; //固定偏移
- };
- class CTraction_Cal_I
- {
- public:
- CTraction_Cal_I() {}
- virtual ~CTraction_Cal_I() {}
- public:
- TDateIn m_TInData; //牵引计算所需数据
- double m_DeltaT;
- double Btot;
- double Ftot;
- double Wq;
- double BrakePower;
- double GK;
- double A,V,Vkmh,dDistance; //加速度(m/s^2)、时速(m/s)、时速(km/h)、运行距离(m)
- double VPos1,VPos2;
- public:
- virtual void RunTractionCalculation() = 0;
- virtual double GetAcc(short gk,short TractionJW,short BrakeJW) = 0;
- virtual double see(short gk,double v0,double vt0,double td) = 0;
- virtual void Calculate(double dDeltaT,TDateIn g_TInData) = 0;
- };
- typedef void* (*FunCreateInstance)();
- typedef void (*FunReleaseInstance)( LPVOID pInstance );
- typedef void (*FunInitModule)();
- typedef void (*FunReleaseModule)();
|