|
From: Fry, C. R. {C. (ARC-TI)[S. INC] <chu...@na...> - 2015-07-28 21:33:41
|
I don't see any issues with the files you sent this time.
Are you familiar with Plexil's debug trace faciliity? Is this running in an environment where you can spill a lot of debug info to a "console" or log file?
If you can, I'd like to see the output from a run with the following debug configuration:
:Node:transition
:Node:outcome
:Node:failure
The text above should be placed in a file named 'Debug.cfg' in the working directory from which Plexil is launched.
If you can't do this, let me see if I can find another way to ferret out what's really happening.
-- Chuck
On Jul 28, 2015, at 6:13 AM, Catherine Szeto <Cat...@ti...<mailto:Cat...@ti...>> wrote:
Sorry about that. I attached a plan with a similar name. Attached are the correct files.
Yes, the pressures start high and go lower. I cannot figure out if I have any incorrect syntax either, but it's bizarre that the nodes for the other two pressures are working fine while the last one is not.
Catherine
From: Fry, Charles R. {Chuck} (ARC-TI)[SGT, INC] [mailto:chu...@na...<http://nasa.gov/>]
Sent: Monday, July 27, 2015 6:28 PM
To: Catherine Szeto
Cc: <ple...@li...<mailto:ple...@li...>>
Subject: Re: [plexil-support] Three near-identical StartConditions, only one is not working
Hi Catherine. The attached files don't contain the fragments you quote below. Are you paraphrasing or did you mean to send some other files?
I don't see anything in the quoted code that looks incorrect.
I presume all the pressures are starting high and trending lower?
-- Chuck
On Jul 27, 2015, at 2:56 PM, Catherine Szeto <Cat...@ti...<mailto:Cat...@ti...>> wrote:
Hello Plexil team,
I have this part in my code in the attached Plexil plan:
CheckDistillerPressure:
{
StartCondition Lookup(PressureCdsskmCdTank) <= scaledNomVacPressure;
SkipCondition distillerPressureCorrect || (Lookup(PressureCdsskmCdTank) > scaledNomVacPressure);
distillerPressureCorrect = true;
PrintDistillerPressure: { pprint("EVT: distiller", Lookup(PressureCdsskmCdTank), "." );}
}
The plan basically has two separate loops and the plan runs one of the loops depending on a “full” or “empty” parameter. Both the “full” and “empty” loops have an inner loop that keeps checking “product”, “brine”, and “distiller” pressures. The inner loop prints out a statement when each pressure has met the correct pressure, and then exits when all three have met the correct pressure. When I run the plan, the “brine” and “product” pressures have no issues. The node checking for distiller pressure (the one copied and pasted above) never starts. I did some simple debugging by having the “distiller” pressure continuously printed, and was able to verify that the distiller pressure, “Lookup(PressureCdsskmCdTank)”, is reading the correct input and actually is meeting the correct pressure. I tried hard-coding the “scaledNomVacPressure” in the StartCondition to “35”, which is the correct pressure threshold, but that didn’t changed anything.
The nodes that check for the product, brine, and distiller pressures are virtually identical, so I cannot figure out why the distiller pressure is having trouble while the brine and product are not. I would appreciate any suggestions to look into. For context, this is the loop that checks for the pressures:
WaitingForCorrectPressureLevel:
{
ExitCondition ((Lookup(time,0.1) - StartTimer.EXECUTING.START) > Lookup(VacuumTimeoutINTL)) ||
(brinePressureCorrect && productPressureCorrect && distillerPressureCorrect);
RepeatCondition (Lookup(time,0.1) - StartTimer.EXECUTING.START) <= Lookup(VacuumTimeoutINTL) &&
(!brinePressureCorrect || !productPressureCorrect || !distillerPressureCorrect);
CheckBrinePressure:
{
StartCondition Lookup(PressureCdsskmBrineTank) <= scaledNomVacPressure;
SkipCondition brinePressureCorrect || (Lookup(PressureCdsskmBrineTank) > scaledNomVacPressure);
brinePressureCorrect = true;
PrintBrinePressure: { pprint("EVT: brine", Lookup(PressureCdsskmBrineTank), "." );}
}
CheckProductPressure:
{
StartCondition Lookup(PressureCdsskmProductTank) <= scaledNomVacPressure;
SkipCondition productPressureCorrect || (Lookup(PressureCdsskmProductTank) > scaledNomVacPressure);
productPressureCorrect = true;
PrintProductPressure: { pprint("EVT: product", Lookup(PressureCdsskmProductTank), "." );}
}
CheckDistillerPressure:
{
StartCondition Lookup(PressureCdsskmCdTank) <= scaledNomVacPressure;
SkipCondition distillerPressureCorrect || (Lookup(PressureCdsskmCdTank) > scaledNomVacPressure);
distillerPressureCorrect = true;
PrintDistillerPressure: { pprint("EVT: distiller", Lookup(PressureCdsskmCdTank), "." );}
}
} //end of WaitingForCorrectPressureLevel
} //end of ApplyVacuumToAll_Sequence_FullLoop
Thanks,
Catherine
<ApplyVacuumTo.ple><ApplyVacuumTo.plx>------------------------------------------------------------------------------
_______________________________________________
plexil-support mailing list
ple...@li...<mailto:ple...@li...>
https://lists.sourceforge.net/lists/listinfo/plexil-support
Chuck Fry | QTS Inc.
Office: 650 604 1882 Mobile: 408 230 2715
M/S 269-1, Building N269/260-7
NASA Ames Research Center
Moffett Field, CA 94035-1000
I do not speak for QTS Inc., SGT, Code TI, or NASA, nor do they speak for me.
<ApplyVacuumToAll.ple><ApplyVacuumToAll.plx>
Chuck Fry | QTS Inc.
Office: 650 604 1882 Mobile: 408 230 2715
M/S 269-1, Building N269/260-7
NASA Ames Research Center
Moffett Field, CA 94035-1000
I do not speak for QTS Inc., SGT, Code TI, or NASA, nor do they speak for me.
|