CL Server Users Guide EP-DCX706
CL Server Users Guide EP-DCX706
EP-DCX706
R400
March 2010
Notices and Trademarks
While this information is presented in good faith and believed to be accurate, Honeywell disclaims
the implied warranties of merchantability and fitness for a particular purpose and makes no
express warranties except as may be stated in its written agreement with and for its customers.
In no event is Honeywell liable to anyone for any indirect, special or consequential damages. The
information and specifications in this document are subject to change without notice.
Honeywell, PlantScape, Experion PKS, and TotalPlant are registered trademarks of Honeywell
International Inc.
Release Information
Document Name Document Release Publication
ID Number Date
Document Category
Configuration
References
The following list identifies all documents that may be sources of reference for material
discussed in this publication.
Pacific
Contact: Honeywell Global TAC – Pacific
Phone: 1300-364-822 (toll free within Australia)
+61-8-9362-9559 (outside Australia)
Fascimile: +61-8-9362-9564
Mail: Honeywell Limited Australia
5 Kitchener Way
Burswood 6100, Western Australia
Email: [email protected]
India
Contact: Honeywell Global TAC – India
Phone: +91-20- 6603-9400
Fascimile: +91-20- 6603-9800
Mail: Honeywell Automation India Ltd
56 and 57, Hadapsar Industrial Estate
Hadapsar, Pune –411 013, India
Email: [email protected]
Korea
Contact: Honeywell Global TAC – Korea
Phone: +82-80-782-2255 (toll free within Korea)
Fascimile: +82-2-792-9015
Mail: Honeywell Co., Ltd
4F, Sangam IT Tower B4-4 Block
1590, DMC Sangam-dong, Mapo-gu
Seoul, 121-835, Korea
Email: [email protected]
Singapore
Contact: Honeywell Global TAC – South East Asia
Phone: +65-6580-3500
Fascimile: +65-6580-3501
+65-6445-3033
Mail: Honeywell Private Limited
Honeywell Building
17, Changi Business Park Central 1
Singapore 486073
Email: [email protected]
Taiwan
Contact: Honeywell Global TAC – Taiwan
Phone: +886-7-536-2567
Fascimile: +886-7-536-2039
Mail: Honeywell Taiwan Ltd.
17F-1, No. 260, Jhongshan 2nd Road.
Cianjhen District
Kaohsiung, Taiwan, ROC
Email: [email protected]
Japan
Contact: Honeywell Global TAC – Japan
Phone: +81-3-6730-7160
Fascimile: +81-3-6730-7228
Mail: Honeywell Japan Inc.
New Pier Takeshiba, South Tower Building,
20th Floor, 1-16-1 Kaigan, Minato-ku,
Tokyo 105-0022, Japan
Email: [email protected]
Elsewhere
Call your nearest Honeywell office.
http://www.honeywell.com/ps
Training Classes
Honeywell Automation College:
http://www.automationcollege.com
1. INTRODUCTION ..........................................................................11
1.1 Introduction to the CL Server ...................................................................... 11
Purpose of this user guide....................................................................................................11
Summary..............................................................................................................................11
Features ...............................................................................................................................11
1.2 Requirements for using the CL Server ....................................................... 12
User skill prerequisites .........................................................................................................12
System environment ............................................................................................................12
Network environments .........................................................................................................12
How to use this guide ...........................................................................................................13
List of Figures
Figure 1 Directory with the CLAppServer Folder ...........................................................16
Figure 2 CL Server Security Configuration Page...........................................................27
Figure 3 System Management Display ..........................................................................34
Figure 4 CL Server Properties .......................................................................................36
Figure 5 CL Server Status Display.................................................................................48
Summary
The CL Server accepts requests from the TPN to initiate, run, and terminate
Windows 2008-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 2008-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.
Features
The CL Server User Guide provides information for you to do the following.
Verify the CL Server installation.
Configure the CL Server.
Operate the CL Server (startup, viewing status displays, and shutdown).
ATTENTION
CL Server implementation requires that you are logged on as both a local
administrator to install server component software. When in a domain
environment, to configure the CL Server you must be logged on as a Product
Administrator as to configure the HCI component and configure security.
Therefore, you must be familiar with the system policies contained in the
Domain Implementation Guide.
System environment
The CL Server may run on a Windows 2008 server optionally configured as part of the
TPS domain. This workstation must be directly connected to the TPN through an LCNP
board in the PC. The network requires the configuration for use of DCOM.
Network environments
Item Requirement
ATTENTION
The intent of this section is to provide a method of verifying the installation of
the CL Server software. This includes the CL Server software package
according to the licensing agreement. Please consult that publication for
installation-related tasks.
ATTENTION
Verify that the CL Server software is installed on an Experion APP Node.
The node that is assigned to run the CL Server must contain an LCNP board.
Currently, there can be only one CL Server per LCNP board.
REFERENCE - EXTERNAL
For more information about Experion software installation, refer to the
Experion Software Installation User Guide.
ATTENTION
The contents of the CLAppServer folder will vary depending on what kind of
node is being used and what software packages are being installed.
REFERENCE - INTERNAL
For more information about System Management facilities such as HCI Name
Service, refer to the System Management Configuration Guide.
Step Action
1 Right-click the Experion APP node from the System Management Display
hierarchy and select Configure.
Step Action
2 Select HCI Component from the menu to begin CL Server configuration.
Step Action
1 Select Start Menu > All Programs > Honeywell Experion PKS > System
Management > Configuration Utility.
Step Action
2 Select Configure>HCI Component.
Step Action
1 Select Hci.CLServer from the Base PROGID drop-down list.
Step Action
2 Enter a name in the Component Name field for the CL Server as per the
requirement.
Step Action
3 Click the Check Name button to verify the validity of the Component Name.
The global X-access switch controls when a Windows 2008-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.
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 2008-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:
READ ONLY-The Windows 2008-side can read but cannot write TPS Network
data (default).
READ WRITE ONLY FOR CL INITIATED-The Windows 2008-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.
READ WRITE-The Windows 2008-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).
ATTENTION
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 2008 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.
Step Action
1 Select a security setting from the Select Initial Security Setting pull-down
menu using the preceding security setting description information.
2 Click OK to re-display the HCI component Configuration page.
ATTENTION
The DCOM configuration setting must be changed If you face any technical
problem in configuring/using the CL Server.
REFERENCE - INTERNAL
Refer to “Password Security and Synchronization” in the Domain
Implementation Guide for procedures on how to use the password utility.
Step Action
1 Right-click the node that contains the CL Server from the System
Management Display.
2 Select Configure>HCI Component from the Context menu.
5 Access the HCI Name Service to verify the name is removed from the HCI
Name Service Repository.
a) Right-click the node that contains the CL Server.
b) Select Configure>HCI Name Service.
6 From the HCI Name Service page, select Refresh List and verify the name is
removed.
Scope pane
The scope pane shows a tree display composed of several levels. Double-click a level to
expand the tree display until you can view the HCI Managed Component that is of
interest.
The scope pane (left pane) provides an icon that gives you a quick visual indication of
the state of the component. The icon can be one of three colors as shown in the table
below:
Results pane
The results pane (right pane) presents the status for the selected item from the scope
pane. The results pane presents information in configurable columns. The following
figure lists properties that can appear in the results pane.
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.
Component status
The Results pane also provides a Component Status column that contains the status of the
component. The possible status values are:
Components Icon
Status Color Server Status Values
Step Action
1 Invoke the System Management Display by performing the following:
Choose Start Menu > Programs > Honeywell Experion PKS > System
Management > System Management Display.
2 Click [console].msc.
Step Action
1 Invoke the System Management Display by using the Run command.
Step Action
1 Verify the APP node personality is loaded and running on the LCNP board
before starting the CL Server.
2 Invoke the System Management Display using one of the methods in the
procedure Starting the Status Management Display.
The System Management Display appears showing icons (in tree form) in
the scope pane (left side) and HCI component information in the results pane
(right side).
Step Action
3 Select or click the node icon where the CL Server is configured (this
example uses CLServer_APP61).
Component Status
Step Action
4 If the CL Server is in the Stopped state, it can be started up.
a) Right click the HCI component in the results pane (this example uses
CLServer_APP61).
b) Click All Tasks > Start from the context menu.
Step Action
5 Observe the State column in the status frame changed from Stopped to Idle.
Step Action
1 Invoke the System Management Display using one of the methods in the
procedure Starting-up the System Management Display.
2 Right click the selected CL server. This example uses CLServer_APP61.
Step Action
3 Click Auxiliary Display.
4 To close the Auxiliary Status Display, right-click the CL Server and select
Auxiliary Display from the menu.
Step Action
1 Invoke the System Management Display using one of the methods in the
procedure Starting-up the System Management Display.
ATTENTION
You must be logged on as the System administrator or as a user that has
shutdown permissions to perform the actions in the following steps
2 Right-click the HCI component that represents the CL Server that you want to
shut down and select All Tasks>Stop
Note: If the CL Server is in the Running or Idle state, it can be shut down
from the System Management Display.
Step Action
3 Observe the CL server transition to a shutdown state.
Component Name The name of the managed component. The host name is
shown in parentheses.
Startup Time The time and date the CL Server was started.
Application Directory The path to the directory where all the CL-Initiated
Applications reside. This directory can contain the actual
executable (such as, .exe), or a shortcut (such as, .lnk) to
an executable in a different directory.
Currently Executing CL-Initiated The PIDs (Process Identifier), and the names of the
Applications currently executing CL-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.
ATTENTION
If the value is displayed as “?”, then the data are either inaccessible or the CL
Server is no longer running.
If the CL Server has failed, the State value will display FAILED, and the rest
of the values will display “?”.
Using shortcuts
ATTENTION
When a shortcut is created in the Windows Explorer, there is a hidden ".lnk"
extension appended to the file name. This extension is not visible in the
Windows Explorer. It is visible though, in the old Windows File Manager
(winfile.exe). Thus, it is possible to have an executable "xyz.exe" in the
Application Directory, and a shortcut to "xyz.exe" in the same directory. The
real file name of the shortcut would be "xyz.exe.lnk". The files will appear in
the Windows Explorer as having the same name, but are different files.
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.
ATTENTION
The CL Server and all CL Initiated Applications run under the Experion App
user account (a member of the Programs global group). If a CL Initiated
Application is accessing a data file, make sure that Experion App has
appropriate access to the file and directory where the data file exists. Also, if
the Application Directory contains a shortcut to a given CL Initiated
Application, make sure that Experion App account (or Programs global group)
has, at minimum, read and execute access to the file and directory where the
executable exists
Initiate_Task
The background CL subroutine AMCL06$Initiate_Task is used to initiate a new
instance of a Windows application. After the call is made, the background CL suspends
execution and enters a wait condition until the Windows application has initiated. The
user provides an application name, and a unique application id is returned to the CL
block. The CL should store this application id in a CDS parameter or other
point.parameter and then complete the execution of the CL block. The application id
returned from the subroutine is needed to subsequently activate
(AMCL06$Activate_Task) and terminate (AMCL06$Terminate_Task) the
application.
Syntax of the AMCL06$Initiate_Task subroutine:
SUBROUTINE AMCL06$Initiate_Task
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.
Alternate Approach
Hibernation can be programmatically simulated by having a CL Block activate a
surrogate application on the Windows-side through the CL Server. The surrogate
application can be a simple application that has the ability to launch and communicate
with hibernating applications.
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:
Initiate – Initiate a new instance of a hibernating application. The name of the
hibernating application must be passed with this command.
Activate – Send an activate event to a hibernating application. This event will signal
the hibernating application to activate its process algorithm.
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:
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.
ATTENTION
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.
The hibernating application is not monitored by the CL Server, and thus will not
appear on the CL Server Auxiliary Status Display.
Activate_Task
The background CL subroutine AMCL06$Activate_Task is used to send an activate
event to a CL-initiated Windows application. After the call is made, the background CL
suspends execution and enters a wait condition until the Windows receives and processes
the event. The user provides an application id (obtained from AMCL06$Initiate_Task)
and an event string, which is passed to the application.
Syntax of the AMCL06$Activate_Task subroutine:
SUBROUTINE AMCL06$Activate_Task
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.
Terminate_Task
The background CL subroutine AMCL06$Terminate_Task is used to send a terminate
event to a CL-initiated Windows application. This provides a graceful shutdown of an
application. After the call is made, the background CL suspends execution and enters a
wait condition until the application has received and processed the event and terminated
its execution. The user provides an application id (obtained from
AMCL06$Initiate_Task) and an event string, which is passed to the OpenDDA
application.
Syntax of the AMCL06$Terminate_Task subroutine:
SUBROUTINE AMCL06$Terminate_Task
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
The AMCL06$Execute_Task_With_Wait subroutine is used to initiate an application
on the Windows-side running the CL Server. It can only be called from background CL.
After the call, the background CL suspends execution and goes into a wait condition until
the Windows-side application terminates normally or terminates because an error was
detected.
The following is the syntax of the AMCL06$Execute_Task_With_Wait subroutine:
SUBROUTINE AMCL06$Execute_Task_With_Wait
5 LCN/Windows-side connection 0
down
90 Initialization in progress— 0
attempting connection to Windows-
side (should only occur during node
startup)
91 Initialization unsuccessful—unable 0
to acquire internal resources
92 Initialization in progress— 0
attempting connection to Windows-
side (should only occur during node
startup)
93 Initialization unsuccessful—unable 0
to acquire internal resources
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.
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:
Windows shell commands such as .bat files
Multiple commands separated with “;”
Applications that have User Interfaces.
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