PMT Hps Controledge Builder Protocol Configuration Reference Guide Rtdoc x288 en 140a
PMT Hps Controledge Builder Protocol Configuration Reference Guide Rtdoc x288 en 140a
RTDOC-X288-en-140A
April 2017
Release 140
Disclaimer
This document contains Honeywell proprietary information. Information contained
herein is to be used solely for the purpose submitted, and no part of this document
or its contents shall be reproduced, published, or disclosed to a third party without
the express permission of Honeywell International Sàrl.
While this information is presented in good faith and believed to be accurate,
Honeywell disclaims the implied warranties of merchantability and fitness for a
purpose and makes no express warranties except as may be stated in its written
agreement with and for its customer.
In no event is Honeywell liable to anyone for any direct, special, or consequential
damages. The information and specifications in this document are subject to
change without notice.
Contents
Disclaimer 2
Contents 3
About this guide 7
HART Configuration 9
Configuring a HART IP Server 9
Configuring a HART Function Block 10
Honeywell 2017 3
Contents
Description of CONFIG_INFO 57
Description of Input and Output Data Type 59
Modbus Protocol Error Codes 60
Endian Mode 61
OPC UA Configuration 63
Introduction 63
Prerequisite skills 63
OPC UA Server 64
System Architecture and Profiles 65
Access Level 66
Security 66
Redundancy 66
Accessing the Server Object 66
Server Diagnostics 67
Accessing ControlEdge PLC data 67
Overview 67
Ctrl Resources 68
Honeywell 2017 4
Contents
Ctrl Programs 69
ControlEdge PLC Diagnostics 70
Program Variable NodeIds 70
Global and Diagnostic Variables 71
Program Variables 71
Data Types 72
Elementary types 72
Structured Types 73
Arrays 75
Arrays of Structured types 75
Object Types 76
Reference types 77
Configure ControlEdge PLC OPC UA Server 78
Configuration 78
Binding Protocol to Ethernet Ports 78
Configuring Parameters for OPC UA Server 78
Key Parameters to establish OPC UA communication 83
Server Endpoint URL 83
Namespace 84
OPC UA Client 85
IEC 61131-3 OPC UA Function Blocks 85
IEC 61131-3 OPC UA function block usage 87
Usage Considerations 88
Prepare Phase for Reads, Writes or Method Calls 92
Establishing Connection with HonUaConnectSecurityNone 92
Honeywell 2017 5
Contents
Notices 113
Honeywell 2017 6
About this guide
Intended audience
This documentation is intended for the following audience: Users who plan, install,
configure, operate, or maintain the ControlEdge 900 Controller and I\O modules
running the eCLR (IEC 61131-3) execution environment.
Prerequisite skills
Knowledge of SCADA systems and experience of working in a Microsoft Windows
environment are required.
Special terms
The following table describes some commonly used industry-wide and Honeywell-
specific terminology:
Terminology Description
Honeywell 2017 7
About this guide
Terminology Description
Related documents
The following list identifies publications that may contain information relevant to the
information in this document.
RTDOC-X285-en-
ControlEdge Builder Software Installation User’s Guide
140A
RTDOC-X166-en-
ControlEdge Builder Software Change Notice
1401A
RTDOC-X283-en-
ControlEdge Builder User’s Guide
140A
RTDOC-XX75-en-
ControlEdge Builder Network and Security Planning Guide
140A
Honeywell 2017 8
HART Configuration
HART Configuration
HART supports two functionalities.
o HART IP client (FDM) communication
o HART Function Block communication
The controller enables the HART IP client to exchange information with HART field
devices connected to the AI/AO channels in the controller via a HART-IP Server.
Multiple HART IP clients can be served by the controller at the same time. When the
HART IP client builds a HART command request and sends it to the TCP/IP port of
the HART-IP server, the HART-IP server responds to the HART IP client with
information from the field device. Since it takes time for the controller to
communicate with the field devices through onboard or remote I/O cards, a delayed
response mechanism is implemented. The TCP /IP port of the HART-IP server is
user-configurable and the default port number is 5094. The end user may change
the port number if firewall configuration is required.
The controller enables HART function blocks to access to the HART field devices
through HART-enabled AI/AO channels. Currently HART command 3 and
command 48 are implemented.
Honeywell 2017 9
HART Configuration
1. From the IEC Programming Workspace, under the Project Tree Window,
right-click Logical POUs and select Insert > Program.
2. Enter the Name for the new POU, and select the desired programming Lan-
guage. For the following steps, FBD language is used as an example.
3. Click OK to insert the new POU in the project tree.
4. Add a Task as follows:
a. Under Physical Hardware, right-click Task and select Insert > Task.
b. Enter the Name and select the task type as CYCLIC, and click OK.
c. In the Task settings dialog, configure the corresponding parameters.
d. Click OK.
5. Right-click the task you have inserted, and select Insert > Program instance.
6. Enter a name in the Program instance field.
Attention:
The program instance must not be named “RTU” or
“GlobalVariable”.
7. Select the program you want to associate from the Program type drop-down
list.
8. Right-click Libraries and select Insert > Firmware Library, select hart.fwl
under the HART folder. Then click Include.
Honeywell 2017 10
HART Configuration
Tip:
For more information about the function block, right-click it and
select Help on FB/FU to display the embedded help.
12. Double-click the pin-outs of the function block to assign variables. The Vari-
able Properties dialog appears.
13. Select the Name, Data Type and Usage from the list.
o For the parameter GEN_DEV_STATUS, you should select HAR_GEN_
Value field. For example, if the target module name is "Expansion I/O
01", enter "01".
o For the parameter CHN, enter the target channel number in the Initial
Value field.
15. Click OK. The workplace will appear as shown below.
Programming Completion
Honeywell 2017 11
HART Configuration
Honeywell 2017 12
DNP3 Slave Configuration
Attention:
l Never is selected by default. It is not recommended to
select MultiFrag or Always options.
l If you select MultiFrag or Always, ensure that the Data
Link Retries and Data Link Retry Timeout are set.
10. In the Application Layer tab, if you select Enable Unsolicited Responses, the
controller sends event data to SCADA without any request from SCADA.
Unsolicited Response is an operation mode in which the outstation
Honeywell 2017 13
DNP3 Slave Configuration
Parameter Description
Unsolicited Response Retry Enter the time intervals between retry to send the
Delay unsolicited response.
Validate Outstation Select this option, the controller only accept data from
Address some specific outstation address.
Honeywell 2017 14
DNP3 Slave Configuration
Parameter Description
Attention:
DNP3 Time Synchronization If you select DNP3 Time Sync here, you
Period cannot enable Primary Server and
Secondary Server under Miscellaneous
> Configure Date/Time options at the
same time, or else you cannot
download your configuration.
Solicited response Enter the time in milliseconds the DNP3 driver waits for
confirmation timeout confirmation for the sent solicited application fragment.
Select before operation Enter the time in milliseconds the DNP3 driver waits for
timeout SBO.
Set the time interval for getting the EFM responses back
to Experion from the controller through the DNP3 virtual
terminal point.
EFM Data Class
There are three options defined by the DNP3 master:
l Class 1
l Class 2
l Class 3
11. Click Mapping tab, and then select the required mapping table from the
Honeywell 2017 15
DNP3 Slave Configuration
Tip:
The same mapping table may be selected for use on multiple
ports. For example, this could be used when a SCADA system
communicates through 2 ports in a redundant arrangement.
12. In the Default Variation tab, configure the default variation for each type of
DNP3 point. Default variation defines the data format that is used by the
controller to send data to the DNP3 Master, when the Master does not ask for
a specific data variation.
Parameter Description
Used to report the current value of a binary input point with three
options:
l Packed format
Used to report events related to a binary input point with four options:
l Any variation
Binary Input
l Value without time
Event
l Value with absolute time
Used to report the current value of a double-bit binary input point with
three options:
Double-bit l Any variation
Binary Input
l Packed format
Double-bit Used to report events related to a double-bit binary input point with four
Binary Input options:
Honeywell 2017 16
DNP3 Slave Configuration
Parameter Description
l Any variation
Used to control or report the state of one or more binary output points
with three options:
Binary l Any variation
Output
l Packed format
Used to report the current value of a counter point with five options:
l Any variation
Frozen Used to report the value of a counter point captured at the instant when
Honeywell 2017 17
DNP3 Slave Configuration
Parameter Description
l Any variation
Used to report the value of a counter point after the count has changed
with five options:
l Any variation
Counter l 32-bit integer with flag
Event
l 16-bit integer with flag
l Any variation
Frozen
Counter l 32-bit integer with flag
Event l 16-bit integer with flag
Used to report the current value of an analog input point with seven
options:
Analog Input
l Any variation
Honeywell 2017 18
DNP3 Slave Configuration
Parameter Description
Used to report events related to an analog input point with nine options:
l Any variation
Used to set and report the deadband value of an analog input point with
four options:
l Any variation
Analog Input
Deadband l 16-bit integer
l 32-bit integer
l Single-precision float
Used to report the status of an analog output point with seven options:
Analog l Any variation
Output
Status l 32-bit integer with flag
Honeywell 2017 19
DNP3 Slave Configuration
Parameter Description
l Any variation
l Any variation
Honeywell 2017 20
DNP3 Slave Configuration
13. Select Flash or SD card from the drop-down list besides Save DNP3 Events
to:.
Attention:
o If you want to save DNP3 events to SD card, you must
Honeywell 2017 21
Enron Modbus Slave Configuration
Tip:
The port configured for Enron Modbus Slave cannot be the
same port as that configured for Modbus Slave.
7. Click Save.
8. Click Connect from the Home Page to connect a controller. For the user name
and password, see "User Privileges" in ControlEdge Builder User's Guide.
9. Click Download from the Home Page to load the configuration of the Modbus
Slave to the controller.
Honeywell 2017 22
Modbus Slave Configuration
Tip:
The same mapping table may be selected for use on multiple
ports. For example, this could be used when a SCADA system
communicates through 2 ports in for redundancy.
8. Click Save.
9. Click Connect from the Home Page to connect a controller. For the user name
and password, see "User Privileges" in ControlEdge Builder User's Guide.
10. Click Download from the Home Page to load the configuration of the Modbus
Slave to the controller.
Honeywell 2017 23
Modbus Master Configuration
Honeywell 2017 24
Modbus Master Configuration
3. Right-click the task you have inserted, and selectInsert > Program instance.
4. Enter a name in the Program instancefield.
Attention:
The program instance must not be named “RTU” or
“GlobalVariable”.
5. Select the program you want to associate from the Program type drop-down
list.
6. Right-click Libraries and select Insert > Firmware Library, select
MODBUS.FWL. Then click Include.
7. Right-click Data Types and select Insert > Datatypes. In the pop-up window,
enter the Name and click OK.
8. Double-click the data type you have inserted and define an array in worksheet
shown as below, then click Save button from the toolbar. Click Make.
Modbus Data Array
Honeywell 2017 25
Modbus Master Configuration
click OK.
Tip:
To assign initial values to CONFIG_INFO:
CONFIG_INFO, a predefined data structure for Modbus
configuration information, is the crucial input for Modbus
master function blocks and contains key Modbus
communication parameters such as IP address of slave, slave
ID, port number of the controller to be used, etc. This data
structure is read-only and cannot be viewed and edited in
ControlEdge Builder. See Description of CONFIG_INFO on
page 57 for more details. Slave1 is the variable name
assigned by the user of CONFIG_INFO.
CONFIG_INFO for Modbus TCP Master
12. Assign the data returned by the function block to variables to monitor.
Output Data
Honeywell 2017 26
Modbus Master Configuration
Tip:
DATA1 is the variable name assigned by the user of OUTPUT
pin of MB_RD_MHR and it is an array.
After the basic programming steps as described, the workplace will appear as
shown below.
Programming Completion
Honeywell 2017 27
Modbus Master Configuration
1. From the Home Page, click Configure Serial Ports and select the target serial
port to configure.
2. Under General,Port Name and Port Type are displayed automatically. Select
appropriate values for Baud Rate, Parity, Data Bits, Stop Bits, Flow Control
and Force Online if applicable. See the following tables for parameter descrip-
tions.
Serial Port Parameters
Parameter Description
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Baud Rate
RS232 does not support 57600 and 115200.
Data Bits 7, 8
Stop Bits 1, 2
For RS232-1 and RS232-2, there are two more options to configure: Flow
Control and Force Online. See the following table for the parameter
descriptions.
RS232 Serial Port Parameters
Parameter Description
l RTS-CTS
Select the desired option from the Force Online drop-down list:
Force Online
l Disable
Honeywell 2017 28
Modbus Master Configuration
l Enable
Tip:
The following table describes four scenarios that will happen
for Force Online option between the controller and the device
it communicates.
Force online scenarios between the controller and devices
Controller Third-party
Force Online Device Force Communication
Option Online Option
Honeywell 2017 29
Modbus Master Configuration
4. Click Save to save the configuration, or click Back to return to the Home Page.
5. Click Connect from the Home Page to connect a controller. For the user name
and password, see "User Privileges" in ControlEdge Builder User's Guide.
6. Click Download from the Home Page to load the configuration of Modbus
Serial Master to the controller.
Programming a Modbus Serial Master
After downloading the configuration, you must program Modbus Serial Master for
the project in IEC Programming Workspace.
To program a Modbus Serial Master
1. Right-click Logical POUs and select Insert > Program. Then enter the name,
and click OK. For the following steps, FBD language is used as an example.
2. Add a Task as follows:
a. Under Physical Hardware, right-click Task and select Insert > Task.
b. In the pop-up window, enter the name. Select the task type as CYCLIC,
and click OK.
c. In the pop-up window of Task settings, configure the corresponding para-
meters.
d. Click OK.
3. Right-click the task you have inserted, and select Insert > Program instance.
Honeywell 2017 30
Modbus Master Configuration
Attention:
The program instance must not be named “RTU” or
“GlobalVariable”.
5. Select the program you want to associate from the Program type drop-down
list.
6. Right-click Libraries and select Insert > Firmware Library, select
MODBUS.FWL. Then click Include.
7. Right-click Data Types and select Insert > Datatypes. In the pop-up window,
enter the Name and click OK.
8. Double-click the data type you have inserted and define an array in worksheet
shown as below, then click Save from the toolbar. Click Make.
Modbus Data Array
Honeywell 2017 31
Modbus Master Configuration
Tip:
To assign initial values to CONFIG_INFO:
CONFIG_INFO, a predefined data structure for Modbus
configuration information, is the crucial input for Modbus
master function blocks and contains key Modbus
communication parameters such as IP address of slave, slave
ID, port number of the controller to be used, etc. This data
structure is read-only and cannot be viewed and edited in RTU
Builder. See Description of CONFIG_INFO on page 57 for
more details. Slave1 is the variable name assigned by the user
of CONFIG_INFO.
12. Assign the data returned by the function block to variables to monitor.
Output Data
Honeywell 2017 32
Modbus Master Configuration
Tip:
DATA1 is the variable name assigned by the user of OUTPUT
pin of MB_RD_MHR and it is an array.
After the basic programming steps as described, the workplace will appear as
shown below.
Programming Completion
Honeywell 2017 33
Modbus Master Configuration
Description
Output
MB_RD_C Output Parameter
Parameter Data type Description
Honeywell 2017 34
Modbus Master Configuration
received.
0: Communication succeeded.
4: Invalid request
Honeywell 2017 35
Modbus Master Configuration
Description
It is used to read multiple coils.
Input
MB_RD_MC Input Parameter
Parameter Data type Description
Output
MB_RD_MC Output Parameter
Data
Parameter Description
type
User defined data type: array of bool. The size of the array should be
equal to the number of the registers to read. Define a data type as
Array of shown below:
OUTPUT
BOOL TYPE
Variable Name: array[1..LENGTH] of BOOL;
END_TYPE
DONE BOOL Indicates that the response is received from a slave device.
Honeywell 2017 36
Modbus Master Configuration
0: Communication succeeded.
4: Invalid request
Description
It is used to read single discrete input.
Input
Honeywell 2017 37
Modbus Master Configuration
Output
MB_RD_DI Output Parameter
Parameter Data type Description
Honeywell 2017 38
Modbus Master Configuration
2: Response timeout
4: Invalid request
Description
It is used to read multiple discrete inputs.
Input
MB_RD_MDI Input Parameter
Parameter Data type Description
Honeywell 2017 39
Modbus Master Configuration
Output
MB_RD_MDI Output Parameter
Data
Parameter Description
type
User defined data type: array of bool. The size of the array should be
equal to the number of the registers to read. Define a data type as
Array of shown here:
OUTPUT
BOOL TYPE
Variable Name: array[1..LENGTH] of BOOL;
END_TYPE
DONE BOOL Indicates that the response is received from a slave device.
0: Communication succeeded.
2: Response timeout
Honeywell 2017 40
Modbus Master Configuration
4: Invalid request
Description
It is used to read single input register.
Input
MB_RD_IR Input Parameter
Parameter Data type Description
Honeywell 2017 41
Modbus Master Configuration
sent.
Output
MB_RD_IR Output Parameter
Parameter Data type Description
DONE BOOL Indicates that the response is received from slave device.
0: Communication succeeded.
4: Invalid request
Honeywell 2017 42
Modbus Master Configuration
Description
It is used to read multiple input registers.
Input
MB_RD_MIR Input Parameter
Parameter Data type Description
Output
Honeywell 2017 43
Modbus Master Configuration
INT,
User defined data type. The size of the array should be equal to the
UINT,
number of the registers to read. The end user should define a data type
DINT,
as shown here:
UDIN
T, TYPE
OUTPUT
LINT, array[1..LENGTH] of
REAL INT/UINT/DINT/UDINT/LINT/REAL/LREAL;
or END_TYPE
LREA
The end user can read the data of a specific register by using the suffix.
L;
DONE BOOL Indicates that the response is received from slave device.
ERR_FLG BOOL Will be set to TRUE if there is either a general error or a protocol error.
PROTOCO USIN Error numbers defined by Modbus protocol. See Modbus Protocol Error
L_ERR T Codes on page 60 for details.
Honeywell 2017 44
Modbus Master Configuration
0: Communication succeeded.
4: Invalid request
Description
It is used to read a single holding register.
Input
MB_RD_HR Input Parameter
Parameter Data type Description
Honeywell 2017 45
Modbus Master Configuration
Output
DONE BOOL Indicates that the response is received from slave device.
0: Communication succeeded.
4: Invalid request
Honeywell 2017 46
Modbus Master Configuration
Description
It is used to read multiple holding registers.
Input
MB_RD_MHR Input Parameter
Parameter Data type Description
Output
Honeywell 2017 47
Modbus Master Configuration
Arra
y of
INT,
UIN User defined data type. The size of the array should be equal to the number
T, of the registers to read. The end user should define a data type as shown
DIN here:
T,
TYPE
OUTPUT UDI
Variable Name: array[1..LENGTH] of
NT,
INT/UINT/DINT/UDINT/LINT/REAL/LREAL;
LIN
END_TYPE
T,
REA The end user can read the data of a specific register by using the suffix.
L or
LRE
AL;
Honeywell 2017 48
Modbus Master Configuration
BOO
DONE Indicates that the response is received from slave device.
L
ERR_ BOO
Will be set to TRUE if there is either a general error or a protocol error.
FLG L
PROTO
USI Error numbers defined by Modbus protocol. See Modbus Protocol Error
COL_
NT Codes on page 60 for details.
ERR
0: Communication succeeded.
4: Invalid request
Description
It is used to write a single coil.
Input
Honeywell 2017 49
Modbus Master Configuration
1: ON
INPUT BOOL
0: OFF
Output
MB_WR_C Output Parameter
Parameter Data type Description
0: Communication succeeded.
GEN_ERR USINT
1: The input parameter is invalid.
2: Response timeout
Honeywell 2017 50
Modbus Master Configuration
4: Invalid request
Description
It is used to write single holding register.
Input
MB_WR_HR Input Parameter
Parameter Data type Description
Honeywell 2017 51
Modbus Master Configuration
Output
MB_WR_HR Output Parameter
Parameter Data type Description
DONE BOOL Indicates that the response is received from slave device.
0: Communication succeeded.
4: Invalid request
Honeywell 2017 52
Modbus Master Configuration
Description
START_ The first Modbus register address to read. Function code is not
UINT
ADDR included in the address.
User defined data type: array of bool. The size of the array
should be equal to the number of the registers to read. The end
INPUT Array of BOOL user should define a data type as shown here:
TYPE
Variable Name: array[1..LENGTH] of BOOL;
Honeywell 2017 53
Modbus Master Configuration
END_TYPE
Output
MB_WR_MC Output Parameter
Parameter Data type Description
DONE BOOL Indicates that the response is received from slave device.
0: Communication succeeded.
4: Invalid request
Honeywell 2017 54
Modbus Master Configuration
Description
It is used to write multiple holding registers.
Input
MB_WR_MHR Input Parameter
Param Data
Description
eter type
ENABL BOO
Enable: If TRUE, the FB is enabled and workable.
E L
User
defin
CONFI This is a structure provided by Honeywell. Modbus related information is
ed
G_INFO included. For more details, see Description of CONFIG_INFO on page 57.
data
type
START_ The first Modbus register address to read. Function code is not included in
UINT
ADDR the address.
LENGT
UINT The number of registers to write.
H
If SEND_FLAG is true and RDY_FLAG is true, function blocks would send the
SEND_ BOO request. RDY_FLAG is TRUE means the last communication is finished.
FLAG L Before the last communication is finished, even if the SEND_FLAG is true,
the request won’t be sent.
Honeywell 2017 55
Modbus Master Configuration
Array
of
User defined data type. The size of the array depends on the number of the
INT,
registers to write:
UIN
T, Size of (array) * size of (element of array) / size of (UINT) = LENGTH.
DIN
The end user should define a data type as shown here:
T,
INPUT
UDI TYPE
NT, Variable Name: array[1..LENGTH] of
LINT, INT/UINT/DINT/UDINT/LINT/REAL/LREAL;
REA END_TYPE
L, or
Use the suffix to read the data of a specific register.
LRE
AL
Output
MB_WR_MHR Output Parameter
Parameter Data type Description
Honeywell 2017 56
Modbus Master Configuration
DONE BOOL Indicates that the response is received from slave device.
0: Communication succeeded.
4: Invalid request
Description of CONFIG_INFO
The CONFIG_INFO pin defined in the function blocks is to input all the
configuration information for the Modbus master.
There are two types of communication between Modbus master and Modbus slave:
serial communication using RS232 or RS485, and Ethernet communication.
Accordingly two types of data structures are defined for CONFIG_INFO.
n For serial communication, the data structure is defined as:
TYPE
MB_CONFIG_INFO_COM:
STRUCT
MB_SLAVE_ID: USINT;
PORT_NUM: USINT;
RETRIES: USINT;
TIMEOUT: UDINT;
Honeywell 2017 57
Modbus Master Configuration
END_STRUCT;
END_TYPE
Attention:
You are not permitted to make any change to the data structure as
the configuration would be parsed incorrectly.
a. RS232 port 1
b. RS232 port 2
c. RS485 port 1
PORT_NUM USINT
d. RS485 port 2
e. reserved
f. reserved
Honeywell 2017 58
Modbus Master Configuration
CONFIG_INFO Parameter(continued...)
Parameter Data type Description
a. Ethernet port 1
b. Ethernet port 2
c. reserved
d. reserved
Tip:
Honeywell 2017 59
Modbus Master Configuration
0 success N/A
Honeywell 2017 60
Modbus Master Configuration
Endian Mode
Modbus protocol supports 16bit data only. If there are 32bit or 64bit variables, 2 or 4
consecutive registers should be used to read the data value. In these cases, the
Endian mode may be involved due to the different Endian modes in Modbus slave
devices.
See the following table for the concept of Endian modes used in Modbus function
blocks:
Modbus Function Block Endian Mode
Endian mode Description
Honeywell 2017 61
Modbus Master Configuration
Modbus protocol.
Honeywell 2017 62
OPC UA Configuration
OPC UA Configuration
Introduction
OPC is the interoperability standard for the secure and reliable exchange of data in
the industrial automation space and in other industries. It is a platform independent
and ensures the seamless flow of information among devices from multiple vendors.
OPC UA released in 2006 is a platform independent service-oriented architecture
that integrates all the functionality of the individual OPC Classic specifications into
one extensible framework.
ControlEdge PLC supports OPC UA server and client which are built-in protocols in
the controller, and it provides an IIoT-ready open platform that enables users to
better leverage data across their assets. Benefits include:
Reference Description
Honeywell 2017 63
OPC UA Configuration
Reference Description
OPC UA Server
ControlEdge PLC OPC UA Server enables the native OPC UA client access to
information on ControlEdge PLC.
Honeywell 2017 64
OPC UA Configuration
The ControlEdge PLC OPC Server is based on the Embedded UA Server profile
defined in [OPC-7]. Refer to [PLC] for additional companion specification profile
information.
Honeywell 2017 65
OPC UA Configuration
Access Level
Currently, the ControlEdge PLC OPC UA server allows both read and write access
of all exposed variables.
Security
Currently, the ControlEdge OPC UA Server is implemented with the lowest security
level.
Redundancy
The ControlEdge OPC UA Server does not support UA redundancy as defined in
[UA-4]. Furthermore, the ControlEdge OPC UA Server does not maintain any state
data. Therefore, if an unexpected disconnection between the client and server
occurs, it is the responsibility of the clients to re-establish connections (i.e.
sessions). Even though none of OPC UA redundancy profiles are supported, the
Control Edge OPC UA Server does participate in redundancy related usage
scenarios supported in the ControlEdge PLC.
Accessing the Server Object
The ControlEdge PLC OPC UA Server supports the standardized entry points into
its address space.
n OPC UA clients can browse to the Server object by traversing the hierarchy
starting at Root.
n Alternatively, OPC UA clients can use the Server object’s well-known node id
to directly access its objects, properties and variables.
Use the diagram legend to understand the objects, variables and properties that the
ControlEdge PLC OPC UA Server supports.
Honeywell 2017 66
OPC UA Configuration
Server Diagnostics
The Sever Diagnostic object shown above, represents pertinent diagnostic
information related to the ControlEdge PLC OPC UA server itself. All mandatory
sub-components and properties are supported [UA-5].
Accessing ControlEdge PLC data
Overview
DeviceSet is the entry point for OPC UA Clients that want to access data from the
ControlEdge PLC. Shown below is an example address space of the ControlEdge
PLC OPC UA Server. It is based on Object Types definitions found in the base UA
specification ([UA-5]) as well as those definitions found in companion specifications
([DI] and [PLC]). In this address space, there are three example objects:
n eclrRes is an example of a Ctrl Resource
n SimpleUARead is an example of a Ctrl Program Instance.
Honeywell 2017 67
OPC UA Configuration
Ctrl Resources
All the data on the ControlEdge PLC is accessible by browsing to the Object
instance derived from CtrlResourceType. The Browsename of this Object instance
is the name given to the resource that represents the ControlEdge PLC itself.
Shown below is the output of a 3rd party client connected to the ControlEdge PLC
OPC UA Server. The objects listed below PLC_Demo represents the complete set
of data associated with the ControlEdge PLC including Programs, Tasks, Global
variables and Diagnostics.
Honeywell 2017 68
OPC UA Configuration
Ctrl Programs
In ControlEdge PLC, the instance of a POU assigned to a task is treated as a
program instance. Note that same program instance in is able to be assigned to
different task. They are treated as different program instance.
Shown below is the output of a 3rd party client connected to the ControlEdge PLC
OPC UA Server, all Ctrl Program instances executing in the ControlEdge PLC are
located under Programs. For each Ctrl Program, the program variables and
Function Block instances including their child function blocks and variables also
appear in the address space.
Honeywell 2017 69
OPC UA Configuration
The “With” reference is used to show the association between the program instance
and the task that executes the program.
ControlEdge PLC Diagnostics
Referring to ControlEdge PLC Diagnostics above, OPC UA clients have access to
ControlEdge PLC diagnostic information exposed by the GlobalVars and
Diagnostics folder objects.
Located under the GlobalVars folder are the ControlEdge PLC System Variables
including PLC_SYS_TICK_CNT and PLC_MAX_ERRORS.
Located under the Diagnostics folder are the ControlEdge PLC diagnostics as
viewed from the ControlEdge Configuration Workspace of the ControlEdge Builder.
Program Variable NodeIds
OPC UA Clients can use NodeIds to read, write and monitor variables for data
changes. The NodeIds for accessing IEC 61131-3 program elements are defined
with string identifiers. The string identifiers embed the underlying name that the
ControlEdge PLC OPC UA Server uses to access the ControlEdge PLC variables.
Global and Diagnostic Variables on the next page and Program Variables on the
next page define the string representation of several types of variables.
Honeywell 2017 70
OPC UA Configuration
Element NodeId
NamespaceIndex 5
IdentifierType String
Identifier @GV.PLC_SYS_TICK_CNT
Element NodeId
NamespaceIndex 5
IdentifierType String
Identifier ReadWrite.Connect
For Function Block instance variables, the Identifier element of the NodeId is define
as:
Identifier = <Program Instance Name>.<FunctionBlockInstance>.<Varname>
The example below shows the NodeId of ‘ConnectHandle’ which is a variable of
the Function Block instance ‘UA_Read_Write_1’ in the program ‘ReadWrite’
Honeywell 2017 71
OPC UA Configuration
Element NodeId
NamespaceIndex 5
IdentifierType String
Identifier ReadWrite.UA_ReadWrite_1.ConnectionHandle
Data Types
Elementary types
The ControlEdge PLC OPC UA server maps all IEC 61131-3 elementary data types
supported on the ControlEdge PLC to an OPC UA built in data type. The table
below shows how the elementary data types defined by IEC 61131 -3 map to OPC
UA Built in data types.
BOOL Boolean
SINT SByte
USINT Byte
INT Int16
UINT UInt16
DINT Int32
UDINT Uint32
BYTE Byte
WORD UInt16
DWORD Uint32
REAL Float
LREAL Double
STRING String
TIME Double
Honeywell 2017 72
OPC UA Configuration
Note that when writing to a variable, the ControlEdge OPC UA Server shall return a
Bad_TypeMismatch error if the data type of the written value is not the same type or
subtype of the variable’s DataType.
Structured Types
The IEC 61131-3 STRUCT declaration represents a structured data type as an
aggregate data type. IEC 61131-3 structured data types defined in the ControlEdge
PLC are mapped by the ControlEdge OPC UA Server to OPC UA structured data
types as defined in [PLC] section 5.2.3.4. Shown below is the definition of
ANALOG_INPUT_TYPE as an IEC 61131-3 structured type defined in the
ControlEdge PLC.
TYPE
ANALOG_INPUT_TYPE
STRUCT
STS : USINT;
PV : REAL;
EUHI : REAL;
EULO : REAL;
EUHIEX : REAL;
EULOEX : REAL;
END_STRUCT;
END_TYPE
Honeywell 2017 73
OPC UA Configuration
The following steps summarize how the ControlEdge PLC OPC UA Server exposes
IEC 61131-3 Structured Data Types such as ANALOG_INPUT_TYPE to OPC UA
Clients:
1. Creates an OPC UA Structured DataType with the same elements as the IEC
61131-3 STRUCT.
2. Creates an OPC UA Complex Variable with the DataType created in step 1.
3. Creates several simple Variables using simple DataTypes to reflect the
elements in the IEC 61131-3 STRUCT and exposes them as variables of the
Complex Variable created in step 2.
Honeywell 2017 74
OPC UA Configuration
4. Adds the Variable created in step 2 to the AddressSpace to make the data
available to the OPC UA Client.
Additionally, the Datatype, which in our example is ANALOG_INPUT_TYPE, is
added to the DataTypeDictionary. The DataTypeDictionary also contains all the
other structured DataTypes supported by the ControlEdge PLC OPC UA Server.
Arrays
The PLC array data type is mapped to an OPC UA data type derived from the
corresponding elementary data type. The ‘ValueRank’ attribute is used in UA to
provide the information if a value is an array and the ‘ArrayDimensions’ attribute
provides the length of each dimension. Arrays appear as a single node in the UA
address space.
A variable, say ‘LocaleIds’, of this type in a PLC program will be mapped to the
OPC data type String with the ‘ValueRank’ attribute set to 1 and ArrayDimensions
[0] set to 5.
Honeywell 2017 75
OPC UA Configuration
the structured data array will expose each entry of the array as a separate node in
the AddressSpace. This way a UA Client can access the entire array, read an
individual array entry or read individual elements of an array entry.
Shown below is an IEC 61131-3 array of struct ANALOG_INPUT_TYPE defined in
the ControlEdge PLC.
TYPE
AIList : ARRAY [1..5] OF ANALOG_INPUT_TYPE;
END_TYPE
The program DftInst has a variable AIDataValues of type AIList. The AddressSpace
with the variable AIDataValues is shown below:
Object Types
OPC UA Clients can browse for Server specific function block types from the
CtrlTypes\FunctionBlocks Folder object as shown here:
Honeywell 2017 76
OPC UA Configuration
Reference types
The ControlEdge PLC OPC UA Server makes use of the following Reference types
defined in [PLC]:
HasInputVar– used to reference variables declared with the key word VAR_INPUT
Honeywell 2017 77
OPC UA Configuration
HasOutputVar– used to reference variables declared with the key word VAR_
OUTPUT
HasInOutVar– used to reference variables declared with the key word VAR_IN_
OUT
HasLocalVar– used to reference variables declared with the key word VAR
With– used to reference the Ctrl Task that executes a Ctrl Program.
Configure ControlEdge PLC OPC UA Server
Configuration
Binding Protocol to Ethernet Ports
You must establish the physical address or endpoint that enables OPC UA client
access to the ControlEdge PLC OPC UA Server. A maximum of two endpoints can
be defined by binding the ETH1 or ETH2 ports on the ControlEdge PLC to OPC UA
Server. One or two endpoints are possible depending on if both ETH1 and ETH2
are bound to OPC UA Server.
1. From the Home Page of ControlEdge Builder, click the arrow beside
Configure Ethernet Ports, and select ETH1 or ETH2.
2. Under Network Setting, select Use the following IP address and enter the IP
address of the Ethernet port.
3. Under Protocol Binding, select OPC UA Server.
Ethernet port configuration page
The ControlEdge PLC OPC UA Server supports the UA TCP transport protocol
which defaults to communicate on TCP port 4840. This communication port as well
as other connectivity and tuning parameters are available for optional configuration.
Honeywell 2017 78
OPC UA Configuration
The ControlEdge PLC OPC UA server uses default values if no alternative value
has been configured. The default configuration is sufficient for getting started with
connectivity.
Attention:
Make sure that the OPC UA client’s time is synchronized to the
controller’s time.
1. From the Home Page of ControlEdge Builder, click Configure Protocols >
OPC UA Server. The OPC UA Server page appears.
OPC UA Server configuration page
2. Configure the parameters if required. See the following table for the parameter
description.
Honeywell 2017 79
OPC UA Configuration
Attention:
It is recommended to use the default values for the parameters.
Max Session Count If you enter a value of 0, the number of sessions allowed is
unlimited.
Min Session Timeout If you enter a value of 0, the minimum timeout is unlimited.
Max Session Timeout The maximum timeout for a session (in milliseconds).
Honeywell 2017 80
OPC UA Configuration
Honeywell 2017 81
OPC UA Configuration
Max Monitored Item The maximum number of items that can be monitored for
Per Subscription Count each subscription.
Honeywell 2017 82
OPC UA Configuration
For more information about the parameter descriptions, see the specification in the
https://opcfoundation.org/.
<Port> is the port number for the transport protocol. Port number 4840 is the default
for OPC UA.
In the following URL examples, the IP address of ETH1 port on the ControlEdge
PLC is set to 192.168.1.10. The IP address of ETH2 port on the ControlEdge PLC is
set to 192.168.2.10.
Note that one or both URLs may exist depending on the port configuration.
opc.tcp://192.168.1.10:4840
opc.tcp://192.168.2.10:4840
Honeywell 2017 83
OPC UA Configuration
When both Ethernet ports are configured as shown in the example above, the
ControlEdge PLC OPC UA Server considers the links to be redundant. In this case,
the ControlEdge PLC OPC Server is listening on both endpoints. When one link is
lost, clients can use the URL of the second link to connect to the Server. It is worth
noting that the ControlEdge PLC OPC UA Server maintains the session created on
the failed link until the session timeout period expires after which the session will be
deleted.
In the case of redundant ControlEdge PLC, the IP address follows the primary PLC.
Therefore, if a switchover occurs, the client reconnects to the ControlEdge PLC
OPC UA Server on the new primary with the same URL that was used to connect to
the server on the failed primary.
Namespace
OPC UA uses namespaces to uniquely differentiate between the names and IDs it
defines and those defined by companion specifications or the local server. The
ObjectTypes defined in the UA specification for IEC 61131-3 derive from the OPC
UA Device Integration Types which in turn derive from the OPC UA Core
ObjectTypes. Thus the ControlEdge PLC OPC UA Server includes these 3
namespaces in addition to its own namespace. The list of namespaces used in the
Server is shown below:
Namespace
Namespace Description
Index
Honeywell 2017 84
OPC UA Configuration
Namespace
Namespace Description
Index
OPC UA Client
IEC 61131-3 OPC UA Function Blocks
The function blocks within the OPCUA library are the native IEC 61131-3 OPC UA
Function blocks as defined in [PLC-C]. The figures below illustrate the common
interface of each function block regardless of the task that it performs.
Honeywell 2017 85
OPC UA Configuration
The table below references the above figures to describe the behavior of the IEC
61131-3 OPC UA Function Blocks.
Interface Behavior
The Function Block command or task is initiated by a rising edge at the Execute
input. While the value of Execute is equal to TRUE, the Busy, Done and Error
Execute
outputs can be examined independently to determine the status of the function
Input
block execution. Furthermore, the Busy, Done and Error outputs are mutually
exclusive, i.e. only one of these outputs can be set at a given time.
Input parameters are read at the rising edge of Execute input. Inputs are only
<input
read once. Therefore, in order for changes to input parameters to take effect,
parameters>
the Execute input must be re-initiated.
Honeywell 2017 86
OPC UA Configuration
Interface Behavior
The Busy output is an indication that the function block has not completed.
Busy Output This output is set to TRUE at the rising edge of Execute. It is reset when either
Done or Error is set.
The Done output, when set, is the indication that the function block has
completed successfully. This output is used to trigger the next step in a
sequence of function blocks.
Done
Output Tip:
If an error occurs during the execution of the function block, this output is set.
The ErrorID output contains the error number. Refer to [] for the list of error
codes.
Error
n Since the function block did not complete successfully, the Done output
Output
remains reset.
n Timeout input indicates the maximum time for the Function Block to
complete. If the timeout value expires, then the Error output is set.
Output parameters may be invalid while Busy output is set. Monitor the Done
<output
output to trigger valid usage of output parameters (see flowchart diagram
parameters
below)
Honeywell 2017 87
OPC UA Configuration
Usage Considerations
The following table outlines a typical usage scenario when combining OPC UA
function blocks. Use the table to map the program phase tasks to function blocks
from the OPCUA or Honeywell Helper libraries. See Prepare Phase for Reads,
Writes or Method Calls on page 92 to Utilities on page 107 for more information.
Program
Task OPC UA Library Honeywell Helper Library
Phase
Establish
Prepare connection to UA UaConnect HonUaConnectSecurityNone
Server
Honeywell 2017 88
OPC UA Configuration
Program
Task OPC UA Library Honeywell Helper Library
Phase
Get the
namespace-index
of a namespace-
URI for the
UaNamespaceGetIndex
variables in the See note1
(translatepath)
target OPC UA
server’s address
space to be read or
written
Reading of
variables in the UaRead HonUaReadNode
namespace of UA UaReadList HonUaReadNodeList
Server
Execution of
methods supported UaMethodCall HonUaCallMethod
by UA Server
Honeywell 2017 89
OPC UA Configuration
Program
Task OPC UA Library Honeywell Helper Library
Phase
handle UaNodeReleaseHandleList
Terminate the
connection to OPC UaDisconnect HonUaConnectSecurityNone
UA Server
Monitor Handle to
signal loss of
handle due to See note5 HonUaHandleDetector
ControlEdge PLC
Utilities reset.
Utility block to
monitor and signal See note6 HonUaStateDetector
a change in state.
Note:
5. There are no IEC 61131-3 OPC UA blocks defined for these funtions.
6. There are no IEC 61131-3 OPC UA blocks defined for these funtions.
There are several ways to facilitate development of a PLC program with OPC UA
function blocks:
Honeywell 2017 90
OPC UA Configuration
Tip:
Use a graphical OPC UA Client
Consider use of a graphical OPC UA Client to access attributes of
the target OPC UA server and the nodes within its address space.
The example below shows the Browse output from OPC Foundation
Sample Client for an individual node.
Output from OPC Foundation Sample Client for an individual node
Honeywell 2017 91
OPC UA Configuration
The following sections describe the detailed usage information to perform work
tasks such as UaRead, UaReadList, UaWrite, UaWriteList or UaMethodCall. These
sections follow the order of tasks introduced in the table above (shown below
graphically).
This function block uses the UaConnect function block to establish an OPC UA
session to a remote OPC Server using a specified Server URL and Session name.
The security related fields of SessionConnectInfo are set to values that indicate no
use of security. If successfully established, the named session will have a 30
Honeywell 2017 92
OPC UA Configuration
second timeout.
HonUaConnectSecurityNone
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
Honeywell 2017 93
OPC UA Configuration
The information that the target OPC UA Server makes available to clients is referred
to as its address space. The elements of the address space are represented as a
set of nodes. Refer to [OPC-3] to address space concepts including nodes, node
attributes and interconnections. Using standard OPC UA notation, the diagram
below shows the set of nodes common to all OPC UA Servers. As indicated by the
diagram key, this set of nodes includes objects, variables, and properties. The
diagram also illustrates the relationships between nodes. Use a graphical OPC UA
client connected to the target OPC UA Server to view the set of standard nodes for
the target OPC UA Server.
Every OPC UA node, regardless of its node type (e.g. object, variable, property,
etc.) is represented by a node identifier, which consists of the following:
Element Nodeld
NamespaceIndex 1
IdentifierType String
Identifier Instrument_01.Temp
Honeywell 2017 94
OPC UA Configuration
OPC UA uses namespaces to uniquely differentiate between the names and IDs it
defines and those defined by OPC UA companion specifications (e.g. FDI) or the
target OPC UA server itself. In the example NodeId shown above, the
NamespaceIndex is 1 which is the index reserved for the “local” server.
NamespaceIndex 0 is reserved for OPC Foundation. It is the index to NodeIds and
BrowseNames defined in the OPC UA specifications. Consult with the target OPC
UA Server documentation for a list of supported name spaces. Alternatively, use a
graphical OPC UA Client connected to your target OPC Server, to browse to the
NameSpaceArray property node (see diagram above). This node contains the
required information for the registered Namespaces on the target OPC UA Server.
Each index in the array is associated with a Namespace URI. Use the Namespace
URI with UaGetNamespaceIndex function block to resolve each Namespace index
from your PLC program. Since a namespace index can change dynamically, best
practice is to resolve the namespace URI programmatically.
Tip:
Honeywell 2017 95
OPC UA Configuration
UA block before
passing input to
subsequent block.
n UaNodeGetHandle HonUaReadNodeList,
maps target OPC HonUaWriteNode and
Server nodeId to a HonUaWriteNodeList use
node handle NodeIds rather than node
maintained by handles as input. The
ControlEdgePLC mapping to node handles is
OPC UA Client. Node built in to these Honeywell
handles must be helper function blocks.
explicitly supplied to
the base read and
write blocks.
Attention:
This function block requires the nodeID as a starting point in the address space of
the target OPC UA server. HonUaTranslatePathList optionally resolves the
namespace index in relative paths. If the substitution token ‘#’ is inserted into the
relative paths in RelativePathList then the block acquires the index of this Uri from
namespace table of the target server. It then substitutes that index at each ‘#’.
For example, if a string in the RelativePathList is "/#:Drum1001/#:LIX001/#:Output"
and NameSpaceUri "http://opcfoundation.org/sampleserver" is located at index 4 in
the namespace index table of the target server, then HonUaTranslatePathList
modifies the string to "/4:Drum1001/4:LIX001/4:Output" prior to passing to the target
server for translation.
Honeywell 2017 96
OPC UA Configuration
HonUaTranslatePathList
VAR_INPUT
VAR_OUTPUT
Honeywell 2017 97
OPC UA Configuration
VAR_OUTPUT
VAR_IN_OUT
Work Phase
Work Phase with base UA blocks Work Phase with Honeywell Helper UA blocks
Tip:
Requires special
handling to ensure
completion of base UA
block before passing Tip:
input to subsequent Node handle mapping is built-
block in to HonUaRead,
HonUaReadList, HonUaWrite
and HonUaWriteList
HonUaReadNode
Honeywell 2017 98
OPC UA Configuration
VAR_INPUT
ArrayIndex UINT If IsArray is TRUE then this identifies the array index to read.
VAR_OUTPUT
ReadEnabled BOOL When set, indicates that block is enabled and read service will
Honeywell 2017 99
OPC UA Configuration
VAR_OUTPUT
VAR_IN_OUT
When set TRUE, enables this read block. Read service will be called with
EnableRead BOOL
each task cycle. See ReadEnabled above to verify that block is enabled.
When set TRUE, disables this read block. Read service will not be called
DisableRead BOOL with each task cycle. See ReadEnabled above to verify that block is
disabled.
HonUaReadNodeList
VAR_INPUT
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
When set TRUE, enables this read block. Read service will be called
EnableReadList BOOL with each task cycle. See ReadEnabled above to verify that block is
enabled.
When set TRUE, disables this read block. Read service will not be
DisableReadList BOOL called with each task cycle. See ReadEnabled above to verify that
block is disabled.
HonUaWriteNode
VAR_INPUT
ArrayIndex UINT If IsArray is TRUE then this identifies the array index to write.
VAR_OUTPUT
When set, indicates that block is enabled and write service will be
WriteEnabled BOOL
called with each task cycle.
VAR_IN_OUT
EnableWrite BOOL When set TRUE, enables this write block. Write service will be called with
VAR_IN_OUT
each task cycle. See WriteEnabled above to verify that block is enabled.
When set TRUE, disables this write block. Write service will not be called
DisableWrite BOOL with each task cycle. See WriteEnabled above to verify that block is
disabled.
HonUaWriteNodeList
VAR_INPUT
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
When set TRUE, enables this write block. Write service will be called
EnableWriteList BOOL with each task cycle. See WriteEnabled above to verify that block is
enabled.
When set TRUE, disables this write block. Write service will not be
DisableWriteList BOOL called with each task cycle. See WriteEnabled above to verify that
block is disabled.
Calling a Method
HonUaCallMethod
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
When set TRUE, invokes the method call. Upon completion of 1 method
ExecuteCall BOOL call attempt (successful or unsuccessful) will automatically reset to
FALSE.
Cleanup Phase
Releasing resources that were previously acquired during the Prepare and Work
Phases is the primary objective of the Cleanup Phase.
This function block uses the UaDisconnect function block to terminate an OPC UA
session to a remote OPC Server using the ConnectionHandle.
Terminate Connection with HonUaConnectSecurityNone
VAR_INPUT
SessionName STRING Each time Connect executes a new session is created on the
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
Utilities
In addition to the helper blocks described in the previous Prepare and Work phase
sections, the Honeywell OPC UA Helper Block library includes several utilities that
are convenient for error detection, error handling and debugging.
Monitoring the target OPC UA Server handle
VAR_INPUT
When set TRUE enables the block functionality. When set FALSE
Enable BOOL
disables the block functionality.
When Enable is set TRUE, the block will monitor DWORDIn for change
DWORDIn DWORD
to 0. If this occurs then SignalOut is set TRUE.
VAR_OUTPUT
VAR_INPUT
When set TRUE enables the block functionality. When set FALSE disables
Enable BOOL
the block functionality.
When Enable is set TRUE, the block will monitor BOOLIn for change to
BOOLIn BOOL
FALSE. If this occurs then SignalOut will be set TRUE.
VAR_OUTPUT
HonUaVariantToString
VAR_INPUT
VAR_OUTPUT
Two main function blocks with some auxiliary logics are used for this application.
Attention:
Only in two scenarios the value of “ConnectionHandle” will be
0, after power on or disconnect the connection manually, so if
user want to disconnect the connection, normally procedure is
disable this HonUaHandleDetector first and then do
disconnect operation.
2. HonUaReadNodeList
l DisableReadList – When set TRUE, disables this read block. Read
service will not be called with each task cycle.
Notices
Trademarks
Experion® is a registered trademark of Honeywell International, Inc.
ControlEdge™ is a trademark of Honeywell International, Inc.
Other trademarks
Microsoft and SQL Server are either registered trademarks or trademarks of
Microsoft Corporation in the United States and/or other countries.
Trademarks that appear in this document are used only to the benefit of the
trademark owner, with no intention of trademark infringement.
Third-party licenses
This product may contain or be derived from materials, including software, of third
parties. The third party materials may be subject to licenses, notices, restrictions
and obligations imposed by the licensor. The licenses, notices, restrictions and
obligations, if any, may be found in the materials accompanying the product, in the
documents or files accompanying such third party materials, in a file named third_
party_licenses on the media containing the product, or at
http://www.honeywell.com/ps/thirdpartylicenses.
Documentation feedback
You can find the most up-to-date documents on the Honeywell Process Solutions
support website at:
http://www.honeywellprocess.com/support
If you have comments about Honeywell Process Solutions documentation, send
your feedback to:
[email protected]
Use this email address to provide feedback, or to report errors and omissions in the
documentation. For immediate help with a technical problem, contact your local
Honeywell Technical Assistance Center (TAC).
Support
For support, contact your local Honeywell Process Solutions Customer Contact
Center (CCC). To find your local CCC visit the website,
https://www.honeywellprocess.com/en-US/contact-us/customer-support-
contacts/Pages/default.aspx.
Training classes
Honeywell holds technical training classes that are taught by process control
systems experts. For more information about these classes, contact your Honeywell
representative, or see http://www.automationcollege.com.