Jump to content

Brian Crandall

Seeq Team
  • Content Count

    10
  • Joined

  • Last visited

  • Days Won

    7

Brian Crandall last won the day on November 25 2019

Brian Crandall had the most liked content!

Community Reputation

12 Good

Personal Information

  • Company
    Seeq
  • Title
    Principal Analytics Engineer
  • Level of Seeq User
    Seeq Super-User

Recent Profile Visitors

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

  1. It is often useful to construct Signal names using an amalgamation of several columns in the table or view of the RDBMS. However, querying samples and capsules using these constructed names can have slow performance because these fields are not all defined as primary keys within the tables and views. If the constructed names perform fine in the runtime query - that's fine and no additional work is needed. But for the databases that query slow, with the Seeq SQL v2 connector, the users can have it both ways - a long descriptive name that performs well at runtime! All that is needed is a col
  2. Hi P.J., yes, I agree. ARIMA would be very nice for predicting signals with seasonality. What do you use for ARIMA modeling now, e.g. Python code?
  3. Overview Often times two (or more) units that the same products and unit procedures. This is common in continuous processes that are running a specific "grade"; also in batch processes that are manufacturing the same product ID. Since they are identical pieces of equipment or units, the “profiles” of critical process parameters are similar and we want to use profiles from multiple units for our reference profile. In this example we will create a profile from 2 units - the same process can be applied for additional units ad infinitum. Then we will apply this profile to a running batch to
  4. 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'
  5. This also works when assigning a value from a Signal to a Capsule property: $condition.transform($capsule -> $capsule .setProperty('Neat Property', $signal.toGroup($capsule).first().getValue()) )
  6. Microsoft Access databases are contained in a (.mdb) file. To connect Seeq to this file, think of them like an Excel or csv file. The .mdb files must be continuously imported it into an RDBMS, most naturally MSSQL as it is in the Microsoft software family. After that, Seeq can connect to it via our SQL v2 connector. The .mdb file import can be scripted/automated/scheduled, but it is basically like bringing an arbitrary file into MSSQL. This link provides good instructions on the steps to import Access data into MSSQL: https://docs.microsoft.com/en-us/sql/integration-services/import-export
  7. Summary Chain View enables a nice visual of all the time periods stacked side-by-side; however, sometimes it is useful to create a new signal from all these capsules that has been scrunched together. This avoids the maximum limit of how many capsules can be shown in Chain View. Note this is different from "time warping" which realigns the samples by some amount. Signal scrunching keeps the relative sample alignment the same within each capsule - but it does move each "snippet" of the signal next to each other. Steps Here is a screenshot of all the signals and conditions n
  8. Thanks @YogurtYoda for highlighting how to set the maximum capsule duration to resolve that formula error.
  9. When working with Conditions, it may be helpful to apply a property from another Condition with larger time frames, e.g. batch procedures, orders, and equipment states. Here is one approach: $childCondition.transform($cap -> $cap.setProperty('Stage', $ParentCondition.toGroup($cap).first().getProperty('Value') ) ) $childCondition are the red capsules and ‘Stage’ is the property that you will create with the ‘Value’ property from the green $parentCondition.
×
×
  • Create New...