Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Contextual data is often brought into Seeq to add more information to time series data. This data tends to be brought in as a condition, with the capsule properties of this condition containing different pieces of information. In some cases, a particular capsule property may not contain just one piece of information; it may contain different pieces that are separated based on some logic or code. Rather than having users visually parse the code to extract the segments of interest, Seeq can be used to extract the substring continuously. The code below extracts a substring based on its location in the property. This code is based on incrementing from left to right, starting at the beginning of the string. Changing the inputs will extract a substring from different positions in the property selected. //Inputs Section (Start and end assume reading left to right) $condition = $hex_maint //Recommend to filter condition to only include correct property values $property_to_capture = 'Reason Code' $start_position = 1 //Incrementing starts from 1 $number_of_characters = 2 //Including the start //Code Section $property_signal = $condition.toSignal($property_to_capture).toStep(2wk) //Change duration for interpolation $start_position_regex = ($start_position - 1).toString() //Regular exression indexes from 0 $number_of_characters_regex = ($number_of_characters - 1).toString() $property_signal.transform( $sample -> sample( $sample.getKey(), $sample.getValue().replace( '/.{'+$start_position_regex+'}(?<Hold>.{'+$number_of_characters_regex+'}.).*/','${Hold}') ) ) This alternative version is based on incrementing right to left, starting at the end of the string. //Inputs Section (Start and end assume reading left to right) $condition = $hex_maint //Recommend to filter condition to only include correct property values $property_to_capture = 'Reason Code' $end_position = 1 //Relative to end, incremented from 1 $number_of_characters = 4 //Including the end character //Code Section $property_signal = $condition.toSignal($property_to_capture).toStep(2wk) //Change duration for interpolation $end_position_regex = ($end_position).toString() $number_of_characters_regex = ($number_of_characters - 1).toString() $property_signal.transform( $sample -> sample( $sample.getKey(), $sample.getValue().replace( '/.*(?<Hold>.{'+$number_of_characters_regex+'}.{'+$end_position_regex+'})$/','${Hold}' ) ) ) Note the output of these formulas is a string. In the case that a numeric value is wanted, append .toNumber() after '${Hold}') Below is an example of the results. With this substring parsed, all of Seeq's analytical tools can be further leveraged. Some examples are developing histograms based on the values of the substring and making conditions to highlight whenever a particular value in the substring is occurring.
  3. Last week
  4. I understand the uncertainty aspect, but showing a capsule which does have an end time as "In Progress" is not correct. Thank you for the information.
  5. If all of your points are in one location or you are only plotting one point you will likely need to zoom out to see the whole curve. This can be done by putting your mouse over of the x and y axis and using the scroll wheel to zoom out.
  6. I tried but curves are taking higher ranges and appearing like a linear curves. Please help me in this regard.
  7. This behavior is expected. Seeq caches data to improve performance. If data in a region might change, that data is deemed uncertain. Uncertain regions are not cached so that changes to that data aren't missed. The cursor marks the boundary between certain and uncertain data. A hollow capsule means that the capsule is in an uncertain region. The cursor is just before the start time of the most recent capsule and therefore the last capsule is always uncertain. Conditions can have overlapping capsules. Events (capsules) may not be published to the datasource until they are finished. Event A might start at time 1 and end at time 6. Event B might start at time 5 and end at time 10. Event B is published later than Event A. Therefore, the region of Event A remains uncertain (uncached) so that Event B isn't missed.
  8. I have successfully setup two (MS SQL) condition queries in the SQL Connector V2 JSON file. When I add these conditions to a trend, the last capsule shows "In Progress" in the Capsules table although the SQL does return an end date for this capsule. The capsule at the top of the trend does end at the correct time, but it is hollow as if the capsule is in progress. Any help on this would be appreciated, Andrew
  9. In newer versions of Seeq you can directly override the maximum interpolation from the item properties menu (I believe this was introduced in R21.0.41.00). See screen shot below for details. Note: This doesn't apply to calculated signals.
  10. When I have created valueless metrics in the past, I have taken advantage of the number format setting in the item properties tab. You can do this with the following steps. 1. Remove the units from the signal you want to use as the basis for your metric. See screenshot below for details. 2. Fill out the metric as you normally would with the desired thresholds. See example below. 3. After creating the metric go into the item properties of that metric by clicking on the “I” icon in the details pane. Once in the items properties tab for the metric click override number format and set the number format to “ “. (note there is a space between the quotes) See screenshot below for details.
  11. I have a piece of equipment that regularly goes through cycles and I want to compare the cycles. In this case I know the exact date and time of the equipment runs so I have used the Custom Condition tool to specify my Previous Run and Current Run. Custom Condition allows you to enter dates for the condition you are interested in. This can also be done in formula. To create the condition for my Next Run I used Seeq's formula because this run is currently on going and I do not know the end date. This approach allows me to specify that this condition end at now. condition(2d, capsule('2020-06-01T17:48Z', now())) Now that I have defined my Previous, Current and Next runs I want to calculate the run time of each of those periods. I can do this in Seeq's formula tool using the time since function. This will allow me to create a signal whose value is the time since the start time of a condition. This signal will end at the end of the condition. In this case my time counter will be in hours, if you wanted it in days instead you would change the 1h to 1d. timeSince($condition, 1h) I duplicated this formula three times for my previous, current and next runs. Remember, you can always duplicate a formula by clicking the "i" by item properties. You can compare the run lengths of the 3 runs by putting them on the same lane and same axis. You'll noticed my Next Run has just started so the time since for it is much smaller. Lastly, you can switch to capsule time view to compare the run length as well as different signals over the run. In this case we are looking at the temperature of each run as well as the run length. You could imagine using this approach to monitor heat transfer coefficients, reactor temperature, reactor conversion, or % sulfur removed.
  12. Hi Marta I believe our support team has followed up with you separately. If you need anything else please let me know. Morgan
  13. Question: I have a scorecard metric displaying the maximum value of a signal during a given capsule. I have the Scorecard coloring red if the value is >2%. Is there any way to display a scorecard with just color coded cells containing no values? What I am seeing now: What I would like to create: Solution: In general, the approach to creating a blank scorecard with color thresholds is to create a string signal comprised of varying amounts of spaces for each threshold/band. Then you can apply that number of spaces as a color threshold in the Scorecard metric tool. 1) Create your "empty" string signal in Formula. In the example below, we have a baseline signal that is a completely empty string and we are splicing in a string containing two spaces any time the value of the original signal is greater than 2%. You can see that the empty string signal has what looks like a constant value each time the original signal is > 2%, but when you hover the cursor over the signal you see that it is actually blank. 2) Use Formula to create a scalar threshold value to select as your threshold in Scorecard. Note, in versions R22.0.47 and greater, string values are accepted as thresholds in the scorecard metric tool, so this step can be skipped. 3) Calculate your scorecard metric. For versions before R22.0.47, the tool input for the thresholds will look like this: For versions R22.0.47 and newer, you can use: 4) The final scorecard (validated against the original one containing values):
  14. Earlier
  15. Question: How do you calculate the cusum using Seeq? Answer: CUSUM is short for "cumulative sum." It is a formula used to determine the gradual change in a series of quantities over time. It can be easily calculated in Seeq with a few steps using point and click tools or with one Formula. Steps using point and click tools: 1. Use Periodic Condition to define the periods over which you want to do the cusum (hours, days, weeks, etc.). 2. Use Signal from Condition to find the average of the signal over the periodic condition. 3. Use Formula to do the signal minus the average. 4. Use Signal from Condition to calculate the sum of this new signal over the periodic condition. This will be your final answer, the cusum. Formula: You can copy this into Formula, name your desired signal $signal in the formula tool, and use your desired periodic condition if different than days: $Periods = days() $average = $signal.aggregate(average(), $periods, durationkey()) $difference = $signal - $average $difference.aggregate(sum(), $periods, durationkey())
  16. Hi Greg Since you already have a condition identifying when your signal changes, to identify the magnitude of the change all you need to do is use Signal From Condition. Here is an example of how it might look: In this case i am using "Range" because it will always give me a positive value of the change in my power signal. If i wanted to know if it was positive or negative I would use "Delta" instead. Here i am using the Duration as my timestamp so i can more easily accomplish the next step- filtering the original change condition. Since you want to count the number of instances the value changes by more than some amount, we can then filter our original condition (the one that identified the change) so it only retains the capsules where the change was over your threshold. To do this i will use Formula: In this case, i am filtering my Load Swing to keep capsules where the swing is greater than 25kW. You can see the filtered condition is shown in blue where my original Condition is shown in green. From here, you can use the Scorecard Metric to count the number of the filtered capsules. Hope this helps!
  17. I need a way to count the number of large and small signal changes of a varying signal. I have created a derivative signal that tells me when the signal is changing and then I created capsules when the derivative is larger than a value (0.1 in my case). Now I need to be able to take the value of the signal at the start of the signal change and subtract it from the values at the end of the capsule. Then I want to create a new capsule for anywhere the difference is greater that a certain value. What is the best way to accomplish this?
  18. hi, I downloaded the connector and then I configured Eclipse. When I run the connector, it tries to connect to localhost:34218, but my Seeq Server is available on localhost:34216. How to change the port numer in the connector from 34218 to 34216 ? please help.
  19. Hi Isaac, I created an example based on this demo data: First I recommend smoothing the signal to remove noise from it. Next step is calculating the derivative of the signal, which will be used to identify the periods of decreasing value and for determining the total quantity used: Periods with decreasing value can be identified by using Value Search: As you mentioned to calculate the amount only for a certain time period I created a time period for a specific shift. In this example the shift is 8h in duration and starts at 8 a.m.: By using within() you can extract that portion of a signal existing during a specified condition. In this case I want to keep the derivative only during the periods of decreasing value: Last step is calculating the amount for each shift: As this is just an example you may have to make adjustments to it regarding your needs. Hope this helps. Regards, Thorsten
  20. Hi all, Trying to set up a new Organizer Topic which tracks chemical usage which I can then use to form a report. I have a bulk hopper which decreases in weight as product is used but will also increase in weight when a delivery is taking place. So what would be the most simple way to only sum the decreases in weight over a certain period? Thanks!
  21. Changing a link a Topic will not affect the previous sheet if it is duplicated from it as you have seen.
  22. If I duplicate the organizer topic sheet and change one of them, link to different scorecard, visual, will this affect the other? I have tried that it doesnt affect it, just want to confirm it with you. Thank you
  23. Hello Felix, every item you create in Seeq is scoped to the current workbook by default. If you add another worksheet to the workbook you may find the signal under the "Recently Accessed" section in the Data Tab: If not present under "Recently Accessed" you can also search for it as you do with other items. You can pin the item for better acceessibility by clicking on the the "Pin" icon next to it. Anonther section "Pinned" is added to the Data Tab containing all pinned items: However, you have to add the signal to the Display Pane if you want it to be displayed. In case you want the item to be availabe in other workbooks as well, you can change the scope of the item to make it availabe globally. Be carefull: This action cannot be undone! Hope this helps. Regards, Thorsten
  24. You want to duplicate the workbook (the entire workbench analysis) not the worksheet (A page in the workbook). Duplicating the workbook will allow you to change the formulas.
  25. Hello there, In my worksheet, I used formula function to create a signal used in my boundary. i.e, 0.tosignal(). I found this signal only shows in the worksheet I created, not the others. if there a way to pin this signal? so that i can reuse the signal i have created. Thank you
  26. before I find when duplicate the worksheet, if I change the signal from value at end to average, both worksheets changes. Then I stopped duplicating them. From your post, seems like duplicating worksheet must has an asset tree ready? Thank you
  27. Felix, Without knowing exactly what you want it is hard to say what the best course of action is but I normally start with duplicating the workbook that I want to reproduce. After I have duplicated the workbook I would asset swap the tags if that is not possible then I would manually swap the tags. From there I would populate the topic as you did before. Hope this helps. Teddy
  1. Load more activity
  • Create New...