Jump to content

Andrew Fontenot

  • Posts

  • Joined

  • Last visited

  • Days Won


Andrew Fontenot last won the day on July 22 2021

Andrew Fontenot had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Andrew Fontenot's Achievements


Apprentice (3/14)

  • Conversation Starter
  • Collaborator Rare
  • First Post
  • Week One Done
  • One Month Later

Recent Badges



  1. Are you wanting to train the reference profile on different time based on the grade in production? I don't believe you can do that currently. You would have to build different reference profiles and splice them together, and you could do that in a single formula to make it easier to manage. I can work up an example if that is what you are trying to do. Andrew
  2. I may not understand your question fully, but it seems like you already have the solution. I would create different reference profiles for each grade, then splice the reference signals together. If you try to create one reference profile, it may cause issues since the reference statistic would be calculated across different grades. The only issue with this method would be that it is not dynamic, so as different grades come on-line you'd have to create a new reference profile for each, but I don't see a way around that. To 'splice' conditions, you would use one of the many methods available to combine conditions. You can see these in the formula documentation under 'Combining Conditions'. One way to create a condition where the Grade is either A,B,or C would be to use the or keyword in formula. $gradeSignal.isMatch('GradeA') or $gradeSignal.isMatch('GradeB') or $gradeSignal.isMatch('GradeC')
  3. Hey Abby, I was able to reproduce your issue, and it seems it is due to the way Seeq creates the Step trend, it is placing two values at each point in time a new value occurs to create the stepped transition. I was able to fix this by using Formula to create two new signals which are discrete. $x.toDiscrete() I still used the original stepped values to create the In Range/Out of Range conditions, but used the discrete values to display on the scatter plot. My limits are 0 - 4 for Y and 40 - 50 for X. Here's the before and after. Hope this helps, Andrew BEFORE AFTER
  4. xyTable does return a table. According to the error though, the Formula tool cannot. It looks to me like the functions that return Tables are mainly used underneath the hood to create histograms. But I agree, I'm not sure why formula can't return a table either.
  5. I think the problem you will have with this analysis is creating the average of all bearing temperatures. The only way I know to do it is to use Formula and add every bearing temperature using the formula... average($signal1, $signal2, ...) This will be very time consuming. If instead you could use each bearing temp's daily average as a reference or some other statistic that is relative to each particular bearing temp or some other constant, then this will become much easier. I'm assuming you are using an asset framework where each asset has a signal called 'Gearbox Temperature HSSNDE'. Start with any one temperature signal in the display. Use the formula tool to create a new signal with only values that meet your threshold. Do this using the .keep() function $signal.keep($sample -> $sample.value() > 1.0) Now use Identify -> Value Search to identify a condition where the temperature exceeds your limit. Make sure to ignore capsules shorter than 10 minutes to meet your requirement. Finally, use Table View to create a table with each Asset and how many capsules occur (number of capsules from the previously created condition). The asset table feature is a newer feature, so you may need to have the appropriate version of Seeq, I'm not sure when it was added. I know this doesn't deliver exactly what you're asking for, but hopefully it will get you started. Andrew
  6. To get the difference between adjacent discrete values, I would use the following formula... $signal.toStep(2d).runningDelta() the runningDelta() function requires a continuous signal, so the signal must first be converted to a continuous signal using to toStep() with the included maxInterpolation parameter. The maxInterpolation must be large enough to span the time between to adjacent batches. You could then convert the delta signal back to discrete if you'd like with toDiscrete(). If you want to calculate slope, you'll also need to the time between each value. There are probably many ways to do this, but I converted the discrete value to a condition using the following formula... $signal.toStep(2d).toCondition() I then used Signal From Condition tool to output the duration of each capsule as a signal name 'Condition Duration'. I now have two signals at the same time, Delta and Condition Duration. I used the formula tool again to calculate slope as rise/run or Delta/Condition Duration. Hope this helps, Andrew
  7. That makes sense. There are many different formats the DateTime can be in, but to my knowledge, you must provide a single column with a DateTime. Perhaps a Seeq engineer knows of a way.
  8. The csv must contain one DateTime column if importing Signals, or two DateTime columns (Start and End) if importing conditions. If you open the csv in excel, you can simply sum the Date and Time columns to get a new DateTime column. As the error states, one example of this is row 7 which has a value of 11:00:43. This is only a Time, Seeq requires a DateTime such as 9/28/2021 11:00:43. Hope this helps, Andrew
  9. You should be able to just use the built-in prediction tool under Model & Predict -> Prediction. If there is a delay in the off-line samples and you need to move the signal in time by a constant amount, you can use the $signal.move() function in a formula to create a new time-adjusted signal for use in the Prediction tool. The Prediction Model section of the Prediction tool will show you information regarding the regression such as rSquared, p-values, etc. The Prediction tool should take care of creating the value pairs from the input signals, perhaps a Seeq Engineer can give more specific info on this if needed.
  10. So what is your objective, what signal/scalar/condition do you want to the formula to output? xyTable will produce a table of value pairs for your two signals, what are the next steps required to produce the signal/scalar/condition?
  11. That's exactly what the formula does, it returns a table, but this is different from the Table View in Seeq Workbench. It's purpose is not to create a graphical table in Workbench. If you are trying to create a graphic table of samples, I'm not sure if this is your objective, you could use Table View in Condition Mode to do this. One way, would be to create a Score Card Metric for each signal and specify the rolling window for which you'd like a value in your table. Here's an example.
  12. What are trying to accomplish? This formula returns a table, but Seeq expects a condition, formula, or scalar so I imagine you are seeing the bad response error because of this. xyTable(capsule('2021'), $a, $b, 100) is the correct syntax, but you can't return a table.
  13. See capsule() in the formula documentation.
  14. You could also create the signal in Seeq using the Signal From Condition tool, then select Item Properties for that signal to view the formula. You could do the same for the condition referred to in the formula and replace $capsules with the condition's formula.
  15. I noticed that AddToAssetTree and AssetPath properties of the AF Event Frames Connector are obselete as of R51+, according to the knowledge base. Is there now an alternative method to adding a condition from AF Event Frames into the a particular element of the asset tree? I'd like for a specific AF event frame condition to show up in the Data pane for a particular asset, without having to explicitly search for it. Andrew
  • Create New...