From: Fry, C. R. {C. (ARC-TI)[S. INC] <chu...@na...> - 2015-07-27 23:28:04
|
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. |