Jump to content

Allison Buenemann

Super Seeqer
  • Posts

    72
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by Allison Buenemann

  1. Hi Adam, I have a couple of questions regarding the behavior you are seeing and how it may be related to the screen resolution. In the example screenshots below, I am working with R22.0.46 on a Dell XPS15 (2018 version) laptop and a 25 in HP monitor. Screen capture from my 25"monitor at 75% zoom using Google Chrome: When I zoom in to >80% and out <70% the lower case "i" is easily distinguishable. Screen capture from my 25"monitor at 90% zoom using Google Chrome: Screen capture from my 25"monitor at 67% zoom using Google Chrome: When viewing this formula window on my actual laptop screen, the small "i" is visible throughout all ranges of browser zoom. I would be interested to know which browser you are using, if you are viewing directly on your laptop or using an external monitor and what the zoom setting is on your browser. I'd also be interested in which (upper or lowercase) form of "i" seeq inserts in the Formula when you use the auto-complete version of the formula variable. You can test this by typing "$" in the formula editor and selecting your variable name from the drop down that pops up. Thanks! Allison
  2. FAQ: I would like to capture the value of a signal at the exact center of each capsule within a condition. Is there a way to do this with Seeq? Solution: 1. Begin with your signal and the condition over which you want the middle value in the display pane. 2. Open a new formula window and use the getMiddles() function to create a zero length capsule at the center of each capsule within your condition of interest. $myCondition.getMiddles() Note, depending on which tool what used to create the red condition shown in your screenshot, you may need to add a max capsule duration during this step as well. If you receive an error saying that the condition needs a maximum duration, try instead: $myCondition.removelongerthan(1d).getMiddles() the 1d in the removelongerthan() function above applies a max capsule duration of 1d to $mycondition. Ensure your max capsule duration is longer than the longest capsule in your condition. 3. Now you can use the Signal from Condition tool to calculate the value of your signal during each capsule of your "middle of each capsule" condition. Note: The statistic you select is not important here because the capsule is infinitesimally small so Average, Median, Value at End, etc will return the same value. The final result in chain view:
  3. In newer versions of Seeq, we have a formula operator designed to do exactly this task. In the example below, I have a signal with gaps where valid data does not exist. I can use formula to replace the gaps with 0. The formula is the following: $signalwithmissingdata.replaceNotValid(0) The output of this formula is: Content Verified FEB2024
  4. The "last value" statistic is now an option that you can add to the details pane. Click the "+" icon highlighted below, and select "last value" to show the most recent value of a signal. Note that this will display the last value of the signal in the display pane, so make sure your date range is updated to end at the current time by clicking the "step to the current time" arrow to the right of the display range interval.
  5. The "!" operator for "not" is also now supported in Seeq Formula. The same condition that Morgan created above can be returned by: !$s2 More information on this syntax can be found in the Formula Documentation on the inverse operator.
  6. Hi Kathryn, I realize my last comment in my original response may have been a little vague. Who is your contact at Seeq Corporation? I can reach out to them to determine if the Honeywell license in South Africa includes Seeq Data Lab. Thanks, Allison
  7. Hi Kathryn, Once you've got your alarm data into Seeq (using either the Import from CSV tool, Directory Watch, or connecting directly to the database), I would test the following approach on a single alarm type: 1. Keep your periods(1min) condition - this will be useful for alarm filtering. 2. Create a value search on the alarm signal for when it is equal to 1. 3. Use the composite condition tool "touches" logic to identify which of your 1 min periodic capsules have an active alarm during that time frame. Note in the composite condition tool interface, the selection of condition "A" and "B" will affect the result. Make sure that the 1 min interval is selected as condition A and alarm active is condition B. 4. Once you've got the final condition for 1 min intervals that contain an active alarm, you can either create a new 1-0 status signal that has value 1 for the minutes when there was and 0 the rest of the time, or you can aggregate the new condition directly using Seeq's signal from condition of scorecard metric tools. To use formula to create a new 1-0 signal for visualization: $zero = 0.tosignal() $one = 1.tosignal() $zero.splice($one,$condition) To aggregate count of 1 min periods per day that had an active alarm: Create a daily periodic condition Create a scorecard metric of the count of 1 min containing active alarm capsules per day In order to do this on a moving time period, like say a 1 minute window, every 30 sec, you would use the following formula when creating our periodic condition: periods(1min,30sec) If the above solution does not work specifically for this use case, let me know and we will try another approach! For scaling this calculation method up to a large number of alarms, there are a couple of different approaches that involve using some of Seeq's scripted tools, or the newly announced Seeq Data Lab. I would reach out to your company's Seeq Analytics Engineer on the account to discuss these different options as they will require a little bit of set up time. Thanks, Allison
  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. Hi Jules! I think that we can come up with a better solution than that shown above to address your particular problem. Here is the generalized approach that I would take as well as an example below. Start by doing a Value Search on your state signal for each of State 3 and State 2. Then use Formula to Join State 3 (condition A) to State 2 (Condition B) inclusive of A and B. Once this is done, I would follow a modified version of steps 2 and 3 in the post above to limit the capsules you created using the composite condition tool to only those who go directly from state 3 to state 2. Here is an example on some fake data that I have generated. I've got a signal that cycles through a series of states [STATE0,STATE1,...,STATE7]. I want to identify only the periods of time when I transition from STATE1 to STATE7 with no other states in between (the pink capsules sketched on the image below). 1. I identified conditions for State 1 and State 7 using the Value Search tool. 2. Use the Formula below to create a capsule that joins the beginning of each state 1 capsule to the end of each state 7 capsule. Note that we use Formula rather than Composite Condition and the Join operator so that we can include the optional 'false' input. //Use the join function to connect the start of state1 capsules to the end of state7 capsules. //Use a max capsule duration of 30d. //'false' tells Seeq to make the shortest capsule that joins the two states. You can experiment with 'true' and examine how the results change. join($S1, $S7, 30d, false) 3. Use Formula to assign the sequence of states cycled through over the 'Join State 1 to State 7- Short' condition as a property of the capsules. $JoinCondition .transform( $cap -> $cap.setProperty('sequence', $state.toCondition() .toGroup($cap , CAPSULEBOUNDARY.INTERSECT) .reduce("", ($seq, $stepCap) -> $seq + $stepCap.getProperty('Value') ))) Check out the results by adding the 'Sequence' property to the capsules pane. 4. Now filter this 'Add sequence as capsule property condition' for only capsules that have the property 'Sequence' equal to 'STATE1STATE7'. $condition.filter( $capsule -> $capsule.getProperty('sequence').isEqualTo('STATE1STATE7')) The final result:
  10. FAQ: When in Scatter Plot view, is it possible to see the time stamp of a given sample? Specifically, I would like to know when outliers are occurring so that I can navigate back to trend view and further investigate what else was going on during that time frame. How to visualize the time frame: The best way to find a time frame of an outlying data point with the current version of Seeq is to make a condition that encapsulates that data point. The following example shows how to identify what your condition should be, create a condition, color code your scatter plot to highlight samples that occur during your capsules, and view the start and end time of your capsules in the capsules pane. 1. We have a scatter plot comparing two variables with some outliers, and we would like to know what the time stamps are when those outliers are occurring. In the example shown below, we have outlying data points when the Coil Inlet Temperature is below about 460F, and when the Flue Gas Exit Temperature is below about 805F. 2. We will create a condition for each of the outlying data point scenarios described above. In this example, we will do so using a simple value search for each. 3. Now when we return to scatter plot view, we have the ability to color our scatter plot based on various capsules. In versions prior to R.21.0.44, this is done using the "Capsules" button at the top of the Scatter Plot Display. In R.21.0.44 and later versions, this is done with the "Color" button. You can select Color based on conditions, and add your conditions. Then your scatter plot will show samples that fall within the capsules of your conditions in the color specified for your condition in the Details pane. 4. Add the capsule end time to the capsules pane to get the full time range that you want to further investigate in trend view. You can also utilize Seeq's Chain View feature from trend view to view what was going on with your signals of interest during your conditions.
  11. Hi Ali, Both the methods that you and Thorsten describe above will work absolutely fine for what you are hoping to achieve in Seeq. Although the first method that you described produces a warning, Seeq's calculations will still complete (it is only when an error is received that the calculations do not complete). The warning is just there to let you know that you have gaps in your signal, in case this is something that you did not want. In your case, you are explicitly trying to create gaps in this data, so either Thorsten's within() method can be used, or you can simply ignore the warning. Thanks, Allison
  12. Hi Jitesh, What was your input condition that you were repeating this signal over? Thanks, Allison
  13. FAQ: We have various conditions that are calculated from signals on a variety of different equipment and assets. We would like to view them in a histogram that is broken out by month, and for each month each asset has a separate bar in the histogram. Example Solution: 1. For three signals, we want to create a histogram that is the total time per month spent above some threshold. In this example, each signal is associated with a different cooling tower Area. 2. We have a condition for when each signal is above it's threshold value. These conditions were created using the value search tool. 3. The three conditions can be combined into a single condition (here it is called "Combined In High Mode w Area as Property"). In the formula tool, before combining the conditions, we assign each condition a property called 'Area' and set the value as that particular asset area. Once the properties are set we use the combineWith() function to combine them into one final signal. The formula syntax below will achieve this: //Create a new condition for each original condition that has a property of 'Area'. $A=$AHigh.setProperty('Area','Area A') $G=$GHigh.setProperty('Area','Area G') $I=$IHigh.setProperty('Area','Area I') //Combine the new conditions created into a new condition with all of the high power modes where each capsule //has a property of 'Area' that describes the signal that was searched to identify that original condition. combineWith($A,$G,$I) ***Note: the combineWith() function in Seeq Formula is required here because it will retain capsule properties of individual conditions when combining them. Using union() or any other composite condition type logic will NOT retain the capsule properties of the individual condition.*** 4. Use the Histogram tool and the multiple grouping functionalities to aggregate over both time, and the capsule property of 'Area'. Final Result: (remove other items from the details pane to view just the histogram)
  14. Summary: I want to create a process variable monitoring dashboard to view my trends over the last day. Step 1. Create a new Organizer Topic. From the Seeq home screen, click the "New" drop down and select "Organizer Topic". Step 2. Use the "Insert Table" button to insert a table with an many row and columns as you would like charts in your dashboard, or insert a template to provide you with a starting layout for your content. Insert Table: Insert Template: Step 3. In a blank table, or to adjust formatting on a template, use the table formatting options (available by clicking into the cell in the table or highlighting multiple cells) to merge cells, for example you can merge the top row to create a title row if desired. From the table formatting options, you can also change the background color of the cell by selecting Cell Properties. Step 4. Click into the cell that you want to insert your Seeq trend into and, with your cursor in the cell, use the Seeq Q logo in the top left of the toolbar to insert Seeq content. Alternatively, insert your content anywhere in your Topic and cut and paste the content into the correct cell in the table. Tip: to adjust the size of your content once inserted select the content, select the blue Seeq Q icon, and customize content size, shape, and more. Step 5. Repeat step 4 for each monitoring chart you want to view in your dashboard. Step 6. Create a custom date range to apply to the Seeq content in your dashboard. This example shows how to create a daily auto-update frequency. Click the + icon in the Date Ranges panel to open a new custom date range window. Then click on Auto Update. Customize your display range and then click Next. Select how often you want your update to occur (in this case Daily) and when you want it to update (in this case, 6AM Pacific). Make sure to click Save! If you'd like to be notified when your dashboard updates, expand the Notify when Schedule Runs option to enable notifications to your email. Step 7. Share your dashboard with your peers by clicking on the Share icon in the top right, with options for an Edit, View, or Presentation link. Presentation View: Alternatively, share a PDF by selecting the PDF icon on the toolbar. PDF: Content Verified DEC2023
  15. Summary: Many of our users monitor process variables on some periodic frequency and are interested in a quick visual way of noting when a process variable is outside some limits. Perhaps you have multiple tiers of limits indicating violations of operating envelopes or violations of operating limits, and are interested in creating a visualization like that shown below. Solution: Method 1: Boundaries Tool One method to do this involves using the boundaries tool. This tool is discussed in Step 3 of this seeq.org post, and results in a graphic like that shown below. Some frequently asked questions around the above method are: Is there a way to make the different levels of boundaries different colors? Is there a way to color the section outside of the limits rather than inside of the limits? Method 2: Scorecard Metrics in Trend View Step 1. Load the signal you are interested in monitoring as well as the limits into the display pane. The limits can be added directly from the historian, or if they do not exist in the historian they can be created using Seeq Formula. Step 2. Open a new Scorecard Metric from the tools panel, create a simple scorecard metric on your signal of interest, with no statistic. Click the "+" icon to optionally enter thresholds, and add the threshold color limits that you are interested in visualizing. Note that the thresholds input in the boundary tool can be constant (entering a numeric value) or variable, selecting a signal or scalar.
  16. 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.
  17. Background: Sensors or calculated tags that totalize a value over time often need to be reset due to maxing out the range of the sensor or the number of available digits in the calculation database. This can create a saw-tooth signal that resets every time this range maximum is reached. In actuality, the signal is constantly increasing rather than building up to the range max and then stepping down to zero to begin counting back up towards the max. Solution: Use Seeq Formula to convert the saw-tooth signal into a continuously increasing signal bounded in time by some reset period determined by the Subject Matter Expert. 1. In this example we begin with a saw-tooth counter signal that resets every time the sensor reaches its range max of 100. 2. Use Seeq Formula to convert the sawtooth signal into a continuous, increasing signal. Note that in order for Seeq to do this calculation, a bounding condition is required. This can either be a repeating periodic condition, or a condition created using the custom condition tool. This can be done in one step using the following code: //creates a bounding condition for running sum calculation $reset = years() //calculates running delta of signal between each sample, compares to zero to ignore negative running delta values, //calculates the running sum of the running delta signal over the bounding condition $signal .runningDelta() .max(0) .runningAggregate(sum(),$reset)
  18. FAQ: I have a CSV file that has the start and end times of some historical events and various information about the events that I would like to use in my analysis in Seeq. How do I go about getting these events and all of their associated information into Seeq? Solution: Use the Import from CSV tool and Seeq Formula to bring in a condition comprised of each of these events and assign the data in each column of the CSV as a property of the condition. 1. Ensure your CSV file is formatted correctly for import into Seeq. The first column should be the event start time, the second column should be the event end time, and all other data columns should be to the right of these. A list of acceptable timestamp formats can be found on the Seeq Knowledge Base in this article. 2. Use the Import CSV File tool to bring the condition into Seeq. Drag and drop your CSV file or navigate to your file through Windows (Mac) Explorer. Under "Import File as" select "condition". Choose the start-time and end-time columns in the "Choose columns" section. Specify a max capsule duration that is just longer than your longest event. 3. Once your condition is imported, use Seeq Formula to assign the data from the other columns of our CSV as properties of each capsule. Begin by using the item properties for the CSV imported condition to duplicate the condition to Formula. Once in Formula, add the column headers from your CSV to the query in line 1 of the code, separated by commas. Then use the setProperty() function to assign each of the columns of the CSV as a property of each capsule. Once executed, the output is a new condition that looks exactly like the original from trend view in the display pane. However, this new condition has properties, that can be added to the capsules pane using the gridded+ button.
  19. Question: I have a condition with multiple properties that I have displayed in the capsules pane. Is there a way to get the data from the capsules pane into a Seeq Organizer Topic?
  20. Use Case: Users are often interested in identifying when a particular process is operating in a specific mode, or when it is in transition between modes. When looking at these transition periods, you may want to know what the modes of operation were immediately before and after the transition. If you can assign the starting and ending modes during a transition period to each transition capsule, you can filter for specific types of transitions and get a better idea of what to expect during like transitions. Solution: For Versions R.21.0.43 + 1. Add a signal to your display that describes the mode of operation you are interested in. In this example I have added the Example Data > Cooling Tower 1 > Area A > Compressor Stage string signal. Other signals that this use case applies to may include: production grade code, equipment operating mode, signal for step in a sequential or batch process. 2. Next we can use Formula to create a new condition comprised of capsules each time our Compressor Stage signal changes value. These capsules will contain a new capsule property called 'StartModeEndMode' that represents the value of the compressor stage immediately before and immediately after the signal changed value, or transitioned. The formula syntax to achieve this is: //creates a condition for 1 minute of time encompassing 30 seconds on either side of a transition $Transition = $CompressorStage.toCondition().beforeStart(0.5min).afterStart(1min) //Assigns the mode on both sides of the step change to a concatenated string that is a property of the capsule. $Transition .transform( $cap -> $cap.setProperty('StartModeEndMode', $CompressorStage.toCondition() .toGroup($cap, CAPSULEBOUNDARY.INTERSECT) .reduce("", ($seq, $stepCap) -> $seq + $stepCap.getProperty('Value') //Changes the format of the stage names for more clear de-lineation as a property in the capsules pane. .replace('STAGE 1','-STAGE1-').replace('STAGE 2','-STAGE2-').replace('TRANSITION','-TRANSITION-').replace('OFF','-OFF-') ))) and the Output is: Note that we added the new property 'StartModeEndMode' to the Capsules Pane. 3. We can now filter this condition to look for specific transitions of interest. In this example, we are interested in every time our compressor went from a TRANSITION state to STAGE2. Use Formula and the filter() function with the following syntax to achieve this. //Create a new condition comprised only of capsules where the 'StartModeEndMode' property is equal to '-TRANSITION--STAGE2-' $ConditionCreatedInStep2.filter( $capsule -> $capsule.getProperty('StartModeEndMode').isEqualTo('-TRANSITION--STAGE2-')) and the Output is: 4. Now we are able to add other signals of interest to the display and switch to Capsule Time view to observe how those signals behave during these similar transition events.
  21. For reporting purposes, I want to calculate statistics based on the most recent period(capsule) and display that along with the periods immediately preceding it. This can be done in Organizer using the custom date range by creating a Periodic Condition and selecting the capsule closest to or offset by one from the end. The same date ranges or capsules relative to now can be created in Seeq Workbench as well. Organizer: Workbench: We create the same condition as the above Organizer in Workbench by following the methods below. The first method defines how to create conditions for current and previous conditions for years, days, weeks, shifts. The second method includes an extra step that is necessary for current and previous months and quarters since the exact duration of these periods can vary based on the number of days each month. Method 1 - when the length of time in each period is definitive (e.g. year, week, day, shift). This example shows how to create conditions for "Current Week" and "Previous Week" 1. Create a Periodic Condition for "Weekly" using the Periodic Condition tool. 2. Create a Condition around the current time ("Now") using Formula --> condition(1min, capsule(now() - 1min, now())) 3. Use the Composite Condition tool to create a condition for "Current Week" when the Periodic Condition "Weekly" touches the tiny capsule at "Now". 4. Use Formula to create a condition for the "Previous Week" --> $currentWeek.beforeStart(7d) Method 2 - when the length of time in each period is variable (e.g. month, quarter). This example creates a condition for "Current Month" and "Previous Month" 1. Create a Periodic Condition for "Monthly" using the Periodic Condition tool. 2. Create a Condition around the current time ("Now") using Formula --> condition(1min, capsule(now() - 1min, now())) 3. Use the Composite Condition tool to create a condition for "Current Month" when the Periodic Condition "Monthly" touches the tiny capsule at "Now". 4. Use Formula to create a Condition for the last day of the last period (in this case "Last Day of the Last Month") $currentMonth.beforeStart(1d) 5. Use the Composite Condition tool to create a condition for the "Previous Month" when the Periodic Condition "Monthly" touches the "Last Day of Last Month". Content Verified DEC2023
  22. FAQ: I've got a signal for which the average and standard deviation are believed to be drifting over time. When I view the average and standard deviation in calendar time, it isn't helpful because they are highly dependent upon the production grade that I am running. Is there a better way that I could be viewing my data to get a sense of the drift of the average and standard deviation by production grade over time? Solution 1: Histogram 1. Add your signal of interest and your production grade code signal to the display. 2. Create a condition for all production grades using formula: $gradeCode.toCondition() 3. Use the Histogram tool to calculate the average reactor temperature during each grade campaign and display them aggregated over production grade, and time. The same methods from step 3 can be applied to get a second histogram of the distribution of the standard deviation of the signal of interest by grade over time. Solution 2: Chain View 1. Add your signal of interest and your operating state signal to the display. 2. Use Formula to create a condition for all operating states: $stateSignal.toCondition() 3. Use the Signal from Condition tool to calculate the average temperature over the all operating states condition. 4. Use the Signal from Condition tool to calculate the standard deviation of temperature over the all operating states condition. 5. Use Formula to calculate two new signals for “Avg + 2 SD” and “Avg – 2 SD”. 6. Filter your all operating states condition for only the state that you are interested in viewing. In this example we want to view only the capsules during which the compressor is in stage 2, for which the syntax is: $AllOperatingStates.removeLongerThan(7d).removeShorterThan(4h).filter($capsule -> $capsule.getProperty('Value').isEqualTo('STAGE 2')) This formula is taking our condition for all operating states, keeping only capsules that are between 4h and 7d in length, then filtering those capsules to include only those for which the value is equal to stage 2. 7. Swap to chain view and view a longer time range.
  23. The objective of creating a new signal that has a value equal to the number of instruments reading above a certain threshold can be achieved in one step using Seeq Formula. It is a good bit of code, but the majority is copy and paste. 1. Add all relevant signals to be used in count. 2. Open a new Seeq Formula window and use the following code to get your counter. //Create a value search for when each area temperature is above 80F $HighTempAreaA = $a.valueSearch(isGreaterThan(80)) $HighTempAreaB = $b.valueSearch(isGreaterThan(80)) $HighTempAreaC = $c.valueSearch(isGreaterThan(80)) $HighTempAreaG = $g.valueSearch(isGreaterThan(80)) $HighTempAreaH = $h.valueSearch(isGreaterThan(80)) $HighTempAreaI = $i.valueSearch(isGreaterThan(80)) //Create a new signal for each temperature tag that is 1 if temp > 80, else 0 $AreaA = 0.toSignal().splice(1.toSignal(),$HighTempAreaA) $AreaB = 0.toSignal().splice(1.toSignal(),$HighTempAreaB) $AreaC = 0.toSignal().splice(1.toSignal(),$HighTempAreaC) $AreaG = 0.toSignal().splice(1.toSignal(),$HighTempAreaG) $AreaH = 0.toSignal().splice(1.toSignal(),$HighTempAreaH) $AreaI = 0.toSignal().splice(1.toSignal(),$HighTempAreaI) //Create a new Signal that is the sum of the 1-0 signals for all temperatures add($AreaA, $AreaB, $AreaC, $AreaG, $AreaH, $AreaI) The result is the brown step function below. Optionally add a threshold line and use cursors to validate the counter. Note that this approach works for signals that share a common threshold, but can also be applied to variable thresholds since each 1,0 signal is determined by a unique value search.
  24. Another possible method is to first cleanse the compressor stage signal to remove values equal to 'OFF' and then apply the toCondition() function. This can be done in one step using formula: $CompressorStage.remove(isEqualTo('OFF')).toCondition()
×
×
  • Create New...