Test 5
Test 5
Release 520
&/6HUYHU8VHU V*XLGH
EPDOC-XX-en-520A
June 2021
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.
Copyright 2021 - Honeywell International Sàrl
-2-
CONTENTS
Chapter 1 - About this document 5
1.1 Revision history 5
1.2 References 5
Chapter 2 - Introduction 6
2.1 Introduction to the CL Server 6
2.1.1 Features 6
-3-
4.9.1 Procedure to remove component configuration 19
-4-
CHAPTER
1.2 References
The following list identifies all documents that may be sources of reference for material discussed in
this publication.
Document Name
-5-
CHAPTER
2 INTRODUCTION
2.1.1 Features
The CL Server User Guide provides information for you to do the following.
l Verify the CL Server installation.
l Configure the CL Server.
l Operate the CL Server (startup, viewing status displays, and shutdown).
The CL Server accepts requests from the TPN to initiate, run, and terminate Windows 2016-side
applications. It retains all the functionality of previous CL controllers. Any CL-initiated applications that
ran on an Application Module Personality (AMW) will run on a TPS system.
The CL Server is an HCI managed component, and can be viewed and manipulated from the System
Status Display.
A windowless application on the Windows 2016-side can be started and stopped by a CL program on
the TPN side at anytime. CL Initiated Applications are also managed using the System Management
Display. The CL Server component Status Display will show the status of the CL Server and initiated
applications.
-6-
Chapter 2 - Introduction
Item Requirement
Network l The network requires the availability of a Windows Domain Controller (Windows
Server 2016).
l If using workgroups, domain functions TPS Domain cannot be introduced.
PIN/PCN Ethernet, TCP/IP, Microsoft application layer software such as RPC & DCOM. One of the
following name services must be available:
l DNS - Required for Windows domains
l WINS - Optional and recommended
-7-
Chapter 2 - Introduction
The Configuring the CL Server section describes how to configure the CL Server as a component in an
optional TPS Domain.
The Monitoring CL Server Status section provides operational procedures that allow you to view status,
start, and stop the CL Server.
The Supporting CL Application's section provides information about CL-initiated Windows applications.
-8-
CHAPTER
-9-
Chapter 3 - Verifying the CL Server Installation
- 10 -
CHAPTER
- 11 -
Chapter 4 - Configuring the CL Server
Configure the Be sure to select the CL Server when installing Experion Software. Experion
Application The CL Server should be installed on the Experion APP Node Software
Processing where the component will run. Installation
Platform (Experion Guide
APP) node
Install the The Experion APP TPS Client should be installed on nodes from Experion
connectivity client which the component will be configured or monitored. Note that the Software
on nodes that Experion APP TPS Client item is automatically selected when the Installation
access the CL GUS HCI Client Add-In package is selected. Guide
Server
The HCI Name Service is used by HCI client applications to resolve an alias name to a server's CLSID
and computer name. The alias name for CL Server must be unique within its scope.
For more information about System Management facilities such as HCI Name Service, refer to the
System Management Configuration Guide.
- 12 -
Chapter 4 - Configuring the CL Server
- 13 -
Chapter 4 - Configuring the CL Server
- 14 -
Chapter 4 - Configuring the CL Server
- 15 -
Chapter 4 - Configuring the CL Server
- 16 -
Chapter 4 - Configuring the CL Server
2. Enter a name in the Component Name field for the CL Server as per the requirement.
- 17 -
Chapter 4 - Configuring the CL Server
3. Click the Check Name button to verify the validity of the Component Name.
2. The global X-access switch controls when a Windows 2016-side application can write TPS
Network data. The Initial Security Setting shown on the CL Server Security Configuration page
provides the startup value for the global X-access switch.
3. It should be noted that this switch is only used when the CL Server is running. If the CL Server is
not running, all Windows 2016-side applications will be able to write TPS Network data. The switch
is implemented by a Processor Status Data Point (PSDP) parameter called $XACCESS which has
three possible states:
- 18 -
Chapter 4 - Configuring the CL Server
l READ ONLY-The Windows 2016-side can read but cannot write TPS Network data (default).
l READ WRITE ONLY FOR CL INITIATED-The Windows 2016-side can read TPS Network data,
but can write TPS Network data only from applications that are initiated by CL on the TPS
Network-side.
l READ WRITE-The Windows 2016-side can read and write TPS Network data from CL-initiated
and non-CL-initiated applications (this state cannot be set by any means unless the external
load module XACCESS is loaded).
For nodes that run CL Server and TPN Server the Initial Security Setting ($XACCESS) must be set
to READ-WRITE. Currently, $XACCESS security is limited when Windows 2016 Applications use
the TPN Server to access TPN data. The TPN Server only supports read-only access and read-
write access. When read-write only for CL Initiated Applications is selected, the TPN Server will
default to read-only access.
- 19 -
Chapter 4 - Configuring the CL Server
1. Right-click the node that contains the CL Server from the System Management Display.
2. Select Configure > HCI Component from the Context menu.
The HCI Component Configuration Page appears.
3. Select CL Server from the Component Name list to display the Configure Component page.
4. Click the Remove Component Configuration button.
5. Access the HCI Name Service to verify the name is removed from the HCI Name Service
Repository.
l Right-click the node that contains the CL Server.
l Select Configure > HCI Name Service.
6. From the HCI Name Service page, select Refresh List and verify the name is removed.
- 20 -
CHAPTER
- 21 -
Chapter 5 - Monitoring CL Server Status
The information in the following procedure is basic reference material for the System Management
Display. The procedure provides a description of the display and defines the entities used within the
status display window.
- 22 -
Chapter 5 - Monitoring CL Server Status
- 23 -
Chapter 5 - Monitoring CL Server Status
To change column width for any of these columns, drag the column separator to the left or right. To sort
a column, click on the column header.
The Information column field is a string of 40 characters or less. The CL Server will only provide useful
(non-NULL string) information for this field if it is in the Warning State.
- 24 -
Chapter 5 - Monitoring CL Server Status
5.3.1 Invoke the System Management Display from the Start menu
Invoke the System Management Display by performing the following:
Choose Start Menu > Programs > Honeywell Experion PKS > System Management > System
Management Display.
Click [console].msc.
- 25 -
Chapter 5 - Monitoring CL Server Status
- 26 -
Chapter 5 - Monitoring CL Server Status
4. Select or click the node icon where the CL Server is configured (this example uses CLServer_
APP61).
Example: The State of the HCI component CLServer_APP61 is indicated as Stopped.
Note: Visual State of Component (icon color)
Green: Running or Idle state
Yellow: Warning state (example)
l Waiting for APP Node Personality to load
l Lost connection to APP Node Personality
- 27 -
Chapter 5 - Monitoring CL Server Status
- 28 -
Chapter 5 - Monitoring CL Server Status
- 29 -
Chapter 5 - Monitoring CL Server Status
2. To close the Auxiliary Status Display, right-click the CL Server and select Auxiliary Display from the
menu.
- 30 -
Chapter 5 - Monitoring CL Server Status
- 31 -
Chapter 5 - Monitoring CL Server Status
- 32 -
Chapter 5 - Monitoring CL Server Status
- 33 -
Chapter 5 - Monitoring CL Server Status
Component The name of the managed component. The host name is shown
Name in parentheses.
State The State of the currently active CL Server. The Auxiliary Status
display is activated only after the component starts; and
therefore, only a subset of the possible HCI states is available for
viewing. Due to their transitory nature some of these states will
never be shown. The State will be one of the following values:
FAILED: The server has reached an unrecoverable error and has
failed. IDLE: The server is operational, and no CL Initiated
Applications are running. INITIALIZING: The server is initializing.
RUNNING: The server is operational, and CL Initiated
Applications are running. SHUTDOWNCOMPLETE: The server
shutdown has completed. SHUTTINGDOWN: The server is
shutting down. TEST: The component is performing a self-test.
WARNING: The server is running, but there is no connection to
the TPS Network.
Application The path to the directory where all the CL-Initiated Applications reside. This
Directory directory can contain the actual executable (such as, .exe), or a shortcut (such as,
.lnk) to an executable in a different directory.
Currently The PIDs (Process Identifier), and the names of the currently executing CL-
Executing CL- Initiated Applications
Initiated
Applications
Terminate Button This button becomes active when you select one or more of the CL-Initiated
Applications. When this button is clicked, the selected applications will be
terminated.
If the value is displayed as '?', then the data are either inaccessible or the CL Server is no longer
running.
- 34 -
CHAPTER
6 SUPPORTING CL APPLICATIONS
- 35 -
Chapter 6 - Supporting CL Applications
3. If the file still does not exist, a '.lnk' extension is appended onto the filename. A check is then made
to see if the file exists with the '.lnk' extension. If it does exist, the shortcut is de-referenced, and the
de-referenced executable is launched. For example, if the file name was 'xyz', a '.lnk' is appended
onto the file name. The file name 'xyz.lnk' is then checked to see if it exists.
Initiate_Task
- 36 -
Chapter 6 - Supporting CL Applications
The CL Server provides one method for initiating side applications from CL blocks. This is done with the
subroutine AMCL06$Execute_Task_With_Wait. The approach to launching Windows-side hibernating
applications, through the subroutine AMCL06$Initiate_Task, is not supported. If this functionality is
desired, an alternate approach to implementing hibernation is described in the following section.
The CL Server is capable of running up to ten applications at a given time. These applications execute
from the time the CL Server launches them until they terminate normally or exit with an error. Thus, if a
given application is launched numerous times, it runs from start to finish each time. By contrast, an
application that uses hibernation behaves in a different manner. It is designed to be launched once, and
remain persistent in memory between executions. This offers the following advantages:
l The initialization required by the application is performed only once.
l Data remains persistent between executions.
l While the application is hibernating, the CL Server does not manage it. Thus the hibernating
application does not count against the maximum of ten running applications supported by the CL
Server.
l The shutdown of the application is performed only once.
Alternate Approach
Surrogate Application
The surrogate application acts as a middleman between the CL Block and the hibernating application. It
receives commands from the CL Block in the form of command line arguments. It then uses Windows
events to pass the command to the hibernating application. Its purpose is to signal the hibernating
application that a command has been requested by a CL Block. It then suspends its processing until it
receives acknowledgement that the hibernating application has completed processing the command. It
then exits.
The command line, passed from the CL Block, is of the following form:
<surrogate app> <command> [<hibernating app>] <point name>
Where:
Surrogate app – The name of the surrogate application that is launched through the CL Server. This is
the application that the CL Block is requesting the CL Server to run.
Command – One of the following commands:
l Initiate – Initiate a new instance of a hibernating application. The name of the hibernating
application must be passed with this command.
l Activate – Send an activate event to a hibernating application. This event will signal the hibernating
application to activate its process algorithm.
- 37 -
Chapter 6 - Supporting CL Applications
l Terminate – Send a terminate event to a hibernating application to begin its shutdown logic and
exit.
Hibernating app (Optional – only needed with the Initiate command) - The name of the hibernating
application to be launched by the surrogate application.
Point Name– Passed to insure a level of uniqueness for communications between the surrogate
application and the hibernating application. The point name is used to create unique events described
in the following section.
Unique Events
Windows Events are used as the mechanism for communication and synchronization between the
surrogate application and the hibernating application. By this approach, it is very likely that the user will
create one surrogate application, and multiple hibernating applications. Thus, unique events must be
used to communicate between the one surrogate application and the many hibernating applications. To
make the events unique, the point name is used in the event name. Since the point names are unique
on the TPN Network, the following convention will create unique event names on Windows:
CL_<Point Name>_[Activate|Hibernate|Terminate|TermCmplt]
Note: the Point Name is passed to the surrogate application from the CL Block.
The following events must be supported:
l CL_<Point Name>_Activate – This event is signaled by the surrogate application when it receives
the Activate command from the CL Block. This event will signal the hibernating application to
activate its process algorithm.
l CL_<Point Name>_Hibernate – This event is signaled by the hibernating application when it enters
its hibernating state. It is intended that the surrogate application will be waiting on this event to
become signaled after it has processed an Initiate command or an Activate command. By
signaling this event, the hibernating application informs the surrogate application that it has
completed its task.
l CL_<Point Name>_Terminate – This event is signaled by the surrogate application when it
receives the Terminate command from the CL Block. This event will signal the hibernating
application to begin its shutdown logic and exit.
l CL_<Point Name>_TermCmplt – This event is signaled by the hibernating application when it has
completed its shutdown logic and is exiting. It is intended that the surrogate application will be
waiting on this event to become signaled after it has processed the Terminate command.
Hibernating Application
The hibernating application is an event driven application that is launched by the surrogate application.
This application is launched by a CreateProcess() call done by the surrogate application when it
received the Initiate command from a CL Block. Upon completing its initialization logic, it enters a
hibernating state in which it suspends its process. While in the hibernating state, it waits until one of the
following events becomes signaled: CL_<Point Name>_Activate event or CL_<Point Name>_
Terminate event.
When the CL_<Point Name>_Activate event becomes signaled, the process algorithm is executed.
Upon completing the process algorithm, it signals the CL_<Point Name>_Hibernate event to notify the
surrogate application that the process algorithm has completed, and it is now hibernating.
When the CL_<Point Name>_Terminate event becomes signaled, the shutdown logic is executed.
Upon completing the shutdown logic, and prior to exiting, it signals the CL_<Point Name>_TermCmplt
event to notify the surrogate application that the shutdown has completed, and it is now exiting.
- 38 -
Chapter 6 - Supporting CL Applications
The account the hibernating application runs under it at the discretion of the author of the surrogate
application. The author has the option of implementing the CreateProcess call to launch a process
under a different user.
l The hibernating application is not monitored by the CL Server, and thus will not appear on the CL
Server Auxiliary Status Display.
Activate_Task
Terminate_Task
- 39 -
Chapter 6 - Supporting CL Applications
Refer to Appendix I of the CL/AM Reference Manual for more information about the functionality of the
call and for definition of the arguments.
Execute_Task_With_Wait
Ret_Status is the return status of the subroutine call. Det_Status (Detail Status) may contain additional
information. Values are:
90 Initialization in progress—attempting 0
connection to Windows-side (should only
occur during node startup)
92 Initialization in progress—attempting 0
connection to Windows-side (should only
occur during node startup)
- 40 -
Chapter 6 - Supporting CL Applications
Cmd_Line
This argument is passed to the Windows-side where it is interpreted as an Windows command line. It is
a string of up to 78 characters containing the application name, not including the pathname, and any
application arguments. The application is responsible for interpreting the command line arguments. The
application or a link to the application must reside in the directory
C:\ProgramData\Honeywell\databases\clfiles.' See the 'Application Directory Summary' section in this
document for further information.
- 41 -
Chapter 6 - Supporting CL Applications
Cmd_Line Restrictions
The Windows command line can contain multiple arguments, but the first argument must be the
Windows-side application name. The Application name should not include an explicit directory path.
Cmd_Line is a CL local string variable, and is therefore limited to a maximum of 78 characters.
Cmd_Line is not processed for Windows shell commands, and therefore does not support items such
as:
l Windows shell commands such as .bat files
l Multiple commands separated with ';'
l Applications that have User Interfaces.
l Input/output redirection such as: |, <, >, >>
NT_Task_Timeout
This argument passes a time value to the Windows-side, which is the maximum time allowed for the
application to run before it is aborted and an error status returned. A zero time value disables the
Windows-side timeout function. Valid time values are in the range from 0 to 24 hours. Req_Timeout
This argument contains the maximum time allowed for the CL request to wait for an application
completion return before an error status is returned. This timer function is performed on the LCN-side. If
a timeout occurs, an Windows-side application abort is requested. A zero value disables the LCN
timeout function and is equivalent to an infinite timeout. Valid time values are in the range from 0 to 24
hours.
Req_Timeout Example
PACKAGE
--
BLOCK EXECTASK ( GENERIC; AT BACKGRND )
--
%INCLUDE_SET AMCL06
--
LOCAL STRTAPPL : STRING
LOCAL RET_STAT, DET_STAT : NUMBER
LOCAL NT_TMOUT, REQTMOUT : TIME
--
CALL BKG_CHANGE_PRIORITY( LOW )
SET STRTAPPL = 'APP1'
SET NT_TMOUT = 1 MINS
SET REQTMOUT = 2 MINS
--
CALL AMCL06$EXECUTE_TASK_WITH_WAIT (RET_STAT,
& DET_STAT,
& STRTAPPL,
& NT_TMOUT,
& REQTMOUT)
--
SEND: 'EXIT CODE = ',DET_STAT
--
IF (RET_STAT <> 0.0) THEN
& SEND: 'ERROR: STATUS = ', RET_STAT
--
END EXECTASK
- -
END PACKAGE
- 42 -
NOTICES
Trademarks
Experion®, PlantScape®, SafeBrowse®, TotalPlant®, and TDC 3000® are registered trademarks of
Honeywell International, Inc.
ControlEdge™ is a trademark of Honeywell International, Inc.
OneWireless™ is a trademark of Honeywell International, Inc.
Matrikon® and MatrikonOPC™ are trademarks of Matrikon International. Matrikon International is a
business unit of Honeywell International, Inc.
Movilizer® is a registered trademark of Movilizer GmbH. Movilizer GmbH is a business unit 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.
Other brands or trademarks are trademarks of their respective owners.
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.
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 HPS Technical Support through your local Customer
Contact Center, or by raising a support request on the Honeywell Process Solutions Support website.
Support
- 43 -
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.
- 44 -