16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 00:49:19 +02:00

Fixed speedcontrol for EN57A

This commit is contained in:
Królik Uszasty
2019-05-09 19:39:23 +02:00
committed by tmj-fstate
parent 2db964ea40
commit bbdc67c9b2

View File

@@ -1691,7 +1691,9 @@ bool TMoverParameters::IncMainCtrl(int CtrlSpeed)
else {
++MainCtrlPos;
OK = true;
}
if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag == 1) && (MainCtrlActualPos != MainCtrlPos))
DecScndCtrl(2);
}
break;
}
@@ -1853,6 +1855,8 @@ bool TMoverParameters::DecMainCtrl(int CtrlSpeed)
{
MainCtrlPos--;
OK = true;
if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag == 1) && (MainCtrlActualPos != MainCtrlPos))
DecScndCtrl(2);
}
else if (CtrlSpeed > 1)
OK = (DecMainCtrl(1) && DecMainCtrl(2)); // CtrlSpeed-1);
@@ -1994,7 +1998,7 @@ bool TMoverParameters::IncScndCtrl(int CtrlSpeed)
if (LastRelayTime > CtrlDelay)
LastRelayTime = 0;
if ((OK) && (EngineType == TEngineType::ElectricInductionMotor) && (ScndCtrlPosNo == 1))
if ((OK) && (EngineType == TEngineType::ElectricInductionMotor) && (ScndCtrlPosNo == 1) && (MainCtrlPos>0))
{
// NOTE: round() already adds 0.5, are the ones added here as well correct?
if ((Vmax < 250))
@@ -6130,15 +6134,6 @@ void TMoverParameters::CheckSpeedCtrl()
eimicSpeedCtrl = clamp(0.5 * (ScndCtrlActualPos * 2 - Vel), -1.0, 1.0);
else
eimicSpeedCtrl = 1;
if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag == 1) && (MainCtrlActualPos != MainCtrlPos))
{
DecScndCtrl(1);
if (CabNo == 0)
{
SendCtrlToNext("ScndCtrl", ScndCtrlPos, 1);
SendCtrlToNext("ScndCtrl", ScndCtrlPos, -1);
}
}
}
// *************************************************************************************************