
Sharlinda Salim
Seeq Team-
Posts
17 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Calendar
Library
Downloads
Gallery
Everything posted by Sharlinda Salim
-
How to move folder from "my folder" to "shared"
Sharlinda Salim replied to nurhazx's topic in General Seeq Discussions
Hi Nurhaz, You need to look for the particular folder in the "Shared" and ensure you have the necessary access. Regards, Sharlinda -
Timestamp for last sample in a signal
Sharlinda Salim replied to Ruben's topic in General Seeq Discussions
Hi Nurhaz, This is one possible method:- Step 1 : Create a new formula where we convert the month format based on your preference $month_numeric = $f .toSignal('End') .toString() .replace('/(?<year>....)-(?<month>..)-(?<day>..)T(?<hour>..):(?<minute>..):(?<sec>..)(?<dec>.*)Z/' , '${month}') //changing the name format $month_alphabet = experimental_lookupTable( "[ ['01', 'Jan'], ['02', 'Feb'], ['03', 'March'], ['04', 'April'], ['05', 'May'], ['06', 'June'], ['07', 'July'], ['08', 'August'], ['09', 'September'], ['10', 'October'], ['11', 'November'], ['12', 'December'] ]", InterpolationMethod.Discrete) $month_alphabet.experimental_lookup($month_numeric, 'B') Step 2 : Configure the sequence/format based on your preference $extract = $f.toSignal('End').toString() $day = $extract .replace('/(?<year>....)-(?<month>..)-(?<day>..)T(?<hour>..):(?<minute>..):(?<sec>..)(?<dec>.*)Z/' , '${day}') $YYYYhhmm = $extract .replace('/(?<year>....)-(?<month>..)-(?<day>..)T(?<hour>..):(?<minute>..):(?<sec>..)(?<dec>.*)Z/' , '${year} ${hour}:${minute}') $final = $day + ' ' +$month_alphabet+ ' ' +$YYYYhhmm return $final Hope this helps. -
Timestamp for last sample in a signal
Sharlinda Salim replied to Ruben's topic in General Seeq Discussions
Yes, understood but it will not be straightforward though thus I recommended formatting the header. Can you please let me know the background of your use case? It it still in the context you would like to display the time of the last value? If yes, may I know why you do not prefer to configure the header. -
Timestamp for last sample in a signal
Sharlinda Salim replied to Ruben's topic in General Seeq Discussions
Hi Nurhaz, The easiest will be to configure at the header. In this example, I used Simple Table >> Last Value, followed by customizing the header as showed in the second screenshot. If you click at the '?' beside the Date Format it will provide you more formatting options. Finally, you can add another column and name it 'Last Sample Time". This method is applicable still if you prefer to use Scorecard Metric. The difference between this method and the one discussed above is this method will generate the last value too. -
This method can now be simplify using the below formula :- $signal.forecastLinear(7d,3d) Please do have a look at few other discussions as below links that applied the forecastlinear() function. The cumulative of time as shown in Step 3 can be simplified to timesince($condition,1min).
-
Create forecast based on signal value
Sharlinda Salim replied to nurhazx's topic in General Seeq Discussions
Hi Nurhaz, You may also book a slot in Seeq Office Hours to discuss further in a call. (https://info.seeq.com/office-hours) Firstly, I observe your condition for the $run can be optimize as the start of the capsule seems slightly off than the peak of your signal. If you could not join the office hour can you share how you create the $run condition. Secondly, did you use exact formula as below including the 10d setting? Your $run seems longer than 10d so you might want to expand that, probably 3mo. timeSince($runs.growEnd(10d), 1h) -
Interesting question from a Seeqer who would like to create a BatchID for each batch with the format YYYYMMDDS# where YYYY is the year, MM is month, DD is day, S is the shift and # is the order of the batch in that shift. This is one of the possible method. STEP 1: Create the signal for YYYYMMDD //STEP1: Trend the "Start" date of each capsule $StartDate = $batch .move(7h) //based on time zone use in workbench. .toSignal('Start') .toString() .move(-7h) //move back the signal to the original position //STEP2: Replace the format to YYYYMMDD $YYYYMMDD = $StartDate .replace('/^(..........).*/' , '$1') //example of the output is 2022-09-02 .replace('-','') //20220902 .validValues() .toStep(1d) $YYYYMMDD STEP 2: Create the signal for S which represent the shift number combinewith( shifts (6, 12, "Asia/Kuala_Lumpur").setProperty('Shift','1'), shifts(18, 12, "Asia/Kuala_Lumpur").setProperty('Shift','2')) Followed by another formula, $s.toSignal('Shift') STEP 3 : Create the # which represent batch sequence in the respective shift $count = $batch.aggregate(count(),$batch, startkey(),0s) $count .runningCount($shift) .toStep(1d) .toString() STEP 4 : Create the BatchID and set as property $BatchID = $YYYYMMDD + $S + $x $batch.setProperty('BatchID', $BatchID, StartValue())
-
Hi Sivaji, Step 1: Calculate aggregated value of every n-samples. Example here I am calculating the average for every 5 samples. Use aggregateByCount which is introduced in version R54. $signal.aggregateByCount(average(), 5, 10d) Step 2: The difference between the sample and aggregated value is greater than certain threshold These capsules will be 0s duration as the aggregateByCount generated a discrete signal. Step 3: Replace the samples with the aggregated value Hope this help.
-
Hi jkasworm, You need to create access key (link) in order to obtain the username and password.
-
Hi VpJ, You mentioned gap and missing data, does it looks similar like below screenshot? In this case, instead of creating manual condition you can use the function .isNotValid() in the formula tool. With this, you do not need to worry when scaling it across assets.
-
Transferring seeq capsules in PI AF
Sharlinda Salim replied to KYM's topic in General Seeq Discussions
Hi KYM, Please have a look at this article - https://support.seeq.com/space/KB/2168684706/How-To%3A+Export+Signals+and+Conditions+to+OSIsoft+PI Thank you. -
Hi Brian, Please check out the derivative() function in the Formula. If the current sampling interval in your continuous signal is not 1min, you can incorporate resample() function. Example: $signal.resample(1min).derivative()
- 2 replies
-
- runningdelta
- derivative
- (and 5 more)
-
Page Unresponsive, and then Out of memory
Sharlinda Salim replied to JWu's topic in General Seeq Discussions
Hi JWu, I had seen cases of "Page Unresponsive" due to few issues but not particularly for a high number of worksheets. Roughly how many worksheets do you have? Best to contact our Support Portal with a downloaded logs when you observed the error so that we can look further into the issue. Thank you. -
Non-Time series data in Seeq
Sharlinda Salim replied to Niranjan's topic in General Seeq Discussions
Hi Niranjan, Can you please provide a bit more background on your use case and calculations for us to have a bit more insight. Thank you. Regards, Sharlinda -
Hi Kenny, You will need to create the access key in Seeq. Please refer to this https://support.seeq.com/space/KB/740721558/Access%20Keys . Please save the generated access key and password accordingly. Then you can insert the access key details as your username (access key) and password.
-
Hi Lyna, Thank you for your question. In order to plot the starting value, your formula will be like this '$condition.transformToSamples($capsule -> sample($capsule.getStart(), $signal.toScalars($capsule).first()), 1d)'. The command '$signal.toScalars($capsule).first()' will get the first value in each capsules. Alternatively, you can also write it as '$signal.toScalars($capsule).pick()'. Hope this helps.
- 3 replies
-
- transformtosmaples
- value at start
- (and 4 more)