Foreword | p. v |
Foreword | p. vii |
Preface | p. ix |
About the Authors | p. xiii |
Acknowledgements | p. xv |
Introduction | p. 1 |
OPC Foundation | p. 1 |
Classic OPC | p. 3 |
OPC Data Access | p. 4 |
OPC Alarm and Events | p. 5 |
OPC Historical Data Access | p. 6 |
Other OPC Interface Standards | p. 6 |
OPC XML-DA | p. 7 |
Motivation for OPC UA | p. 8 |
OPC UA Overview | p. 10 |
OPC UA Specifications | p. 11 |
OPC UA Software Layers | p. 13 |
Evolution Not Revolution | p. 15 |
Summary | p. 16 |
Key Messages | p. 16 |
Where to Find More Information? | p. 17 |
What's Next? | p. 17 |
Information Modeling: Concepts | p. 19 |
Why Information Modeling? | p. 19 |
Nodes and References | p. 22 |
Reference Types | p. 25 |
Objects, Variables and Methods | p. 30 |
Types for Objects and Variables | p. 36 |
Simple Object Types | p. 37 |
Simple Variable Types | p. 39 |
Complex Object Types | p. 42 |
Instance Declarations | p. 45 |
Complex Variable Types | p. 48 |
Modelling Rules | p. 48 |
Subtyping of Complex Types | p. 54 |
Data Variables and Properties | p. 58 |
Model Parent for Objects, Variables and Methods | p. 60 |
Data Types | p. 61 |
Data Type Node Class | p. 62 |
Built-in and Simple Data Types | p. 63 |
Enumeration Data Types | p. 63 |
Structured Data Types | p. 64 |
Specific Built-in Data Types | p. 68 |
Summary on Data Types | p. 71 |
Views | p. 71 |
Events | p. 74 |
Historical Access | p. 77 |
Historical Data | p. 77 |
Historical Events | p. 78 |
Historical Address Space | p. 79 |
Address Space Model and Information Models | p. 81 |
Summary | p. 83 |
Key Messages | p. 83 |
Where to Find More Information? | p. 84 |
What's Next? | p. 84 |
Information Modeling: Example and Best Practice | p. 85 |
Overview | p. 85 |
Example | p. 85 |
Application Scenario | p. 85 |
Simple Scenario - Similar to Classic OPC | p. 87 |
Advanced Scenario - Providing Full Power of OPC UA | p. 88 |
Best Practices | p. 94 |
Structuring with Objects, Reference Types and Views | p. 95 |
Type Definitions (Object Types and Variable Types) | p. 96 |
Providing Complex Data Structures | p. 100 |
Providing User-Defined Data Types | p. 102 |
Properties | p. 102 |
Methods | p. 103 |
Modelling Rules | p. 103 |
Proxy Objects (Properties on References) | p. 104 |
Summary | p. 105 |
Key Messages | p. 105 |
Where to Find More Information? | p. 105 |
What's Next? | p. 106 |
Standard Information Models | p. 107 |
Overview | p. 107 |
Handling Information Models | p. 107 |
What is Specified by an Information Model? | p. 107 |
How is an Information Model Specified? | p. 111 |
How are Multiple Information Models Supported? | p. 111 |
Base OPC UA Information Model | p. 112 |
Capabilities and Diagnostics | p. 115 |
Data Access | p. 115 |
Historical Access and Aggregates | p. 116 |
State Machine | p. 117 |
Programs | p. 118 |
Alarms and Conditions | p. 119 |
Domain-Specific Information Models | p. 120 |
Overview | p. 120 |
Devices Information Model | p. 121 |
Summary | p. 122 |
Key Messages | p. 122 |
Where to Find More Information? | p. 123 |
What's Next? | p. 123 |
Services | p. 125 |
Overview | p. 125 |
General Service Concepts | p. 126 |
Timeout Handling | p. 127 |
Request and Response Headers | p. 127 |
Error Handling | p. 128 |
Extensible Parameters | p. 129 |
Communication Context | p. 129 |
Convention for Describing Services in this Chapter | p. 131 |
Finding Servers | p. 131 |
Service Find Servers | p. 132 |
Service Get Endpoints | p. 133 |
Service Register Server | p. 134 |
Connection Management Between Clients and Servers | p. 134 |
Secure Channel Establishment | p. 135 |
Creating an Application Session | p. 136 |
Closing an Application Session | p. 138 |
Cancel Outstanding Service Requests | p. 138 |
Find Information in the Address Space | p. 139 |
Services Used for Discovering the Address Space | p. 139 |
Use Cases for Finding Information in the Address Space | p. 145 |
Read and Write Data and Metadata | p. 155 |
Reading Data | p. 155 |
Writing Data | p. 157 |
Subscribe for Data Changes and Events | p. 158 |
Delivery of Changed Data and Events | p. 159 |
Create and Manage Subscriptions | p. 164 |
Create and Manage Monitored Items | p. 167 |
Monitor Data Changes | p. 171 |
Monitor Events | p. 173 |
Monitor Aggregated Data | p. 175 |
Calling Methods Defined by the Server | p. 176 |
Access History of Data and Events | p. 177 |
History Read Service | p. 177 |
History Update Service | p. 183 |
Find Information in Complex Address Space | p. 186 |
Modify the Address Space | p. 187 |
Adding Nodes | p. 188 |
Creating References Between Nodes | p. 188 |
Removing Nodes | p. 189 |
Delete References Between Nodes | p. 189 |
Summary | p. 189 |
Key Messages | p. 189 |
Where to Find More Information? | p. 190 |
What's Next? | p. 190 |
Technology Mapping | p. 191 |
Overview | p. 191 |
Data Encodings | p. 192 |
OPC UA Binary | p. 192 |
XML | p. 193 |
Security Protocols | p. 194 |
WS-Secure Conversation | p. 194 |
UA-Secure Conversation | p. 196 |
Transport Protocols | p. 198 |
UA TCP | p. 198 |
SOAP/HTTP | p. 199 |
Available Mapping Implementations | p. 200 |
Summary | p. 201 |
Key Messages | p. 201 |
Where to Find More Information? | p. 202 |
What's Next? | p. 202 |
Security | p. 203 |
Why is Security so Important? | p. 203 |
Organizational Perspective of Security | p. 204 |
Technical Perspective of Security | p. 205 |
Determining The Appropriate Level of Security | p. 206 |
Security Assessments | p. 206 |
The OPC UA Security Assessment | p. 209 |
The OPC UA Security Model | p. 209 |
Security Architecture | p. 209 |
Securing the Communication Channel | p. 212 |
Authentication and Authorization | p. 218 |
Security Policies and Profiles | p. 222 |
Certificates | p. 222 |
What is a Certificate? | p. 222 |
OPC UA Certificates | p. 224 |
Public Key Infrastructure for OPC UA | p. 227 |
What is a PKI? | p. 227 |
Trust Models | p. 228 |
Certificate Lifecycle Management | p. 231 |
Available PKI Frameworks | p. 238 |
PKI for Industrial Applications | p. 242 |
Summary | p. 252 |
Key Messages | p. 252 |
Where to Find More Information? | p. 252 |
What's Next? | p. 253 |
Application Architecture | p. 255 |
Introduction | p. 255 |
Architectural Overview | p. 255 |
Stack | p. 256 |
Interface | p. 256 |
Encoding Layer | p. 257 |
Security Layer | p. 257 |
Transport Layer | p. 257 |
Platform Layer | p. 258 |
Software Development Toolkit | p. 258 |
UA-Specific Functionality | p. 258 |
Common Functionality | p. 259 |
Interfaces | p. 260 |
Application | p. 260 |
Client | p. 260 |
Server | p. 261 |
Deliverables Provided by the OPC Foundation | p. 261 |
Stacks | p. 262 |
SDKs | p. 262 |
Applications | p. 263 |
Summary | p. 263 |
Key Messages | p. 263 |
Where to Find More Information? | p. 263 |
What's Next? | p. 264 |
System Architecture | p. 265 |
System Environment | p. 265 |
Basic Architecture Patterns | p. 265 |
Client-Server | p. 265 |
Chained Server | p. 266 |
Server-to-Server Communication | p. 267 |
Aggregating Server | p. 268 |
Redundancy | p. 269 |
Client Redundancy | p. 269 |
Server Redundancy | p. 270 |
Discovery | p. 273 |
Why discovery? | p. 273 |
Discovery Entities | p. 274 |
Discovery Process | p. 275 |
Auditing | p. 277 |
Overview | p. 277 |
Audit Logs | p. 278 |
Audit Events | p. 278 |
Service Auditing | p. 279 |
Use Cases | p. 279 |
Summary | p. 281 |
Key Messages | p. 281 |
Where to Find More Information? | p. 281 |
What's Next? | p. 282 |
Mapping of COM OPC to OPC UA | p. 283 |
Overview | p. 283 |
OPC Data Access 2.05A and 3.0 | p. 283 |
Address Space | p. 284 |
Access Information | p. 285 |
OPC XML-DA 1.01 | p. 286 |
OPC Alarm and Events 1.1 | p. 286 |
Address Space | p. 287 |
Access Information | p. 288 |
OPC Historical Data Access | p. 289 |
Address Space | p. 290 |
Access Information | p. 290 |
Summary | p. 292 |
Key Messages | p. 292 |
Where to Find More Information? | p. 292 |
What's Next? | p. 292 |
Migration | p. 293 |
Overview | p. 293 |
Wrappers - Access COM Server from UA Client | p. 293 |
Proxies - Access UA Server from COM Client | p. 295 |
Native Development | p. 296 |
Summary | p. 296 |
Key Messages | p. 296 |
Where to Find More Information? | p. 297 |
What's Next? | p. 297 |
Profiles | p. 299 |
Motivation | p. 299 |
Profiles, Conformance Units and Test Cases | p. 299 |
Profiles for Server Applications | p. 300 |
Profiles for Client Applications | p. 301 |
Transport Profiles | p. 301 |
Security Profiles | p. 302 |
Certification Process | p. 302 |
Summary | p. 303 |
Key Messages | p. 303 |
Where to Find More Information? | p. 303 |
What's Next? | p. 303 |
Performance | p. 305 |
Overview | p. 305 |
Performance Numbers | p. 306 |
Summary | p. 309 |
Key Messages | p. 309 |
Where to Find More Information? | p. 309 |
What's Next? | p. 309 |
Conclusion and Outlook | p. 311 |
OPC UA in a Nutshell | p. 311 |
Is OPC UA Complicated? | p. 311 |
Are OPC UA Services Difficult to Handle? | p. 312 |
Is Information Modeling a Pain? | p. 314 |
Transport Protocols and Encodings: Why So Many? | p. 317 |
Implementation Issues | p. 319 |
Migration of Existing Code | p. 319 |
Management Summary | p. 321 |
Outlook | p. 321 |
Literature | p. 323 |
Graphical Notation | p. 327 |
Motivation and Relation to UML | p. 327 |
Notation | p. 328 |
Example | p. 330 |
Node Classes and Attributes | p. 333 |
Base Information Model Reference | p. 335 |
Index | p. 337 |
Table of Contents provided by Ingram. All Rights Reserved. |