Skip navigation
All Places > PI Developers Club > Blog > 2011 > September



Over on the AFSDK Development discussion hall Zev was asking questions about PI AF Scheduled Configured Analytics otherwise known by the code name: Abacus


Abacus will allow for the configuration of calculations using PI AF attributes, that can be scheduled with the results written via a PI AF attribute to a PI tag.
The vision includes simplyfing the work required to build a calculation (reduce the requirement to program) and enable more people to create their own calculation(s)


Calculation support in Abacus will include the Performance Equation syntax and functions although we haven't yet committed to supporting all the functions exposed by the existing Performance Equation Scheduler


 One question Zev asked was if "Abacus would be a replacement for the Performance Equation Scheduler?"


At this time, the answer would be no.


That said, If we build what we envision for Abacus and you had a requirement to build a calculation you may choose Abacus over the Performance Equation Scheduler based on one or more of the following

  1. using or planning to use PI AF
  2. configuration and management user experience
  3. calculation support - including performance equation support as mentioned above and aggregations across several attributes or assets (sometimes referred to as roll-ups)
  4. history recovery and recalculation support
  5. performance and scalability 
  6. sub-second timestamp support

Caveat/Disclaimer: This list is not necessarily what will be in version1 or future versions of Abacus


Zev also asked about a release date, we do not yet have a date set for the first release of Abacus. However we can report that design, coding and testing work continues in areas including user experience, service, calculation engine and data access!


So while the list above is not meant to be definitive, what are some features you would want to see in Abacus? If you have several is there a priority order or set of "must haves"?


Thanks for asking Zev!
Glenn Moffett | OSIsoft - Product Management

See this piece and take security seriously on the declared "Day of Vengence"!

This time, no programming at 'Michaels programming Blog'. Something totally unrelated to programming, and even to the PI System... But, we could be witnessing one of the largest scientific discoveries of our time.


Researchers at CERN have discovered neutrinos travelling faster than light. It is possible that the results are due to systematic measurement errors, and the experiment hasn't been reproduced yet. But if this is true, the result will be so revolutionary, and will have impact in different fields of science. I'm in no way qualified and try to explain all this, but below are a few good reads about the subject.


Reading material:




Maybe in a few dozen years we can indeed do this:

8203.programmer.gif Hello fellow vCampus members,


As a spontaneous action I'm going to dedicate myself to a 24 hour programming challenge starting today. Maybe you have noticed that I'm working on some research projects to create a Natural User Interface (NUI) for access to the PI System and PI AF. I'm focussing on using the Microsoft Kinect on a Windows PC. So far I've made two 'demo' projects. I've blogged about those here and here.


Now I want to take things further, and dedicate a 24 hour period soly to programming some sort of NUI for the PI System.




Here are the rules:

  • I will start at 17:00 hours CET on Sept. 20 (today) until 17:00 hours Sept. 21 (24 hours)
  • The project must involve the Kinect sensor and the PI System
  • The project has to be in .NET
  • I will allow myself time to eat and get some sleep :)
  • Updates will be posted regularly here in this blogpost (and the forum), and on twitter (!/mvdveeken)
  • You can influence the project! Please tell what you would like to see for this project.

I already have some idea's on how to spend my time:

  • Creating a reliable finger recognition library for the Kinect sensor, and use it to display trends and access information about tags and AF Elements.
  • Creating a reliable gesture recognition library
  • Create a speech recognition application, which uses the Kinect microphone array. This application should be able to answer questions about the PI system (get and display data, create trends, access AF Elements).

My preference will be with idea #3. Speech recognition can be a big part of a Natural User Interface (later combined with gestures), and wouldn't it be great if you can access your PI System with speech, just like HAL-9000 from 2001: A Space Oddyssy, or J.A.R.V.I.S. from Iron Man?


Updates will be posted here and on twitter (!/mvdveeken)


Please let me know what you think! I need your sugggestions!


edit: for further updates and discussions I've opened a discussion thread on the forum [DEAD LINK]




Twitter Test

Posted by MichaelvdV@Atos Sep 20, 2011

Hello, this is my twitter feed







The dates for vCampus Live! 2011 are set. Our annual event will take place on Nov. 30th and Dec. 1 at the Palace Hotel in San Francisco. On November 29th there will be an optional PI System Overview, and offcourse the Welcome Reception!


We are all really excited for this years event. This event will be even better than the previous years! OSIsoft has listened to all the comments and requests from previous years, and created an event with a lot of technical content and hands-on sessions! Because we are so excited about this, we are offering a '2 for 1 special'. Buy 1, get 1 Free Conference Package! You can find more information about it at the registration site.


You can find the agenda for this years event here: . If you are a Developer, System Integrator, Architect or Administrator, this event will be very valuable for you!


One recurring event this year are the vCampus All-Stars awards. The vCampus All-Star awards are granted to vCampus members that actively share their technical expertise with the community. They are considered the most active and most valuable members in the community.


This year we will again reward those who are considered the most valuable members in the community. Next to getting recognized by the community, being a vCampus All-Star will profile yourself (and your company) as being PI experts. You can get awarded multiple years in a row for your continued involvement with vCampus.


Being a vCampus All-Star will also get you:


•Personal vCampus blog (if desired)
•Voluntary participation to team meetings
•Free admissions for the year to come
◦OSIsoft vCampus & OSIsoft vCampus Live
◦Users Conference
•A few more surprises…


We as a community decide who will be granted these awards. Therefore, we really need your input! Who do you consider the most active and valuable members?


Let us know, and nominate your vCampus All-Stars by emailing us at


Ofcourse, don't forget to register for the event





If you don't want to read on the background of this demo, and go right to a demo video: click here. (watch in 720P, fullscreen, audio on)


About two months ago, I published this blogpost. After a blogpost by Rhys, where he said that it would be very important for us to be able to wave at PI :)... So, an onofficial competetion started up (still waiting for you Rhys.... ;-) ).


This is a second version of a little research project of integrating Kinect, PI and PI AF. You can find the first demo here. This demo also makes use of the BING Maps Geocode service, and the BING Maps WPF Control.


The scenario is that there is a fictional Renewable Energy company that operates windfarms in different countries across Europe. This application lets an employee navigate the different countries, and dive into the operations of the windfarms up to the turbine level. By pointing left, right, up and down you can navigate and quickly get an overview of the operation of all the countries, windfarms and turbines.


Here is a general overview off the application:




The caroussel control on top navigates trough the different countries by pointing left and right. There are KPI's displayed of the selected item. If you select a country and point down, you drill down and can view the different windfarms in that country. Every selected asset is being displayed on the map control, and the map automatically zooms in and navigates to the location of that asset.


Here is an example of drilling down to a windfarm in the Netherlands, located near the city of Groningen.




 And here is an example of drilling down to the wind turbine level




 At the heart of this application is an AF database, with an element tree representing our different assets




As you can see, the countries are on the top level, they contain windfarms, and windfarms contain turbines. There is no 'depth' limit build into the application logic, so it is possible to create hierarchies that are very deep. The application also does not contain any logic specific to windfarms, it would be easy to configure this application to support oil platforms, solar, chemical plants, etc. just by changing the AF configuration.


The KPI's displayed in the application are inferred from the attributes on the element. There are 3 mayor catagories that are now supported. Attributes decorated with the 'History' category will show up as trends, Attributes decorated with the 'ViewInTable' category will be displayed in a table.


The 'DisplayConfiguration' category supports two attributes: Image and Location. Image should have a path to an imagefile (local file or URL) which represents the current asset (country flag, picture of the windfarm or turbine). Location supports a location line, which can be geolocated using the BING geolocation service. The geolocation service will translate it to longitude and latitude information, which can be placed on the map using the pushpins.


Here is a video of the application at work (with comments by your truly): (watch in 720P, fullscreen with audio on).


I'm working on a 'general' library to support Kinect, and abstract some of the SDK logic to make it more easy for us to start developing and researching NUI (Natural User Interface) applications for PI. Stay tuned, I'm hoping to provide an update on this soon...

Like Ahmad and a few other OSI'ers, I am in Anaheim this week to attend Microsoft's //BUILD/ conference. This conference is centered around Windows development and in case you were disconnected from the blogosphere in the last few days, they unveiled Windows 8. It is a re-imagined Windows (as the Softies say) and it is meant to embrace new form factors and touch-centric devices (including those powered by ARM processors). They also announced Windows Server 8 which has a lot of impressive enhancements, although less "cool" than it's client counterpart :)


They released the "Developer Preview" of both these operating systems, as well as the developer preview of Visual Studio 11 Express, for developers to start cutting code on these. As Ahmad pointed out in his blog post, they gave all 5000 attendees a Samsung tablet device running Windows 8 Developer Preview, which came preloaded with Visual Studio 11 and a bunch of Win8 Apps to illustrate some of the new concepts.


(interesting to note is that most of these apps were written by summer interns... man I wish I had that cool of an internship myself, back then!!)


I am writing this blog post to reflect on some of the new paradigms they introduced.


2 Operating Systems in 1


First, Windows 8 (not Windows Server 8) can run in 2 main modes:

  • the touch-centric one, which expands on the Windows Phone 7 interface with a collection of dynamic "tiles" (i.e. icons on steroids)
  • the "classic" Windows mode, almost identical to Windows 7

In the classic mode, the "Start Menu" brings you back to the touch-centric Start page.


APIs for all!


As you can see in the second screenshot Ahmad posted here, Microsoft added a entire new framework for developers to use and develop "Metro Style Apps" which run in the touch-centric mode I described above. This is in addition to all the existing APIs you are familiar with today, which can still be used to develop regular "Desktop Apps" which run in the classic mode I described above. This second option will most likely fade out over the next coming years, as touch-centric apps gain popularity.


This new set of APIs is called the Windows Runtime (WinRT for short) and is being surfaced in a seamless manner in C, C++, C#, VB.NET as well as JavaScript (!!!). These APIs abstract out the internals of the OS and provide very rich access to various components, including the UI aspect of it in most cases. For example if you invoke the File Picker in your app, it's going to bring the user in a standard file picking environment that makes the file selection process consistent and very enjoyable. This environment reaches out to various areas of your file system, online locations like SkyDrive, as well locations being exposed by other apps (e.g. Facebook of Flickr, if you are looking for a picture).


As far as the UI, you need to use XAML when you develop in C, C++, C# or VB.NET (just like when you build Silverlight or WPF applications), or HTML5 when you work in conjunctino with JavaScript.


Note, you can develop WinRT components (akin to a .NET Assembly) in one language, which can then be referenced and used by apps written in any other language.


Layouts and Orientations


Because of the vast array of form factors and devices this is meant to run on, you can imagine that app developers will have to accomodate for various resolutions, aspect ratios, as well as the fact that a number of these devices can actually rotate (from portrait to landscape and vice-versa).


In addition to that, Microsoft introduced a new layout paradigm that every app needs to support: apps can be either of 3 modes:

  1. Full-screen: every single pixel of the screen is yours… no title bar, no status bar, no tool bars. Options that are not part of the main UI are relayed to areas that can be invoked by sliding your finger from the edges of the screen.
  2. Pinned: a state available when in landscape, where the app takes up 320 pixels wide (and full height) on the left or right side of the screen. Note, your app can have a different behavior than in full screen mode (or even be static and not work at all), but you have to provide that view.
  3. Filled: when an app is pinned, the rest of the screen (total width - 320px - 20x for the slider) is the app in "filled" state.

Cross-App Interoperability


Another interesting paradigm they introduced is this concept of "Contracts" - examples of these are the Search, Share and Picker contracts. If you implement the Picker contract, for example, then your app appears in the File Picking experience I described above, allowing users of another app to pick up something (e.g. a picture) from your app.


In other words the more apps implement these contracts, the more interoperable they become and the more rich the Windows 8 experience will become.


Live Tiles and Notifications


The last thing I would like to share here is about the live tiles and notifications -two great opportunities for developers of Metro style apps in Windows 8. Basically, tiles need to be more than just an icon; they are the doorway, the invitation to your app. As such, it can (and probably should) contain more than an icon and a title… it can contain content from within your app (e.g. pictures, in the case of a photo app), state and number indicators, etc.


Plus, these are dynamic and can change over time, which is a great opportunity to communicate/engage with the user (e.g. notify the user of something that changed). They also support what they call Toast Notifications, which consist of notifications that can be delivered whenever, not necessarily when your app is running.




This is a summarized summary (!) of some of my takeaways from this week, and I think all of this is pretty exciting for every single one of you - whether you are a developer or an end-user. I look forward to learning and experimenting more with Windows 8, and especially look forward to hearing your thoughts about how you see OSIsoft leveraging all this to deliver exciting products to you.


Talk to you soon!


Programmer Day!?

Posted by hanyong Employee Sep 15, 2011

Some fun fact:


Maybe it will become an official holiday someday in the future?

Here is a picture of the Windows 8 Samsung tablet given out on Tuesday. It looks very smooth for the most part. However, given that this is a developers' prerelease version there are inevitably some rough edges here and there.




A very cool feature of Windows 8 is that when you don't use an application all of its processes go to s suspension mode. So, it stays in the memory but doesn't use any CPU. See my task manager a few seconds after I moved away (didn't close) my IE and piano apps. This should save a lot of energy and also make visible apps run a lot faster.



Today (Tuesday) is the opening day of Microsoft BUILD which is revealing some super cool features of upcoming Windows 8. The morning has been packed with keynote and very exciting demos. Some of the key and very cool features of the upcoming Windows are:

  • Totally touch-friendly
  • Whatever runs on Windows 7 will run on Windows 8
  • You can keep using mouse and keyboard if you want
  • the start-up time from sleep is less than 10 seconds!
  • The OS is very power-savvy shutting down all the processes when the corresponding application is not visible or in use
  • Great Cloud and sharing integration
  • Easy-to-create app environment
  • Publish your applications directly from the Visual Studio!

Over the next few days more and more details will be revealed


For people who are following Ahmad's blogs, you should have noticed a new blog post about OSIsoft vCampus Live! 2011 open for registration. Yes, the event website is now up and running. You can visit the website at


The agenda and abstracts of the confirmed presentations and hands-on sessions are published on the website as well. You will definitely find a wide range of technical topics covering different aspects of the PI System throughout the 3 days.


Visit the website to know more about the event and register early!

OSIsoft vCampus Live! 2011 is right around the corner! Our annual event is scheduled for Nov 30 - Dec 1 2011 in San Francisco. It is the best place to gain insight and in-depth knowledge on PI System technology and meet with fellow PI System professionals as well as OSIsoft developers and staff. There will be something of great and immediate value for anyone working with the PI System in this year's vCampus Live! event! The event is specifically designed for:

  • Technology executives in the manufacturing, process and IT industries
  • PI System developers
  • System architects (especially those with enterprise-level roles)
  • OEM and VAR software engineering staff
  • System integrators and ISVs
  • Enterprise PI System managers
  • PI System administrators and PI System power users
  • Anyone using PI System on a regular basis



Based on the feedback from the OSIsoft vCampus community, we are providing a unique experience this year with lots of hands-on sessions where you can try and learn existing and cutting edge PI Technology with an OSIsoft developer or specialized engineer. We will also have regular presentations filled with new and exciting developments around the PI System from fellow vCampus Community members and OSIsoft staff!


On top of that, there will be a Developers Lounge to give attendees a one of a kind opportunity to meet, network and talk with other OSIsoft developers in a relaxed environment.


 It is the best opportunity to:

  • Network and talk to fellow users of PI System from a technical perspective
  • Learn more about PI System from fellow users of PI System as well as OSIsoft Product Managers and Developers
  • Experience the development of applications using the PI System through the hands-on sessions

Register today to take advantage of the reduced rates for the Early Birds!

Graybeards remember when RS232 breakout boxes and protocol analyzers ranked as ninja tools for commissioning PI System interfaces.


Ideally there was a dedicated port for the interface and cabling was a simple matter of determining DTE or DCE pin out.  For alarm printers we would customize a Y cable so the PI System could eavesdrop on an existing serial link (PI event logger and PI UFL stream loader are the usual interfaces). In this latter configuration the trick was to snip the transmit wire to help avoid a signaling disturbance returning from the interface node that could lock up the printer, fill print buffers and generally get you in hot water with the operators.


Fast forward to unidirectional security gateway technology. The data transmission path is usually provisioned with a single strand of optical fibre. Network security enforcement is simple because the destination system has no return into the protected network.


So there it is - a simple idea for security that is too good to just fade away.  Can it really be that simple? Hear all about it in a Webinar on Thursday, September 15, 2011 "Strong Cybersecurity: Power Plant Case Study" from vCampus members Andrew Ginter of Waterfall Security Solutions and Denis Kilgore of DLL Solutions.



This is a real burden for many computer-savvy as well as ordinary users of multiple computers. It is common practice these days to have a work and a personal computer, not to mention tablets and other types of personal gadgets. How do you keep the files in sync?


The following article is nicely counting a number of different ways to tackle the challenge. It might be useful for personal use as well as system administrators to be aware of the existing options.



I thought I'd share this trick we've used, when we want to utilize the functionality of PI Webparts but our client uses another product / technology for hosting their intranet pages.


As you may already know, Sharepoint IS required for hosting the PI Webparts, so we need it to be present in some form for this to work. Companies may already have Sharepoint server without them using it, and the free versions work fine for our task. Sharepoint Foundation 2010 is the latest version, and Windows Sharepoint Services (WSS3) is the previous one.


Our goal is to use the webparts in webpages hosted outside Sharepoint - so how do we do that? Simple - just set it up using an iframe!




Since Sharepoint displays a lot of navigation menus, headers, buttons, etc. in addition to the content we're looking for, we need to find a way of getting rid of this. Sharepoint uses master pages to set up many of these items which are called 'placeholders', so we'll have to modify the master page to make them go away. Because of the way Sharepoint works, these placeholders still need to be present in the master page, so we'll have to go through all of them and either clear the contents or set the Visible property to false.




Step 1


Copy one of the existing master pages found in the master page gallery of your Sharepoint server, preferably the default.master. You can use the freely available Sharepoint Designer, or just Notepad. Rename it (I've called mine zen.master) and delete the content of most of the placeholders - or set Visible="false".






Step 2


After finishing the master page, you need to create a webpart page which should use your newly created master page. This webpart page should also contain the PI Webpart you wish to expose through the iframe, but be sure to change the master page before adding the PI Webpart, as they don't normally like to function after being edited in Sharepoint Designer. Only a few placeholders should be created here, most important one is the "PlaceHolderMain" which will contain the WebPartZone where webparts are allowed to be dropped onto.






Step 3


Create your webpage outside of the Sharepoint environment, and include the iframe tag to get the contents from the Sharepoint webpart page. Example:

<iframe src="http://server/page.aspx" frameborder="no" width="621px" height="421px" scrolling="no"> </iframe>



A normal Sharepoint page with an RtTrend webpart could look something like this:




And after applying the zen master page we are left with this:

3288.RtTrend_5F00_admin_5F00_user_5F00_small.jpg 5875.RtTrend_5F00_normal_5F00_user_5F00_small.jpg
Webpage, admin user Webpage, non-admin user



As you can see, the "Site Actions" button is kept on the page, but it is only visible for users with enough permissions to edit the Sharepoint pages. So for normal users this would not be visible.


Please note that I've only tested this with MOSS / WSS3, as you also can see from the screenshots, but everything should work properly in Sharepoint 2010 as well. (Though you may have to do a couple of extra steps to get rid of the Office-style ribbons introduced in Sharepoint 2010)


The attached file contains a copy of my master page, a Sharepoint aspx page, and also a normal non-Sharepoint aspx webpage.

Filter Blog

By date: By tag: