Upgrade - improved StandingStartMassCollection method by SLM requirements, added fixed delays, added residual flow delays
This commit is contained in:
+165
-46
@@ -1,20 +1,22 @@
|
|||||||
///
|
using Common;
|
||||||
|
using Config.Entities;
|
||||||
|
using log4net;
|
||||||
|
using NHibernate.Action;
|
||||||
|
///
|
||||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||||
///
|
///
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using log4net;
|
using System.Windows.Forms;
|
||||||
using Common;
|
using System.Xml.Serialization;
|
||||||
using Config.Entities;
|
|
||||||
using TBF.Boxes;
|
using TBF.Boxes;
|
||||||
using TBF.Resources;
|
using TBF.Resources;
|
||||||
using TBF.Rig.GenericDevices;
|
using TBF.Rig.GenericDevices;
|
||||||
|
using TBF.Rig.RegisterReaders.PulsesFromUniCB;
|
||||||
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
|
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
|
||||||
using TBF.UiBridge;
|
using TBF.UiBridge;
|
||||||
using System.Xml.Serialization;
|
|
||||||
using TBF.Rig.RegisterReaders.PulsesFromUniCB;
|
|
||||||
|
|
||||||
namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
||||||
{
|
{
|
||||||
@@ -113,6 +115,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
checkUiOp = new Operations.CheckUIOp(true); /// Runs in more then one state
|
checkUiOp = new Operations.CheckUIOp(true); /// Runs in more then one state
|
||||||
processDataLoggingOp = new TBF.Rig.Operations.ProcessDataLoggingOp(processDataLogger, this, heatMetersTestParams != null);
|
processDataLoggingOp = new TBF.Rig.Operations.ProcessDataLoggingOp(processDataLogger, this, heatMetersTestParams != null);
|
||||||
|
|
||||||
|
int delay;
|
||||||
|
|
||||||
if (cBrd is ControlBoard.Uni.UniCB)
|
if (cBrd is ControlBoard.Uni.UniCB)
|
||||||
{
|
{
|
||||||
int[] filters = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
|
int[] filters = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||||
@@ -150,7 +154,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
int totalPulses = Convert.ToInt32(test.Volume / outPath.FlowMeter.LtrPerPulse);
|
int totalPulses = Convert.ToInt32(test.Volume / outPath.FlowMeter.LtrPerPulse);
|
||||||
|
|
||||||
log.InfoFormat(
|
log.InfoFormat(
|
||||||
"{0}({1}) : Test starting (Repetition {2}, LastRepetition={3}, PumpPower={4})",
|
"{0}({1}) : Test starting... (Repetition {2}, LastRepetition={3}, PumpPower={4})",
|
||||||
test.Method,
|
test.Method,
|
||||||
test.Name,
|
test.Name,
|
||||||
repetitionNr,
|
repetitionNr,
|
||||||
@@ -338,8 +342,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
State.Create(string.Format("{0}({1}) : Setting the flow", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Setting the flow", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, FlowSettingTimeoutSec))
|
.AddOperation(cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, FlowSettingTimeoutSec))//...develop: step 1
|
||||||
.AddOperation(heatMetersPromptOp)
|
.AddOperation(heatMetersPromptOp)
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do {
|
do {
|
||||||
e = StateMachine.WaitRunDevsRunOps();
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
@@ -473,8 +477,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
State.Create(string.Format("{0}({1}) : Close the start/stop valve before measuring the start mass", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Close the start/stop valve before measuring the start mass", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(cBrd.CloseStartValveOp())
|
.AddOperation(cBrd.CloseStartValveOp())//...develop: step 2
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do {
|
do {
|
||||||
e = StateMachine.WaitRunDevsRunOps();
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
||||||
@@ -482,10 +486,38 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
}
|
}
|
||||||
while (!e.Contains(Event.ValvesSet));
|
while (!e.Contains(Event.ValvesSet));
|
||||||
|
|
||||||
|
///...MF
|
||||||
|
///-----------------
|
||||||
|
delay = 5;
|
||||||
|
//if (test.TimePump2StartV > 0)
|
||||||
|
//{
|
||||||
|
State.Create(string.Format("{0}({1}) : Delay 5s", test.Method, test.Name))
|
||||||
|
.AddOperation(checkUiOp)
|
||||||
|
.AddOperation(new Operations.TimerOp(delay)) //...develop: step 3
|
||||||
|
.EnterState();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
|
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
||||||
|
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
||||||
|
|
||||||
|
/// Show remaining time
|
||||||
|
if ((delay = Math.Max(delay, 0)) > 60)
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec));
|
||||||
|
else
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay));
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
delay--;
|
||||||
|
}
|
||||||
|
while (!e.Contains(Event.TimerExpired));
|
||||||
|
//}
|
||||||
|
///-----------------
|
||||||
|
|
||||||
State.Create(string.Format("{0}({1}) : Start the standing start/stop test", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Start the standing start/stop test", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress) //...develop: step 4 --> diverter switch to the mass
|
||||||
.EnterState();
|
.EnterState();
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
@@ -494,6 +526,36 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///...MF
|
||||||
|
///-----------------
|
||||||
|
delay = test.TimeFlow2Mass;
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
{
|
||||||
|
State.Create(string.Format("{0}({1}) : Delay for meters stabilization <T flow stab. - start = {2}s> ", test.Method, test.Name, delay))
|
||||||
|
.AddOperation(checkUiOp)
|
||||||
|
.AddOperations(readTempPressOps)
|
||||||
|
.AddOperation(testInProgress)
|
||||||
|
.AddOperation(new Operations.TimerOp(delay)) //...develop: step 5
|
||||||
|
.EnterState();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
|
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
||||||
|
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
||||||
|
|
||||||
|
/// Show remaining time
|
||||||
|
if ((delay = Math.Max(delay, 0)) > 60)
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec));
|
||||||
|
else
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay));
|
||||||
|
|
||||||
|
if(delay>0)
|
||||||
|
delay--;
|
||||||
|
}
|
||||||
|
while (!e.Contains(Event.TimerExpired));
|
||||||
|
}
|
||||||
|
|
||||||
int time = StateMachine.Time;
|
int time = StateMachine.Time;
|
||||||
double currentFlow = RefFlow.Val;
|
double currentFlow = RefFlow.Val;
|
||||||
|
|
||||||
@@ -511,6 +573,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
///
|
///
|
||||||
GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm;
|
GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm;
|
||||||
IOperation readStartMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
|
IOperation readStartMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
|
||||||
|
IOperation readStopMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
|
||||||
|
|
||||||
if (dataEntryCmpnt != null)
|
if (dataEntryCmpnt != null)
|
||||||
{
|
{
|
||||||
@@ -525,8 +588,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
State state2 = State.Create(string.Format("{0}({1}) : Grab images", test.Method, test.Name))
|
State state2 = State.Create(string.Format("{0}({1}) : Grab images", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(readStartMassOp)
|
//.AddOperation(readStartMassOp)//...MF presuvam do nasledujucej serie
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)//...nevhodne prepina diverter
|
||||||
.AddOperation(processDataLoggingOp);
|
.AddOperation(processDataLoggingOp);
|
||||||
|
|
||||||
for (int i = 0; i < sensPath.RegisterReaders.Length; i++)
|
for (int i = 0; i < sensPath.RegisterReaders.Length; i++)
|
||||||
@@ -576,22 +639,33 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
|
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
|
||||||
}
|
}
|
||||||
///////
|
///////
|
||||||
|
|
||||||
|
delay = test.TimeStop2Mass;
|
||||||
|
|
||||||
Bridge.OnActivity(this, Strings.Enter_water_meter_data);
|
Bridge.OnActivity(this, Strings.Enter_water_meter_data);
|
||||||
long readStartTime = StateMachine.Time;
|
long readStartTime = StateMachine.Time;
|
||||||
State.Create(string.Format("{0}({1}) : Enter start states of water meters", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Enter start states of water meters and Measuring the start mass after residual flow <T stop-mass msrmt time = {2}s>", test.Method, test.Name, test.TimeStop2Mass))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)//...nevhodne prepina diverter
|
||||||
.AddOperation((dataEntryCmpnt as GenericDevices.IHasWMStatesForm).ShowTestStartFormOp(sensPath.RegisterReaders))
|
.AddOperation((dataEntryCmpnt as GenericDevices.IHasWMStatesForm).ShowTestStartFormOp(sensPath.RegisterReaders))//...develop: half of step 6
|
||||||
|
.AddOperation(readStopMassOp) //...develop: half of step 6
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do {
|
do {
|
||||||
e = StateMachine.WaitRunDevsRunOps();
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
||||||
|
|
||||||
|
/// Show remaining time
|
||||||
|
if ((delay = Math.Max(delay, 0)) > 60)
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec));
|
||||||
|
else
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay));
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
delay--;
|
||||||
}
|
}
|
||||||
while (!e.Contains(Event.ModelessFormClosed));
|
while (!e.Contains(Event.ModelessFormClosed) || !e.Contains(Event.ScaleDone));
|
||||||
long readEndTime = StateMachine.Time;
|
long readEndTime = StateMachine.Time;
|
||||||
|
|
||||||
log.Debug("Read poseidon - took:" + (readEndTime - readStartTime));
|
log.Debug("Read poseidon - took:" + (readEndTime - readStartTime));
|
||||||
@@ -672,12 +746,11 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//dripping on the scale - using of time constant for delay for measuring
|
|
||||||
State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)//...nevhodne prepina diverter
|
||||||
.AddOperation(scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread))
|
.AddOperation(scale.ReadStableMassOp(ref StartMass, 0, test.MassMethod, test.MassRepeats, test.MassSpread))//...develop: step 8
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do
|
do
|
||||||
@@ -699,7 +772,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)//...nevhodne prepina diverter
|
||||||
//.AddOperation(readStartMassOp)
|
//.AddOperation(readStartMassOp)
|
||||||
.AddOperation(scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread))
|
.AddOperation(scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread))
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)
|
||||||
@@ -733,7 +806,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
/// Measurement loop preparation
|
/// Measurement loop preparation
|
||||||
TestStartTime = DateTime.Now;
|
TestStartTime = DateTime.Now;
|
||||||
StartTime = (double)StateMachine.Time;
|
StartTime = (double)StateMachine.Time;
|
||||||
int estimtdEndTime = StateMachine.Time + (int)test.TestTime;
|
int estimtdEndTime = StateMachine.Time + Convert.ToInt32(test.TestTime);
|
||||||
int remainingTime;
|
int remainingTime;
|
||||||
StartNewStatistics(outPath.FlowMeter, BatchRslts.Batch.BatchNr, test, repetitionNr, Math.Max((int)(test.TestTime / 10), 5));
|
StartNewStatistics(outPath.FlowMeter, BatchRslts.Batch.BatchNr, test, repetitionNr, Math.Max((int)(test.TestTime / 10), 5));
|
||||||
|
|
||||||
@@ -742,10 +815,10 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
State.Create(string.Format("{0}({1}) : Start the test, open the start/stop valve", test.Method, test.Name))
|
State.Create(string.Format("{0}({1}) : Start the test, open the start/stop valve", test.Method, test.Name))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(cBrd.OpenStartValveOp(timeStampStart, startSwitchTime))
|
.AddOperation(cBrd.OpenStartValveOp(timeStampStart, startSwitchTime)) //...develop: step 9
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)
|
||||||
.AddOperation(controlFlowOp)
|
.AddOperation(controlFlowOp)
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)//...develop: step 10, step 11
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do {
|
do {
|
||||||
e = StateMachine.WaitRunDevsRunOps();
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
@@ -759,6 +832,9 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
else
|
else
|
||||||
Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime));
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime));
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
delay--;
|
||||||
|
|
||||||
/// Update statistics
|
/// Update statistics
|
||||||
RefFrequency.Val = cBrd.RefFrequency;
|
RefFrequency.Val = cBrd.RefFrequency;
|
||||||
RefFlow.Val = outPath.FlowMeter.ReadFlow();
|
RefFlow.Val = outPath.FlowMeter.ReadFlow();
|
||||||
@@ -803,7 +879,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
.AddOperation(testInProgress)
|
||||||
.AddOperation(cBrd.CloseStartValveOp(timeStampEnd, stopSwitchTime))
|
.AddOperation(cBrd.CloseStartValveOp(timeStampEnd, stopSwitchTime))//...develop: step 12
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)
|
||||||
.EnterState();
|
.EnterState();
|
||||||
do {
|
do {
|
||||||
@@ -814,6 +890,38 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
|
|
||||||
log.WarnFormat("Start valve switch time on test end = {0} ms", cBrd.ValveOpenCloseTime);
|
log.WarnFormat("Start valve switch time on test end = {0} ms", cBrd.ValveOpenCloseTime);
|
||||||
|
|
||||||
|
|
||||||
|
///...MF
|
||||||
|
///-----------------
|
||||||
|
delay = test.TimeStop2Mass;
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
{
|
||||||
|
State.Create(string.Format("{0}({1}) : Delay before end mass measuring <T stop-mass msrmt time = {2}s>", test.Method, test.Name, delay))
|
||||||
|
.AddOperation(checkUiOp)
|
||||||
|
.AddOperations(readTempPressOps)
|
||||||
|
.AddOperation(testInProgress)
|
||||||
|
.AddOperation(new Operations.TimerOp(delay)) //...develop: step 13
|
||||||
|
.EnterState();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
|
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
||||||
|
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
|
||||||
|
|
||||||
|
/// Show remaining time
|
||||||
|
if ((delay = Math.Max(delay, 0)) > 60)
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec));
|
||||||
|
else
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay));
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
delay--;
|
||||||
|
}
|
||||||
|
while (!e.Contains(Event.TimerExpired));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (heatMetersPath == null)
|
if (heatMetersPath == null)
|
||||||
LogProcessDataHeader(processDataLogger, "End mass");
|
LogProcessDataHeader(processDataLogger, "End mass");
|
||||||
else
|
else
|
||||||
@@ -822,11 +930,14 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
Bridge.OnActivity(this, Strings.Measuring_the_weight);
|
Bridge.OnActivity(this, Strings.Measuring_the_weight);
|
||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
State.Create(string.Format("{0}({1}) : Measuring the end mass", test.Method, test.Name))
|
/*
|
||||||
|
delay = test.TimeStop2Mass;
|
||||||
|
|
||||||
|
State.Create(string.Format("{0}({1}) : Measuring the end mass after residual flow <T stop-mass msrmt time = {2}s>", test.Method, test.Name, delay))
|
||||||
.AddOperation(checkUiOp)
|
.AddOperation(checkUiOp)
|
||||||
.AddOperations(readTempPressOps)
|
.AddOperations(readTempPressOps)
|
||||||
.AddOperation(testInProgress)
|
//.AddOperation(testInProgress)...nevhodne prepina diverter
|
||||||
.AddOperation(scale.ReadStableMassOp(ref EndMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread))
|
.AddOperation(scale.ReadStableMassOp(ref EndMass, delay, test.MassMethod, test.MassRepeats, test.MassSpread))//...develop: step 13
|
||||||
.AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec))
|
.AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec))
|
||||||
.AddOperation(processDataLoggingOp)
|
.AddOperation(processDataLoggingOp)
|
||||||
.EnterState();
|
.EnterState();
|
||||||
@@ -840,26 +951,20 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
retVal = Event.RecoverableError;
|
retVal = Event.RecoverableError;
|
||||||
goto stopTest;
|
goto stopTest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Show remaining time
|
||||||
|
if ((delay = Math.Max(delay, 0)) > 60)
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec));
|
||||||
|
else
|
||||||
|
Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay));
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
delay--;
|
||||||
}
|
}
|
||||||
while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next));
|
while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next));*/
|
||||||
///
|
///
|
||||||
tMass2 = StateMachine.Time;
|
tMass2 = StateMachine.Time;
|
||||||
|
|
||||||
if (test.DoDrainingAfter)
|
|
||||||
{
|
|
||||||
State.Create(string.Format("{0}({1}) : Open the drain valve", test.Method, test.Name))
|
|
||||||
.AddOperation(checkUiOp)
|
|
||||||
.AddOperation(cBrd.SetValvesOp(scale.DrainValve, null))
|
|
||||||
.EnterState();
|
|
||||||
do
|
|
||||||
{
|
|
||||||
e = StateMachine.WaitRunDevsRunOps();
|
|
||||||
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
|
||||||
}
|
|
||||||
while (e.Contains(Event.ValvesBusy));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double massStart = MeasurementCorrection.CorrectedValue(StartMass.Val, scale.Corrections);
|
double massStart = MeasurementCorrection.CorrectedValue(StartMass.Val, scale.Corrections);
|
||||||
double massEnd = MeasurementCorrection.CorrectedValue(EndMass.Val, scale.Corrections);
|
double massEnd = MeasurementCorrection.CorrectedValue(EndMass.Val, scale.Corrections);
|
||||||
double densityOut = Formulas.WaterDensityFromTempPress((TempUpStat.Average + TempDownStat.Average) / 2,
|
double densityOut = Formulas.WaterDensityFromTempPress((TempUpStat.Average + TempDownStat.Average) / 2,
|
||||||
@@ -1037,6 +1142,20 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (test.DoDrainingAfter)
|
||||||
|
{
|
||||||
|
State.Create(string.Format("{0}({1}) : Open the drain valve", test.Method, test.Name))
|
||||||
|
.AddOperation(checkUiOp)
|
||||||
|
.AddOperation(cBrd.SetValvesOp(scale.DrainValve, null))
|
||||||
|
.EnterState();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
e = StateMachine.WaitRunDevsRunOps();
|
||||||
|
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
|
||||||
|
}
|
||||||
|
while (e.Contains(Event.ValvesBusy));
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
Bridge.OnActivity(this, Strings.Test_completed);
|
Bridge.OnActivity(this, Strings.Test_completed);
|
||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user