Jump to content

Joe Reckamp

Seeq Team
  • Posts

    128
  • Joined

  • Last visited

  • Days Won

    36

Posts posted by Joe Reckamp

  1. Hi Conor,

    See the What's New pages (linked below) for R52 and R53 for the "Asset Groups" sections that relate to being able to create asset groups (similar to asset trees) in those versions. R52 adds this capability with the appropriate license and R53 extends upon that functionality adding the ability to create calculations:
    https://support.seeq.com/space/KB/1616642176/What's+New+in+R52
    https://support.seeq.com/space/KB/1857093849/What's+New+in+R53

  2. Hi Corey,

    Currently, condition lanes are tied to the order that the conditions are added to the trend. Therefore, to modify that order, remove all conditions from the display and add them back onto the display in the order you would like them to appear (from top to bottom).

    • Like 1
  3. Hi Prachi,

    A couple different options for you:

    Option 1

    You're probably familiar that you can use Formula (or Value Search) with the following to create a capsule for when one signal is equal to 1:

    $signal==1

    Therefore, one option is to combine this search together for each signal using the combinewith function:

    combinewith($signal1==1, $signal2==1, ... , $signal50==1)

    This will create a capsule for each signal equal to 1, which would result in multiple overlapped capsules if more than one signal was equal to 1. If you'd like to reduce that to create a capsule if "any" signal was 1, you could merge those together:

    combinewith($signal1==1, $signal2==1, ... , $signal50==1).merge()

    Alternately, if you want to know how many signals are equal to 1 at any point in time, you can use countoverlaps:

    combinewith($signal1==1, $signal2==1, ... , $signal50==1).countoverlaps()

    Option 2

    Typically when counting 1 values, the signals are a 0/1 signal where it is 0 when inactive and 1 when active. If this is the case in your use case, an alternate approach could be to sum the signals and find when it is greater than or equal to 1:

    sum($signal1, $signal2, ... , $signal50) >= 1

     

    • Like 2
  4. Many batch customers want to track cycle times of batches. Histograms are a great way to aggregate and visualize the cycle times for continuous improvement.

    The data set involved includes a Batch ID (typically a string signal, but could also be a capsule with a Batch ID property) and optionally a signal for splitting up the batch such as a unit procedure, operation, phase, or step.image.png
     

    In order to prepare the data for the histogram, we need to convert these signals into capsules with the appropriate Batch ID and operation as properties on each capsule. This can be done in the following ways depending on whether the optional operation is included:

    Only Batch ID:

    $signal.toCondition('Batch ID')

    Batch ID + Operation:

    $OperationSignal.toCondition('Operation').removelongerthan(30d)
    .transform($capsule ->
    	$capsule.setProperty('Batch ID', $BatchIDSignal.toScalars($capsule).first()))

    Note that you may need to filter out certain capsules (such as "Operation 0" in the picture above) using the keep formula. Also, depending on the frequency of the Batch ID sample recording, the $BatchIDSignal may need to have a ".resample(1min)" or equivalent added in prior to the "toScalars()" operator to ensure that a sample is present during each operation.

    image.png

    You can then build a histogram on the capsule with the "Total Duration" statistic aggregating by first the Batch ID property and then the Operation property as shown below:

    image.png

    image.png

    image.png

    Note: The option to stack the histogram is available under "customize" in the Details Pane.

    • Like 2
  5. Hi Stephanie,

    Currently, you cannot use Scorecard Metrics as a threshold, but you could create the same calculated metric using Signal from Condition and use that result as the threshold for the other metric. Once you have the signal created, you can use the following button to toggle from a value input to a signal input for the threshold:
    image.png
     

    • Like 1
  6. Hi John,

    The capsule shows in progress because when the next month starts, it will jump to the next month, meaning that the capsule will continuously be moving. I think what you want is to use the following formula which will create a 1 year long capsule starting each month. 

    periods(1y, 1mo)

     

  7. Hi Sivaji,

    Sorry for another "you probably need to upgrade" response to your question, but if you look through the Knowledge Base on Scatter Plot (https://support.seeq.com/space/KB/153518135/XY%20Plot), you'll see that a lot of these capabilities have been added. For example, starting in version 46, you can color by fixed date ranges, allowing more coloring options by time as you mention.

    The workaround on your version I believe would be to make each year its own condition using Custom Condition or something like that (one condition would be only the year of 2019, another condition being 2020 for instance). In this case, when you color by condition, it would be a different color for each condition. 

    • Like 1
  8. Hi Aleksander,

    The totalize function requires the totalization to be bounded by a capsule because otherwise it has no idea how far back in history to go. For instance, if you want to view the most recent day worth of data, does it have to go back through the entire history of your data signal (maybe 10+ years worth of data) to perform the calculation on? Therefore, the condition you give it will "bound" that calculation to a certain period of time so that Seeq knows when to start and stop that calculation.

    If I'm understanding correctly, I think you would want to "bound" the calculation each day to match the other sensor readout and I also think you would want the integral function instead of totalized so you get the running integral across the day. If so, first create a periodic condition for "daily" and then do:

    $signal.integral($DailyCondition)

    This will integrate the signal, resetting the integration each day. If you would like it to go longer, then change your condition as appropriate.

    • Like 1
  9. Hi Sivaji,

    You could do this in a couple different ways by turning the duration of the condition into a signal.

    One method would be to use Signal from Condition to calculate the duration of each capsule in the condition and then performing a sum on that signal for the Treemap statistic:

    image.png

    Since you have to place the duration at a timestamp of each capsule, it means that if the "end" timestamp were selected as in the above example, the whole capsule would be counted even though half of the capsule may be off the edge of the time selected in the display. If this is an issue, I would recommend following the second approach. The second approach is to create a time counter signal using a Formula such as:

    1.tosignal().within($condition)

    You can then totalize that signal to get the total number of seconds:
    image.png

    If you want the value in a unit other than seconds, you can modify the example to use "sum" and a slightly different Formula that adds the units in. For example, in minutes:
    image.png

  10. Hi poeu,

    Here's one method for doing what you want:

    $max = $signal.aggregate(maxValue(),$condition,maxKey()).todiscrete()
    $start = $signal.aggregate(startValue(),$condition,maxKey()).todiscrete()
    $time = timesince($condition, 1min)
    ($max-$start)/$time

    In this formula, I'm first calculating the maximum value within the condition and storing that at the timestamp where the maximum was found. I then take the start value an also put that at the max key. Finally, I use timesince to get the calculated time (you can change the units depending on how long your capsule is) at that max timestamp. Note that your condition will need to have a maximum duration so you may need to add a $condition.removelongerthan(40h) or equivalent prior to the above formulas if your condition does not already have a max duration.

×
×
  • Create New...