- Tank emptying on start-up implemented, EmptyTimeSec parameter added to Balances

- added events Event.TimerBusy, Event.ValvesBusy, etc.
- fixed bug in SetValvesOp
- preparing a virtual bench drawing on the Process screen - partly done
This commit is contained in:
Milan Hanajik
2014-12-10 12:37:05 +01:00
parent 6aada39d97
commit 415adba8cf
17 changed files with 226 additions and 58 deletions
@@ -23,7 +23,7 @@ namespace TBF.BenchControl.Elde.Valve
public SwitchPoint(int time, IList<IValve> vOpen, IList<IValve> vClose)
{
this.TimeSec = time;
this.VOpen = (vOpen == null) ? new List<IValve>() : vOpen;
this.VOpen = (vOpen == null) ? new List<IValve>() : vOpen;
this.VClose = (vClose == null) ? new List<IValve>() : vClose;
}
@@ -78,7 +78,7 @@ namespace TBF.BenchControl.Elde.Valve
foreach (var valve in StateMachine.CoupledValves)
{
if ((!valve.InvertCouple && valvesOpen.Contains(valve.CoupledTo)) ||
(valve.InvertCouple && valvesClose.Contains(valve.CoupledTo)))
(valve.InvertCouple && valvesClose.Contains(valve.CoupledTo)))
{
/// The coupled valve 'valve' is opening
int time = valve.LagOpening;
@@ -92,7 +92,7 @@ namespace TBF.BenchControl.Elde.Valve
}
}
else if ((!valve.InvertCouple && valvesClose.Contains(valve.CoupledTo)) ||
(valve.InvertCouple && valvesOpen.Contains(valve.CoupledTo)))
(valve.InvertCouple && valvesOpen.Contains(valve.CoupledTo)))
{
/// The coupled valve 'valve' is closing
int time = valve.LagClosing;
@@ -175,8 +175,8 @@ namespace TBF.BenchControl.Elde.Valve
if (controlBoard == null) throw new ArgumentNullException("ctrlBoard");
this.controlBoard = controlBoard;
if (valvesOpen == null) valvesOpen = new List<IValve>();
if (valvesClose == null) valvesOpen = new List<IValve>();
if (valvesOpen == null) valvesOpen = new List<IValve>();
if (valvesClose == null) valvesClose = new List<IValve>();
switchPointsRaw = CollectSwitchPoints(valvesOpen, valvesClose);
switchPoints = SortAndMergeSwitchPoints(switchPointsRaw);
@@ -215,7 +215,7 @@ namespace TBF.BenchControl.Elde.Valve
if (nextIx >= switchPoints.Count)
{
if (StateMachine.Time >= swStartTime + maxDelayTime) return Event.ValvesSet;
else return Event.None;
else return Event.ValvesBusy;
}
if (StateMachine.Time >= swStartTime + switchPoints[nextIx].TimeSec)
@@ -231,7 +231,7 @@ namespace TBF.BenchControl.Elde.Valve
nextIx++;
}
return Event.None;
return Event.ValvesBusy;
}
/// <summary>Start this operation</summary>