80% found this document useful (5 votes)
2K views113 pages

EPKS Server Anatomy and Internals - TAC EMEA

The document describes the structure and components of the Experion Server database. The server database contains acquired data, process history, alarms, events, system status, configuration data, and user defined data. It consists of several files that are stored on the hard disk but portions are loaded into memory. These include data files that store tables, as well as history, events, points, and user data files. The database structure and record formats are defined in file definition files. Some data is stored in object-based shared heap files that are memory-resident.

Uploaded by

Bourne
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
80% found this document useful (5 votes)
2K views113 pages

EPKS Server Anatomy and Internals - TAC EMEA

The document describes the structure and components of the Experion Server database. The server database contains acquired data, process history, alarms, events, system status, configuration data, and user defined data. It consists of several files that are stored on the hard disk but portions are loaded into memory. These include data files that store tables, as well as history, events, points, and user data files. The database structure and record formats are defined in file definition files. Some data is stored in object-based shared heap files that are memory-resident.

Uploaded by

Bourne
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

Experion Server

Anatomy
TAC EMEA Training
September 09
EPKS
Server Database
Structure
What‟s stored in the Server Database ?

• Acquired Data
data that has been read from or related to Controllers
• Process History
a historical store of acquired data
• Alarms and Events
details on alarm and event conditions that have occurred
• System Status
details on the state of communications with remote devices
• Configuration Data
details on how EPKS has been configured to operate
• User Defined Data
structures to store application specific information

3 HONEYWELL - CONFIDENTIAL File Number


Physical Structure of the Server Database

• The term “physical structure” of the server database is referring


to the files that are used by the native operating system to store
the database information.

• The Server database is made up of a number of files that


reside in the \program files\honeywell\Experion
PKS\server\data directory.

• To increase performance, some parts of the database are


loaded from hard disk to memory when the system starts.

• In a process known as “Checkpointing”, this memory resident


information is periodically written back to the hard disk, so that
it will not be lost if the system stops.

4 HONEYWELL - CONFIDENTIAL File Number


Physical Structure of the Server Database

The Server database directory contains the following main files:

• data
• holds many of the smaller database tables and all of the memory resident tables.
• history1, history2, …. history9
• contains the process history information for each history interval
• events
• holds online event information
• points
• contains all the point and parameter details
• User tables
• Contains data for user applications

5 HONEYWELL - CONFIDENTIAL File Number


Physical Structure of the Server Database

Physical Database

6 HONEYWELL - CONFIDENTIAL File Number


data

\program files\honeywell\Experion
PKS\server\data\ points (shared heap)

Mostly fixed length record dictionary (shared heap)


(relative) files
Some shared heap files
historyx
(object-based real time
database files)
events
Memory resident portion which
also includes memory-only
shared heaps (dual queue,
gda) user tables

other files

7 HONEYWELL - CONFIDENTIAL File Number


Flat Logical Database Files

• To the Server software, these appear as a set of 400 logical


database files.

• A unique file number, from 1 to 400, is used to identify each


of the logical database files.

• Each logical file stores a set of records of information


related to some part of the Server system.

• Arranged as a set of fixed-size files, with a fixed number of


records, and a fixed number of words per record.
• Some files, such as history & user tables, can be sized using
sysbld
Types of Flat Logical Database Files

• Flat Logical Database file organisation may be:


Relative Circular
Record 1
Read oldest
Record 2

Read
Record 3 Record 3

Write newest

Record n
Database Definition Files

• The layout of each logical database file is described in a


definition file.

• The naming conventions for these definition files is as


follows:
• \…\Experion PKS\server\include\src\xxxxxx_def
• where “xxxxxx” is the label given to the database file as per the entry in
“files”

• Example: The definition file for File 1 (DIRTRY_F) would


be dirtry_def.
Object-based Real Time Database Files (Shared Heaps)

• In addition to the logical database files, some data is stored in object-


based real time database files (also known as Shared Heaps).

• This data is accessed by various API calls (see Application Program


Development) and utilities (eg. shheap) and the structure of the data is
hidden from the user.

• Shared Heaps are always, memory-resident. Some heaps are also


persistent, which means a disk image is maintained. An example of a
persistent heap is server\data\points since point configuration
data must maintained across reboots.

• The following are some examples of Shared Heaps:


• points - point data shared heap (persistent)
• dictionary - dictionary heap (persistent, never modified)
• dual_q - dual redundant data queue
• gda (cda) - CDA Subscription lists and CDA point values
points heap (heap 1)

Global Index
Array (index 0) Point Index
Array (index 1)

Addr of index 1
Next point number

Number of points *

Index of Point 1
Parameter value
Index of Point 2 array
Point record
Index of limits
Parameter record
parameters list
Point type * Parameter record value
Index of Point n
size limits
DAT record
gda Heap
EXT record

CNT record
CDA value
DES record Parameter record
0 limits

Index of Point 6500 * Point types are:


* 65000 points
1 Status (SCADA)
maximum
2 Analog (SCADA)
3 Accumulator (SCADA)
5 Container
6 Area (ASH)
7 Collection (CLH)
101 CDA
102 RDA
include\src\points.h 103 PSA
Dictionary

• Describes standard point parameters


• stored persistently in heap 3
• same structures used for non-standard
parameters in points heap

• also used to define ODBC tables & columns


Shared Heap – diagnostic tool

• shheap utility (to use only on TAC


request)
 shheap heap_id operation parameter
 Dumps
 parameter depends on function


System Startup,
Processes and
Services
Experion Server Services

• The Server Services must be started in the following


order:
 EPKS Logger – logs & archives diagnostic & error messages – runs under
the SYSTEM account
 EPKS Database – maintains the memory resident database
 EPKS Desktop – performs security related functions – runs under the
SYSTEM account
 EPKS Replication – manages redundant server & console station data
replication
 EPKS Daemon – starts network management processes
 EPKS Operator Management – W2k account management– runs under the
SYSTEM account
 EPKS System – starts the core EPKS system

15 HONEYWELL - CONFIDENTIAL File Number


Experion Server Services
• Services running as mngr (the core EPKS services) are
combined into a single executable to save session space*

- hscserver_servicehost.exe
 HSCSERVER_Database.dll
 HSCSERVER_Replication.dll
 HSCSERVER_Daemon.dll
 HSCSERVER_System.dll

16 HONEYWELL - CONFIDENTIAL File Number


Experion Server Services
• Other Services include:
 EPKS Configuration Studio monitor (system)
- If CDA is installed
 EPKS GCL Name Server
 EPKS System Repository
 EPKS Control Data Access Server

• These services must be stopped in the reverse order


(ie. Stop System then Daemon then Database)
• Note that the order of starting and stopping these services is
handled automatically by the system through service
dependencies, therefore making it difficult for a user to get it
wrong.

17 HONEYWELL - CONFIDENTIAL File Number


Task Summary

• The following slides show a list of the EPKS


Server executables and their purpose

18 HONEYWELL - CONFIDENTIAL File Number


LRN Executable Purpose

1 - 20 kbdsv Handles keystrokes from Station


21 - 40 dsply Updates Station, responds to requests from kbdsv & timer
41 wdt Monitors and restarts tasks, self
timing. keeps system alive through
43 sysscr dual_pswd
44 hstfst Main startup task, disappears when system running
45 hstslw Collects 5 sec history
46 hstext Collects 1 min snapshot, other history averages
49 chkpnt Collects other history snapshots
50 timer Writes memory resident data to disk and link
51 cnqmgr Drives most time dependant functions
54 notcli Control queue manager
60 scanx Receives DSA notifications
61 daqmgr Scanning executive – processes scanlists
63 Acquisition queue manager, Processes database points
64 rport Individual report generator
80 notmgr Report executive
101 w32prt Alarm handling & printing
107 synch NT print task
111 – 150 Dual synchronisation
167 gdanotcli User applications
300-500 Receives remote DSA changes
400-500 Scan tasks.
19 HONEYWELL - CONFIDENTIAL File Number
Dsply &
kbdsv for
stations >
20 have
lrns
allocated
from 500
down
LRN Executable Purpose

Daemons
ms_linkd DSA system monitor
gdaserver Data source for DSA clients
gdanotsrv Change notifier for DSA
clients

confd Remote configuration server


nifd Remote point access server
ripsd Station connection manager

dual_linkd Redundancy link manager


dual_pswd Redundancy arbitrator
dual_onclt Redundancy send data
dual_onsrv Redundancy receive data
tsv_clt Terminal server driver

Services hscserver_servicehost Hosts service .dlls

strt_dsktop Sets desktop permissions


slogger Error log writer
hsc_oprmgmt W2k account manager
hsc_serversniffer Config studio broadcaster

20 HONEYWELL - CONFIDENTIAL File Number


Logging subsystem - paranoids

• A technique for enabling debug footprints


• Must restart the task after setting the level
in the registry using ser_stre
• May be dynamically enabled or disabled
using setpar
 Setting will be lost if a process is restarted

• Based on a concept of message groups &


debug level
 groups & levels defined in include\src\environ.h

21 HONEYWELL - CONFIDENTIAL File Number


Typical log messages

Date/time LRN PID TID module line# (helpful?) error message

18-Feb-08 08:37:50.953 ( -1 1852 3628) :ripsd.c,v:676: thread 3644 serving client as01hscyodab address 192.168.1.118 at 08:37:50
18-Feb-08 08:37:51.062 ( -1 1852 3644) :svc_nips_nt.c,v:124: unable to complete startup activities
18-Feb-08 08:37:51.062 ( -1 1852 3644) :ripsd.c,v:549: no longer serving client as01hscyodab address 192.168.1.118 as station 0
18-Feb-08 08:37:51.062 ( -1 1852 3644) :ripsd.c,v:555: no longer serving client as01hscyodab address 192.168.1.118
18-Feb-08 08:37:51.453 ( -1 1852 2024) :ripsd.c,v:676: thread 3644 serving client as01hscyodab address 192.168.1.118 at 08:37:51
18-Feb-08 08:37:51.453 ( -1 1852 3644) :svc_nips_nt.c,v:128: serving client as01hscyodab address 192.168.1.118 as station 2
18-Feb-08 08:37:52.406 (172 2148 2144) psofthr.exe:@(#)sqlsys_api.c,v:870: Option = (4d01): licenced = (1)
18-Feb-08 08:37:52.437 (173 2524 3592) psoftta.exe:@(#)sqlsys_api.c,v:870: Option = (4d01): licenced = (1)
18-Feb-08 08:37:54.531 ( -1 1948 1332) :read_exact.c,v:92: read() error

.exe

22 HONEYWELL - CONFIDENTIAL File Number


Error Codes
 Error codes in the log are usually 16 bit, expressed as a hex
number with a cryptic text explanation
 They may be : EPKS specific
W200x specific
 Error codes may be 32 bits, also expressed as a hex number
 These may be: COM related
RPC/GDA/DSA related
 An 8 or c in the 1st 4 bits indicates an error, a 0 in the 1st 4 bits
indicates a warning or information
 Use „display 0xnnnn‟ to obtain text if there is none in the log
message
 Use MS help & support center on W2003 or XP machines
connected to the Internet

23 HONEYWELL - CONFIDENTIAL File Number


Popular Paranoids
"TASK", // Task requesting and handling "QUEUE", // Queue handling
"SHM", // Shared memory "DAT", // Data I/O routines
"ASCV", // ASCII conversion routines and entry points "BYTE", // Byte manipulation routines
"GHR", // Get hardware reference (i.e.. ipcghr, tdcghr) "HIST", // History routines
"LOCK", // Lock routines "IPSIO", // Integrated Personal Station I/O
"IPCIO", // IPC PLC I/O "MODBUS", // Modbus protocol handling (i.e.. IPC)
"TIME", // System time handling "DEVIO", // Set raw I/O attributes
"ERR", // Communications errors and statistics "ARITH", // Real arithmetic (i.e.. fclamp, mzero, ssne)
"BIT", // Bit manipulations "SEM", // Semaphore handling
"TDC", // TDC routines "GPMAIN", // Database I/O and statistics
"ALM", // Alarm counts (i.e.. alarm increment, alarm decrement) "CRT", // CRT area assignment
"PRINT", // Printer handling "NIF_SYS", // General system call errors
"TRACE", // Trace messages "APPLIC", // Application programs
"LNK", // Link routines for dual redundant systems "MODIO", // MODICON I/O routines
"ABRIO", // Allen Bradley I/O routines
"PSWIO", // Peripheral switch I/O routine "CHKSUM", // Checksum generation routines
"IO", // General I/O routines "ULPIO", // MicroLPM I/O routines
"STRING", // String manipulation routines "DSPLY", // Display task and routines
"DUAL_PSW", // Dual Redundant PSW "DUAL_LINK" // Dual Redundant link manager
"DUAL_SYNC", // Dual Redundant time synchronisation "DUAL_QUEUE", // Dual Redundant queue I/F
"DUAL_ONLINE", // Dual Redundant online backup "DUAL_OFFLINE", // Dual Redundant offline backup
"SCAN", // Scan task software "SQLRPT", // SQL report program
"LICENCE", // Licence management "REPORT", // Report software
"I18N", // Internationalisation subsystem "CONFIG", // Configuration subsystem
"WINPRT", // Win32 printing routines "CONFD", // Configuration daemon
"CONFD_SELECT", // Configuration daemon select subsystem "DEFFILE", // Get definition file routines
"S90CFG", // Series 9000 cfgsum routines "SYSCFG", // System config (OS or EPKS)
"POINTS", // Point database access "DICT", // Dictionary access
"ODBC", // ODBC interface "NOTCLI", // Notifications and alarms client

24 HONEYWELL - CONFIDENTIAL File Number


Popular Paranoids

"EVARCH", // Extended event archiving "ALARM", // Low level alarm manipulation


"CDA", // Control data access routines "LOGGER", // Logger
"UMAXIO", // UMAX I/O routines "UDCCFG", // UDC cfgsum routines
"UDCDEF", // UDC definition file routines "MESSAGE", // Message directory access
"OREPORT", // Open database reporting "OPC", // OPC interface
"ALM_NOTIF", // Alarm notification paranoids "FSCIO", // FSC routines
"SOE", // FSCSOE routines "DMNIO", // Daemon I/O routines
"OPCIO", // OPC client routines "GDA", // Generic data access routines
"GDALOCK", // GDA locking routines "GDALOCAL", // GDA local access routines
"GDAREM", // GDA remote access routines "GDANOTSRV", // GDA notification server
"GDANOTCLI", // GDA notification client "UL", // UL listed software
"ALMPGR", // Alarm pager "MSLINKD", // Multiple server link daemon
"MSVRDF", // Multiserver report data factory server "CONSVR", // Server scripting event connection server
"AUTSVR", // Server scripting automation server "SCPPKG", // Server scripting script package
"POINTSERVER", // PointServer development "SQLREP", // SQLRep CMS replication task
"SCPTSK", // Server scripting script manager task "SCPMNGR", // Server scripting script manager
"SCPPERSIST", // Server scripting persistence "SCPEDIT", // Server scripting editor
"TBLCURSOR", // Table Cursor "GDASERVER", // GDASERVER
"GDAOPCIO", // GDA OPC client interface "FILREP", // File Replication
"HSTBCK", // History Backfill "DSREDIRECT", // DSRedSrv and DSRedCli Redirection
"DSDCSRV", // DS Network Components server side "DSFILEREP", // DS File Replication
"DSPNTREP", // DS Point Replication "DSACKSYNC", // DSAckSync Alarm Synching
"DSCOMMON", // DS Common Libraries "SQLDB", // SQL Database
"ALMEVTATTRIBUTE", // alarm/event attributes "NOTIFTRACE", // trace alarm/events in notcli/gdanotci
"SECURITY", // Used by login, and security library routines "HTS", // History Tag Synchronization for PHD
"OPCDA", // OPC DA interface "OPCAE", // OPC AE interface
"OPCHDA", // OPC HDA interface "GS", // Global Schedules

25 HONEYWELL - CONFIDENTIAL File Number


Diagnostic Capture Tool

26 HONEYWELL - CONFIDENTIAL File Number


27 HONEYWELL - CONFIDENTIAL File Number
Data Acquisition
and Control
Subsystems
Data Acquisition Subsystems

• DSA Subsystem
• CDA (Process) Subsystem
• SCADA Scanning Subsystem
• Data Acquisition Subsystem
• Control Subsystem

28 HONEYWELL - CONFIDENTIAL File Number


RPC EPKS
Server B
GdaServer
dsply IGdaRemData
GdaMngr
IGdaData

Gdamngr.dll
IGdaDataSink
GdaMngr

hstXXX
IGdaData IGdaDataSink

Gdamngr.dll

CDA
GdaServer
subscription
IGdaRemData
lists

IGdaRemData

point Cdadll.dll
database

EPKS Cda Server

Network
Server A
EPKS point
database
Server C
CDA Subsystem - Configuration
Architecture
Client EPKS Server
Workstation
Server
Control Server RTDB
Engineering Point
Builder (points
Repository Builder
heap)

Server
Server
Config
Config API Point Build Daemon
(hsccli32.dll)
Source File (confd.exe)

\\server\SVRPTBLD\SvrPtBld.txt

TCP/IP
CDA Subsystem
CPM/CEE GDA Manager task maintains the CDA
in Hybrid Subscription list (heap 4). It performs the
Controller following:
• checks subscriptions (orphans and aged)
• flush outstanding deletes
• flush outstanding adds to CDA
ControlNet / FTE
Interface
HSTxxx
CDA Server DSPLY (History
Control (pscdasrv.exe) Tasks)
Builder

Application
Subscribe/Acquire requesting
CDA parameter data CDA Data

System
Repository
Server Point
(sysrep.exe)
Builder GDAMNGR
(pntbld)

Engineering System points Heap gda Heap


Svrptbld.txt
Repository Repository (Shared heap 1) (Shared heap 4)
(ERDB)

Point Database Contains CDA parameter


Subscription Lists
Process Server
Data Acquisition Subsystem Tasks
(SCADA only)
SCNPRI
Point Build Scanning Executive
file.pnt Scan SCNTBL SCANX process
Builder Tables
(PNTBLD) (SCNBL1)
SCNLST
Periodic scan requests
These 3 tables define
what scanning is to
points Heap (Shared heap 1) be done DAQQUE Demand scan requests
Quick (SPS, PPS etc)
Point Database scan requests
Builder

These 2 tables are used by scan Data


tasks whose addresses are in Acquisition Application
ASCII. eg. NIF, LCN, Fieldbus DAQMGR
Hardware Building Queue task
SCNDDT Manager

Hardware SCNPAD
file.hdw Builder DAQQUE
(HDWBLD)
scan packet
scan completion
status

CHNTBL/RTUTBL Controller
xxxSCN
(Real World)
points Heap
Point Database
A xxxSCN scan task is created
by hdwbld for each Channel
connection
Control Subsystem Tasks
(SCADA only)
A task issues a point CONTROL
Any task (calls CNTROL)
1
For timeout completion status
processing
control request 1 returned

CNTQUE CNTQUE CNTQUE


control request 2
post control request
(non-hardware)
Scanning Executive
CNQMGR Control Queue send control status
process SCANX (calls PSTCNT) Manager back to waiting task

Request
5 Hardware control request 4
scan every 2
10 sec
6
CNTQUE CNTQUE
control request
SCADA Data
4
Acquisition
SubSystem
Controller 3 request the controlled
xxxSCN point to be scanned
(Real World) Actual I/O operation (calls PSTCNT)

A xxxSCN scan task is created points Heap (Shared heap 1)


by hdwbld for each Channel
connection Point Database
Scanning Statistics (page 10)
DAQQUE - Data Acquisition Queue
CNTQUE - Control Queue SCNPRI- Scan priority table

Points to SCNTBL
(use LISSCN to
view SCNTBL)

34 HONEYWELL - CONFIDENTIAL File Number


Scanning Statistics - Queues
This section contains channel-based statistics that enable the scan load
on individual channels to be analyzed.

 Channel
Shows the channel number and name.
 Status
Shows the channel service status (for example, OK for “in service”, DISABLED for “out
of service”).
 Ovld
Indicates an overload if the channel is unable to process all its requests or the channel
cannot do the work it was requested to do in the time specified.
 Daq and Cnt
These columns list the number of data acquisition requests outstanding and control requests
outstanding for each channel. These two figures should usually be on or near zero. If either
of these figures increase to a number over 100 and do not decrease, the channel cannot
process all of its scan load. This will lead to a scan overload that will be indicated in the Ovld
column.
At the top of the acquisition and control columns are figures that refer to the number of queue
entries available to the server in order to perform each action. These figures should always
be greater than zero. Lower down in the list of channels, there might be non-zero numbers
associated with unimplemented channels. You can ignore the figures for unimplemented
channels.

35 HONEYWELL - CONFIDENTIAL File Number


Scanning Statistics - Scheduling

This section includes Scanning statistics from the SCNPRI (file 15)
Database file.

 Scan Units
Shows the number of milliseconds specified for the basic scanning unit. This figure is usually
1000 ms (i.e. 1 second) and should only be altered by Honeywell.

 Period (word 2 in SCNPRI record)


Lists the scan periods configured on your system. For example, Page 10 shows
scan periods of 2 seconds, 5 seconds, 10 seconds, and so on.

 Clock (word 1 in SCNPRI record)


If the value displayed in the Clock column is 0 or greater, this indicates that that period is
idle. When the clock is negative, that period is carrying out scanning. Taking the 60 period
as an example, if there were only 2 requests on the period, then one would be processed at
-1, and the other at -31, at which time the „clock‟ would go to 29. The more scan packets per
period, the closer the clock will get to counting between 0 and -period.

 Cycles Behind (word 6 in SCNPRI record)


Indicates that the length of time since the last scan is greater than the scan period. Cycles
behind is only valid while the current cycle is behind. When the next cycle starts, this
entry will be reset to zero.

36 HONEYWELL - CONFIDENTIAL File Number


Scanning Statistics - Scheduling (cont.)

 Requests Lost (word 7 in SCNPRI record)


This column displays the number of requests lost. A lost request is when an entry cannot
be queued into the data acquisition or control queue because of an overload condition.
Note: The server should be 0 cycles behind and should not have discarded (lost)
any requests.

 Scan Table Pointers


These three columns analyze the contents of the SCNTBL Database file (file 16) that holds
all scan entries. This table is built during point building and can be viewed using the lisscn
utility. Within the table, scan periods have been entered consecutively and within each scan
period there is an entry for each scan packet for that period. This information is used by
Honeywell.
• first (word 4 in SCNPRI record)
The scan table (SCNTBL) record which is the first for that period.
• number (word 3 in SCNPRI record)
The number of records belonging to that period. The number of scan packets
per period.
• current (word 5 in SCNPRI record)
The SCNTBL record within that period that was last processed.

37 HONEYWELL - CONFIDENTIAL File Number


Scanning Statistics - System Sinewave

 The System Sinewave is a useful indicator of the system scanning load. If


the Sinewave is not smooth, or has missing or repeated values, this
indicates the system may be overloaded.

 If you are signed on to Station at the MNGR security level, you can set the
low and high values and the period.

 A point can reference the current System Sinewave value if its source
address is: F:8 R:1 W:114 B:0 W:16 INT2.

 ie. System Sinewave is stored in:


• file 8 (SYSFLG)
• record 1
• word 114
• starting at bit 0
• width of 16 bits
• stored as an int2 integer

38 HONEYWELL - CONFIDENTIAL File Number


Scan Packet Types
 0 - No Acquisition
Points not having a PV source (eg. PV algos attached)

 1 - Database Acquisition
Points scanning from a Database address (eg. from another point parameter or
Database file/record/word)

 2 - Hardware Acquisition
Block (or Continuous) based scanning (ie. Address y for n - eg. LCS 620, S9000 Digitals)

 3 - Hardware Exception Poll


Used if the device can support Report by Exception (eg. A-B, TDC AMC)

 4 - Diagnostic
Allows automatic recovery of a failed controller

 5 - Alarm Scan
TDC Only
Similar to a Type 3 (Exception)

 6 - Hardware List
List of random addresses (doesn‟t have to be continuous)
Length of list varies from device to device (supported by TDC, S9000 Registers)
39 HONEYWELL - CONFIDENTIAL File Number
Where does the Scan Task fit?

40 HONEYWELL - CONFIDENTIAL File Number


EPKS
Server
scantask 1 scantask 2
(LRN 301) (LRN 302)
...

channel 1 (I/O lrn 61)

channel 2 (I/O lrn 63) controller 2 controller 3 controller 4

controller 1

41 HONEYWELL - CONFIDENTIAL File Number


Scan Tasks - xxxscn.exe
Control Data Configuration & Statistics
CNTQUE DAQQUE
Queue Acq
Queue
CHN HXR
Scanning Packets
and HRL
RTU HWI
Control Packets
PAD
xxxSCN

Server
SCADA Controller Controller
points

Server Point Database


points heap (Shared heap 1)
Device LRN mapping

• LRN - port identifier (1-400)


 Not to be confused with task LRNs!

• Display I/O lrn = 300+dsply#


• Scan channel I/O lrn = 49+channel#*2 (A: 50, 52, …)
50+channel#*2 (B: 51, 53, …)
see defs.h & system

• Side - psd end, 0 = SLAVE


1 = MASTER
History
Subsystem
Topics
• Overview
• Types of History Collection
• History File Sizes
• Configuring History Collection
• History Assignment page
• History Gating
• Architecture
• History Archiving
• Viewing History &Trending

44 HONEYWELL - CONFIDENTIAL File Number


Types of History Collection

• 3 History Classes
- Standard has 5 intervals
 1 minute snapshot
 6 minute, 1 hour, 8 hour & 24 hour averages of the 1 minute
snapshots
- Fast has 1 interval
 Snapshots stored every 1 to 30 seconds, depending on the rate
selected at installation
- Extended has 3 intervals
 1 hour, 8 hour & 24 hour snapshots

• History for each interval is stored in a separate file

45 HONEYWELL - CONFIDENTIAL File Number


Default History File Sizes

History Type File # Intervals Duration Number of


samples
Standard History 1 1 minute snapshot 24 hours 1442

2 6 minute average 7 days 1682

3 1 hour average 7 days 170

4 8 hour average 3 months 281

5 24 hour average 1 year 368

Fast History 6 1 to 30 second snapshot 2 – 72 hours 8652

Extended History 7 1 hour snapshot 7 days 170

8 8 hour snapshot 3 months 281

9 24 hour snapshot 1 year 368

46 HONEYWELL - CONFIDENTIAL File Number


History Assignment Tables
History Storage
point id, param 1 Standard

Fast

point id, param n Extended

Newest Sample
Point 1 status
Time

Point 1 status
Oldest Sample

History File for a History Interval (…\Experion PKS\server\data\historyn)


Standard History Subsystem
Standard History files (where history is stored)
HISTORY0 Running averages
STANDARD history snapshots its first
interval, and averages all other Scan HISTORY1 1 min snapshot
intervals once per minute. There is a Executive
separate process for STANDARD, (scanx) HISTORY2 6 min average
FAST, and EXTENDED history
intervals. request history HISTORY3 1 hour average
collection every
minute

Standard
History HISTORY4 8 hour average
points Heap (Shared heap 1) Collection task
Point Database (hstslw)
HISTORY5 24 hour average
Acquire GDA parameter data
Standard History (default Max. Subscription time < 1 minute)
Assignment (HATSLW)
CDA
Dynamic cache GDA Subsystem
Subsystem to C200
gda Heap (Shared heap 4)
manager Controller
(gdamngr)
Historisation of
GDA DSA Server
GDA Manager task maintains the GDA Subscription
Parameters list or “Dynamic Cache” (heap 4). It performs the
following: HCI/OPC Server
• checks subscriptions (orphans and aged)
• flush outstanding deletes
• flush outstanding adds to GDA TPN Server
Fast History Subsystem
FAST history snapshots every 1-30 seconds.
(interval is customizable) Scan
Executive
(scanx)

request history
collection every 1-30
seconds
Fast History file (where history is stored)
Fast History
Collection task
points Heap (Shared heap 1) HISTORY6 5 sec snapshot
(hstfst)
Point Database

Subscribe to GDA parameters


Fast History (default Max. Subscription time > 5 seconds)
Assignment (HATFST)
CDA
Dynamic cache GDA Subsystem
Subsystem to C200
gda Heap (Shared heap 4)
manager Controller
(gdamngr)
Historisation of
GDA DSA Server
Parameters GDA Manager task maintains the GDA Subscription
list or “Dynamic Cache” (heap 4). It performs the
following: HCI/OPC Server
• checks subscriptions (orphans and aged)
• flush outstanding deletes
• flush outstanding adds to GDA TPN Server
Extended History Subsystem
Extended history snapshots all
intervals at 2 minutes past the Scan
hour. This allows time for Points Extended History files (where history is stored)
Executive
with integration type algorithms to (scanx)
propagate shift and/or day values HISTORY7 1 hour snapshot
into holding Points that are
assigned to extended history.
HISTORY8 8 hour snapshot

Extended
History
points Heap (Shared heap 1) Collection task HISTORY9 24 hour snapshot
(hstext)
Point Database

Acquire GDA parameter data


Extended History (default Max. Subscription time < 1 minute)
Assignment (HATEXT)
CDA
Dynamic cache GDA Subsystem
Subsystem to C200
gda Heap (Shared heap 4)
manager Controller
(gdamngr)
Historisation of
GDA DSA Server
Parameters GDA Manager task maintains the GDA Subscription
list or “Dynamic Cache” (heap 4). It performs the
following: HCI/OPC Server
• checks subscriptions (orphans and aged)
• flush outstanding deletes
• flush outstanding adds to GDA TPN Server
History Archiving

• History Archiving ensures no loss of historical data as the


circular history files get overwritten.
• History Archiving creates a set of files which are saved (by
default) under the directory:
c:\Program Files\Honeywell\Experion PKS\
Server\archive\ayYYYYmMMdDDhHHmNNtTT
• The format of each archive directory name is as follows:
ayYYYYmMMdDDhHHmNNtTT
where:
YYYY is the year in which the archive was created
MM is the month the Archive was created (01-12)
DD is the day of the month the Archive was created (01-31)
HH is the hour of the day the Archive was created (00-23)
NN is the minute of the hour the Archive was created (00-59)
TT is the history type contained in the Archive

51 HONEYWELL - CONFIDENTIAL File Number


History Archiving Configuration

52 HONEYWELL - CONFIDENTIAL File Number


Alarming and
Printing
Subsystems
Alarming & Printing Tasks
Task requesting
alarm/event or
Printing services Printer device table
scripting OPC A&E
(eg. Generate an
Urgent alarm LOGTBL
or print a file)

call ALARM
PRINTER
alarm/event/report request

call ALMMSG any task request PRINTER


call EVENT PRTQUE W32PRT
call PRSEND TASK (Main thread)
NOTMGR
call SOE W32PRT task creates
(TDC & BB only)
threads to process
Notification Client task print requests
for CDA Notifications NOTCLI
alarms and sequence
events of events
Point CDA Notification
servers

CDA Server SOEMGR


(pscdasrv.exe) EVTFIL event
summary

ControlNet ALMFIL
Interface soe
SOEFIL summary
alarm
CPM/CEE ALMDIR summary SOEMGR inserts new SOE into file in
in Hybrid chronological order. After a period of
Controller no activity they are transferred to a
AASTBL sequential file and sent for printing.
Alarm Reporting
• SCADA Points are alarmed and acknowledged at the
Server level
• Control Processor points are alarmed at the controller
level and reported up to the Server for display via the
Notification Client task NOTCLI.
• Control Processor point acknowledgements do not
propagate to the controller
• SCADA point alarms are reported to the alarm summary
with the description of the “point”
• Control Processor point alarms are reported to the
alarm summary with the Control Module name as the
point name, but the description of the specific function
block that generated the alarm
55 HONEYWELL - CONFIDENTIAL File Number
NOTMGR - Server Print Manager
• Processes print requests from EPKS Server Print
Queue
• Print Queue may contain Alarm packets, Event
packets or Report packets.
• The Alarms and Events are formatted and written to
the event file and printed as necessary. Alarms are
placed into the Alarm list.

• Requests for printing are achieved via a task request


to the W32PRT Print task.
• Alarms & Events are sent to the Scripting subsystem
• Alarms & Events are sent to the OPC A&E Server

56 HONEYWELL - CONFIDENTIAL File Number


Event
Subsystem
SQL based Event System

• Event archives stored & managed by SQL


Server
• Event schema allows customer extensions
for 3rd party OPC E&A
• Table object added to station to view
events and alarms - provides filtering,
sorting & choice of columns.

58 HONEYWELL - CONFIDENTIAL File Number


SQL based Event System

59 HONEYWELL - CONFIDENTIAL File Number


evtfil
notmgr

evtarc

Table grid Table


dsply
curser
Station eventSDC

SQL

2002y08m09d00h03m22s
ODBC

2002y08m10d00h03m22s

60 HONEYWELL - CONFIDENTIAL File Number


SQL based Event System

• Notmgr continues to write events in the


circular evtfil
• evtarc runs periodically (60sec), passes
events to eventSDC COM server
• eventSDC writes event to SQL Server
database, switching tables according to
archive parameters
SQL based Event System
• Clients, (table curser object, ODBC, reports, …)
use eventSDC to fetch events using SQL
queries. Area constraints are applied as
appropriate.
• Table curser object uses dsply to pass events
via IPS protocol to Station & a table grid object,
which displays the requested columns
SQL Server Agent Jobs
• The SQL Server Agent is a service that manages the scheduled database
maintenance activities. These activities are created in the form of SQL
Server Agent jobs.

• There are 5 jobs that are installed for the EMSEvents database. These
are:
- EMS Delete Expired Events
- EMS Maintenance
- EMS Synch Events
- EMSEvents Backup
- EMSPlayback Restore
Reporting
Subsystem
Reporting Subsystem Tasks
Report
Report scheduling Configuration

PERLOG TIMER PERLOG RPTCFG

periodic reports
definition
RPORT

demand
report DSPLY

spawn specific report creation task

FREFMT ALMEVT ALMDUR XRFRPT PNTATB BATCHRPT SQLRPT ODRRPT


EPKS
Server
Redundancy
EPKS Server
Dual Redundancy Architecture

66 HONEYWELL - CONFIDENTIAL File Number


Redundancy Subsystems
• The Server Redundancy option is composed of a
number of inter-related software processes running
on a platform which is also hosting the core Experion
Server software subsystems.

• The subsystems which comprise Redundancy can all


be grouped into two major categories:
 Control Subsystems
 Data Transfer Subsystems

67 HONEYWELL - CONFIDENTIAL File Number


Redundancy: Data Transfer Subsystems

The following subsystems are involved in directly


supporting the transfer of EPKS Server Database
contents from the Primary to the Backup system ...

• Dual Data Queue (Shared heap)


• Online Database Backup (Data Transfer)
• Database Synchronisation
• Dual File Manager

68 HONEYWELL - CONFIDENTIAL File Number


Redundancy: Daemons

The following Server Redundancy daemons are created at


Startup of the “EPKS Server Daemon” Windows Service ...

•dual_linkd - Dual Redundant Multi-communications Link Manager

•dual_pswd - Virtual peripheral switch daemon (Virtual Arbiter)

•dual_onclt - Dual online database backup client

•dual_onsrv - Dual online database backup server

•dual_flsrv - Dual file manager

•flbkup - Daemon which sends non-database files to backup

69 HONEYWELL - CONFIDENTIAL File Number


Redundancy: EPKS Tasks

The following Server Redundancy tasks are created at


Startup of the “EPKS Server System” Windows Service
and each will run as a EPKS Server task with a valid
Logical Resource Number (LRN) ...

•synch - Database Synchronisation task (LRN 107)

•flovr - Dual Failover task (LRN 108)

70 HONEYWELL - CONFIDENTIAL File Number


Redundancy: Command-line Utilities

The following Server Redundancy utilities may be run


from a command prompt to perform the designated
function ...

•dual_status - Show status of Dual Redundant link

•dual_oos - Force the Link out of service

•dual_trace - Utility used to control redundant link tracing

71 HONEYWELL - CONFIDENTIAL File Number


Control Subsystem
Architecture

72 HONEYWELL - CONFIDENTIAL File Number


Redundancy : Network Link Management

• The Link Management subsystem is responsible for


maintaining one or more links connecting the
Primary and Backup servers on a Dual Redundant
system.
• For a link to become known to the Link Management
subsystem it must be configured into the EPKS
Server Database via a HDWBLD]

73 HONEYWELL - CONFIDENTIAL File Number


Redundancy Tasks : Link Management

Primary Backup
Link Manager Link Manager

UDP
dual_linkd dual_linkd

Link Active message sent periodically:


• Message Type = LINK_ACTIVE
• Database version number

Link Active message sent periodically:


• Message Type = LINK_ACTIVE
• Database version number

Any link for which a LINK_ACTIVE packet is not received within the update period is considered
unserviceable and is so marked. If the version numbers are different, no links will be provided for
data transfer.
Redundancy Tasks : Arbitration
Primary Backup
Watch Dog Timer Watch Dog Timer

WDT WDT

WDT_QUERY ACK NACK

WDT_QUERY
UDP UDP
PSc Server PSc Server
Database Database

UDP
dual_pswd dual_pswd
PRIMARY_ACTIVE
Message
Virtual Peripheral Switch daemon Virtual Peripheral Switch daemon
(Virtual Arbiter) BACKUP_ACTIVE (Virtual Arbiter)
Message
dual_pswd - Virtual Peripheral Switch daemon (Virtual Arbiter)

• Two of these processes (one on each system) together


comprise the Virtual Arbiter component of the Dual
Redundant EPKS Architecture.

• These daemons interact via UDP packet based network


transactions to determine their respective status (Primary
or Backup).

• Watch Dog Timer task (WDT) is responsible for telling the


arbitrator (dual_pswd) that EPKS server is running by
periodically sending WDT_QUERY messages

• dual_pswd will respond with ACK (go primary) or NACK


(go backup)

76 HONEYWELL - CONFIDENTIAL File Number


Message types for dual_pswd

The following message types defined in dual_pswd.h may


be sent to dual_pswd ...

• PRIMARY_ACTIVE - Primary is Active


• BACKUP_ACTIVE - Backup is Active
• QUIT - Manual failover request
• WDT_QUERY - Periodic Watchdog Timer Poll

77 HONEYWELL - CONFIDENTIAL File Number


Redundancy Arbitration

• When communications are intact and both systems are fully


functional, one system will be Primary and one system will be
Backup.
• The Primary system will be sending PRIMARY_ACTIVE
messages to the Backup.
• The Backup system will be sending BACKUP_ACTIVE messages
to the Primary.
• The WDT will periodically send WDT_QUERY messages to its local
dual_pswd daemon, which will send a response message to WDT
informing WDT of its status (Primary or Backup).
• This is the most desirable state for the system to be in.

78 HONEYWELL - CONFIDENTIAL File Number


Redundancy Arbitration : WDT Polling

Primary Backup

79 HONEYWELL - CONFIDENTIAL File Number


Watch Dog Timer Virtual Arbiter Virtual Arbiter Watch Dog Timer

UDP UDP UDP


WDT dual_pswd dual_pswd WDT

Primary WDT Poll:


Message Type = WDT_QUERY

Primary Peer Active message


Primary WDT Response: Message Type = PRIMARY_ACTIVE
• PRIMARY_STATUS bit set Backup WDT Poll:
• CPU_A_STATUS bit set Message Type = WDT_QUERY

Backup Peer Active message


Message Type = BACKUP_ACTIVE Primary WDT Response:
• PRIMARY_STATUS bit NOT set
• CPU_A_STATUS bit NOT set

This scenario represents ideal situation where both Primary and Backup are active, WDT on both servers
is Active and there is NO manual failover in progress.

80 HONEYWELL - CONFIDENTIAL File Number


Redundancy Arbitration : WDT Polling

When a WDT polls its local dual_pswd (Virtual Arbiter)


process ...
• WDT sends a WDT_QUERY message to its local dual_pswd daemon.
• Local dual_pswd daemon sends a response message to WDT
informing WDT of its status (Primary or Backup).
• A WDT inactivity timer is reset.
• A peer active message is sent to the peer system
 If the local system is currently Primary, a PRIMARY_ACTIVE
message will be sent to the Backup.
 If the local system is currently Backup, a BACKUP_ACTIVE
message will be sent to the Primary.
• Failure of the WDT to poll its local dual_pswd daemon within a
specified time period results in that dual_pswd daemon demoting
itself to Backup, if it was previously Primary.
Redundancy Arbitration : WDT Polling

When a dual_pswd process receives a Peer Active message


it can assume that ...

• The communications link is active.


• The peer computer and its dual_pswd (Virtual Arbiter)
process are functioning.
• The peer WDT is functioning and is therefore in a
position to take over as Primary if it is not already.
• The peer active message also informs the local system
of the peer‟s status (Primary or Backup).
Redundancy Tasks : Data Transfer

Primary Backup
Data Link Manager Data Link Manager

dual UDP dual


System linkd linkd
Tasks

Server Server
Data Queue
Database Database

CHKPNT
(Checkpoint
Task)

dual TCP dual


synch onclt onsrv
(DB Synchronize
Task)
Data Transfer Client Data Transfer Server
Redundancy : Event Synchronisation

83 HONEYWELL - CONFIDENTIAL File Number


Primary Backup
synch

IModifyEventsData

eventsdc SQL SQL


ISQLDMO

EMS sync
events job

TCP 1433
UDP 1434

84 HONEYWELL - CONFIDENTIAL File Number


Redundancy : Dual File Manager
• This subsystem is responsible for providing a user configurable
mechanism to enable arbitrary files and directories of files to be
automatically maintained in a consistent state between the Primary
and Backup systems.
• To provide maximum flexibility to the user, the system will be
configured via a simple text file (server\data\flbkup.def). The
text file will consist of a list of directories and files to be managed
as well as an exclusion list. The nominated files and directories
less the excluded files and directories will be updated between
systems on a periodic basis.
• The Dual File manager will be run at the end of the Database
Synchronisation to update the raw files such as Display Builder
files or History Archive files which are not part of the on-line EPKS
Server database.
• The Dual File manager will also run periodically and send any
modified files in the specified directories from the Primary to the
Backup machine.
Redundancy Tasks : File Transfer

Primary Backup

Definition File

flbkup.def
F f
l F
b
k
u
p

F
Redundancy Trend

86 HONEYWELL - CONFIDENTIAL File Number


Redundancy Trend

87 HONEYWELL - CONFIDENTIAL File Number


www.honeywell.com

88 HONEYWELL - CONFIDENTIAL File Number

You might also like