OPC UA Server For iFIX
OPC UA Server For iFIX
Version 6.1
JANUARY 2020
Disclaimer of Warranties and Liability
The information contained in this publication is believed to be accurate and reliable. However, General Electric
Company assumes no responsibilities for any errors, omissions or inaccuracies. Information contained in the pub-
lication is subject to change without notice.
No part of this publication may be reproduced in any form, or stored in a database or retrieval system, or trans-
mitted or distributed in any form by any means, electronic, mechanical photocopying, recording or otherwise,
without the prior written permission of General Electric Company. Information contained herein is subject to
change without notice.
Trademark Notices
© 2020, General Electric Company. All rights reserved.
* Indicates a trademark of General Electric Company and/or its subsidiaries.
All other product names and marks identified throughout this book are trademarks or registered trademarks of
their respective companies. They are used throughout this book in editorial fashion only. No such use, or the use
of any trade name, is intended to convey endorsement or affiliation.
No part of this publication may be reproduced in any form, or stored in a database or retrieval system, or trans-
mitted or distributed in any form by any means, electronic, mechanical photocopying, recording or otherwise,
without the prior written permission of GE. Information contained herein is subject to change without notice.
We want to hear from you. If you have any comments, questions, or suggestions about our documentation, send
them to the following email address:
[email protected]
Table of Contents
Architecture Overview 3
Quick Start 6
Server 7
Logging 7
Security 8
Alarms 8
Certificate 9
Trust List 9
Subscribing to Alarms 10
Subscribing to Tags 10
Namespace URIs 11
Advanced 21
Index 25
This help system describes the OPC Unified Architecture (UA) Server for the iFIX product. It includes
the following sections:
The iFIX OPC UA Server implements OPC Unified Architecture (UA), which is a secure, scalable,
multi-platform communication protocol. The iFIX OPC UA Server allows OPC UA Clients to access
data and alarms in the iFIX database.
For example, you can use the OPC UA Server to share data in the iFIX Database with applications on
your plant floor, with analytic tools, or with Enterprise Resource Planning (ERP) systems via OPC UA
client interfaces.
As an add-on component to iFIX, the iFIX OPC UA Server only runs when enabled, and when a valid cer-
tificate has been issued to the server (OPC UA applications need certificates to communicate if com-
munication, privacy, and authentication are enabled). iFIX requires a restart after any change to OPC
UA Server configuration.
For more detailed information on the OPC UA Server, refer to the following sections:
l OPC UA clients can read, write, and subscribe to changes in iFIX runtime database tags.
l OPC UA clients can subscribe to, view, and acknowledge alarms from the iFIX OPC UA Server.
l OPC UA clients can browse the iFIX tag database and alarm areas.
l OPC UA clients can subscribe to iFIX alarms by alarm area, or subscribe for all available alarms.
l A graphical user interface for OPC UA Server configuration.
l Privacy and integrity for information sent over the network ensured by the OPC UA protocol.
l Support for the OPC UA 1.04 specification for iFIX data and alarms.
l Support for centralized certificate management via the OPC UA GDS (Global Discovery Server)
API.
l The OPC UA Server and the OPC UA Configuration tool is only supported on the SCADA
Server. Neither are supported on an iClient (View node) or Remote Desktop (Terminal Server)
session.
l The OPC UA Server provides data and alarms only from the SCADA Server on which it is run-
ning. It does not provide access to data and alarms from other iFIX SCADAs.
l The Enhanced Failover feature is not supported for iFIX OPC UA Server. The OPC UA server
Architecture Overview
OPC Unified Architecture (UA) is a robust, scalable, flexible, and secure protocol used for exchanging
information between industrial automation and control systems, and is well suited for IoT (Internet of
Things) applications. OPC UA replaces the widely used OPC DCOM based standard (also called OPC
Classic) and is designed to interoperate with existing OPC Classic installations. OPC UA is a true indus-
trial interoperability standard for the Internet age.
Both OPC and OPC UA were developed by the not-for-profit OPC Foundation, which makes spe-
cifications for OPC UA available. For more detailed information on OPC UA, refer to the OPC Found-
ation web site: https://opcfoundation.org/
Applications that use the OPC UA protocol have a client/server relationship. You can think of the
iFIX OPC Servers as being producers of information, and OPC clients as being consumers:
l The iFIX OPC UA Server has data and alarms which are made available to other computers.
l The OPC UA client connects to the iFIX OPC UA Server to gain access to the data and alarms.
Since the OPC UA Server and OPC UA client are simply programs or applications, they can run on the
same computer or different computers.
l Quick Start
l OPC UA Server Configuration Tool
The following figure illustrates the workflow for configuring your OPC UA Server. For detailed steps,
refer to the Quick Start.
1. From the ribbon bar on iFIX WorkSpace, select the Applications tab.
2. Select OPC UA Configuration. The Server Configuration Tool appears.
3. On the Server tab, select the Server Enabled option.
4. Review the default settings for port, network address, logical host name, instance name and
other associated application information. Make changes as needed. The network address must
be the computer name or an IP address, as this represents how clients will locate the OPC UA
server. It is suggested to use the iFIX SCADA node name as the Instance name, but is not
necessary.
5. On the Certificate tab, select Generate Self-Signed.
6. Optionally, on the Logging tab, review the logging settings. If the default level of logging is not
detailed enough, you can change this value, but use caution in doing so. Using the highest levels
of logging results in very verbose logging, and may impact performance and client connectivity. If
you do select the highest level of logging, be sure to also enable the Optimize Log Output option
to reduce disk access.
7. Optionally, on the Security tab, review the security settings.
8. Optionally, on the Alarms tab, select the Alarms Enabled option. Leave the defaults.
9. Select Save and Exit to save all your changes.
10. Restart iFIX. You must restart iFIX for your changes to take effect, as the OPC UA Server will
start when iFIX starts.
11. After iFIX starts, using the Windows Task Manager, confirm that iFixUaServer.exe is a running
process. If it is not there, check the iFixUaServer.log file in LOCAL\Logs folder.
12. Attempt to connect using an OPC UA Client with the server's URL. The first time you connect, a
message will appear to trust the server certificate (depending upon the OPC UA client you are
using, this message and how you trust the server can differ).
13. Trust the server certificate.
14. Try to connect the client again. The connection should be rejected with a BadSe-
curityChecksFailed error because the server still needs to trust the client.
15. On the iFIX Server, in the OPC UA Server Configuration Tool, click the Trust List tab.
16. Select the client's certificate and then select Trust.
17. Test the connection again.
NOTE: The iFixUaServer.exe application does not need to be in the iFIX task list. It runs with iFIX on startup
automatically (and shuts itself down immediately if it is not enabled or if it does not have a self-signed or GDS-
signed certificate generated).
l Server
l Logging
l Security
l Alarms
l Certificate
l Trust List
Server
Item Description
Server If selected, the OPC UA server starts when iFIX starts.
Enabled
Port The TCP port that the OPC UA server uses. The default port is 51400.
Network The DNS name or IP address for the machine where the OPC UA application
Address is running. The network address must be the computer name or an IP address,
as this represents how clients will locate the OPC UA server.
Logical Host The logical name for the machine where the OPC UA application is running.
Name
Organization The name of the organization that is deploying the OPC UA application.
Name
Instance A unique name for the larger application instance which the OPC UA applic-
Name ation belongs to. It is suggested to use the iFIX SCADA node name as the
Instance name, but not necessary.
Endpoint The network endpoint which OPC UA clients use to communicate with the
URL OPC UA server. For example: opc.tcp://mycomputer:51400/.
This field is read-only. The four fields at the top of this screen control what dis-
plays here.
Application A unique identifier for the OPC UA application. For example: urn:-
URI mycomputer:MyCompany:iFix:FIX.
This field is read-only. The four fields at the top of this screen control what dis-
plays here.
Application The name of the OPC UA application. This name appears when OPC UA cli-
Name ents browse for OPC UA servers on a network. For example: FIX@-
mycomputer.
This field is read-only. The four fields at the top of this screen control what dis-
plays here.
Logging
Item Description
Logging If selected, then the OPC UA Server will write events to the log.
Enabled
Number of The maximum number of log file backups that are retained.
Log Files
Max The maximum number of lines written to the log file before it is backed up and a
Entries Per new log is created.
Security
Item Description
Allow secure com- If selected, ensures all traffic is kept private and that clients are
munication with data pri- authenticated.
vacy (SignAndEncrypt)
Allow secure com- If enabled, all network traffic is visible to eavesdroppers.
munication without data pri- However, clients can be authenticated.
vacy (SignOnly)
Allow communication with Not recommended as it does not use a certificate to secure
no security (None) communications between client and server. For use only in a
non-production environment.
Basic256Sha256 (Recom- This policy is acceptable and more likely to be supported by
mended) older applications.
Aes128-Sha256-RsaOaep This policy offers good security and is faster than the most
(Recommended - Fastest) secure policies; however, older applications will not support it.
Aes128-Sha256-RsaPss This policy is the most secure available; however, older applic-
(Recommended - Most ations will not support it.
Secure)
Basic256 (Not Recom- This policy has theoretical problems and is not recommended.
mended)
Basic 128Rsa15 (Not This policy has known vulnerabilities and should not be used
Recommended) unless absolutely necessary.
Alarms
Item Description
Alarms Enabled If selected, the OPC UA server will report alarms raised by iFIX.
Alarm Refresh The number seconds the OPC UA server waits before checking for new
Rate alarms.
Certificate
Item Description
Application Displays the certificate assigned to the OPC UA application. A red error icon
Certificate appears to the left if the certificate is not useable.
Generate Generates a new self-signed certificate for the OPC UA application.
Self-Signed Replaces any existing certificate.
Request from Requests a new certificate signed by a Certificate Authority (CA) from the
GDS Global Discovery Service (GDS).
Update Trust Reads the trust list from the GDS and updates the trust list used by the OPC
List UA application.
Configure Configures the endpoint and user credentials for the Global Discovery Ser-
GDS vice (GDS) to use.
Trust List
Item Description
Filter All - Displays all certificates in the trust list.
The Address Space exposes an Alarms folder which contains each of the configured iFIX alarm areas
on that SCADA. Clients can subscribe to one or more individual alarm area nodes, or all of them (ALL)
by subscribing to the parent Alarms folder.
The Address Space exposes iFIX tags under the Tags folder. Tags are organized into folders based on
tag type (for example: Analog Input). Each tag has a Value node which represents the current value of
the tag, which has a data type based on the tag type’s definition in OpcUaDefinitions.csv file. Under the
Value node you can browse other fields of the tag to subscribe to, read or write. Register tags (AR, DR)
are exposed as arrays in the OPC UA Server and can be accessed by clients using indexes (offsets)
into the Value array. Access is read-only in this case. If you want to write to these tags, you need to go
to the Offsets folder and browse to the specific offset you want to write to.
Subscribing to Alarms
From your OPC client, from the Alarms Folder, you can subscribe to all alarm areas or to individual
alarms areas. There is an Alarms folder under Root > Objects that provides access to the alarm areas.
Subscribing to Tags
From your OPC client, from the Tags folder, you can browse tags and subscribe to specific fields under
each tag. There is a Tags folder under Root > Objects that provides access to the tag types and fields.
Node IDs are defined by the server and are internal to the OPC UA Server. OPC UA clients retrieve
them by browsing the address space, and use them for reading, writing, or forming subscriptions.
The default iFIX OPC UA Server endpoint is opc.tcp//<iFIX SERVER Machine Name>:51800. For
example: opc.tcp://CC-AUTO-TEST10:51400, where CC-AUTO-TEST10 is the machine name running
the iFIX project.
By default, the iFIX OPC UA Server is disabled at iFIX Project startup. However, the OPC UA server
can be enabled in OPC UA Server Configuration tool.
Namespace URIs
0 - standard namespace, URI: http://opcfoundation.org/UA/ (Defined by the OPC Foundation)
The security of your iFIX OPC UA Server is configured in the OPC UA Configuration tool on the Secur-
ity, Certificate, and Trust List tabs.
Your main security settings and policies include those illustrated in the following figure. Be aware to use
caution on changing any setting with an exclamation point following it.
Item Description
Allow secure com- If this ensures all traffic is kept private and that clients are
munication with data pri- authenticated. This option is enabled by default.
vacy (SignAndEncrypt)
Allow secure com- If this is enabled all network traffic is visible to eavesdroppers
munication without data pri- However, clients can be authenticated. This option is enabled
vacy (SignOnly) by default.
Allow communication with Not recommended as it does not use a certificate to secure com-
no security (None) munications between client and server. For use only in a non-
production environment.
Basic256Sha256 (Recom- This policy is acceptable and more likely to be supported by
mended) older applications. This option is enabled by default.
Aes128-Sha256-RsaOaep This policy offers good security and is faster than the most
(Recommended - Fastest) secure policies; however, older applications will not support it.
This option is enabled by default.
Aes128-Sha256-RsaPss This policy is the most secure available; however, older applic-
(Recommended - Most ations will not support it. This option is enabled by default.
Secure)
Basic256 (Not Recom- This policy has theoretical problems and is not recommended.
mended)
Basic 128Rsa15 (Not This policy has known vulnerabilities and should not be used
Recommended) unless absolutely necessary.
The following sections describe how certificates and trust lists are set up, as well as more on the Global
Discovery Server (GDS) if that is used as your certificate authority (CA):
The iFIX OPC UA Server provides two ways to configure your certificates:
NOTE: Self-signed certificates are stored in your iFIX LOCAL folder. For example: C:\Program Files
(x86)\GE\iFIX\LOCAL\UA\pkiserver\own\certs
When you select the Configure GDS option, you enter the Endpoint URI, and user name and password
to connect to your GDS Server.
When setting up the trusts relationships, the client must first trust the server. Then, the server trusts the
client. After that relationship is setup, you can then test the connection between the iFIX
OPC UA Server and your OPC UA client. For an overview of setup steps, refer to the "Quick Start" on
page 6.
If you are using the Global Discover Server to manage your certificates, the GDS automatically sets up
your trusts between clients and servers.
If you are not using the GDS and instead have a self-signed certificate, the following diagram describes
the workflow a self-signed certificate. This workflow assumes the iFIX OPC UA Server is already run-
ning.
The GE Global Discovery Server (GDS) can be used to manage application certificates for all OPC UA
applications at a site. The GDS is a database of applications. It enables all applications in the GE GDS to
communicate with each other securely. It also performs like a search engine and can find all the applic-
ations that are running in your factory or environment.
The following figure describes how the GE GDS interacts with OPC UA Servers and Clients.
Applications with certificates that are signed by the GE Global Discovery Server can communicate with any
other client or server that also has its certificate signed by the GE Global Discovery Server.
Be aware of the following when using iFIX Security and the OPC UA Server:
l The OPC UA Server integrates with the iFIX security system for user authentication and author-
ization.
l OPC UA clients cannot use Anonymous mode for authentication if iFIX security is enabled.
l OPC UA clients must provide a valid iFIX user name and password in order to successfully connect
to the OPC UA Server.
l Once a session has been established with the OPC UA Server, the user’s permissions and priv-
ileges are enforced by the iFIX security system. If the logged-in user does not have permission to
write to a given tag or acknowledge its alarms (based on the tag’s security areas configuration), then
the operation will fail.
When Alarms are enabled for the iFIX OPC UA Server, the OPC UA server will report alarms raised by
iFIX.
OPC UA alarm notifications are sent to subscribers as a result of certain changes to the alarm's state.
Each OPC UA alarm type's notification to clients has its own set of event data associated with it. For
example, the ExclusiveLevelAlarmType has LimitState, which represents a limit is being exceeded by
the tag's value: HighHigh, High, Low, or LowLow.
In addition, all alarm notifications share data members that derive from parent OPC UA types, such as
ConditonType, AcknowledgeableConditionType, and AlarmConditionType.
The OPC UA specification (mostly in Part 9) defines the data associated with the different types of
event notifications, including whether that data is required or optional for a given event type. It also
defines the behaviors that define or are required by each event type. For more information, refer to the
OPC Foundation web site.
Alarms are not enabled by default for the iFIX OPC UA Server. You must enable and configure alarming
from the Alarms tab of the OPC UA Server Configuration tool.
The mapping between iFIX alarm priority ranks and OPC UA alarm severities are used to translate iFIX
alarm priorities into OPC UA numeric severity values. For details, refer to the Mapping of iFIX Alarm
Types to OPC UA Alarm Types section.
iFIX alarm types are mapped to certain OPC UA defined types. The following table describes how the
iFIX alarm types map to OPC UA alarm types.
The following sections will help you with understanding the iFIX tag type mappings and how they apply
to the OPC UA Server:
The following table describes how each iFIX tag type is represented in the iFIX OPC UA Server.
iFIX Typ- Display Variable Type Data- Value Rank Array Access
e Name Name type Dimen- Level
sions
AA Analog AnalogValue Double ReadWrit-
Scalar 0
Alarm e
AI Analog AnalogValue Double Scalar 0
Tag Type metadata such as the definition and datatype of the tag type's value, the display name of the tag
type, and anything else needed by the iFIX OPC UA Server is stored in a .csv file, OpcUaDefinitions.csv,
on the SCADA Server. The OpcUaDefinitions.csv file found in the iFIX LOCAL folder. By default, this folder
is typically located here: C:\Program Files (x86)\GE\iFIX\LOCAL.
The OpcUaDefinitions.csv file is initially populated with the iFIX defined tag type information. However, it
can be edited to change the representation of existing tag types in the OPC UA server's address space, or
to add information about custom block toolkit (BTK) tag types that customers or 3rd parties create.
Use extreme caution in editing this file, however. A third-party .csv parser should be incorporated to manage
the file contents. Be aware that the file also needs to be consumed (at startup), so that the metadata can be
provided to the OPC UA Server to form the SCADA's address space. Also, changes to the configuration of
tag types will change how the Value of tags of that type is represented, and if the configuration is invalid it
may result in the inability to access the tag’s value, or an incorrect representation of the tag’s value.
If you make change to the OpcUaDefinitions.csv file, you will need to restart iFIX after you save your
changes. Changes to the config (tag type data types) are reflected when iFIX is restarted.
For a description of the iFIX tag types and OPC UA mapping, refer to the "Default Representation of iFIX
Tag Types in the OPC UA Server" on page 18 section.
Advanced
The following sections provide assistance with understanding and troubleshooting your iFIX OPC UA
Server:
The level of trace information logged by the OPC UA stack used by the OPC UA server is specified in
the OPC UA Configuration tool on the Logging tab.
l OpcUaEdaApi.log: contains messages and errors related to iFIX interaction, including browsing
of alarms and data as well as security checks and reading and writing data.
l iFixUaServer.log: contains more of the server-related messages, messages related to OPC
UA, and, if stack-level tracing is enabled, messages from the UA stack which involve low-level
communications and events.
If something is going wrong with interaction with the underlying iFIX system, the OpcUaEdaApi.log file
should provide some useful errors, including the iFIX error codes.
NOTE: In some cases, errors will be logged due to the OPC UA Server trying to access a field that does not
exist for a given tag type. This is usually a normal occurrence and does not indicate a problem unless OPC
UA clients are actually trying to access that field of the tag and are receiving errors.
An example of a log message in the iFixUaserver.log file would be a message regarding a client con-
nection rejection. For instance, if the license limit of 2 clients was exceeded, you would find that mes-
sage in the iFixUaserver.log file.
Some issues you may encounter when using the iFIX OPC UA Server include those outlined in the fol-
lowing table:
Issue Description
Client Rejects the Server Certificate If a client rejects the server’s certificate almost
Immediately After Generation immediately after you generate it, check that the cli-
ent’s date and time is not before the time the self-
signed certificate was generated. Even if it is only a
few minutes off, an error can occur. In a client it
should show up as a "BadCer-
tificateIssuerTimeInvalid" error: An issuer cer-
tificate has expired or is not yet valid. This error can
also happen if the server’s certificate has expired.
Client Can Not Connect If an OPC UA client cannot connect to the iFIX
OPC UA Server, check:
certificate management 13
features 2
OPC UA Server 1
passed attributes 18
service, running as 5