EPKS Server Anatomy and Internals - TAC EMEA
EPKS Server Anatomy and Internals - TAC EMEA
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
• 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
Physical Database
\program files\honeywell\Experion
PKS\server\data\ points (shared heap)
other files
Read
Record 3 Record 3
Write newest
Record n
Database Definition Files
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
•
System Startup,
Processes and
Services
Experion Server Services
- hscserver_servicehost.exe
HSCSERVER_Database.dll
HSCSERVER_Replication.dll
HSCSERVER_Daemon.dll
HSCSERVER_System.dll
Daemons
ms_linkd DSA system monitor
gdaserver Data source for DSA clients
gdanotsrv Change notifier for DSA
clients
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
• DSA Subsystem
• CDA (Process) Subsystem
• SCADA Scanning Subsystem
• Data Acquisition Subsystem
• Control Subsystem
Gdamngr.dll
IGdaDataSink
GdaMngr
hstXXX
IGdaData IGdaDataSink
Gdamngr.dll
CDA
GdaServer
subscription
IGdaRemData
lists
IGdaRemData
point Cdadll.dll
database
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)
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
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)
Points to SCNTBL
(use LISSCN to
view SCNTBL)
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.
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.
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.
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)
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?
controller 1
Server
SCADA Controller Controller
points
• 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
Fast
Newest Sample
Point 1 status
Time
Point 1 status
Oldest Sample
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
Extended
History
points Heap (Shared heap 1) Collection task HISTORY9 24 hour snapshot
(hstext)
Point Database
call ALARM
PRINTER
alarm/event/report request
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.
evtarc
SQL
2002y08m09d00h03m22s
ODBC
2002y08m10d00h03m22s
• 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
periodic reports
definition
RPORT
demand
report DSPLY
Primary Backup
Link Manager Link Manager
UDP
dual_linkd dual_linkd
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
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)
Primary Backup
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.
Primary Backup
Data Link Manager Data Link Manager
Server Server
Data Queue
Database Database
CHKPNT
(Checkpoint
Task)
IModifyEventsData
EMS sync
events job
TCP 1433
UDP 1434
Primary Backup
Definition File
flbkup.def
F f
l F
b
k
u
p
F
Redundancy Trend