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

Calendars

  • Community Calendar

Categories

  • Seeq FAQs
  • Online Manual
    • General Information

Categories

  • Published
  • Code
  • Media

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 19 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. 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. 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:
  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. Summary There are many use cases where the user wants to do an aggregation over a periodic time frame, but only include certain values. Examples abound: for cement calculate the average daily clinker production only when the kiln is running, for biotech pharma the standard deviation of dissolved oxygen only when the batch is running, etc. Here our user is looking into equipment reliability for compressors. She wants to calculate the average daily compressor power to examine its performance over time. Steps 1. Add the signal into Seeq. 2. Use the 'Periodic Condition' or 'Formula' Tool to add a condition for days. This doesn't have to be days, it can be any arbitrary time, but it is usually periodic in nature. To use a custom periodic Condition, consider using the periods() function. For example to do this for days, the formula is: periods(1day) As an example, to change this to 5-minute time periods the formula is: periods(5min) Here are how the days and statistics in the Capsule Pane look for her: 3. Find only the desired values to be used in the aggregate (e.g. Average) statistic. From the values in the Capsule Pane she sees that the average compressor powers results are too low. This is because all the time when the compressor was OFF, near 0, are included in this calculation. She wants to only include times when the compressor is running because that will provide a true picture of how much energy is going into the equipment - and can indicate potential problems. To do this, she creates a 'Value Search' for times to include in this calculation, in this case when the Compressor is ON or > 0.5kW. 4. Create a new signal to only have values *within* the 'Compressor ON' condition. Use the aptly named 'within' function in the 'Formula' Tool. Notice how the resulting Signal in the bottom lane only has values within the 'Compressor ON' condition. Now she can use this because all those 0's that were causing the time-weighted Average to be low... are now gone. 5. Examine the resulting statistical values. She now sees that the calculations are correct and can use this resulting 'Compressor Power only when ON' Signal in other calculations using 'Signal from Condition', 'Scorecard Metric', and other Seeq Tools!
  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)
  15. Hi All, I'm dealing with batch data ,where in i need to get a batch duration ( which is not fixed for all the batches data). Do we have any ways to get a capsule for each of the batches duration to distinguish all the batches separately. Regards, Jitesh Vachheta
  16. Hi All, I've got few Scaler values in my data-set (E.g High,On,OFF) , I have convert all of them into Capsule by toCapsule() Function. Now wanted to remove only those capsules which are having "OFF" Status. Regards, Jitesh Vachheta
  17. Overview: This example explores two methods for assessing equipment operating conditions per unit of time (i.e. total operating hours per week in this example) using the Signal from Condition tool and Histogram. The Signal from Condition approach creates a new signal using an equation or statistical function. The Histogram approach transforms a signal into a "value" domain, plotting the distribution of values over a period of time. For these examples, we will use “Compressor Power (Area A)” from the Seeq demo data and asset framework, which has routine ON/OFF operating cycles. The objective in this example is to create Derived Data signals to indicate when a compressor is running and calculate operating hours per week. Workflow: 1. Add target signal -- in this analysis we will use Compressor Power (Area A). 2. Complete a Value Search to determine when the equipment is running. In this example, I searched the compressor power signal for when it is above 5 kW which indicates it is running. 3. Using Periodic Condition, create a Weekly Signal. 4. Create a new signal Compressor Run Hours Per Week using Signal from Condition Tool. 5. Customize the Signal from Condition as a Bar Graph -- click the Customize button in the Details Pane and select the Bar Chart Icon under the Samples column. Each bar represents the total operating hours of the compressor each week. 6. Histogram Aggregated by Calendar Week- In this example, we have created a Histogram, Avg Compressor Run Hours per Week, which calculates the average value of the derived-signal, Compressor Run Hours per Week, aggregated by calendar week (Week of Year). Content Verified DEC2023
  18. Use case: A piece of equipment has a start-up sequence in which it goes through different discrete states sequentially before completing the sequence and reaching steady state. When the equipment is off, the state is 0. When the equipment enters the start-up sequence it cycles through states 1-6 in the pattern "1-2-3-4-5-6". A successful start-up sequence will have all 6 states in the pattern "1-2-3-4-5-6." If a disruption occurs at any point in the start-up sequence the state number will read as state 7, thus a failed start-up sequence could have the pattern "1-7", "1-2-7", "1-2-3-7", etc. This use case describes methods to identify only the successful start-up sequences. Approach 1: If the signal for the state is numeric (e.g. with discrete numeric values of 0-7) 1. Create a new signal that is the running delta of the STATENUMBER signal. Use Seeq Formula and syntax: $statenumbersignal.runningDelta() 2. Create a new condition for all start-up sequences using value search for when the runningDelta signal just created is greater than or equal to zero. 3. Calculate the delta in your STATENUMBER signal over each start-up sequence. This value should always be equal to 6 or 7 as the sequence will either complete successfully (go to 6) or fail and end with a value of 7. Use the signal from condition tool to calculate this. 4. Create a new condition for when this delta in the STATENUMBER signal just created is equal to 6. This must be done in Seeq formula (there is a known issue in using value search for this operation) with the following syntax: $deltaInSTATENUMBERsignal.valueSearch(isEqualTo(6)) Approach 2: If the signal for the state is a string that is easily convertible to a numeric signal. This example is a string with discrete values "STAGE0", "STAGE6", etc. 1. In Seeq formula, use the replace() function with the following syntax: $StringSignalForStateNumber.replace('STATE','') 2. In a new Seeq Formula Window apply the toNumber() function to the signal created in step 1 with the following syntax: $SignalFromStep1.toNumber() - this will create a numeric signal with discrete values of 0-7. Approach 3: If the signal for the state is a string value, not easily converted to a numeric signal or if you wish to proceed using the string signal. 1. Use Value Search to identify STATE6 2. Use Value Search to identify STATE7 3. Use Composite Condition (union operator) to create a combined condition "finalStateinSequence" for the final state in sequence, either STATE6 or STATE7. 4. Use formula to create a condition for all start-up sequences (successful and failed). Syntax: $FinalStateInSequence.inverse().move(0,1h) This formula code is identifying all of the time when the final state in sequence condition is not true and extending those capsules by a short amount of time so that the final state value is contained within the "all start-up sequences" capsules. 5. Use Signal from Condition to identify the ending STATENUMBER value for each of the start-up sequences. 6. Identify your successful start-up sequences by doing a valueSearch in Formula to identify when the ending STATENUMBER is equal to STATE7. Formula syntax: $endingSTATENUMBERsignal.valueSearch(isEqualTo("STATE7")) Content Verified DEC2023
  19. Issues with different devices can lead to shutdowns and failures. In this example we want to monitor the duration of each operation mode of an input signal. This example can be used to monitor all the conditions that can lead to inefficient device performance. In order to monitor all operation modes we need to, 1. Create all the modes using Value Search Tool. a. StartUp (input < 75) b. ShutDown (input > 95) c. SteadyState (75 < input < 95) 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 post: A Guide to Working with Capsule Properties $ShutDown = $Shutdown.setProperty("Mode", "ShutDown") $StartUp = $Start.setProperty("Mode", "StartUp") $steady = $Steady.setProperty("Mode", "Steady") combineWIth($StartUp, $steady, $ShutDown) 3. Finally, calculate the total time per mode using Histogram Tool. For more information on Histogram Tool please see the following link: Histogram Tool Content Verified DEC2023
×
×
  • Create New...