Jump to content

Lindsey.Wilcox

Administrators
  • Content Count

    34
  • Joined

  • Last visited

  • Days Won

    5
  • Points

    1 [ Donate ]

Lindsey.Wilcox last won the day on April 8

Lindsey.Wilcox had the most liked content!

Community Reputation

5 Neutral

Personal Information

  • Company
    Seeq
  • Title
    Analytics Engineer

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi Zohaib- Currently Seeq does not have the capability to send email notifications or alerts. However, this feature is on our roadmap and will be incorporated into a future version of Seeq. If you are interested in being "linked" to this feature request so that you receive notifications of our progress towards its implementation, please email support@seeq.com In the meantime, if you are using an existing notifications system (such as PI notifications) we may have the capability to integrate with the existing system to send the notification emails. Please get in touch with the Seeq contacts assigned to your account to learn more information about this option. Thanks, Lindsey
  2. Another option for creating conditions for seasons, would be to use the Custom Condition tool. The Custom Condition tool allows you to specify the start and end time of each capsule in a condition. Here I've used the Custom Condition tool to create a condition for seasons in 2019. This condition contains a capsule for each season:
  3. Update as of R21.0.41: As of the release of R21.0.41, the .toCapsules() operator has changed. As of this version, the operator may be used to create a condition that contains a capsule for every valid sample in an input signal (regardless of whether the value has changed). To create a condition that contains a capsule for every value change in an input signal (as done in the previous post), the toCondition() operator must be used.
  4. Update as of R21.0.41: As of the release of R21.0.41, the .toCapsules() operator has changed. As of this version, the operator may be used to create a condition that contains a capsule for every valid sample in an input signal (regardless of whether the value has changed). To create a condition that contains a capsule for every value change in an input signal (as done in the previous post), the toCondition() operator must be used.
  5. Capsule properties may also be used as column headers in Scorecard. More information on this can be found in this post:
  6. Background: A property can be added to capsules for further filtering and aggregation through Seeq tools, including Histogram. All properties on a condition are stored as string values. This post examines how to add a property to a condition and then how those properties may be used. Adding Properties to a Condition Capsule properties may be used to store important information such as, Product Codes, Batch IDs, and Recipes. There are three functions in Seeq Formula which can add properties to the capsules in a condition: toCondition() - Dedicated function to transform a signal into a condition which contains a capsule for each value change in the input signal. The value of the signal is stored as a property of the capsule toCapsules() - Dedicated function to transform a signal into a condition which contains a capsule for each valid sample in the input signal. The value of the signal is stored as a property of the capsule. setProperty() - Flexible function which is used to assign properties to each capsule in a condition. It is most commonly used in SQL queries to attach transactional information from a data source to a capsule in a condition. toCondition() This function creates a capsule for every value change in a signal. This may be useful on a Batch ID signal or operating mode signal. The toCondition() function creates a new capsule for each value change and automatically assigns the signal value to a capsule property called 'Value'. Using the toCondition() operator on the Compressor Stage example data creates a capsule for each distinct value in the signal. The following image shows the condition created from performing toCondition() on the Compressor Stage Example Data. A capsule is created for each distinct value in the signal. This property may be viewed by adding the Value property to the Capsules Pane. The .toCapsules() operator works similiarly, but instead creates a new condition with a capsule for each sample point (regardless of whether the value has changed). setProperties() This flexible function is used to assign properties to a condition. Users must assign both a property name and value. The following syntax is an example of how the .setProperties() operator can be used in Formula to assign properties to the capsules in a condition. This example assigns a property of "Batch" with a value of '23' to each capsule in a condition. $condition.transform($capsule-> $capsule.setProperty('Batch',23)) In the next example, a High Power condition was created using Value Search tool (power >25). The following syntax can be used to assign a property called "averagePower" to each capsule in the High Power condition. The value of this property is calculated as the average Compressor Power during each High Power condition. Executing this Formula results in a new condition that contains the averagePower property for each capsule. Using Condition Properties Condition properties can be used in different ways, such as to filter the capsules in a Condition or to aggregate the data in Histogram Condition Filtering Capsule properties can be displayed in the Capsule Pane by adding a column to the table. These property columns may also be sorted in ascending or descending order. Once capsules within a condition have properties assigned, the filter() operator may be used in Formula to create new conditions containing only a subset of the original capsules. For example, the following syntax generates a new condition that only has the capsules where the Value property is equal to OFF. $condition.filter($capsule-> $capsule.getProperty('Value').isEqualTo('OFF')) Histogram Within the Histogram tool, users can select Condition as the aggregation type to create bins using capsule properties. The following example creates a Histogram based upon the Value property in the toCondition() condition. The output is a Histogram with a count of the number of capsules with a Value equal to each of the four stages of operation:
  7. Use Case Background In this Use case, we have 2 signals: Signal 1 and Signal 2. We'd like to use Seeq to calculate the offset (in time) of the peaks in the two signals. The following steps can be used to perform this calculation. Analysis Steps 1. Use the Value Search tool to create a condition for the peaks. 2. Use the Signal from Condition tool (twice) to calculate the maximum value of each signal during the Peaks condition. Be sure to place the timestamp of the statistic at the point of maximum value. 3. Finally, use the following syntax in Formula to calculate the offset between each set of peaks. The result of this Formula is a new time series signal with a sample reporting the offset for each pair of peaks.
  8. Use Case Background Commonly, engineers are interested in calculating limits on a signal based upon the average and standard deviation. Additionally, there may be different modes of operation during which the performance - and limits - is different. This post describes how to develop mode based boundaries for a process signal to identify deviations from the normal or expected behavior. Mode Conditions In this example, I am interested in calculating boundaries on a Compressor Power signal based upon the mode of operation in a Compressor Stage Signal. (Note: These signals are from Example>Cooling Tower 1> Area A of the Example data shipped with each Seeq installation.) The first step is to identify the 3 stages of operation (Off, Running 1 Compressor, Running 2 Compressors) by performing a Value Search on the Compressor Stage signal: Average Compressor Power using Formula Next, I can use the Formula tool to calculate an Average Compressor Power signal, using the following variables and syntax: Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula // Identify a reference capsule over which the statistic is calculated. You can think of this as the golden batch period or the period in time that we know that the system was operating properly. $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") //Cut the single continuous time series signal (Compressor Power) into sections which correspond to the different modes of operation. This gives us three intermediate time series signals which only contain data for the three distinct modes of operation. $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) // Create three intermediate time series signals, one for each mode of operation. Find the average value of the time series signal during the reference time period for each mode of operation, and then turn that scalar into a time series signal which only exists in the appropriate mode of operation $highAve = $highSeries.average($refPeriod).tosignal().within($high) $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $offAve = $offSeries.average($refPeriod).tosignal().within($off) // Splice together the three time series signals into a single signal and step interpolate the $finalSeries $finalSeries = $highAve.splice($lowAve,$low,false).splice($offAve,$off,false).toStep() return $finalSeries Boundaries Using Formula To start, let's calculate the upper boundary as the average + 3 std dev. I can use the Formula tool to calculate this upper boundary using the following variables and syntax. Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) $highAve = $highSeries.average($refPeriod).tosignal().within($high) $highStdDev = $highSeries.standarddeviation($refPeriod).tosignal().within($high) $highBoundary = $highAve + $highStdDev*3 $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $lowStdDev = $lowSeries.standarddeviation($refPeriod).tosignal().within($low) $lowBoundary = $lowAve + $lowStdDev*3 $offAve = $offSeries.average($refPeriod).tosignal().within($off) $offStdDev = $offSeries.standarddeviation($refPeriod).tosignal().within($off) $offBoundary = $offAve + $offStdDev*3 $finalSeries = $highBoundary.splice($lowBoundary,$low,false).splice($offBoundary,$off,false).toStep() return $finalSeries Similarly, I can calculate the lower boundary as average - 3 std dev using the following variables and Formula syntax. Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) $highAve = $highSeries.average($refPeriod).tosignal().within($high) $highStdDev = $highSeries.standarddeviation($refPeriod).tosignal().within($high) $highBoundary = $highAve - $highStdDev*3 $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $lowStdDev = $lowSeries.standarddeviation($refPeriod).tosignal().within($low) $lowBoundary = $lowAve - $lowStdDev*3 $offAve = $offSeries.average($refPeriod).tosignal().within($off) $offStdDev = $offSeries.standarddeviation($refPeriod).tosignal().within($off) $offBoundary = $offAve - $offStdDev*3 $finalSeries = $highBoundary.splice($lowBoundary,$low,false).splice($offBoundary,$off,false).toStep() return $finalSeries Final Results Executing these 3 formulas results in 3 new time series signals: Average Compressor Power, Compressor Power +3sd and Compressor Power -3sd. The Customize menu in the Details Pane can be used to adjust how these signals are visualized on the screen:
  9. In reporting, users may be interested in creating a Scorecard that contains certain metric results over a variety of time periods, such as "April 2019", "Quarter 1", and "Year to Date", etc. This can be accomplished using the following steps: 1. Use Formula to create a condition that contains a capsule for each time period that you are interested in. Note that I assigned a property to each capsule; this text will be used as the column header in the scorecard: 2. Create a Condition based scorecard and add a metric for each item you are looking to calculate: 3. Finally, use the capsule property as the column headers:
  10. Thorsten- You have been linked to this feature request. Please let me know if you have any additional questions. Thanks, Lindsey
  11. Hi Thorsten- Currently, users are not able to leave comments in Viewing Only mode. I have entered a bug (CRAB-15843) to correct the tooltip, which incorrectly states that you may add comments (as shown in your screenshot). Additionally, the ability to add comments in Viewing Only mode is logged as a Feature Request (CRAB-13956). Please let me know if you would like to be linked to this item so that receive notification of any progress made towards its implementation. Thanks, Lindsey
  12. Hi Thorsten- In the first screenshot, the area of each box is actually the same, even though some boxes have different dimensions. As you observed, the size of your display impacts how the boxes are drawn. To adjust the box sizes via the API, please use the following steps: 1. On your Seeq installation, open the workbook that contains the Treemap and navigate to the API: 2. To get the ID of the asset that you would like to resize: a. Navigate to GET Assets b. Adjust the "limit" to 200 and click "Try it out!" c. In the Response Body, locate the asset to resize and copy the "id": 3. To resize the asset: a. Navigate to POST Item Properties b. Paste the asset ID into the "id" field. Use the following syntax in the "Body" field. [ { "unitOfMeasure": "", "name": "size", "value": 10 } ] The following screenshot shows a size 10, but this number may be adjusted. c. Click "Try it out!" 4. Navigate back to the Treemap and refresh the browser. The Treemap now reflects the adjusted size: Please let me know if you have any additional questions. Thanks, Lindsey
  13. Hi Kevin Thanks for providing additional details. Here are some steps that can be used to create a bar graph: 1. Use Formula to create a condition around "now". Here I've created a condition that has 1 capsule which is always the past 3 hours: Note that the "now()" operator is new as of R21.0.41. 2. Use Signal from Condition to create a signal that identifies the Value at End of the input signal in the Now Condition. Here I've created 3 new signals for the Value at End of the Area A, Area B and Area C temperature signals. For the Area A temperature signal, I select to place the timestamp at the start of the capsule, middle for Area B, and end for Area C. This ensures that the data points do not overlap each other. Alternatively, you can adjust the timestamp of the data points in Formula, as well. 3. Use the Customize Menu to display the data points as bars: 4. Finally, combine the signals into a single lane for easier comparison: Be sure to enable Auto Update so the Workbench Analysis is updated with the latest information as new data is available. Please let me know if these steps work for you. Thanks, Lindsey
  14. Hi Ruben- Are you referring to the Training Window in the Reference Profile tool? If so, the Reference Profile tool is designed to create a static profile, so it is not possible to define a dynamic Training Window (like the last 7 days). However, the latest version of Seeq (R21.0.41) introduced the now() operator in Formula, which may be used to compute dynamic, single-value boundaries. Here is an example of how this may be used. Given a temperature signal, lets create upper and lower boundaries as the (avg )+/- (2*std. dev.) of the past 7 days. The now() operator us used to define the time period over which the average and standard deviation are calculated 1. First, lets calculate the average of the temperature signal over the past 7 days: 2. Next calculate the standard deviation of the temperature signal over the past 7 days: 3. Now create the upper and lower limits: Please let me know if you have any additional questions. Thanks, Lindsey
  15. Hi Kevin- Would you be able to provide some additional information on this Use Case? Specifically, how do you plan to use the results of the analysis? If you are looking to determine the latest tag value displayed, this will be easiest using the Scorecard Feature in Seeq. 1. Navigate to Scorecard: 2. Add a Simple Metric that measures the Value at End of a tag: 3. Add additional metrics for each tag: 4. By default, the created Scorecard is based upon the period of time in the Display Range. To make sure that the Scorecard updates to always show the latest data, enable Auto Update: Please let me know if this solution will work for you. Any additional details you can provide would be helpful. Thanks, Lindsey
×
×
  • Create New...