Jump to content
  • To Search the Seeq Knowledgebase:


Search the Community

Showing results for tags 'workbench'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


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


  • Seeq FAQs
  • Online Manual
    • General Information

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Level of Seeq User

Found 11 results

  1. Hello, I have created a program whose task is to pull data from a server, apply some calculations to obtain some calculated values with metadata associated to them and finally push values and metadata to the Seeq Workbench. In the Workbench, the pushed signals are organized in different Worksheets. The program is automatically ran every hour using spy.jobs and the values are 'stored' in the Workbench so to create a time series of hourly points. A scorecard metric was created for every pushed signal in order to visualize the data in 'Calendar' mode in the Worksheet. While the system is working properly most of the time, it happens sometimes that all signals get deleted from some Worksheet for apparently no reason. It happens to random Worksheets at random moments (first time was few months ago and last time was a week ago). The signals get deleted from the Worksheet only and not from the Seeq Database, so that the problem can be solved by searching the pushed signals one by one in the 'Data' panel of the Workbook and select them again. Of course, restoring the Worksheet is a tedious work given the high number of signals. Hereafter, there is a diagram for the data flow, maybe it can help find the problem. Thank you, Francesco
  2. In this video, we will show an overview of Seeq Workbench and the core application features, including creating a new Workbench analysis and Worksheets, navigating your Seeq home page, and other basic concepts.
  3. In this video you will learn how to publish Seeq notifications to Microsoft Teams using Webhooks. For this example, we will summarize all the high temperature events from several assets we are monitoring using an asset tree. We will send summary of these events to Microsoft Teams on a regular basis.
  4. This video provides a brief overview on how to set up and manage user-configurable email Notifications in Workbench and Organizer using a simple point-and-click interface.
  5. Use Case Background In certain use cases, it can be advantageous to move data forward or back in time. You may move signals as part of a data cleansing step in a cause and effect analysis, prior to performing a regression, or simply as a more intuitive visualization. Here are some specific examples where this might be useful: Comparing a process variable to a process setpoint when the process variable lags the setpoint. Aligning inputs and outputs in unit operations where there is a known lag or residence time: In a plug flow reactor analysis, you may want to line up the outlet flow rate with the inlet flow rates after a known residence time. In a conveyor belt analysis, you may want to compare a widget created with an input variable upstream. Aligning lab data with process data. Moving a signal in time is easily accomplished in Seeq using the Formula tool and the function .move() Moving a signal forward in time 1. Search and select the relevant signal in the data tab and click to add it to the trend. 2. In the Tools tab, select the Formula tool. 3. Give the formula an appropriate name and enter the following formula. Make sure to match the variable name in the formula tool. Here, $cp represents the Compressor Power signal I want to move. $cp.move(3h) 4. Execute the formula. You will now have a new signal where the data is shifted forward in time. Moving a signal back (earlier) in time Follow steps 1-4 above, but in step 3, use a negative sign to indicate moving the signal earlier. $cp.move(-3h) Moving a signal by the value of another signal Example use case: Oftentimes, lab data is associated with the time the lab technician completed the test and recorded the results instead of the time when the sample was obtained from the process, which could be hours or days earlier. In order to do a root cause analysis, it would be useful if the quality results lined up with when the sample was obtained. The data could be moved using a static value, like the examples above, but if there is relevant data that can be used to dynamically shift the time period based on when the sample was actually taken, that may be more accurate and useful. In this case, $labData is the lab result with the original timestamp, and $lagTime is the difference in time from when the sample is taken and when the sample result is recorded. By inputting this into the .move() function we can dynamically move the quality data to line up with the actual process conditions using the formula below. To do this, follow steps 1-4 above, but in step 3, use another signal as your first formula parameter and the second parameter representing the maximum you want to move any given sample. $labData.move($lagTime, 5min) In the above example, $labData will be moved by the value indicated in $lagTime, up to 5 minutes, the maximum any sample will be moved. Content Verified DEC2023
  6. There are times when we'd like to view histograms in a monthly view ordered chronologically by the starting month in the display range. This post reviews the results of 3 different methods of utilizing Histogram vs Signal from Condition. All 3 examples show the same results but differ in how the results are displayed. Example 1: This method displays histograms by order of Month, thus, January will show first with December showing last, even though the display range is set from 7/26/2017 - 7/26/2018. As a result, we are not always looking at data in chronological order with this method. Simply goto your Histogram tool, select your signal/condition & statistic, then select Time as aggregation type --> Month of Year. Continue to Execute. Example 2: This method will ensure your Histogram is in chronological order, first ordered by year, then by month. The caveat to this is the spacing of all bars in the display window is not held constant (a gap between years will be observed). Go back to the Histogram tool, select your signal/condition & statistic, then select Time as aggregation type --> Year. After this, select Add grouping. Again, select Time as aggregation type --> Month of Year. Continue to Execute. The color gradient can be changed by changing the main color in the histogram. Individual bar colors can also be changed by clicking the respective color box in the legend (top right of histogram). Example 3: This method will produce equally spaced bars in chronological order with no color gradient. To achieve this, we will use Signal from Condition. First, we need to create our condition. Because we are interested in a Monthly view, we can navigate to our Periodic Condition tool under Identify; Duration-->Monthly (All). Timezone can be specified and any shifts to the resulting capsules can be applied under Advanced. Now that we have our condition, we can proceed to our Signal from Condition tool under Quantify. As with the other examples, select your signal/condition & statistic. The bounding condition will be the Monthly condition we just created. For this use case, we will want our timestamp to be at the start of each capsule (month), and the interpolation method to be Discrete so that bars will be the resulting output. The output may have skinny bars and non-ideal axis min/max. This can be adjusted by clicking Customize in the Details pane. For this example, I used a width of 50, and axis min/max of 0/1.25.
  7. Sometimes when looking at an xy plot, it can be helpful to use lines to designate regions of the chart that you'd like users to focus on. In this example, we want to draw a rectangle on the xy plot showing the ideal region of operation, like below. We can do this utilizing Seeq's ability to display formulas overlaid against an xy plot. 1. For this first step, we will create a ~horizontal line on the scatter plot at y=65. This can be achieved using a y=mx+b formula with a very small slope, and a y-intercept of 65. The equation for this "horizontal" line on the xy plot is: 0.00001*$x+65 2. If we want to restrict the line to only the segment making the bottom of our ideal operation box, we can leverage the within function in formula to clip the line at values we specify. Here we add to the original formula to only include values of the line between x=55 and 5=60. (0.00001*$x+65) .within($x>55 and $x<60) 3. Now let's make the left side of the box. A similar concept can be applied to create a vertical line, only a very large positive or negative slope can be used. For our "vertical" line at x=55, we can use the following formula. Note some adjustment of the y-axis scale may be required after this step. (-10000*($x-55)) 4. To clip a line into a line segment by restricting the y values, you can use the max and min functions in Formula, combined with the within function. The following formula is used to achieve the left side boundary on our box: (-10000*($x-55)) .max(65) .min(85) .within($x<55.01 and $x>54.99) The same techniques from steps 1-4 could be used to create the temperature and wet bulb max boundaries. Formula for max temp boundary: (0.00001*$x+85).within($x>55 and $x<60) Formula for max wet bulb boundary: (-10000*($x-60)) .max(65) .min(85) .within($x<60.01 and $x>59.99)
  8. Frequently Asked Question: Is there a way to change the color of my signals overlaid in capsule time view to highlight the different capsules? Solution: One approach to changing the color of the signal being overlaid in capsule time view is to create separate signals for each desired display color that only contain samples during specific capsule(s). The examples below provide a step-wise approach to coloring based on either logic or time. Logic Based Coloring: Scenario: We start out with a temperature signal that we are overlaying based on a daily condition. We want the temperature signal to show up in red if the daily average temperature is greater than 80F, and blue if the daily average temperature is below 80F. 1. Switch back to calendar view and calculate the Average Daily Temperature using the Signal from Condition tool. In this example, we choose the "duration" time stamp to simplify subsequent steps. 2. Use the Value Search tool to identify days in which the Average Daily Temp signal is greater than 80F. 3. Repeat step 2 to find the days where the average daily temperature was below 80F. 4. Use Formula to break the original temperature signal into two pieces, one when daily average temperature is above 80F, and one when then daily average temperature is below 80F. The formula code to complete step 4 is: //take the temperature signal and keep only samples within the Avg Daily Temp < 80F condition $temp.within($DailyAvgLow) 5. Finally, switch back to capsule time view, and use dimming to display only your new "Temp signal during High Avg Daily Temp" and "Temp signal during Low Avg Daily Temp" signals. Use the "One Lane" and "One Y-axis" buttons to display in a single lane on the same axis. Time Based Coloring: Scenario: We have a temperature signal and we want to overlay data from the last 4 weeks in different colors so we can easily see changes in the signal from week to week. 1. Use Formula to create a condition for the past 7 days. //Create a condition with max capsule duration 8d, comprised of a single capsule that begins at now-7d and ends at the current time. condition(8d,capsule(now()-7d,now())) 2. Use Capsule Adjustments in Formula (move() function) to create a capsule for 2 weeks prior. //Shift the capsule for last week back in time by 7d. $lastWeekCapsule.move(-7d) 3. Repeat step 2, shifting by -14d and -21d to create capsules for 3 weeks prior and 4 weeks prior. 4. Use Formula to break the original temperature signal into 4 pieces, one for each of the previous 4 weeks. //Create a new signal from the original temp signal that contains only samples that fall within the prior 7d. $temp.within($lastWeek) 5. Switch to capsule time view, and put all the new temperature signals on one lane and 1 y-axis.
  9. In the visual the signal show solid line till July 26 and then shows dash line after. What is this mean? Could it be uncertainty ?
  10. As a Seeq user, you may have created a condition for a particular event of interest and would like to create a signal that is the running count of these events over a given time period. This analysis is common in equipment fatigue use cases when equipment degrades slowly based on a number of cycles (thermal, pressure, tension, etc) that it has undergone during it's life or since a last component replacement. This use case can be done very efficiently in Seeq Formula. The assumptions for the below solution are: You have a condition ($condition) of interest that you would like to understand the running count for There is a defined timeframe of interest, where counting will start and end. Note the end date can be sometime in the future. For the below example, this condition is referenced as $manualCondition, but could very well be another condition that wasn't created via the Manual Condition tool. Just note that for each capsule in this condition, the count will restart at 0. Solution - Utilize the runningCount() formula function: 1) runningCount() currently only accepts signals as inputs, so convert your $condition to a signal by using .toSignal(), which produces a single sample for each capsule: $condition.toSignal(SAMPLE_PLACEMENT) SAMPLE_PLACEMENT should be specified as startKey(), middleKey(), or endKey(). If you want your count to increase at the start of each event, then use startKey(). If wanting the count to increase in the middle or end of each event, then use middleKey() or endKey() 2) Use the runningCount() function on the signal created above. $signal.runningCount($conditionToStartAndEndCounting) Both steps are shown below in a unified Formula: /* This portion yields a SINGLE point for each capsule. startKey() generates the point at the START of each capsule, where middleKey() and endKey() could also be used to generate a point at the MIDDLE or END of each capsule. Where these points are placed matter, as that is the point in time the count will increase. */ $samplePerCapsule = $condition.toSignal(startKey()) /* This portion yields the running count of each sample (capsule). The 15d in toStep() can be adjusted. Ideally this number will be the duration of the longest expected time between two events that are being counted. */ $samplePerCapsule.runningCount($manualCondition).toStep(15d) .toStep(15d) ensures the output signal is step interpolated, interpolating points at most 15 days apart. If step interpolation is not required, then this can be removed or replaced with something like .toLinear(15d). Below shows the associated output. Content Verified DEC2023
  11. 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):
  • Create New...