Jump to content
  • To Search the Seeq Knowledgebase:

    button_seeq-knowledgebase.png.ec0acc75c6f5b14c9e2e09a6e4fc8d12.png.4643472239090d47c54cbcd358bd485f.png

Search the Community

Showing results for tags 'value search'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community Technical Forums
    • Tips & Tricks
    • General Seeq Discussions
    • Seeq Data Lab
    • Seeq Developer Club
    • Seeq Admin Forum
    • Feature Requests

Categories

  • Seeq FAQs
  • Online Manual
    • General Information

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Company


Title


Level of Seeq User

Found 14 results

  1. I want to identify the change in value of my signal after a change has occurred. My signal is generally constant (with typical noise) aside from when an event occurs during which there is a step change in the value of the signal.
  2. FAQ: I want to create a condition where a trend is within a specific range of slope so as to identify instances where it falls inside and outside these ranges. Is this possible?
  3. Here is a nice a simple example from a question emailed in this morning. This can be accomplished in a couple of minutes using a combination of Value Search to create a condition that captures our "Pump Running" state and Chain view to filter our trends to only those "Pump Running" time periods Step 1 - Create a condition that captures your event of interest. In our simple example that will be whenever the Stage tag is != to "OFF". This step can be much more complex and use the full range of tools in the "Identify" category to refine your search to exactly the periods relevant to your analysis. Step 2 - Switch to Chain View and zoom to range you want to look at. You can also now add any other signals that might be of interest to view in the context of your "Running" condition
  4. I'm trying to create a Value Search to only return deviations/outliers in my dataset, but can't think of a way to do so. For instance, the Value Search for the image below would return the date ranges of Jan 1 - Jan 11 and Apr 6 - May 11. I've tried creating a Reference Profile and Custom Conditions, but it's tricky because this variable can move up or down "smoothly", while these violent deviations/outliers can show up at any point. Most documentation and forum threads seem to cover filtering outliers, and not identifying them. Any help would be appreciated. Thanks!
  5. We often do calculations where we are interested in having one result if one condition is true and a second result if another condition is true. In this post we will discuss how to do this calculation in Seeq. We will create a new single signal which runs different calculations during different periods of time. This technique can be used to replicate "if" logic or "if / else" logic currently being used in excel. Example existing code from excel or other systems IF Temperature > 90 then show a result of (Temperature * 100) IF Temperature < 90F then show a result of (Temperature + 10) Step 1: Identify two modes of operation In the Tools tab identify the following conditions using the Value Search tool: Step 2: Use formula to reconstruct "if/then statement" using Seeq's Splice Tool Local Variables: Name Item Type $Temperature Temperature Signal $HighTempCondition Greater than 90 Condition Seeq Formula: $HighTempCalc = $Temperature * 100 $LowTempCalc = $Temperature + 10 $LowTempCalc.splice($HighTempCalc,$HighTempCondition) Section 1 - $HighTempCalc This is a local variable which is to be run during periods of high temperature Section 2 - $LowTempCalc This is a local variable which is to be run when NOT in periods of high temperature Final - $LowTempCalc.splice($HighTempCalc,$HighTempCondition) Combine your two series. Use the LowTempCalc series, unless you are in the High Temperature condition, in which case use the HighTempCalc Content Verified DEC2023
  6. Hi lots, Is there a functionality of "If...then...else" statements in formulars. Or is there at least a workaround? Thanks for your answer in advance!
  7. Hey there, My question splits into two parts: Firstly, I want to create a condition based on multiple criteria: if signal A equal to 3, B equal to 4, C is greater than 5 than condition is valid. I know i could create 3 individual capsule and overlap them. Is there a simple way to use formula to do so? Secondly, in my analysis i have 10 signals and associated conditions(alert), then I want to know in the past 7 days how many alert in total(repeated instance or capsule doesnt count) ? and How long is the total alert time? Thank you
  8. Background: When looking to identify trends or step changes in a signal, we typically recommend an approach of smoothing the signal, taking the first derivative, then identifying when that derivative is positive or negative. This method works well most of the time, but employing this technique in combination with others can be more effective at capturing trends/step changes when the value change in the signal is more subtle. Solution: When looking for step changes, we can use a technique of calculating a range of the signal on a rolling periodic basis and search for when the range exceeds some limit. We can then combine this condition with when the derivative is positive (increasing step changes) or negative (decreasing step changes) to capture our final condition. 1. Create a rolling window over which you will look at the range (max-min value) of the signal. In my example I used a 4h window every 30 minutes, because my tank draining events were typically never longer than 4h. Select the smallest time period that you can that is still longer than your longest draining event. periods(4h, 30min) 2. Use Signal from Condition to calculate the range (max-min) of your signal over each of the rolling windows. Make sure to place the time stamp of the statistic at the end of each rolling capsule. 3. Identify time periods when that range calculation is above some threshold. In this example we used a threshold of 2 based looking at the trend output of our step 2. If we zoom in on a smaller range of time, we see that our capsules for when the range value is high actually extend beyond the completion of our decreasing signal. 4. We can intersect this condition that we have identified for high range in the signal with a condition for when the derivative of the signal is negative to capture our desired events. First calculate the first derivative of the signal. We apply a smoothing agileFilter in this step as well to remove signal noise. $tlth.agileFilter(2min).derivative() 5. Identify when that derivative value is less than zero using the value search tool. 6. Now take the intersection of the condition for negative derivative of the level and the condition for high range. The final view of the original signal and the events identified: Use chain view to validate your calculations: Content Verified MAY2024
  9. Seeq is often used to contextualize data with respect to production runs. These product runs may be a text or string signal that is the product code, or a very large numerical signal. Users commonly use Value Search to find a specific product run to further analyze. If they want to work with a couple of similar product runs, for example ones that start with or end with the same few letters or numbers, a few Value Searches followed by Composite Condition may be acceptable. This approach may not be realistic if there are hundreds of different product codes to analyze. Recently a user asked for a trim function because they wanted to categorize all product codes by the first few letters the product code. For example, ABC-123-XYZ and ABC-456-DEF would both fall under the "ABC" product category. In Excel, users might use something like the functions LEFT and RIGHT to return the first few characters (LEFT(3) in this ABC example). One way to do this text or string manipulation in Seeq is to use the replace() function with a regular expression. Regular expressions can be intimidating to those who have not used them before, but they can also be very powerful. A little exploration on sites like https://regex101.com can help evaluate what kind of regular expression is appropriate for a specific use case. Given the above example product codes, the below Seeq Formula incorporates a regular expression within the replace() function to parse the string signal by the "-" and then return only the first part of that parsed string based on the "$1". $productcode.replace('/(.*)-(.*)-(.*)/', '$1') I could similarly categorize by the last three characters with a function like $productcode.replace('/(.*)-(.*)-(.*)/', '$3') Once this simplified text signal is available, any other tools can be used in the analysis. If the product code was a very large number instead of a string, apply toString() to benefit from the replace() function. There are often many ways to solve a problem. An alternate approach to categorize product codes like this might be to pair toCapsules() and filter() off the Value property in Formula. Perhaps the best solution is incorporating regular expressions into Value Search like in the example below to create conditions any time the product code starts with ABC (/^ABC.*/) or any time it ends with XYZ (/.*XYZ$/). The slashes here indicate regular expressions should be used, similar to searching with regex in the Data Pane. But this approach is likely not obvious or easy without a little experience with regular expressions. So while regular expressions may feel foreign at first, do not be intimidated! They really can pay off in the long run.
  10. Is it possible to create an inverse or NOT capsule? For example, I have capsules that mark equipment failures, I would like a capsule that is the inverse of failure, not failed. The reason I would like to do this is so I can aggregate run hours between failures. Thanks for any pointers! Regards, Ivan
  11. Hi- I'm looking for some help. How do I calculate the total amount of time that my line is running per day? Thanks! Sam
  12. There are many use cases where the user wants to do an aggregation over a periodic time frame, but only include certain values. For instance, in this example, we aim to calculate the average daily compressor power but only when the compressor is Online. 1. First, use Value Search to identify when the compressor is ON, which in this example is when the compressor power > 0.5 kW. 2. Then, use the 'Within' function in the formula tool to filter the signal to only include samples when the compressor is ON. 3. Create daily condition using either 'Periodic Condition' or 'Formula' Tool. 4. Finally, use 'Signal from Condition' tool to calculate average daily compressor power when it's ON. Content Verified MAY2024
  13. Background: I have a sensor that shows a step change in the amplitude of the signal noise a couple of days prior to instrument failure. It would be useful to be able to identify that step change in the amplitude of the noise so that preventative maintenance can be scheduled rather than running the instrument to failure and causing an unplanned shutdown or production loss event. Solution: Use a combination of Formula and the Value Search tool to identify when this increased signal noise is occurring. Starting signal: 1. Use Seeq Formula and the runningDelta() and Abs() functions to calculate the absolute value of the running delta of the signal of interest. The formula code to achieve this is: //calculates absolute value of running delta of signal $signal .runningDelta() .abs() 2. Use the Value Search tool to identify the periods of time when this absolute value of running delta signal is above some threshold. In this example we use the remove short capsules/gaps functionality to remove capsules and gaps shorter than 1 hour to capture a single event each time the instrument noise increases.
  14. Goal is to create a string signal that shows the different operation modes in a device at each time. Step 1. Create the sample modes using Values Search Tool, Advanced Search: Value Search Tool, Advanced Search Step 2. Create a continuous condition called “Mode” comprising all three (startup, steady state, shutdown), and assign a property to each capsule to identify the mode. for more information please look at the following link: Set property to a capsule Formula for creating the mode with property condition: $ShutDown = $Shutdown.setProperty("Mode", "ShutDown") $StartUp = $Startup.setProperty("Mode", "StartUp") $steady = $Steady.setProperty("Mode", "Steady") combineWIth($StartUp, $steady, $ShutDown) Step 3. Use the Formula Tool to create a string signal using the "mode with property" condition and shows the mode of the input signal at each time. Here is the formula for creating the string signal (Mode is the Mode with property condition in here) : $inputsignal.transformToSamples( $capsule -> sample($capsule.getStart(), $capsule.getproperty('Mode')), 10d)
×
×
  • Create New...