Course overview
This course is intended for application developers who have already started learning the basics of OPC UA. If you are new to Industry 4.0 and OPC UA, you may still be able to get a head-start with this course as the first few sections focus on introducing the OPC UA and its information model. For a more complete learning experience, you can take a look at our earlier course 'Practical Introduction to OPC UA - Part I' at https://kalycito.teachable.com/p/opc-ua-the-interoperability-standard-for-industrial-communication.
Both Part 1 and Part 2 courses share the concept of information modeling with OPC UA. While Part 1 of the course focuses on the key features of the OPC UA Client/Server communication such as,
- Read Write services
- Method calls
- Subscription for data change
This course (Part 2) focuses on the key concepts and features of OPC UA such as,
- Event Notifications
- Historical Data Access
- Alarms and Conditions
Rather than explaining the under-the-hood complexity behind each specification item, we have tried to strike a balance between covering as many use cases on one side while simplifying the technology for application developers on the other.
This course includes hands-on sessions by using sample applications based on the open source OPC UA stack open62541.
In addition to the open62541 OPC UA stack, all the other software components used in this course are available in open source and you do not need to spend on any software licenses.
Objectives of this course
Together with Part 1 and Part 2, the objective of this course is to equip application developers with,
- Basics of OPC UA information modeling with a hands-on example
- Step-by-step walk-through of client and server applications demonstrating the following OPC UA features:
- Event Notifications
- Historical Data Access
- Alarms and Conditions
- Develop your own applications based on OPC UA
What will you learn
At the end of this course, you will understand how to,
- Compile a custom information model into an OPC UA server by using the Open Source open62541 stack as an example
- Implement events in an OPC UA server and get event notifications in an OPC UA client application
- Configure an OPC UA server to store historical data and access it from an OPC UA client application
- Implement alarms and conditions in an OPC UA server and activate/acknowledge/confirm from an OPC UA client application
Required hardware and software
- One One PC/laptop with Windows 10 Pro or Ubuntu 18.04
- Open source OPC UA stack based on the open62541 project
- Open source OPC UA client based on the FreeOpcUa project
Course Curriculum
- Benefit of using an OPC UA information model (4:56)
- Define a custom information model for a machine use case (3:25)
- Concepts of address space, nodes and references in OPC UA (3:34)
- Identify a node uniquely in the OPC UA address space (3:56)
- The eight node classes in OPC UA
- Overview of references in OPC UA
- Address space organization in OPC UA
- Quiz on standard notations of node classes and references
- Concepts of events in OPC UA
- OPCUA events server codewalkthrough introduction (0:33)
- Creating event type in server information model (6:21)
- Configure an object to notify events (2:39)
- Define method under machine objects (3:07)
- Define properties of event and trigger event with method call (8:00)
- Create subscription in OPC UA server (11:34)
- Create monitored items to get event notifications (15:26)
- Trigger event by method call from OPC UA client (13:24)
- Quiz on OPC UA events
- Concepts of historical data access in OPC UA
- Enable History read write in information model (9:54)
- Configure historical database to store values from temperature Sensor (9:33)
- Read historical data from OPC UA server with client application (9:58)
- Analyze history read request and response (2:55)
- Store the historical data in log file (6:59)
- Quiz on historical data access
- Concepts of alarms and conditions in OPC UA
- Create condition source object to notify events (8:32)
- Create condition instance of OffNormalTypeAlarm (7:44)
- Define usercallback for alarm states (12:29)
- Use ValueCallback to trigger alarm to active state (10:49)
- Subscribe to the condition source object to get event notifications (20:26)
- Enable alarm from client application (12:43)
- Trigger alarm to active state from client application (10:20)
- Acknowledge and confirm the alarm from client application (21:02)
- Quiz on alarms and conditions