|
PI Application Development Course
IntroductionThe objectives of this class are to teach the participants everything needed to get access to and make use of our Data Access technologies, available through the OSIsoft Virtual Campus (vCampus) program and to teach the best practices related to developing applications for the PI System. The OSIsoft Virtual Campus program will continue supporting everything related to PI Application Development Course after the course attendance, under the form of:
- A community experience with discussion forums and blogs;
- An online library;
- Technical and interactive webinars.
In this class we teach how to use entirely or partially the following products:
- PI OLEDB Provider
- PI SDK
- AF SDK
- AN SDK
- PI OPC DA/HDA Server
- PI ACE (Advanced Computing Engine)
The class includes many self-paced exercises and directed exercises to do, accompanied with demonstrations of the different presented functionalities. The directed exercises, self-paced exercises and demonstration will be presented in Visual Basic .NET but all the solutions will be provided in C# as well.
Each section of the class will give you the opportunity to write real-world applications. The different exercises will get you involved in writing complete blocks of functionalities either on your own or by filling the gaps of an application with some foundations. At the end of the class, the student will leave with working applications that can be used.
The class is five (5) days long. Class starts at 8:30 a.m. and ends approximately at 4:30 p.m. Lunch breaks are at noon each day and last 60 minutes. This class provides 32 classroom hours of instruction.
Class AudienceThis is intended for the developer who needs to develop or maintain applications that make use of the PI System.
Class PrerequisitesThe prerequisite skills listed below ensure students have a successful experience with this course. The course materials are designed with these assumptions in mind and no class time will be unreasonably spent to bring people up to speed on these topics. A list of suggested readings can be found below to help prepare for the course.
1. Being a member of the OSIsoft Virtual Campus (vCampus) program is not a prerequisite to this course, but membership is required to get development licenses for the PI System. All the topics taught in this class will require you to have the appropriate license to develop your own applications after the course. Membership to OSIsoft vCampus (http://vCampus.osisoft.com) provides each subscriber with a personal development PI System, as well as continuous support for programming and integration topics (an online library, blogs and discussion forums, interactive training, etc.).
2. You should have attended the PI ProcessBook, PI DataLink and RtWebParts class before taking this one or have an equivalent experience.
You should be able to perform these tasks before attending the course:
- Describe what the PI System is;
- Draw a diagram of the architecture of a PI system;
- Describe how data flows in PI;
- Describe what a PI Point is;
- List the basic point attributes and their usage;
- Express absolute time in the proper format;
- Express relative time in the proper format;
- Select appropriate parameters for the exception mechanism;
- Select appropriate parameters for the compression mechanism;
- Create new connections to PI Servers using a common dialog window;
- Modify existing connections using a common dialog window;
- Search for points using a common dialog window;
- Look at point attributes using a common dialog window;
- Describe what the PI Module Database structure is.
If you are not proficient performing tasks described in the previous list, some Computer Based Training (CBT) discs are recommended in the Suggested CBTs section.
3. You must be familiar with Visual Basic .NET or C# language. You must know how to navigate and use Visual Studio .NET. If you are not proficient in using these programming languages, some books are recommended in the Suggested Readings section and some CBTs are recommended in the Suggested CBTs section.
4. You should know how to perform basic database queries using the SQL language. Click here for a qualifying question
Can you find which query cannot give the results shown in table MYTABLE?

a) INSERT INTO MYTABLE (FIELD1, FIELD2, FIELD3) SELECT FIELD99, FIELD98, FIELD95 FROM YOURTABLE WHERE FIELD3 IN (‘Grade 1’, ‘Grade 2’, ‘Grade 3’)
b) INSERT INTO MYTABLE (FIELD1, FIELD2, FIELD3) SELECT TOP 10 FIELD99, FIELD98, FIELD95 FROM YOURTABLE WHERE FIELD1 IN (‘ABC’, ‘DBF’, ‘GBI’)
c) INSERT INTO MYTABLE (FIELD1, FIELD2, FIELD3) SELECT FIELD99, FIELD98, FIELD95 FROM YOURTABLE WHERE FIELD1 LIKE ‘%B%’ AND FIELD94 > 30.0
Click here for THE ANSWER
Class Reference Books
- PI OLEDB Documentation
- PI OPC DA/HDA Server Documentation
- PI SDK Documentation
- AF SDK Documentation
- AN SDK Documentation
- PI ACE Documentation
- PI WebParts Documentation
Suggested Readings prior to attending the class
- Microsoft Visual Basic .NET Step by Step, Author: Michael Halvorson, Microsoft Press ISBN 0-7356-1374-5;.
- Microsoft Visual C# 2008 Step by Step, Author: John Sharp, Microsoft Press ISBN 0-7356-2430-5;
- Microsoft Visual C# 2005 Step by Step, Author: John Sharp, Microsoft Press ISBN 0-7356-2129-2;
- Microsoft ADO.NET, Author: David Sceppa, Microsoft Press ISBN 0-7356-1423-7
- Beginning SQL, Author: Paul Wilton and John Colby, Wrox ISBN 0-7645-7732-8
- http://www.opcfoundation.org/Default.aspx/01_about/01_whatis.asp?MID=AboutOPC
- Tutorial on what is a web service offered by w3schools.com at this URL: http://www.w3schools.com/webservices/default.asp.
Suggested CBTs prior to attending the class (not required but will provide helpful background knowledge)
CBTs can be purchased online here: http://training.osisoft.com/5%20Ways%20to%20Learn/Computer%20Based%20Training They are also provided as part of the OSIsoft vCampus program: http://vCampus.osisoft.com/content/OnlineCourses.aspx
- PI ProcessBook, PI DataLink, and PI WebParts CBT (Chapter 1.0 Introduction to PI, Chapter 2.0 Common Dialog Windows, Chapter 8.0 PI Analysis Framework);
- PI ACE CBT (Chapter 1.0 Introduction to PI, Chapter 2.0 Introduction to PI ACE, Chapter 3.0 The PI ACE Wizard, Chapter 10.0 Advanced Features).
Suggested webinars prior to attending the class
In the “Product Series” webinar series on the Training website:
- High Availability PR1;
- How AF 2.0 Helps You Structure Your Real Time Information.
In the OSIsoft vCampus “Builders’ Café” webinar series:
- OPC - Past, Present and Future;
- PI Programming 101;
- Tour of the AF and PI Notifications Developer Tools.
Course Tasks
Tasks in Introduction to PI and PI Programming
- Understand the OSIsoft vCampus program.
- Identify available resources to obtain information on PI development and integration.
- Explain what the PI System is.
- Draw a diagram of the architecture of a PI System.
- Describe how the data flows in PI.
- Identify various programmatic ways to access PI.
- Describe required steps to develop an application.
- Explain what development can be done with the PI Server.
- Explain what development can be done with AF.
- Explain what development can be done with PI Notifications.
- Explain what development can be done using OSIsoft’s Data Access technologies.
- Identify different products that empower the development of applications that make use of the PI System.
- Identify the strengths and weaknesses of the products that empower the development of applications that make use of the PI System.
- Describe what High Availability (HA) is.
- Explore products that save time (PI UFL, PI RDBMS, PI OLEDB COM Connector, PI APS, PI Manual Logger, PI to PI Interface, PI Enterprise Gateway).
Tasks in PI SDK
- Describe what PI SDK consists of.
- Create new connections to PI Servers using a common dialog window.
- Modify existing connections using a common dialog window.
- Search for points using a common dialog window.
- Look at point attributes using a common dialog window.
- Describe the most common objects in the object model and their relationships.
- Identify best practices for coding using PI SDK.
- Identify some best practices to debug your applications.
- Write code that connects to a PI Server and collective nodes.
- Write code that searches and retrieves PI Points.
- Write code that reads and writes point attributes.
- Write code that reads and writes values snapshot and archive values for PI Points.
- Write code that accesses and manages digital state sets.
- Write code that reads and writes the quality flags of archive values.
- Write code that reads and writes annotations of archive values.
- Write code that performs aggregated calculations for PI Points.
- Write code that performs calculations of expressions.
- Write code that reads and writes messages in the PI Server Message Log.
- Write code that manipulates time objects.
- Write code that makes uses of Event Pipes to handle new or changed events.
- Write code that manipulates the PI SDK dialog windows.
Tasks in AF SDK
- Explain what AF is and does.
- Describe what AF SDK consists of.
- Describe the most common objects in the AF SDK object model and their relationships.
- Write code that connects to an AF Server.
- Write code that accesses and manages AF element templates.
- Write code that accesses and manages AF elements.
- Write code that accesses and manages AF attributes.
- Write code that handles versioning of an AF element.
- Write a custom Data Reference for AF attributes.
- Write code that manipulates the AF SDK dialog windows.
Tasks in AN SDK
- Explain what PI Notifications is and does.
- Describe what AN SDK consists of.
- Write a custom Delivery Channel for PI Notifications.
- Write code that copies a PI Notification.
- Write code that manipulates instances of PI Notifications.
- Write code that manipulates the AN SDK dialog windows.
Tasks in ACE
- Explain the basics of PI ACE.
- Identify the components of PI ACE.
- Write a PI ACE module.
- Apply module context to a PI ACE module.
- Configure PI ACE to expose calculation results as a web service.
- Write a simple client to consume the PI ACE web service.
Tasks in Accessing PI through OPC
- Define the different OPC specifications.
- Identify what information is accessible through the PI OPC DA/HDA Server.
- Indicate the possible architectures of the PI OPC DA/HDA Server.
- Understand the implications of using the PI OPC DA/HDA Server with PI Servers configured in High Availability (HA) mode.
- Install and configure the PI OPC DA/HDA Server.
- Configure the PI OPC DA/HDA Server to work with a PI Buffer mechanism.
- Install the PI System Management Tools with limited numbers of plug-ins.
- Use OSIsoft's tools to read/write data to/from an OPC Server.
- Explain what OPC Automation is.
- Describe the usage of the main OPC Automation objects.
- Explain what OPC .NET API is.
- Describe the usage of the main OPC .NET API objects.
- Connect to an OPC DA Server using OPC .NET API.
- Read PI values with the OPC DA specification, using OPC .NET API.
- Write PI values with the OPC DA specification, using OPC .NET API.
- Connect to an OPC HDA Server using OPC .NET API.
- Access tag attributes with the OPC HDA specification, using OPC .NET API.
- Read PI values with the OPC HDA specification, using OPC .NET API.
- Write PI values with the OPC HDA specification, using OPC .NET API.
- Obtain aggregates using with the OPC HDA specification, using OPC .NET API.
Tasks in Accessing PI as a Relational Database
- Define what the OLEDB standard is.
- Explain the basics of the SQL language.
- Describe the catalog structure of PI exposed by the PI OLEDB Provider.
- Install and configure the PI OLEDB Provider.
- Indicate the possible architectures of the PI OLEDB Provider.
- Configure the PI OLEDB Provider to work with PI Server configured in High Availability (HA) mode.
- Create SQL Server views that integrate information from PI tables.
- Understand the 2 major usages: code-free environments and custom applications.
- List code-free methods to use PI OLEDB Provider.
- Use the PI OLEDB Tester to perform basic queries.
- Access PI using a Linked Server in Microsoft SQL Server.
- Design SQL queries to list, update, delete or insert data in PI Archive catalog tables.
- Design SQL queries to list or insert data in PI Log catalog table.
- Design SQL queries to list, update, delete or insert data in PI Point catalog tables.
- Explain options available to optimize query execution.
- Explain what ADO.NET consists of.
- Describe the usage of the main ADO.NET objects.
- Use ADO.NET objects in Visual Basic .NET to connect to PI using the PI OLEDB provider.
|
|
|