Showing posts with label OSIsoft PI. Show all posts
Showing posts with label OSIsoft PI. Show all posts

Tuesday, December 9, 2014

New Features in ZOOMS 2.2.3 (which has shipped, btw)

Yep, ZOOMS 2.2.3 is shipped. There are multiple upgrades, including several under the hood, but the user-features are as follows:

Autocomplete Detects Text Within Words

We are fast learning from customers that despite S88, people naturally like having the equipment hierarchy in the unit name. It's natural and logical. As such, we've modified our autocomplete to search after delimiters such as the period (.) and the underscore (_). You can see below that the user typed "10" and yet items that have "10" after a legal delimiter show up.

ZOOMS autocomplete delimiters

TimeExpressions

Inputting time is a pain in the buttocks. ZOOMS already recognizes the PI time expressions (*, t, y) as well as (60s, 1m, 1h, 2d, 3w, 4y...) time intervals. But our users like not having to type the forward slashes (/) and colons (:) that come with inputting time like "11/23 23:00."

ZOOMS now recognizes several more oddball time formats that don't come standard. You can see below that "1123 2300 to 1130" resolved to: 11/23/2014 23:00:00 to 11/30/2014 0:00:00.






Downloading Raw and Evenly Spaced Data

The ability to download raw data has existed since 2.2.2. Raw data is the actual data captured in the data archive. Unfortunately, the captured data may not happen at the same timestamp and if you need to correlate values with other parameters. So for version 2.2.3, we have the ability to download evenly-spaced data in user-specified increments. Click that "timed CSV" button and you're going to get interpolated data values every 15 minutes:

ZOOMS trend controls 2.2.3
Trend data visualization and data downloads remain a core offering.  Stay tuned for more release announcements.


Request a ZOOMS demo

Sunday, November 9, 2014

Could not load file or assembly 'X' or one of its dependencies.

You're seeing this Configuration Eror:

Configuration error ASP.NET ZOOMS

And you're using IIS7 with ASP.NET and using 32-bit applications.

Chances are, you just installed a fresh copy of IIS and you haven't changed around any defaults.

You're in luck because the fix is easy.  Here's what's going on.

The default installation of IIS 7 is to disable 32-bit Applications.  Afterall, IIS 7 comes with Server 2008 and Server 2008 is an x64 system.

So all you have to do to get rid of this error is to Enable 32-bit Applications in IIS.  Here are the steps:
  1. Go to Start and type in inetmgr to launch IIS
  2. In the left page, select Application Pools
  3. In the middle pane, select the application pool corresponding to the web-application that is giving you this error.
  4. In the right pane, select Advanced Settings:
    IIS AppPool Advanced Settings 
  5. This is what you'll see: Enable 32-bit Applications is set to False.
    AppPool defaults
  6. Go ahead and set that to True:
    AppPool enable 32-bit applications
  7.  Click OK
And you're super awesome application that depends on 32-bit DLLs is back in business:

ZOOMS works

Monday, August 4, 2014

Process Data for the Rest of Us

I first started using OSIsoft's PI in 1999 when I got hired as a fermentation engineer at the world's largest cell culture plant (at the time, 144,000-liters).

I remember the first week vividly.  Me - not knowing anything about how read cell culture trends - watching my boss run his cursor over PI trends, nodding his head and then running off to meetings telling the operations staff what's happening in the bioreactors.

Over the years, I've put my eyeballs on thousands of cell culture runs and became an expert on the matter.  Yet, no matter how many trainings gave to tech(nician)s, supe(rvisor)s, and managers to increase the population of process experts at the company, I got the sense that ultimately it was still my team's (i.e. manufacturing sciences') job to know what's happening to the cell culture runs in-progress.

OR, maybe not...

The VP of the plant had the PI administrator write a script to open up PI ProcessBook and snapshot current trends as a images and put it on a website (remember, this was back in 1999).  Clearly management recognized the value of these trends, but was just too much activation energy to get PI data to "The People."

So when I left my awesome company (and awesome job), I set out to do one thing:

To bring PI to the PI-less

And by PI, I mean "process data."

Google had already pioneered the one text-box, one click format for accessing website data.   So why is it that cGMP citizens can find information on the internet faster than they can find critical process data from within the enterprise?

This is why I bothered creating ZOOMS and this is why I think that there's a place for ZOOMS in the competitive space of trend visualization on the web.

It actually wasn't until the Jared Spool lecture at this year's OSIsoft PI User's Conference that I learned how to better enunciate this creation.  

magic escalator of acquired knowledge
A quick recap:

The bottom of the escalator is where you are if you know nothing about an app (new users live here).  The top of the escalator is if you know everything about the app (developers live here).

Current knowledge is where the user is today; and target knowledge is where a user needs to be to know enough about the application to perform his duties.

Mr. Spool tells us that intuitive design happens when the knowledge gap (the difference between target knowledge and current knowledge) is zero.

A key observation is that the more powerful and feature-rich the tool, the higher up the target knowledge is...and the harder the knowledge gap is to close.

The success of Google (which is to be replicated with ZOOMS in the process trend visualization context) is a modest number of features in order to lower the target knowledge... and thus diminish this knowledge gap and achieve intuitive design.

There are plenty of feature rich PI trend visualization tools for process experts.  ZOOMS is process trends for the rest of us; in other words: PI for the "non-user."

At the end of the day, it's People, Process, and Technology... in that order.  You can buy awesome technology, but if only a small minority of your people use it, you're neither capitalizing on their potential, nor your process.

Tuesday, July 29, 2014

ZOOMS v2.2 shipped!

Wow, what an exciting week.

ZOOMS version 2.2 is shipped! The Top 3 features in this release are:
  • Wildcard tag search
  • Digital States now rendered; Step=1 recognized
  • Full-text search on units

Wildcard Tag Search

Wildcard tag search was a feature that was added back to ZOOMS. This feature originally left behind because the idea behind ZOOMS is that users want to search metadata, not tags. As it turns out, there's a delay between when the tags get added to the data archive and when the ZOOMS metadata gets updated, and in between that time, these tags aren't findable on ZOOMS. Well, we listened to our customers and it's back in there.


ZOOMS detects if there is a wildcard in the query; if there is, ZOOMS will do a tag search and show the results asynchronously.  This way, the slowness of the data archive does not impact the speed of the page load.

Digital States and Stepped Tags

Up until now, ZOOMS interpolated all values - which is great for a majority of numerical tags that come in at high frequency. But what about the tags that don't change in value... or are monotonic in nature (like setpoints or OFF/ON)? Well, the glitch in ZOOMS prior to this release is that they'd be plotted as interpolated and didn't make much sense.


 This glitch is fixed.  In the above image, the magenta tag is stepped.

Full-Text Search on Units

This was another great suggestion from one of our best customers. Prior versions of ZOOMS could identify the name of the unit; and therefore suggest it as a user typed it and combine it with parameters to produce a trend. The problem is users often know about the unit by its description or where it is in the equipment hierarchy... not necessarily by name. With this upgrade, any word that appears in the description or hierarchy of the unit gets recognized by ZOOMS and will show up in the SERP.

In the image below, you can see that the user is interested in the 12,000-liter bioreactors in the plant and has typed in his colloquial search term, "12kL."

ZOOMS will return the units T440 through T447 as that "12kL" string appears in the descriptor (but not the name).



Incidentally, in the above query, user could have searched on "ZYM", "CCP1", or "Fermentation" and gotten results.  Now, the user has to know even less about the equipment to get a search result.

Previously added features:




Friday, June 20, 2014

How to Scale X-Axis for ZOOMS Trends

In the last post, we talked about scaling the Y-Axis of ZOOMS trends.  What about the X-Axis?

Well, the X-axis (or as pedantic mathematicians would call it, "abscissa") for ZOOMS is always the time-axis.  As with any chart, there is an "x-min" for the minimum value of x as well as an "x-max."

In the world of time-series data, there are more colloquial names:
  • x-min is starttime
  • x-max is endtime
Unfortunately, there are also hundreds of ways of representing time:
  • 04-Jul-1776
  • 12/8/1941
  • back to the future time

Type Time Range into Search Box

And typing in the starttime and endtime is one way to set the time range:

ZOOMS is able to interpret a lot of date inputs, but not all of them.

Use the Trend Buttons

What happens when you've got a trend and you want to go from there?
There are 3 buttons at the bottom of each trend.
  1. Back Arrow is an arrow pointing to the left that will take the trend one time-range into the past.
  2. Forward Arrow is an arrow pointing to the right that will take the trend one time-range into the future.
  3. Refresh/Revert will restore the time-range to the original as-loaded trend.

Highlight Area On Trend

You can magnify a time range by highlighting it with the mouse: clicking and holding down the mouse button at one edge of the time range and dragging the mouse to the other edge of the time range:
When you release the mouse button, the trend will zoom to the selected time range.

Summary

In summary, there are at least 3 ways to scale the X-Axis of a ZOOMS trend:

  1. Type in the time range in the search box.
  2. Use the "back" and "forward" buttons
  3. Highlight an area on a trend
See Also:


Wednesday, June 18, 2014

How to Scale Y-Axis for ZOOMS Trends

There are several improvements with ZOOMS 2.1 and the first difference you'll notice is the trend controls... the buttons at the bottom of each trend that "control" what happens to the trend.

For this post, we'll be focusing on the Y-axis scaling buttons, which are 5 o'clock position when looking at the trend from straight on.  There are 3 buttons:
  • multi
  • channel
  • single

Multi

By default, every trend is plotted as "multi," which is an abbreviation for multiple Y-axis.  Each trace on the trend gets its own Y-axis scale where the bottom is the minimum value and the top is the maximum value:

While you get a fuller sense of each trace - since each trace spans the entire range of the graph, there is no sense of what the traces are like in absolute value.

Single

The left-most button is "single," which refers to plotting all the traces on a single Y-axis. Using this method, you can get a strong sense for how the traces relate to each other.
Compared to the multiple Y-axis, we can now tell that the orange sinusoid is oscillates in a lower range than either of the red or magenta traces.

Channel

The channel Y-axis scaling divides up the trend in N horizontal slices and plots each trace in its own channel.  Using this method, you can hover your cursor over the entire trend and get a feel for what the values actually are.


There are plenty of awesome web-trending applications that give you more precise control over the actual scaling of the Y-axis, and we think they serve the tactical employees (e.g. operators and engineers) well.

The Zymergi implementation of Y-axis scaling is geared towards the time-crunched strategic users like managers and directors.

See also:

Tuesday, June 17, 2014

Securing the Process Data Historian Search Engine: ZOOMS

When I worked at an FDA-regulated commercial biologics manufacturing facility, access to data was limited to authorized individuals; 21 CFR Part 11 (10d) specifically calls for this control so that the authenticity, integrity, and, when appropriate, the confidentiality of electronic records are assured.

Needless to say, those who operate under cGMP regulations are worried about compliance with Part 11 have concerns with software that is trying to democratize the data.

Fair enough.
ben franklin on freedom vs security

It turns out that you can have cake and eat it too.  That is, you can have an easy-to-use, web-based interface for your trend data AND you can limit the access to authorized individuals.

Within Internet Information Services (IIS), the web-server on which ZOOMS runs, the default setting is to enable Anonymous Login and to disable everything else.

The way to secure ZOOMS is go to click on the website under which ZOOMS is installed and select the Authentication Feature:
IIS authentication feature
When you double-click on IIS Authentication, you get a setting for how you want this web-server to be secured.  There are 4 options to enable/disable.  The way to ensure unauthorized access is not granted is to set Anonymous Authentication Status to Disabled.

And if you happen to be running Windows Active Directory and you want to use that as the method to control access, set Windows Authentication Status to Enabled.

IIS disable anonymous login

Assuming that you're in an environment with Active Directory, you can use Active Directory credentials to control access to ZOOMS.

Now when I attempt to access ZOOMS, here's what I get:
ZOOMS password challenge

(I'm on a Mac using Safari to access a Windows IIS server running ZOOMS)

And only when I input valid Windows credentials am I granted access to ZOOMS.  At this point, access to ZOOMS has been limited from everyone with network access to everyone with a valid domain account.

If you want further restrictions, you simply need to set up ASP.NET URL Authorization where you specify the exact role that you want to allow access.
ASP.NET Url Authorization
If you want to create an Active Directory group for just your users, you can do so.  If you want to grant access to an existing Active Directory group, you can do so.

The key here is to Allow first, Deny last.

The point in all this is that you don't have to sacrifice the freedom of your information for the sake of security.

For more questions, contact Zymergi Technical Support at 650-646-4996.

See also:




Wednesday, May 7, 2014

Semantic Search Engine for Time-Series Data

It's the year 2014 and there are several updates to the Zymergi Object-Oriented Metadata Search (i.e. a semantic search engine for time-series data).

The first update is that we've moved to HTML5.  This means that we're dropping support for for IE8 or less.  We're proven on the latest versions major web-browsers: Google Chrome, Mozilla Firefox and Apple Safari.

Here's a screenshot of what the search page looks like.  There's no equivalent of "Google Instant" but given the metadata inputted by the administrator into ZOOMS, the software is able to guess what words you are meaning to type:
zymergi zooms search page
The second update is that ZOOMS uses a CSS Framework called, "Bootstrap."  Bootstrap was developed by Twitter and they gave it out for free.  The deal with CSS Frameworks is that someone has already done a lot of the heavy web-page styling.  You just need to customize it a bit to fit your look.

The other thing about Bootstrap is that it is "responsive," meaning the webpage will "respond" differently depending on the size of your screen.  Responsive web design (RWD) refers to whether or not a website is optimized for mobile devices.

No, we aren't wading into the time-series-data on mobile devices.  We actually believe that Transpara has a great product in Visual KPI.   We actually don't expect customers to be using ZOOMS on a phone or tablet on a regular basis, but we acknowledge that it can't be helped; in those cases, you can get your trend data with ZOOMS.  Besides, it came for free, so why not add this value?

The last update is that the entire product has been refactored.  The changes are all under the hood, but we've applied the MVC design pattern to separate the functions for a faster, more technically supportable system.

Below, you see a search engine results page (i.e. SERP) for the search terms inputted above.  ZOOMS tells you exactly which typed words has which meaning:

  • Reactor1 was identified as a unit.
  • Temperature was identified as a parameter.
  • Volume was identified as a parameter.
ZOOMS is figuring out what the typed words mean and combining it into a search result.  In this case, someone looking for the reactor temperature and volume may be interested in a trend with each of these two traces plotted.


zymergi zooms search page


It is by far the fastest way for an untrained individual to get/view time-series data in a process environment.

We'll be disclosing shortly, but in addition to existing features, there are exciting updates in the coming months… like the ability to run without connecting to other data historians (yep, there's going to be an internal one).

Want a test drive?

Tuesday, October 1, 2013

MSAT to Automation, MSAT to Automation. Come in, Automation

When I was running cell culture campaign monitoring and we were using PI to review trends to understand physical phenomenon, there were times the trends didn't make any sense.

After digging a little, we found out that the data was simply recording with too little resolution either in the Y-direction or the X-direction.

Here's a short blog post describing the words to say to Automation (as well as some perspective) to get some more resolution in your data.

Compression Settings

If the data seems sparse in the Y-direction (e.g., you expect to see oscillation but only see a straight line), it could because the compression settings are such that too much data gets filtered out. For OSI PI, there are two types of filter settings: (1) exception and (2) compression.

Exception is responsible for filtering out repeat data between the data interface and PI.

Compression is responsible for filtering out repeat linear data within PI (between the snapshot and the archive).

Every point attribute can be viewed from within PI ProcessBook. view pi point attribute And if you find that your exception or compression settings are too wide, view them within PI and make a note of what they ought to be, then go on and tell your Automation team.

In my experience, you'll find a reluctance within Automation for changing the individual settings on points. Generally, there is a standard or a rule that is applied uniformly to the set of points. For example, you're using Broadley-James pH probes in both cell culture and purification and we (cell culture) ask for a 0.005 compdev on bioreactor pH probes, shouldn't the buffer prep pH probes also be set to 0.005 compdev?

Automation has to balance the tension between customer (your) needs as well as defensible system configuration.

Generally speaking, you're going to be asking for changes to compdev of excdev point attributes, and if you're asking for more data to be collected, you want these numbers to be smaller.

Scan Rate Settings

What if after improving compression to filter out less data you still find that there is not sufficient resolution in the data to observe the physical phenomena that you know is happening? Well, the only place left to check is in the scan rate of the data... sparseness of data along the X-axis.

A point's scan rate is set based on a list of pre-defined intervals in the data interface. The data interface is a piece of software that transfers data from the source (control system) to the destination (data historian). If the interface is configured well, it will have sensible scan rates:
  1. Every second
  2. Every 2 seconds
  3. Every 5 seconds
  4. Every 10 seconds
  5. Every 20 seconds
  6. Every 30 seconds
  7. Every minute
  8. Every 5 minutes
It isn't always like this, but very often you'll see these intervals. The scan rates are defined in the interface configuration file and once set, they rarely change. The way it works is this, the first entry in the interval configuration is gets assigned: 1... the second entry: 2... the third entry: 3.

And whatever you set the point's location4 attribute is what it's scan rate is.

So suppose 00:00:05 is the third entry. Then a point whose location4=3 has a scan rate of every-5-seconds.

In a lot of cases, you simply tell your PI administrator you want the scan rate to be "every second," after which he's on the hook for looking up that scan rate in the interface. But FYI, if they said they made the change to the point but the location4 attribute is the same before and after, they're just BSing you.

There are a lot of considerations that need to get balanced when figuring out this stuff.  What's working against you is the default settings that come out-of-the-box with PI... as well as a generation taking the path of least resistance.

Get FREE Paper on PI Compression

Thursday, September 12, 2013

[-18000] Have not heard from this server (OSI PI)

You're reading this because:
  • You are an automation engineer with (OSI) PI administration duties.
  • You support a PI High-Availability (PI HA) system
  • Your PI collective keeps going out-of-sync
This is what you see when you launch the PI Collective Manager:

This is a sporadic issue, with many possible causes; but, one cause is this tuning parameter:

Replication_SyncTimeoutPeriod

If the time it takes to read configuration changes exceeds the Replication_SyncTimeoutPeriod, the operation is aborted and the Secondary may get out of sync with the Primary. In this case, no amount of retrying by the Secondary will be successful because the configuration changes are dequeued after the initial request. Replication to that Secondary will halt until it gets re-initialized.
The default value for Replication_SyncTimeoutPeriod is 300 seconds (a.k.a. 5-minutes). So if, for some reason, your secondary server disconnects from the primary for 5-minutes, you need to re-initialize.

Re-initializing the secondary server is essentially a "copy-paste" of the primary PI server onto the secondary and can take several hours since it starts with a full backup of the primary PI server first. If you can avoid having to babysit a secondary re-initialization, you ought to change this tuning parameter: Replication_SyncTimeoutPeriod.  It can take up to 20-minutes for a server to reboot, so choose wisely.

p.s. - Thanks, Joy Wang for the support.

Monday, September 9, 2013

Automation Software: Pick OPC to be more Futureproof


When scoping out automation projects, we commonly run into the tension of cost versus extensibility.

A system that is "futureproof" is one that can withstand changes to requirements or specifications that are determined at some later time. As with a lot of decisions in life, choosing a short-term gain often comes at the expense of the long-term.

So is the case when deciding to go with OPC at a greater initial cost. OPC stands for "OLE for Process Control" where "OLE" is Microsoft terminology that stands for Object Linking Embedding. (I guess that would make OPC short for "Object Linking Embedding for Process Control.")

OPC Foundation logo As discussed here and here, OPC is the standard for communications between automation systems. OPC is maintained by the OPC Foundation… an industry consortium and is essentially what makes vendor agnosticism possible.
Vendor Agnosticism
Not having to believe in or commit to or be beholden to a single vendor.
For example, suppose you want to go with a Rockwell system. Rockwell has an embedded historian called, "FactoryTalk." Under the hood, FactoryTalk is OSIsoft PI. Side-by-side, they share the same folder structure, the same commands, the same services.

So the logical thing to do when setting up a corporate PI system is to buy a PItoPI interface and call it a day, right?

Not so fast.

Suppose the facility has a Building Automation System (BAS) and while out-of-scope for this project, the data from the BAS is expected to go into this corporate PI system. What happens then?

One option is to find that specific BAS vendor and see if OSIsoft sells a PI interface for this BAS vendor.

A second option is to see if this BAS vendor sells an OPC server for their data and if so purchase the OPC server and purchase the OPCtoPI interface and connect the two via OPC.

What happens if another control system enters the picture (suppose a Finesse/DeltaV system was purchased and commissioned)? The same questions have to get asked again (and re-answered).

Futureproofing in this case means choosing OPC and running every new system through this standard of communication, even at a greater cost to the initial system. In short-term, there is a larger budget to justify; in the long-term you eliminate future work (Design Reviews, meetings, revisiting past decisions…)


Wednesday, July 10, 2013

OSI PI Historian Software is Not only for Compliance

In October 1999, I joined a soon-to-be licensed biotech facility as Associate (Fermentation) Engineer. They had just got done solving some tough large-scale cell culture start-up problems and were on their way to getting FDA licensure (which happened in April 2000).

As the Manufacturing Sciences crew hadn't yet bulked up to support full-time commercial operations, there were 4 individuals from Process Sciences supporting the inoculum and production stages.

My job was to take over for these 4 individuals so they could resume their Process Science duties. And it's safe to say that taking over for 4 individuals would've not been possible were it not for the PI Historian.

The control system had an embedded PI system with diminished functionality: its primary goal in life was to serve trend data to HMIs. And because this was a GMP facility and because this embedded PI was an element of the validated system, the more access restrictions you could place on the embedded PI, the better it is for GMP and compliance.

Restricting access to process trends is good for GMP, but very bad for immediate-term process troubleshooting and long-term process understanding, thus Automation had created corporate PI: a full-functioned PI server on the corporate network that would handle data requests from the general cGMP citizen without impacting the control system.

Back in the early-2000's, this corporate PI system was not validated... and it didn't need to be as it was not used to make GMP forward-processing decisions.

If you think about it: PI is a historian. In addition to capturing real-time data, it primarily serves up historical data from the PI Archives. Making process decisions involves real-time, data, which was available from the validated embedded PI system viewed from the HMI.

Nonetheless, the powers that be moved towards a validating the corporate PI system, which appears to be the standard as of the late-2000's. 

Today, the success for PI system installations in the biotech/pharma sector is measured by how flawlessly the IQ and OQ documents were executed.   Little consideration is really given to the usability of the system in terms of solving process issues or Manufacturing Sciences efficiency until bioreactor sterility issues come knocking and executive heads start rolling over microbial contamination.

Most PI installations I run into try to solve the compliance problem, not a manufacturing problem, and I think this largely the case because automation engineers have been sucked into the CYA-focus rather than value-focus of this process information:
  • Trends are created with "whatever" pen colors.  
  • Tags are named the same as the instrumenttag that came from the control system.  
  • Tag descriptors don't follow a nomenclature
  • Data compression settings do not reflect reality...
  • PI Batch/EventFrames is not deployed
  • PI ModuleDB/ AF is minimally configured
The key to efficiencies that allow 1 Associate Engineer to take over the process monitoring and troubleshooting duties of 4 seasoned PD scientists/engineers lie precisely having a lot of freedom in using and improving the PI Historian.  

If said freedom is not palatable to the QA folks (despite the fact that hundreds of lots were compliantly released when manufacturing plants allowed the use of unvalidated PI data for non-GMP decision), the answer is to bring process troubleshooters and data scientists in on at the system specification phase of your automation implementation.

If your process troubleshooters don't know what to ask for upfront, there are seasoned consultants with years of experience that you can bring onto your team to help.

Let's be clear: I'm not downplaying the value of a validated PI system; I'm saying to get user input on system design upfront.

Monday, February 4, 2013

Thuperbowl1!!!! (Excel vs. PI continuous vs stepped)

I was actually pulling for the Niners yesterday primarily because I've lived in the SF Bay Area since 1999; but on balance, I didn't really care about the game: the Pixburgh Stillers weren't playing.

That and because the NFL actively supported SOPA, the bill that aims at restricting our internet freedom:

That said, here's a look how scatter plot of score vs game duration.
Superbowl 2013 Ravens 49ers score

Source data:  Milwaukee-Wisconsin Journal Sentinel

The awesome thing about Excel is that you get to change the Y-axis increments (I made it 7 since that's how many points are in a touchdown)... as well you can configure the X-axis increments (I made it 15 since that's how many minutes are in a quarter).

It's a nice graph and all, but not terribly reflective of what actually happened.  You can see from the start of the game, there's a ramp from 0 to 7 for the Baltimore Ravens.  That's not what actually happened.  At 4:23 into the first quarter, the score was still 0.  At 4:24, the Ravens' score was 7.

Let's look at what this graph looks like in PI ProcessBook with correctly configured tags:
Baltimore Poebirds Score
Here, is an accurate depiction of what the scores were at the time they happened:  the score goes up in increments forming what looks like "steps". 

When you have infrequent data, the most accurate visual representation of the data is to set the step point attribute equal to one (step=1).  For cell culture and fermentation, you do this for any offline measurement such as:
  • viable cell count
  • viability
  • offline pH
  • Osmo
  • Glucose, Lactate, Ammonium, Sodium
If you have it configured any other way, it may look funky... like that first plot in Excel.

Tuesday, December 4, 2012

How the @OSIsoftPI System Tracks Time

Here's a primer on how PI tracks time.

GMT

The first thing you need to know is that everything is archived Greenwich Mean Time, so it doesn't matter what timezone the server is in. It doesn't matter what timezone you're in. Everything gets archived GMT.


When you create a PI point, you have to tell the PI server what data type it ought to store with the pointtype attribute. This is important because some data types can be converted to others while others cannot. Date/times happen to be one of those that can be tracked in at least two ways:

Time as Integer

One convention that PI uses to track time is using integers where the numerical value refers to the number of seconds since 31-Dec-1969 16:00. I'm not entirely certain of the significance of this date.... maybe prior to this date, no computers existed? Whatever the case, 0 refers to 12/31/1969 @ 4pm.

To get Jan 1, 1970 @ midnight, that's 8-hours. So 8 hour is the same as 480 minutes... which is 28800 seconds. So if you wanted to write the date 1/1/1970 to PI using integers, you'd send the numerical value 28800 as the timestamp field.

Time as Float32

Another convention that PI follows to track time is using floating points where the numerical value of the floating point refers to the number of days since 1/1/1900. Incidentally, this is the same as the Excel convention.

As an example, Marty McFly goes back on 5-Nov-55 (11/5/1955). To figure out what this is in the Float32 format, you simply do this:

1955 is 55 years after 1900... so 55 years * 365 days per year = 20088 days



Credit ©1985 Universal Pictures

November 5th is the 309th day of the year, so 20088 + 309 = 20398

Handling Local Time

PI uses the local time of the PI server or the local time of the PI client (ProcessBook as it were) to figure out how to display the time.  No data is deleted because all of it archived against GMT.

So take the silly American ritual of Daylight Savings where during the summer hours, we adjust our clocks forward and then in the winter, we adjust the clock back.

On 11/4, when we got to 2am, we set the clocks back to 1am and repeat the time from 1am to 2am.  This is what it looks like on PI:

OSI PI daylight savings
You can see that in the 1-day period between 11/4 and 11/5, 1.04 days is shown.

You can also see in the sinusoid trend (which is based on local clock time apparently), the trend repeats the hour between 1am and 2am.

In summary:

  • PI works off of GMT and the translation to local time depends on your computer or the PI server's local time.  
  • PI can store timestamps as integers representing seconds since 12/31/1969 @ 4pm
          - or -
  • PI can store timestamps as float32 representing days since 1/1/1900

Friday, November 23, 2012

C:\Program Files\PI

The default location for installing PI is:

C:\PI

It is actually not the Program Files folder:

C:\Program Files\PI

And please don't put it there.

That stinking space between "Program" and "Files" screws things up.

In fact, if you can, don't install it on the C: drive (which I'm assuming is where your OS files are stored).

If you have another partition like E: then you're petter off putting it there.

The vast majority of installations I do put the PI server on the E: drive.


Thursday, September 27, 2012

Patching Windows (OSI PI) Servers

A word to the wise:

When you're patching a Windows Server on which an OSIsoft PI server is installed, this is your worst enemy.

Restart Now

It sucks... big time, and here's why:

When you click Restart Now, it shuts down in a manner that corrupts the PI Event Queue. You're going to have data flowing to the PI Snapshot but doesn't make it into the PI Archives.

Then you have to call OSI TechSupport to dig yourself out of this mess.

Final message? Pay Attention! Click Close and go get yourself some coffee. You saved yourself 2-hours of hassle.

Get a PI Professional

Tuesday, September 18, 2012

How to Use ZOOMS (for OSIsoft PI System)

This was where our OSI PI Search Engine was as of 2008



In a single textbox, you could type in any set of words... just like Google.

And after you typed in a few concepts like:

  • Reactor1
  • Temperature
  • Concentration
  • Volume
ZOOMS could figure out that Reactor1 was a unit while Temperature, Concentration and Volume were process parameters.

Not needed, but if you felt like typing in a time-window (in OSIsoft PI-ese), it would simply show you the trend that you meant to see.

Perfect for people who don't have PI ProcessBook installed... which is basically management, scheduling, QA, instrumentation, process engineering... you know, everyone.

Get The ZOOMS Brochure

Wednesday, September 5, 2012

Cell Culture Database - Batch Information

You work in biopharma. Maybe you're a fermentation guru... or a cell culture hot shot. Whatever the case... This is your process.
We muggles don't have the luxury of waving our wands and having protein fold themselves mid-air. There's usually a container where the process happens. processes happen in a unit
A time-window (starttime to endtime) is when processes happen.

Operators execute process instructions; these procedures is how the process happens.
The execution of process instruction results in an output. The output of the process step is the product and constitutes the what.
Lastly, the process (step) is given a name describing who the batch is.
It stands to reason that the who, what, how, when, where of a batch is characterized by:
  • batchid
  • product
  • procedure
  • starttime - endtime
  • unit
and fully describe batch information for cell cultures and fermentation.

Organize Your Cell Culture Data
-->