MOCCA stands for “Management of Change and Configuration Assistant”
Matrikon Alarm MOC has 3 different users
·Operator (User)
·A regular user
·Enforcer (Engineer)
·A super user, Can do what operator does
·Can enforce tag
·Can edit tag values
·Synonymous to a Process Safety Engineer
·Approver (Administrator)
·Can do what enforcer does
·Can start and stop channels
·Can Create and Edit Alarm Philosophy Matric
·Synonymous to System Administrator
The DCS Map File
·The purpose of the DCS Map file is to tell MOCCA how a DCS tag structure looks like and contains. It also determines which items come out in the TagBrowser Report
·The Sergregation between ALARM and GROUP is important to:-
·To know which is an Alarm and which is a Group from the Alarm Report
·An Incorrect DCS MAP File will cause the Channel Fail to start. It is therefore important to ensure the XML code is correct. E.g:-
·Comments must start with “<!--“ Comments and ends with “-->”
·Valid Values for TYPE
·String
·Real
·Integer
·Valid Values for EngType
·Ignore
·Value
·Range
·Valid values for Field Type
·None
·Priority
·TripPoint
·Unit
·Desc
·TagLevelAlarmStatus
·Priority Map Node Names Must be
·Low
·Medium
·High
·Emergency
·Other
·Discovered on 16/8/2011, not all cases where channel failed to start is due to DCS MAP FILE Failure… sometimes the sync service just becomes out dated. Resaving the settings in the ‘Manage Channels’ page would solve this. Discovered on 12/10/2011, resaving the DCS MAP file solved the problem
·For <TAGTYPE>,
·The Name attribute
·Indicates the type of tag
·Must match up with the Rules File (.rbf) TagType in the MOC rules builder
·Will be displayed in the AM MOC Tag type
·The Classification attribute
·Is used for the Alarm Point Type Distribution By Area
·This report answers the question of how many alarms are configured per tag (alarm/tag); which is then segregated by tag type
·The Value would normally be
·Analogue Input
·Analog Output
·Controller
·Other
·The <PARAMETER> child node
·lists down all the parameter to be scynchronized.
·If synchronizing from OPC, the Name attribute it must match the OPC Parameter Name (Such as PV,OP,PVHHLIM and etc) (Not the name in the rules builder). The parameter should be browsable from the Rules Builder
·The FieldType attribute determines the type of parameter. It must be either:-
·No Values (Default)
·Priority ç Alarm Priority, needs to synchronize
·TripPoint ç Alarm Set Point, needs to synchronize
·Unit ç Name of Unit
·Desc ç Appears in the Description Field
·[CHECKED ON 13/10/2011] The ‘DESC’ value is put in to Tell MOC that this is what needs to appear in the Desciption field in the web report. If there are more than 1 field having the ‘DESC’ value, the LAST ‘DESC’ field will be used in the the Description web report
·
·TagLevelAlarmStatusç Enabled State of Alarms
·E.g. if <Parameter Name=”AlmEnable” FieldType=”TagLevelAlarmStatus” TagLevelAlarmStatus = “1” />, this means that whenever The AlamEnable parameter is read as 1, it means this alarm is enables
·This is important for the disabled alarm report
·Note that this is for the TAG LEVEL. Meaning that if this parameter matches 1, the whole tag is considered inhibited (All Alarms Disabled in the tag). It is not for individual parameters within the tag being disabled
·I did an experiment where I had several parameters with TagLevelAlarmStatus. Only when all of them does not match the TagLevelAlarm Status (i.e. = 0 in this example), will the tag be registered as disabled or inhibited in the report. However, for the Tag to be enabled back (cleared from the disabled report), only > half the number of the alarmtaglevelstatus need to be activated.
·
·The EngType Field is a parameter setting to be used in the TagBrowser. It also effects the discrepancy report.
·Ignore – This is by Default (if nothing is specified). For this, the parameter is excluded from the discrepancy report
·Value – If this is specified, then the user can enter only a single value (in the Min field). If the value does not equal this value then it is considered a discrepancy
·Range – If this is specified, then the user can enter the Min and Max Eng value, as long as the actual value is between this, it is not considered a discrepancy
·
·Issus on Disabled Alarm
·Now what if an Alarm is disabled? By right it should not be shown as a discrepance if it is disabled. MOCCA takes this into account.
·By default MOCCA, assumes all alarms that has Severity value not in the priority map as disabled.
·As shown in the sample DCS map above, all alarms will be under an <Alarm> node and this node contains the severity.
·<ALARM Name= “PVHH>
·<ParamRef Parameter=”PVHH_LIM” />
·<ParamRef Parameter=”PVHH_SER” />
·</ALARM>
·By Default, If the priority value = ‘0’ then the alarm will be disabled.
·Additional disabling can be added by adding configured expressions e.g. Note that PVHHALMEN does not need to be configured in the ParamRef for this to work
·<ParamRef Parameter=”PVHHALMEN” /> ç Can be removed and still work
·</ALARM>
·In the MOCCA TAG Browser in OI, alarms which are enabled will be bolded
·
·
·The <PRIORITY> Child Node
·Is used to determine the Alarm Priorities available in the system.
·MOC has defined by default that alarms should be categorized as
·Low
·Medium
·High
·Emergency
·Other
·Hence, the priority map node must only be restricted to these values. A DCS Map file error will occur if the node values are not within these values
·This can be changed by (Have not researched this yet)
·The Value in the DCS map determines which value should map to that priority. This priority mapping value will be applied with parameters with FieldType=Priority
·IF there are more than 1 value which represents a particular priority. The node can be extended as follows:-
·<PriorityMap>
·<Low Value=”1”>
·<Medium Value=”2”>
·<Medium Value=”3”>
·<High Value=”4”>
·<EmergencyValue=”5”>
·</PriorityMap>
·Note that the value cannot be null or it will cause an error
·The priority map having emergency, high, medium, low is only important for the
·Priority Distribution By Alarm Condition Report
·Priority Distribution by Area Report
·
·
·
The VB SynchronizationScript
·After you edit a VB script, one does not need to restart synchronization. Tested on 12/10/2011, even if you edit the script while a MOC browse is occurring, the changes effect immediately
·The sync script must have the ProcessTag() subroutine and this must be executed
·In this script, the object Rawtag is exposed. This tag can be modified as follows
·Rawtag.DCSID – Get
·Rawtag.Name – Get, Set
·Rawtag.Qualifier – Get, Set
·Rawtag.Type – Get, Set
·Rawtag.Network – Get,Set
·Rawtag.Area – Get,Set
·Rawtag.Unit – Get,Set
·Rawtag.Parameters – Get,Set
·Rawtag.Parameters.Item(“PVHH_SER”) – Get, Set ç The ParameterName is called here
·The get items work for items not declared in the DCS Map
·The get item however does not work if the Parameter is not defined in the parameters section of the rules builder
·The rawtag Parameters.Item
·Note that the Sync Script is not persistant. The entire script (Outside and inside the processtag procedure is executed every cycle). Variables are not pass on the next execution. This is unlike AM
The VB MOC Structure Script
·The MOCCA structure script is a VBScript which invokes the procedure ProcessMOCStructure everytime it reaches a branch which satisfies the requirements outlined in both TAGDEFINITION and TAGTYPE (i.e a particular tagtype is identifier). THIS IS IMPORTANT!!!. The MOC Strcuture script is not executed at a branch that does not satisfy a tag definition
·This script is at every branch or movement of the OPC browsing while the Tag Update Synchronization is done.
·In this script, the object MOCStructure is exposed. This object holds
·MOCStructure
·TagCount ç Number of Tags in the Structure (As long as it fits the tag criteria defined in the Rules RBF file)
·TagList
·Item(i)
·ParameterCount çNumber of Parameters in the Tag
·TagType ç The type of tag as defined by the Rules (RBF)
·ParameterList
·Item(i)
·Name ç This is the Name of the Parameter, as it appears during MOC Browsing using MOC Rules Builder. In the Example Below the Item(x).Name (or Parameter Name) is “ALARM”. This NOTE : This Parameter Name is used in the Parameters Identification in the MOC rules builder
·ItemName ç This is the full OPC Item Path. It is the same path which is declared in the ODH Source Name Column. It can be used in VB scripts to make the OPC Call [TESTED ON 30/8/2011]. This is it’s true location
HarmonyNavigation/RootUnit/U-Batch and Chem Prep Harmony/U-Batch Mill Harmony/U31-Digesters/ILBP2:TYPE
(In this case the Parameter Name is TYPE. The “:” becomes a separater between Path and Item)
FI1001.Dog.Cat.PV
(In this case the Parameter Name is PV)
·
·Synchronize ç Set ad “true/false”. If false, item is not synchronized
For this reason, one can use a BLANK DCS MAP FILEand A BLANK MOC SYNCRONIZATION SCRIPT [TESTED ON 30/8/2011]
Blank DCS Map File:-
<?xml version="1.0"?>
<DCSMap>
</DCSMap>
Blank Sync Script:-
Private Sub ProcessTag()
End Sub
·
·NOTE, THIS WAS TESTED on 15/8/2011
·The ProcessMOCStructure script AND ALSO THE ProcessTag (Synchronization Script) execution is not persistent. If you declare a global variable (i.e. Dim X) outside the procedure, use it in the ProcessMOCStructure subroutine, it will not maintain the last value of X on the next execution.
·TESTED ON 12/10/2011 on the MOC Synchronization script: The code executes everything outside the procedure vs before going into the procedure. Therefore the object created need to be destroyed in the Process Tag Function (Set FSO=Nothing).
·The entire script is executed, on every MOC branch step. The top part, and also the script inside the ProcessMOCStructure. This is unlike AM where only the ProcessMessage() is executed for every step and the TOP part (normally used for object declaration) is executed at the start only once
·For A GLOBAL Variable, it needs to be declared outside the ProcessMOCStructure. If it is not declared outside, any assignments done to it inside the ProcessMOCStructure will not be passed to other subroutine..
·
·
Synchronization
·Regular Update
·Execute periodically. Executes also every time the service is started
·SQL server stores, all OPC item names (or paths). Performs the following query on SQL server, to get the item names
SELECT
AMTag.Name as TagName,
AMTag.TypeAS TagType,
AMOPCParameter.ItemName AS ItemID,
AMOPCParameter.Name AS ParameterName,
AMOPCParameter.PropertyCode,
AMTag.DCSID,
AMTag.Qualifier
FROM
AMTag innerjoin AMOPCParameter on
AMTag.ID =AMOPCParameter.TagID
WHERE
AMTag.DCSID = 7 AND
AMTag.ChannelName ='IM_Surrogate'
and HMTP = 0
·Quickly grabs all OPC values from the results of this query
·Does not browse the OPC tree structure
·(And therefore) Does not invoke MOC Structure Sctipe (ProcessMOCTag)
·Below is how the Synchronization Log File works when regular update is done
·Tag Update
·Execute Periodically as well
·Executes also every time the service is started
·Invokes the tag update synchronization script (Process tag), updates everything
·Invokes MOC Structure Sctipt
·Browses the OPC tree structure. This causes it to take longer!
Triggering the Synchronization
·Sometimes when restart service, both tag and regular update is performed if, scheduled start time is less than current time. If this does not work, play around with the manage channels. Change the time start to 1 minute later and save
·You can turn off the regular update and fast update cycle if you are only interested in the tag list update
·Regular Update Started
·Start of Tag list Update
·Tag List Update Completed
·Regular Update uses the data obtained from SQL to perform the update. The processing tag is done immediately (Invoking the Process Tag Script)
·Regular Update Completed
·Reasons Why Browsing Fails
·The start path is configured in rules builder (There is a bug here (26/07/2011).Removing in rules builder may fix it
·The tag definition in OPC item is not configured correctly (TAG DEFINITION IS CASE SENSITIVE!).
·Sometimes the regular update does not browse the tree. To fix, this you can play around with the options in the MOC Rules builder. There are 3 ticks (8 combinations). Changing this will have immediate effect on the program browsing (witnessed on 22072011)
Process Tag Synchronization scripts
·Installed in the process tag
Tag Deletion
·Tag is deleted using the MOCCA Excel Interface. Once a Tag is deleted, it should immediately dissappear from the plant hierarchy (no need to refresh netobjects or whatever)
·
·dsd
Plant Hierarchy
·Tag list update will rebuild the tree
·If a tag is already configured and the area need to change, the tag must be deleted first. Tag is deleted using the MOCCA Excel Interface
·Once the tag is deleted, when it is re-imported back, thenew object trees will be rebuilt.
·Note that the Net Object tree does not need to be deleted for this, only the tag
The rules builder is used to build an “rbf” file which contains the rules on what items to take and classify when MOCCA parses through an OPC server
·Note 1 2/2/2011 MOCCA 3.0.4 – The Set Start Path doesn’t’ work don’t bother to use it
·You can prevent the OPC server to go through an entire branch by right clicking => Exclude Branch
·You do not need to restart the synchronization service after the rules file has been changed.
The rules is structured into 3 parts
·Tag definition
·In an OPC structure there are many items (e.g. Alarms, Status, Tags, etc). This definition is used to identify which OPC structure is a tag.
·Rules can be built to determine a tag based on
·OPC Items
·Important! Take note that the OPC Item is not the parameter name or parameter item name, it is a hierarchy name based on the browse where each branch is separated by a ‘\’ . For this it is imperitave to take note that the Operator equals may not work for OPC item. One should use the endswith term instead.IMPORTANTTIP!!: To get a more precise rule. Use set the OPC Item rules as “Ends With \BAL” (For selecting only BAL parameter)
·The OPC Items need NOT BE DECLARED in the Parameters Tab of the Rules Builder for it to scan an OPC Item [TESTED ON 20/8/2011]
·OPC Branch
·OPC Properties
·Each Rule by default is an “AND” Operator. If one opens the RBF File, under <Tag Ident><Criteria> node, there is a possibility to change this from and “AND” to an “OR”. This change unfortunately does not work (as of 27/7/2011)
·The Path to Next…
·Is used to determine where is the tag. Typically it’s “..” means that the tag(name) is a parent to the node
·The Maintain Tag Types Hyperlink
·Tag types must be declared here. There are many tag types such as for a yokogawa system there are PVI, PID, PVO and etc.
·TagType and Parameters Definition
·The tagtype declares a rule of which of the tags belong to the defined tag type.
·The rules has lines, each line is and AND operator. If no rules are configured, here (i.e. no parameter or tag lines), no tags will be detected
·By Default, a tagtype “Default” is already created in a freshly opened rules file. This “Default” tagtype cannot be deleted Using the MOC Rules builder. It can however be deleted by directly deleting the tagtype node in the RBF File.
·NOTE!!! The “Default” Tag type will captue any tag even though nothing is declared in it’s parameter. By right one should not allow default tags to be synchronized
·To declare this part one can declare MOC Node Type by Parameter or By Tag
·By Parameter –
·If one selects this, one needs to define the parameters first on the parameter tab.
·IMPORTANT!! VERIFIED 22072011 The Name is actually the Parameter Name, which does NOT include the path.
·Table above shows the difference between parameter name and parameter item.
·The parameter tab is used to define the rules for which parameter is selected. Since we have selected the tag in tag definition, in the parameter tab, we need to select which parameters we need. An easy way is to take all parameter and define a very generic rule (such as ends with “”), this will results in the system browsing all tags including the tags we don’t want. (This does not effect the tag browser report as the tag browser report is based on what is configured in the DCS Map file). Picture below shoes this. All Parameters are highlighted green indicating all parameters have been selecting with this generic rule
·Each line in the rule is an OR parameter.
·Important! Take note that the OPC Item is not the parameter name or parameter item name, it is a hierarchy name based on the browse where each branch is separated by a ‘\’ . For this it is imperitave to take note that the Operator equals may not work for OPC item. One should use the endswith term instead. In the example above, the BAL parameter OPC Item is = Blablabla\Program\AC38_002\BAL. TIP: To get a more precise rule. Use set the OPC Item rules as “Ends With \BAL” (For selecting on BAL parameter)
·Once the parameter tab is done, the TagType tab is done next ( and yes, we do the second tab first ). Since we have selected the only parameters we want from the parameter tab, we can tell MOC that a certain tagtype must have these parameters. Each line in the parameter rules in an AND operator
·The TagType parameter works line-by-line, it first searches the first tagtype and how it is defined (as explained above, by specifies what parameters it have). If the tag type is taken, it accends down accordingly.
·Example is that a tag type PID, must have parameter P, I, and D. SO we specify “Ends with P”, “ends with I”, and “Ends With D” as tag type rules. If say MOC finds a A tag wouthout any P,I or D, in then checks the next tag types.
·By Tag
·Identification by Tag is basically based on the tag name (have not tried this yet)
·
·
Alarm MOC Excel Plugin
·You can install the Excel Plugin by downloading the plugin from OI
·You Can
Save and check the control drawing
Yokogawa EXAOPC
Product Model : NTPF100
Version
R3.70
The first ExaOPC version which is able to Connect to CENTUM VP R5 (R5.01)
Requires .NET framework 3.5 SP1
R.3.70.10
Some hot fixes for 3.7
R3.71
Able to connect to Centum VP R5.02
Capacity / Limitations
In general, 2000 Item ID’s per second
PC Specifications
Supported CENTUM
Supported Windows
OPC Specifications
DA 2.0
AE 1.10
HDA 1.2
Program Component
ExaOPC Server Monitor
ExaOPC Setup
ExaOP Station Viewer
OPC Connection Confirm
ExaOPC Server Monitor
Only available in R3.21 and later
Tabs
Server Information
Number of Item ID
This is the number of items registered in the ExaOPC Server. This number will depend on the Tag Dowload.
Device Read Data
Device Cache Data
Write Data
Total Data Access
Throughput Maximum
Screenshot
OPC Server Log
Number of ItemID
Screenshot
Number of Data Access
Screenshot
Troubleshooting
Ask
Were thre any system changes to the ExaOPC Server?
IT Security Model between CENTUM and EXAOPC Needs to match
Run PMCDUmpWiz tool
C:\Exa\PKGCOM\tool\PMCDumpWiz.exe
Output archive can be any zip file
Database version on EXAOPC. This is because if ExaOPC is upgraded, the Database version is an older type
Check CENTUM and EXA Username and Password, it must match HISENG
Can EXAOPC Browse HISENG CS1000PJT folder?
Can Ping?
Logs
Windows Logs
ExaOPC Server Monitor Logs on the DA branch
HistView Logs
C:\Exa\CENTUM\Program\BKHHistView.exe
Yokogawa CENTUM
General
Versions
Centum XL
Centum CS
R1
Released in 1993
R2.07
Released in April 1997
Centum CS 1000
R1.02
Released in September 1997
Runs on Windows (Old Version), possibly Windows 95
R2.2
Released June 2000
Adds PHS4510 Expert Trend Viewer Package
Automatic Project Backup
Self Documentation Enhancement – Print By Items
R3.01
Released Jan 2001
Runs on windows 2000 Pro SP1. DOES not run on NT4.0
R3.03
Support windows XP
Centum CS 3000
R2 (STARTs AT R2… for whatever reason)
End of Hardware Supply Jan 2014
R2.2
Released June 2000
Adds LHS4510 Expert Trend Viewer Package
Adds Self Documentations
Supports 64 I/O signals per sequence table
Support Automatic Project Backup
R3
R3.01
Released Jan 2001 – Is a major release
Runs on Windows 2000
R3.08
Released October 2006
Adds LHS4800 Package – Which allows CAMS
Some enhancements (Engineering, Connectivity, Operation Monitoring)
R3.09
Released February 2010
Key code media uses CDs now
R3.09.50
Released November 2011
Suppots MS Office 2010 for LHS6530 Report Package
Supports Adobe Acrober/Reader V10.1
R3.09.57
Patch
SOE Server package supports SQL Server 2008
Supports SEM OPC
R3.09.86
Patch
Latest version as of 14/2/2014
Centum VP
R4
Start at R4.01
Released February 2008 – is a Major Release
Uses Windows Vista
Software is now distributed in DVD ROM (Previous version in CD-ROM)
HAS CAMS!!! - The previous LHS4800 (CAMS) package is bundled into the Standard Operation and Monitoring Function Package (LHS1100 / LHM1101)
R5
5.01
Released August 2011 – is a Major Release
The key difference with R4 is that it supports Windows 7 and Windows Server 2008R2. Windows XP not recommended.
UGS (Unified Gateway Station) is released
CAMS – Alarm Setpoint management added
New software license management system
Does not use ActiveX controls anymore, and uses .NET components. Graphic files are now in the format of XAML files
5.02
Released June 2012
Added Tag Name Hierarchy
Profibus Communication Module Introduced
CAMS Alarm Set Point Management Enhancement
Added Tab Controls
5.02.05
A patch which fixes an a dangerous AOF status change (Alarm on Tag is turned off) after HIS is restarted
5.03
Released June 2013 – Not many changes
Allows use of WAN Router
Centum Data Access Library supersedes Microsoft VB 6.0
If one has a DCS project, to know the DCS version, simply open the ‘Project.atr’ file in Notepad and the version is mentioned there
In the following example, it is version R3.09
Product LifeTime
End of Order Entry
Orders are no longer accepted
End Of Supply
Comes Next, the product will no longer be manufactured and no longer be sold
Limited Stock
Generally 3 years after end of Order
End of Support
Comes Next, any existing product will no longer be supported.
Unable to Repair (MOST IMPORTANT!)
Unable to get second hand
Generally 5 years after end of Order
Staging
Typical FCS is installed on a 19” rack (48.26c)
19” is the standard and most commonly used racks
Installation
Installation of CENTUM is very easy
Simply run the installation file and it’s all good
After installation, the license file needs to be put
After the license has been installed, restart the machine and the license items will appear.
Licensing
CENTUM CS 3000
Packages are licensed using ‘Keycode’ files.
The keycode files are of ‘.KCD’ file extensions.
these files are stored under “C:\CS3000\Keycode”
The following is an example of such keycode file
LHS5100-S11/N0003 <== This is the package number. The number after the slash will denote the package specific restrictions. In the following, N0003 means that this package is restricted to 3 stations uses.
XXXXXXX00003 <== This is the System (license) ID. This will be unique for each system. The XXXXXXX… denotes that this is a DEMO Keycode. Demo Keycodes only allows 90days of run time. If 90days is reached, the system will and the DEMO is FINISHED. However, If the system is kept on restarted before 90 days, the runtime counter resets And the demo will never end.
AUAUAIM9A7I5I5A2M6M6MAM2MAM2M6M6M6M6M2IAM0MAIUAMC4 <== This is the Keycode, which will challenge the validity of the claimed Package Number for that System ID.
Everytime CENTUM CS 3000 System view is launched, it checks if the keycodes are valid. If they are not valid, an error will be thrown.
For CENTUM VP
Packages are licensed under “.lkc” file. Short for license Key Code. The file is a small few kbs. This license file is given in a CD. It is always best to backup this license file and keep a copy of it.
Use license manager to add the license
Then add the stations (HIS/FCS), the Unused quantity will go down
The distribute the licenses
After distributing the packages should immediately appear without need to restart machine.
Managing Keycodes
If one needs to change the keycodes, just simply change the keycode set in the ‘C:\CS3000\Keycode’. Then run the installer to install missing packages which was not equipped in the original set
Hardware
Architecture
Allows 16 Domains
Allows maximum of 64 stations per domain (16HIS, 48FCS)
HIS
16 Maximum per domain
FCS
48 Maximum per domain
Variants
FFCS
Compact Field Control Station with FIO
Uses FIO (Fast IO Bus) to extend the IO nodes
ESB (Extended Serial Backboard Bus)
10m length
125Mb/s
ER (Enhanced Remote Bus)
128m + Fibre optic extension
10 Mb/s
FIO Modules connects to the nodes (or racks), Using either:
KS Connector
MIL Connector
Can go up to 14 Nodes with extended license
8 Slots per node
Models
AFV
KFCS
Distributed FCS with FIO
VNet Only
Models
AFF
PFCS
Compact FCS with local I/O
VNet Only
Models
LFCS
Distributed FCS with RIO
VNet Only
Models
AFS
Models Coding
[A][B][C][DD][E]
[A]
[B]
F means its a Field Control Station
[C]
V is for VNet/IP and FIO
F is for VNet and FIO
G is for FIO or RIO (depending on the next 2 digits)
S is for VNet and RIO
[DD]
10 is Rack Mountable
20 is with cabinet
30 is 19” rack Mountable
40 is with Cabinet
71 is CENTUM V Migration type cabinet
72 is CENTUM-XL Migration type cabinet
[E]
D means its duplexed
S means its Single
Most Commonly used controllers
For CENTUM CS 3000 – AFF
FOR CENTUM VP - AFV
Bus
VNet/IP
500 Tags/second
Ethernet with Token Passing Application Layer
Two Control Busses
Bus1
Control Communication
If Fails, uses Bus 2
Recommended IP
172.16.dd.ss
Bus2
Open Communication
Recommended IP
172.17.dd.ss
or 192.168.dd+128.ss+129
The busses communicate with separate switches
Layer3 Switch used for inter domains
Vnet Card
Uses DIP Switch to set station and domain number
VF701
Uses coaxial cable with bus converters
Conventional PCI Interface
VF702
Uses coaxial cable with bus converters
PCI-e interface
VI702
Uses Internet Cable
VNet IP
PCI-e interface x1
BCV (Layer 3 Switch)
~1000 Tags/Second
VNet (Legacy)
2 Coaxial Cable
Separate Ethernet for ENet
Other Hardware
Vnet Router
Connecting legacy VNet with VNet/IP
Gateways
SIOS (System Intergation OPC Station)
Is an OPC Client that models (i.e. becomes another) FCS on VNet
Is used to communicate with OPCS Servers from another system
UGS (Unified Gateway Station)
is an OPC Client
The difference is that it can connect directly to STARDOM.
ExaOPC
Is an OPC Server
Allows other application and system to communicate with Centum
System Attribution Utility
Current Project
Project is downloadable to FCS
By design, system view will need at least a default or current project to ope
Default Project
Project is not downloadable to FCS
By design, system view will need at least a default or current project to open
User Defined Project
HISOPC
Each HIS also provides OPC Functionality
Package function ‘LHS2411’ needs to be included in CENTUM License
Capacity / Limitation
4 Clients
20 Groups
1000 Item IDs/group
500 item IDs/sec
Engineering
Projects
CENTUM CS Projects are stored in ‘C:\CENTUMXX\eng\bkproject’
The project is a folder which consists of many files. The entire folder is the project
FCS Configuration
Terminologies
% : Element
Z : IO
W : Word
Scan Rates
Speeds
High (200ms)
Medium (500ms)
Basic (1 Second)
What happens in a scan
O/S Functions
Read Input
Function Block Process
Write Output
Idle Time
is expressed in idle time per minute
Function Block Configuration
Function Block
Data Value
PV, MV, SV, CPV
Data Status
BAD, IOP
Regulatory Control
Types of Blocks
Input Indicator
Controller
Manual Loader
Signal Setter
Signal Limiter
Signal Selector
Signal Distributor
Pulse Count
Alarm
ALM-R
I/Os
Data Status
Input Data
Output Data
I/O Wiring Rules
Data Item must connect to a Data Terminal
E.g. PV (data Item) must connect to IN (data terminal)
Cascade Rule
OUT terminal must connect to SET terminal to Create a cascade connection
PV to SV does not work, it must always be OUT to SET
Switch Rule – Rule 1 and 2 holds across a switch for the source and destination modules on either side.
Area Connection
Function Block Processing
Input Processing
Output Processing
Alarm Processing
Block Modes and Statuses
O/S Out of service
IMAN
Trk
AUT
CAS
PRD- Primary Detect
RCAS – Remote Cascade
ROUT – Remote Output
PID Controller Block
Input/Output Compensation uses VN Input
Reset Limitting – Sets limit for intergral action on RL1 and RL2
PID
I-PD
To minimize impact of abrupt changes of the Setpoint which would impact the P and D function
PI-D
Yokogawa CENTUM PID Default values
P = 100
I = 20
D = 0
PID QUICK TUNE!
For Flow,
PB is high ~100 (also default value for Yokogawa Centum), to avoid
TI must be low (cause does not have high first order lag with control valve movement)
For
Calculations
Function Blocks
Numerical
ADD
MUL
DIV
AVE
Analogue
SQRT
LAG – First Order Lag
EXP
INTEG – Integrate / Totalizer
SW 0 – Reset and Run, SW 1 – Run, SW 2 - Stop
LD – Derivative (Lead Block)
LDLAG - Lead Lag Block
DLAY – Delay/Dead Time
AVE-M – Average Moving
FUNC-VAR – Used to create a graph mapping
Logical
AND
ORD
NOT
TON – Rise Trigger
TOFF – Fall Trigger
Auxiliary
DSET
Similart to Manual Loader Block (MLD) except that it will pass SV rather than MV
BDSET
CALCU Block
Allows maximum of 20 statements ONLY
Uses SEBOL language
SEBOL
Structure
Program
Declarations
Local Variables
<Data Type> <Variable Name1>,<Variable Name 2>,etc
e.g. Float X1,X2,X3
Aliases
Generally used for either
Readability
If Tag Name has ‘-‘ as compiler will integrate it as a subtraction
Alias <Alias Name> <connection Item>
e.g. alias FLOW RV1
e.g. alias FLOW FI100.PV
Define
For constant
e.g. #define OPEN 2
Valve.CSV = OPEN
IT IS IMPORTANT FOR ALL DEFINITIONS TO BE BEFORE ANY CODE
Executables
End
General
*, /, ! are for Comments (! is for beginning of line)
\ is to separate single line into multiple lines
For Setting Block Modes (E.g. MAN,AUT,CAS), use culy brackets for assignment, e.g:
{FIC103.MODE.AUT}=1
{FIC103.MODE.MAN}=1
However, for Comparing Block Modes, just use the value. No need any “” or ‘’
IF (FIC102.MODE<>AUT) THEN
{FIC102.MODE.AUT}=1
END IF
IF ({10FIC202.MODE.CAS}<>1) THEN
{10FIC201.MODE.CAS}=1
END IF
For PVs which has % engineering unit, e.g. Level and Control Valve Opening (MV), SEBOL does not assume 100% = 1 , Instead, 100%=100
Data Type
char*n
Character String
8*n bits=
Integer
16bits
Long
32 bits (Integer)
Float
32 bits
Double
64 bits
IO Variables
Inputs
RV – In,
RV1 – Q01
RV2 – Q02, etc
Outputs
CPV
Internal Data Items that gets displayed in tuning parameter
P01
P02
P03
Arrays
integer I,J,K,SUM,A[3,3]
char*4 STAT[10]
......
SUM = 0
for I = 1 to 3
for J = 1 to 3
SUM = SUM + A{I,J]
next@
next@
Operators
+.-.*./,mod
Functions
sin(x), sqrt(x), exp(x), log(x)
Selector functions
dmax(x1,x2,x3…) – Select the maximum value
dmin(x1,x2,x3…) – Select the minimum value
lmax(x1,x2,x3…), lmin(x1,x2,x3…) – For real numbers
integer function setmv(tagname,value1,value2)
char*0 tagname
double value1,value2
genname PID block1 ! declaration of a local generic name for the function "setmv"
assign tagname to block1
block1.MV = value1
wait until(block.PV >= value2)
Example 2
!calling program
#define NUMDATA 100
integer average( ),data(NUMDATA),ave
......
! Value setup in the array
ave = average(data,NUMDATA)
......
!called function
integer function average(buf,n)
integer buf[*],n
integer i
long sum
sum = 0
for i = 1 to n
sum = sum + buf(i)
next@
return (sum/n)
end
Tips
Use comparison operators in equations will result in a 1 or 0 value which can be resued in the calculation
e.g. CPV2 = RV * (RV1 > RV2)
Use switch pv value directly in equation to act as an if statement
PO1 = x1 * TX1SEL
Assign logic results directly to CPV
CPV = (RV > PO1) and (RV < PO2)
Control Statements
If
If (I100.PV > 10) then
…
Else if (fi100.PV > 1
…
Else
…
End If
If (FI100.PV > 23) FIC100.SV=80
Switch
Switch (DATASW.SW)
Case 1,2,7:
…
Case 5,8,9:
…
Otherwise:
…
End Switch
Goto
Goto FLOW
…
…
FLOW:
…
…
Exit
Exits the Program
Delay
delay 2000 ! delays the program 2000s
Wait Until
continues checking until expression becomes true
e.g
wait until (TIC001.PV > 50)
while
while (N>0)
SM = SM + 1
N = N - 1
wend@
repeat
repeat
SM = SM + 1
N = N - 1
until@ (N<=0)
Limitations
Curly brackets are needed statuses e.g
{FIC100.MODE.MAN} = 1
Cannot set HI, HH,LO,LL alarms
CALCU only allows 20 Line
Sample Programs / Examples
Timer Block Operation with SEBOL
#include "std.h " ! label TM**** is defined in std.h
block TM TIM0001
TIM0001.OP = TMSTAT ! starNOISts the timer block
......
TIM0001.OP = TMPAUS ! stops temporarily
......
TIM0001.OP = TMCONT ! restarts
......
TIM0001.OP = TMSTOP ! stop
A one-shot level reset which is triggerred by a graphic button. The calcublock name is called ‘RESETLEVEL’.
Setting done in graphic button
ResetLevel Calcu Block code
IF (P01==1) then
LIC101.PV=50
P01=0
End If
A Process simulator which has a Noise Component
The simulation graphic
The SIM Calcu block Float NOISE,N, PERIOD
PERIOD = 10
N = N+1
IF (N>100) THEN
N=0
END IF
NOISE = 3.141593/PERIOD/2*N
FIC101.PV = FIC101.PV + (sin(NOISE) * 0.1) + (FIC101.MV-FIC101.PV) * 0.50
IF (FIC101.PV<0) THEN
FIC101.PV=0
END IF
LIC101.PV = LIC101.PV + (sin(NOISE) * 0.1) + ((FIC101.PV-FIC102.PV)*0.01)
IF (LIC101.PV>100) THEN
LIC101.PV=100
END IF
IF (LIC101.PV<0) THEN
LIC101.PV=0
END IF
FIC102.PV = FIC102.PV + (sin(NOISE) * 10) + (FIC102.MV-FIC102.PV) * 0.35
IF (FIC102.PV<0) THEN
FIC102.PV=0
END IF
Sequence Control Blocks
Switch Instrument Block
SI-2
Switch instrument with 2 inputs
Typically used for Shutdown valve with an OPEN limit switch and CLOSE switch
The two switches are fed into the block
The block will give PV value of
0 - Closed
1 - Moving
2 - Open
SI-1
Switch instrument with 1 input
SO-1
Switch instrument with 1 output
SO-2
Switch instrument with 2 output
Sequence Tables
Two different method of execution
Stepped
Step by Step execution
Non Stepped
All conditions are run all the time
Sequence Table Block
Under edit details:
C is Condition
A is Action
The big dotted screen containing Y and N are for rules.
The meaning of Y and N is a little confusing, as it is different for condition and action
For Condition, Y means True and N means False. e.g.
if the Data is PV.ON, PV.ON = Y means that the condition is satisfied when PV is ON.
if the Data is PV.0(as in Zero), PV.0 = N means theat the condition is satisfied when PV in NOT 0, i.e in this context is 1
For Action, Y means DO THE ACTION AND LATCH , N means DO NOT DO THE ACTION AND STOP LATCH
If Tag.PV.1 = Y, the means set the PV = 1.
This can also be used to start timer e.g. TIMER.OP.START= Y, this means start the timer
If Tag.PV.1 = N, the means Do not set the PV =1, this in other words, means DO NOTHING.
So basically, there is no point of using N is Action other than to STOP latches
Note that The LATCH and STOP LATCH in only exclusive to the PV.H
The PV.H is for Latching
The PV.L is for Non Latching… which makes it the same as declaring as PV.1
PV.L = PV.1
Latching is confusing, it is better to use non latching hence the not need of using ‘N’ toggles in the rules
The following is an example
The Top second line (A1,A2,A3…) is the Step number
E.g. The steps needs to be set as A1, A2,A3,A4 and the then in A2,A3,A4 for sequential processing
The else is where to branch to if the condition is not satisfied
Data
This is the confusing part as it can be H,L,ON,CTUP and etc…how do we know? By General Rules:
Conditions
Data ON
Tag.PV.ON = Tag.PV.1 = Tag.PV equals 1
Data OFF
Tag.PV.PFF = Tag.PV.0 = Tag.PV equals 0
Actions
Data H - Latched Output
Tag.PV.H : Output will continue to be ON or 1 until the Action Tag.PV.H=N is obtained from the sequence Table
Data L – Non Latched Ouput
Tag.PV.L : Output will only be on for the duration that the Condition is Y i.e. SomeCondition.PV.ON=Y
Capacity
64 Conditions/Actions
32 Rules (Columns)
Timers
THe timer countup duration is set by PH data item
The timer keeps counting up, when it reaches PH, it will trigger CTUP and reset itself back, and count back up again – repeating this forever
Condition TimerTag.BSTS.CTUP = Y, trigger when the time elapsed the PH value
Action TimerTag.OP.Start, starts the timer
Logic Charts
Has 3 Components
Input Element
Must include value declaration such as similar like Sequence table, e.g.
Tag.PV.ON
Tag.PV.1
Output Element
Must provide action similar like the sequece table, e.g.
Tag.PV.1 or Tag.PV.L (they are both similar)
Tag.PV.H
Logic Element
AND
OR
OND (on Delay)
OFFD (off Delay)
TON – Pulse on rising edge
TOFF – Pulese on falling edge
Trends
Yokogawa CENTUM allows long term historical trending under the package license LHS6510 (For Centum VP).
The Trend look like the following
To call a trend,
on a HIS, press the ‘>’ button on the left pane ==> view ==> click on the trend
or call the trend block / Trend acquisiotn (From TG0101 to TG0X0Y)… where 0X is the block number, 0Y is the group number
Trend Block (Or Trend Acquisition Pen)
Has many Trend Groups
Tags are assigned in trend group (e.g. FIC101.PV, FIC101.SV….and etc)
1 Group can be assigned with 8 Tags
There is a limit for number of groups which is 16
One can create a trend by simply right clicking and create new
However, there is a limit of the number of Trendblocks and this depends on the sampling period
1,2,5,10 Minutes periods = 18 Trend block limit
1,10 second periods = 16 Trend block limit
The following is a picture
The trend block data are stored in
C:\CENTUMVP\his\save\LongTerm\Trend
Each folder is a block (e.g. Block001.002 in the example above). The block folders are automatically created the moment a variable is set in the trend block
The database used is unknown but it only registers data if there are changes. If data is constant, the database does not add in data.
One trend block or trend acquisition pen has a constant sampling rate
Trends are set in:
System View ==> Each his ==> Configuration ==> Right click on trend acquisition pen assignment ==> Properties
The trend formats:
Continuous-Rotary Type
Older data is overwritte
Batch-Stop Type
Start command stat acquision, stop when stop command is recieved or maximum number of samples reached (2,880)
Batch-Rotary Type
Other-Station-Reference type (Other Station Acquisition Trend)
Gets trend from another HIS
The Recording Time is the time taken for the maximum number of samples with the selected sampling period.
This is ultimately how much data is stored in one file. When a person presses the back button, it will go back to the amount of this duration (unless there are straight lines)
The Trend Data Store Time is how much data to be stored
File are stored in ‘C:\CENTUMVP\his\save\LongTerm\Trend’, each folder represents each block
If Trend data store is set to 0, NO DATA will be stored and the corresponding ‘Block00X’ folder will not exist. DANGER, SETTING THIS TO ZERO WILL DELETE ALL TRENDS STORED IF IT WAS PREVIOUSLY STORED
The maximum number of samples in a file is fixed to 2,880.
HIS TRENDS only CAPTURES A SAMPLE when IT CHANGES, if the samples are constant, the 2,880 will not be fully used
Each File is 10.8MB and can store 10,800 points which is equivalent to 3.75 1 Second trends
System View ==> Each his ==> Configuration ==> Opencondef ==> Longterm Data Save
Historical Message
These are for alarms, so not relevant
Hourly/Daily/Monthly Closing
This stores the closing values of the trends
Closing values effect all trends and will be store at the following:
Disk Space Used
In any HIS, type ‘.SH’ ==> Long-term tab
Trends Data are stored in
C:\CENTUMVP\his\save\LongTerm\Trend\Block001
The ‘.LTD’ files are current files
The ‘.000X’ files are currently running files
Notice that the trends are limited to 10.8MB in size
The 10.8M files stores 3 hours of data or 10,800 of data
Trends can be saved.
By default the trend saved are kept in:
C:\CENTUMVP\his\save\TREND, the file type is of ‘trf’
This icon loads a saved trend file
This file returns back to realtime runnning data after we have viewed the trend save
HIS / Operator Console
Properties (Right Click His ==> Properties)
BuzzerACK
Define the HIS Station’s Buzzer ACK ID
When an alarm on this his is acknowledged, alarms from all other HIS which has the same buzzerACKID is acknowledged as well
Operation Group Identifier
Identifies the HIS as belonging to a Particular Group
HIS Constants Builder
Printing Alarms to TCP/IP port
All alarms are by default printed as msg1
Setting Printer
To access the printer type “.sh” in live name and go to the printer tab
How to set where to which HIS an Alarm goes to?
Set under HIS configuration constants builder
Can define inclusion and exclusion list by FCS, area and etc. E.g. FCS0101,FCS0102,FCS0103
One Example is for F&G alarms, where the alarm needs to go to all operators.
Say the F&G alarms are processed by SCS, the setting for the HIS constants security should be as follows, one for the FCS this HIS is assigned to and one for the SCS.
Alarms can also be organized in the plant hierarchy
This is a bit troublesome as each tag needs to be assigned to which plant hierarchy it goes to
The Plant hierarchy is built using the project common ==> plant hierarchy
After the Plant Hierarchy is built, it can be viewed under tool ==> Plant Hierarchy Viewer
The following will popup, this shows that TIC100 has been added to the milling equipment
In the HIS Constant Builder ==> Security, “Milling” is added as shown below. This allows alarms from Milling tags to come to this FCS
Function Keys
This is used to assign special shortcuts to the Yokogawa Special Operator Keyboard keyboard
1-32 mapped to the 32 function keys on the keyboard
HIS Graphics
Limitations
Data Links
400 per window
Modifiers
8 per object
200 per Window
Graphs
4 per window
Touch Targets
400 per window
Overview Object
64 per window
Instrument Faceplate
16 per window
Generic Names
400 per window
Generic Name Sets
200 per window
Graphic Window
In Centum VP, a graphic page is called a Window
Creating New Graphic. Under HIS ==> Window ==> Right Click ==> Create New ==> Window
Changing Graphic Window Properties
In Graphic Builder ==> File Tab ==> Properties
Attributes
The standard graphic size for CENTUM VP is 1226x821
Window Linked Function
Allow certain actions when Window is opened or closed (e.g. launching a program)
Graphic Builder
Layout
Drawing Tools
Basic Shapes
Line
Rectangle
Arc
Ellipse
Circle
Arc
Fill Area
Poly Line
Text
Dynamic Data Display Tools
Data Character
To display numeric values linked to a process
Data Link to a Tag (e.g. LIC101.PV)
Data Bar
To display value in the for of a process bar
Data Arrow
Graph Tools
Line Segment Graph
Data Modifiers
Most Items in the graphic can be modified using modifies.
The Following shows an example of a modifier for a shutdown valve which it’s color will change (Closed-Red, Open-Green, Travelling-Yellow)
Windows Types
Control Group
Graphic
Overview
Trend
Graphic Modifier
HIS-TSE
AKA Remote operation and monitoring terminals
HIS-TSE is a special HIS which
Allows users to view a live running HIS from their workstation by remoting into the HIS-TSE
Typically, this is used to allow Office based engineers to view live DCS as how the operator views it.
has A special package (+ license)
For CS3000, it is the (LHS1150-S11/N000X) Server for Remote Operation and Monitoring Function Package
The X denotes the number of clients that is allowed to connect to it
Is typically installed on a Windows Server. Can be installed on any windows that has terminal services.
Remote desktop uses TCP Port 3389. This port needs to be opened on the HIS-TSE
Has Windod
Has specials settings on windows terminal services
User always run as CENTUM
Has Automatic disconnection
Automaically starts ‘C:\CS3000\Progem\StartDesktop.bat’ when user logs on
OOP : Output open
Project Common
Alarm Status
To Enable/Disable Alarm Sound, go to the .sh command ==> Buzzer Tab
Common Alarm Status’
NR : Normal
OOP : Output open alarm
IOP : Input open alarm
IOP- : Input open alarm (instrument overshoot to maximum)
HH, HI, LO, LL
DV+ : PV – Target PV > 0
VEL : Velocity Alarm
MHI : Output High Alarm
CNF : Connection Failure Alarm
Normally IOP or OOP will occur together
In Centum VP Blocks, alarm status’ are represented in bits (1 to 32).
Can be seen from System View ==> Common ==> SysStsLabel ==> Alarm Status Tab
The bits cannot be changed.
How to read the table:
For FSBSET block, bit 11 is OOP alarm
for PID block, bit 10 is OOP alarm.
Alarm Processing
In Centum VP, the Alarm Processing Table Builder controls the Alarm Priority and Color
The Table Builder is accesssed from System View ==> Common ==> AlmTbl
Think of this table as a ‘Colour Schema’
The table structure consists of:
32 Columns
16 Columns for Color (1 to 16)
16 Columnms for Priority (1-16) (Side by Side with Color)
The number 1-16 represents the Alarm Level which is set in a function block.
The Example below shows setting for Alarm Level 6 which is denoted as user(6) in the Yokogawa System:
Cross reference between column and row(bit) will determine the alarm’s priority
It is to note that Colum 1 to 4 is un-editable because they are used by
Column 1 : Default High Alarm
Column 2 : Default Medium Alarm
Column 3 : Default Low Alarm
Column 4 : Default Logging
Column 6 to 16 : Custom Columns, User editable
32 Rows
The Row represents the alarm bit
What the Alarm bit is, is defined in the Alarm Status Table
Can be seen from System View ==> Common ==> SysStsLabel ==> Alarm Status Tab
The bits cannot be changed.
How to read the table:
For FSBSET block, bit 11 is OOP alarm
for PID block, bit 10 is OOP alarm.
These colours will eventually be reflected in Block Statuses.
If someone asks what the color represents, the answer should be ‘It depends!’. Cause differnet site will use different colour schemas.
e.g some site may use Orange colour for HI and LO alarm, but red colour for HIHI and LOLO alarms.
The colour of alarms are set in the Alarm Processing Table Builder. This is accessed from System View ==> Common ==> AlmTbl
Observation:
As alarms are set in the function block based on a particular alarm level, by default, the Alarm Priority will be the same for all alarm identifiers in the block
For example if a PID block is set to Medium Level, all HH,HI,LO,LL alarms will be set to Priority Medium Level
This is why, in most cases the Alarm level is set to a custom level e.g. ‘User(6)’.
So that the HH, HI, LO,LL alarm priorities can be set differently from the Alarm Processing Table:
What the bit is, is referenced from the SysStsLabel ==> Alarm Status Tab
Notice however that the ‘PVI’ block is not listed in the Alarm Status Tab Column
Security
Users
Users are managed under system view ==> Common ==> Security. This is the security builder
Privilege Level
When a user is using the Operator HIS Console, they will be given rights based on their privilege level
A user is ASSIGNED a privilege
There are 3 default privilege levels (S3 is highest privilege)
S1
Monitoring function
By default OFFUSER is assigned with this
S2
Operation function
By default ONUSER is assigned with this
S3
Maintenance function
By default ENGUSER is assigned with this
7 Customizable level
Security Level
In Centum VP, every function block has a security level to which a user is allowed to manipulate it
There are 8 Levels that can be assigned to a function block (Level 8 is highest security, 4 is default)
When a Block is set to a particular security, depending which privilege level is granted to the user, the user is able to do the following functions:
Project Attribution Tool
Current Project
Is the live running Project
Should only be set when connected to an FCS or not it will give an error
When test function is run, it bypasses all physical FCS IOs
Default Project
is the current project used but not live
When test function on FCS is run, it simulates a virtual FCS
Alarm Distribution
To assign alarms to different Operators, there are three ways
Assign by User Group
Assign By HIS
Assign in CAMS
Assign by User
Under System View ==> Project Common ==> User Security
In here, one can write FCS or Equipment Name
Assign by HIS (MOST COMMONLY USED)
System View ==> Under HISXXX ==> Configuration ==> HIS Constants ==> Security Tab
Assign by CAMS AlmGroup
Under System View ==> Project Common ==> CAM For HIS
Can set by user or user group
CAMS (Consolidated Alarm Management Software)
General
What is CAMS?
Consolidated Alarm Display
Alarm Documentation / MOC
Advanced Alarm Management
Shelving
Static Suppression
Dynamic Suppression
Eclipsing
Filtering
What CAMS does NOT do
Alarm Archiving
Alarm Reporting
Won’t work systems other than Yokogawa CENTUM and SCS
Versions Supported
Is an optional feature for Centum CS 3.08 and above. Have to buy it though…
For CENTUM VP, it’s free!
CAMS Integration with CS
CAMS is enabled from the HIS Utility under the Start Menu.
This replaces the old Alarm Display of Centum
Maximum Size of Alarm Buffer
By default set as 2000.
Is the maximum alarm that can be stored on CAMS for a HIS
NOTE!! If the number of alarms exceed the buffer, CAMS will start deleting outstanding acknowledged alarms.
To prevent this, keep alert on the CAMS Maximum Alarm buffer size. CENTUM will only give out ONE alarm and ONE Recover message to warn the user
Buffer Exceed 80% ALARM
Buffer is within 70% RECOVERY MESSAGE
The Buffer also Includes SYSTEM ALARMS. Make sure system alarms are deleted (using Manual Reset) to clear the buffer.
The buffer is before any filters are apply, this means even if filters are apply, the buffer will still fill up
All alarms and events will be stored in the buffer
Download Master
‘Set this HIS as Download Master’ is used to tell CAMS that this HIS is where the CAMS database is stored
The Download Master is used for the equalization of the “Configurator of CAMS for HIS”, which allows setting of
Message Monitor Configuration
Style Settings
Alarm Generator
the Start Menu ‘CAMS for Configurator’ will not work is the machine is not the Download master. Typically this will be HIS0164
When detailed setting is pressed, it lists down all HIS’s that the CAMS information is downloaded to from the Download master
Connection to SCS is done via OPC under the OPC A&E Server Connection
What happens to AOF Alarms?
In CS3000
When AOF is ON,
if alarm is activated, will not show up in the CAMS screen
if alarm deactivated, will not show up in the CAMS screen, however if an alarm is already in CAMS list, it will be crossed out from the list
When AOF is OFF,
if alarm is activated, it will show up in the CAMS screen
In Centum VP
In Centum CS, without CAMS, alarm priorities are defined by tag. This means that if Tag FIC101 is a Critical Alarm, All FIC101 parameters will be critical as well such as HH, PH, LL, IOP alarms
RECAP! Alarm Priorities are assigned in the function block parameter under ‘Alarm Level’
Equalization Scope can be checked using the Redundancy Ring check tool
CENTUM VP Installation Folder/CAMS/tool/CAMSInsideConditionCheckTool.exe
If redundancy not working, check:
Open the HIS Utility dialog box. Click the Detailed Setting button on the CAMS for HIS tab. In the Detailed Setting dialog box, are the HISs to be equalized to each other selected correctly?
Was a project common download done on the HIS
Was the computer rebooted after making settings on the CAMS for HIS tab of the HIS Utility?
Is there a network problem? (Can each HIS ping others?)
Has the Windows firewall been set up properly if it is ON? (In the case of legacy security mode, it is OFF by default.) If it is ON, open a port required for CAMS for HIS by referring to the Security Guide.
CAMS Alarm Processing Behaviour
Each HIS queries alarms from FCS. As it obtains the FCS alarms, it will put in the buffer
There is no configuration with this, as long as the HIS and FCS is on the same project, the HIS will query EVERY FCS in the project
From a CAMS point of view, the HIS CAMS Buffer will contain alarms from all FCS
Each HIS has it’s own buffer. The buffer is expected to be the same in all HIS by using Equalization
Equalization is the process of sending message operation from a HIS to other HISSES,
For example if one HIS acknowledges, the equalization process will pass this ackownledgement scope to other HISSES and that HIS will get it’s alarm acknowledged
In CAMS, the CAMS Server equalizes all alarm information to other HIS’ within it’s EQUALIZATION SCOPE.
This is to allow alarm operations (e.g. acknowledgement, shelving, manual resetting) done in one HIS being transferred to other HISSES
IMPORTANT NOTE : EQUALIZATION ONLY EQUALIZES ALARM OPERATIONS, the actual alarm itself is queriedUnd by each HIS to each FCS.
The equalization scope is set in the HIS UTILITY ==> CAMS FOR HIS TAB ==> DETAILED SETTING
NOW HERE IS TTHE CONFUSING PART … EVEN if equalization scope is set, there is another scope which is the OPERATION GROUP. This also determines which HISSES SHARES THE Equalization (i.e. Alarm Operations)
Operation Group is set under each HIS Property (Right Click on a HIS)
For COMMON Operation groups, one can set it as A*, which covers A1,A2,A3 and etc
A change in this will require a Rightclick ==> Load ==> Download to HIS
Note that for receiving alarms, it will be determined by the Alarm Distribution (See Alarm Distribution). This is just for acknowledgement/manual reset.
IT IS ALWAYS BEST TO SET THE OPERATION GROUP IDENTIFIER SAME FOR ALL! THIS IS THE COMMON PRACTICE
If operation group is set differently, an acknowledged operation on an alarm will not be sent to other unit. This will cause the alarm to fill up the BUFFER.
All other CENTUM HIS level filters (Such as the HIS Constand Builder) DO NOT effect the Alarm Operation Sharing. These are just filters applied after CAMS Buffer
Each HIS has its own Alarm Buffer. It keeps and maintains it individually.
This is the maximum number of MESSAGES that can be stored in the Alarm buffer of CAMS in the HIS. Limit is 2000 but can be increased to 10,000 via special tokuchu request to sales people.
The operations on the buffer is done via HIS operations throughout the network within Equalization Scope and Operation Group. For example, If an acknowledgement is done on HIS0261, HIS0261 will first verify which HISSES are in its same Equalization scope and Operation. It will then send the acknowledgement message to the satisfying HISSES.
There will be some HISSES which would be in more than one Operation Group. One typical example would be a common HIS TSE. HIS TSE’s Equalization scope would typically be configured to include all HISSES and the Operation group will be in the form of a wildcard e.g. ‘*’, which means it’s in all Operation Groups. In this case, HIS TSE will therefore receive message buffer updates from all HISSES. (There is thus a higher chance for HIS TSE’s buffer to reach it’s 2000 alarm limit first)
NOTE : THIS IS NOT A GOOD PRACTICE AS IT MAY FILL UP THE CAMS ALARM BUFFER
Now, here’s come the bit that makes things a little confusing…..
As we know that each HIS stores its own buffer, the alarm displayed in the Operator screen of that HIS, may not include all alarms in the Buffer.
This is because each HIS has been configured to a specific “monitoring range”. This is set in System View èHISXXXX è Configuration è Opecon Def (HIS Constants) è Security Tab
As the alarms come into the CAMS buffer, this HIS then checks whether the alarm matches the monitoring range. Only when it does match will it display the Alarm.
So, there may be cases when the displayed alarm is less, but the buffer holds alarms which are outside the monitoring range, making the buffer size large.
When the buffer hits 2000 alarms, CAMS will start to delete OLD alarms. The order of alarm priority deletion is as follows:
First, The OLDEST Acknowledged Alarm will be deleted first. Even if the alarm is in an ALARM State
Second, The OLDEST pair of a similar alarm (The newer pair must exist). Even if alarm has not been ACKNOWLDG
Finally, the OLDEST Low priority Alarm. Even if alarm has NOT been ACKNOWLEDGED
Some of my personal Observations on this:
Why does it not first delete alarms that have been recovered but not acknowledged????? Wouldn’t that be better??? ==> I think the idea is that Yokogawa thinks that an Alarm Acknowledged takes precedence.
Messages kept in Buffer include
Messages Collected by HIS
This includes SYSTEM ALARMS, Return To NORMAL, ALARMS
Messages Collected by OPC Server
Shelved Alarms
Messages not included in Alarm Buffer
Suppressed Messages by CAMS
Apart from Alarm Buffer, Each HIS stores information of Alarm operations called the “Alarm Buffer Replay”
Information includes AON/AOF operation, Shelving, Manual Resetting and etc
The purpose of this is so that when a HIS is restarted, it will obtain the Alarm Buffer Replay from another HIS, which basically tells it what happened during its downtime period
This Alarm Bufffer replay has a Limit (Either 7 Mb or 100 MB.. not sure)
One known issue for this is when Alarm group is defined with ‘Apply to All’, this means that when an alarm is acknowledged, the replay buffer records this as ALL ALARMS have been ACKNOWLEDGED. If there are 1000 alarms in the group, there will be 1000 Alarms in the replay buffer (even if the alarm is not active)
Known ISSUES
Number of System Messages differ amongst HIS
This is due to some System messages are specific to that HIS only and not transferred to others. e.g HIS Alarms, HIS Communication, HIS Operations, HIS Peripheral alarms
When a HIS is restarted
New alarm condition changes are obtained from another HIS (a replay buffer)
It is to note that this replay sometimes get clunky in terms of it’s order of arrival, because this replay buffer will come in together with the alarm status changes picked up by VNET. Due to this sometimes it is seeb that an Acknowledgment or a shelve on one HIS is not transferred to the restarting HIS.
Due to this problem, THERE IS ALSO a dangerous problem that an alarm may go to AOF during a HIS restart. CENTUM VP path R5.02.05 resolves this.
To Improve CAMS Performance
Keep number of messages small (via acknowledgment)
NOT to define ‘APPLY TO ALL” for alarm group
Reduce number of ALARM GROUPS and SHELVES
Reduce number of FILTERS
Apply Centum VP Patch R5.02.05
NOT TO EXTEND THE ALARM BUFFER SIZE (This is done via Registry Tokuchu, to extend alarm buffer to 10,000)
There are some system Alarms which CAMS will not Equalize to other HIS’s
CAMS Consolidated Alarm Display
Limitation of Old Alarm Monitor old Alarm Monitor
Alarm Flooding. CAMS Solves this by:
Eclipsing
Shelving
Difficult to find alarms or a set of alarms. CAMS Solves this by:
Filtering
Uninformative. CAMS Solves this by:
Having a detailed alarm Display
Customizable view for different users
For R3: Start Menu ==> CAMS for HIS Configurator ==> Tools ==> Message Monitor Configuration
The Filters Pane shows alarm count
(A/B/C)
A : Number of Standing (or Active) Alarms, regardles if it has been acknowledged or not. When alarm returns back to normal, the value drops.
B : Number of Unacknowledged Messages. Even return to normal messages are counted here.
When alarm are acknowledged, value drops.
Since, for chattering alarms, CAMS by default only shows 10 Messages per source, this is why when chattering alarm occurs, the value does not increase
In my opinion this value is useless, just get rid of it.
C : Total number of Messages, regardles if it has been acknowledged or not
IN my opnion, just leave A on and turn off B and C in CAMS Display ==> Tools ==> Options ==> Filters Pane.
Some notes:
For chattering alarms, CAMS by default only shows 10 Messages per source. Even when eclipsing is on. As shown below:
The message monitor for CAMS only stores a maximum of 2000 alarms.
The Alarms are stored in the following folder
The Default Color Settings
For SYstem Alarms
RED and BLINKING = Alarm is ON but not YET been Acknowledged
RED = Alarm in ON and Has been Acknowledge
GREEN = Alarm Has been Recovered
CAMS Alarm MOC / Database
CAMS provide a master alarm database for Alarm MOC which automatically integrates directly into CENTUM CS.
Detection : should be enabled (To see the alarm in CAMS)
Alarm Group : is the Alarm Group in CAMS, which is used in Suppression
NOTE: VERY IMPORTANT : THE GROUP NAME MUST NOT HAVE A SPACE IN BETWEEN OR NOT DOWNLOAD WILL FAIL!!
CAMS alarm settings work on top of CENTUM CS. It has it’s own database
Master Database is stored in ‘C:\CS3000\CAMS\Client\master\database\Client\Config’
Working Database is stored in ‘C:\CS3000\CAMS\configurator\work\database\Client\Config
In CAMS, the 3C’s of Alarm Management (Cause, Consequence, Corrective Action) can be documented in the Guide note/
An Alarm Rule assistant is also available which automatically determines the Alarm Priority and Detection (Whether it’s enabled or not).
To access the Alarm Rule Assistance:
For Centum CS3000: CAMS for HIS Configurator ==> Tool ==> Alarm Rules Assistance ==> View.
For CENTUM VP: System View ==> Common ==>CAMS for HIS Alarm Builder ==> Tool ==> Alarm Rule Assistant ==> Display
Alarm MOC CSV File import does not work in Centum CS 3000 CAMS.
Sorting/Filtering
Operators can sort and filter alarm messages by creating specific filters.
Conditional Expression can be multi lined.
Condition: True, False, not case sensitive.
Attribute: Case sensitive
Pattern or Rule: Case sensitive
Comparator: =, <=, <, >=, >
Logic Gate: “not,” “and,” and “or” in the order of priority. Not case sensitive, “and” can be omitted.
Sometimes one is unable to delete certain filters. This happens when the filters were created from the CAMS for HIS: Configurator. The filter needs to be deleted from there.
Eclipsing
Alarm messages that are repeatedly activated by the same tag can be collapsed and displayed as a single line. Eclipsing reduces the number of alarm messages that are displayed and allows operators to identify critical alarms more easily.
NOTE: When Eclipsing occurs, the alarm count is not effected. It still counts each chatter of an alarm as one
Shelving
Alarms of lower priorities can be temporarily “shelved.” Operators can shelve alarms and filters manually, and alarms identical to these shelved alarms can be automatically moved to the shelves. If there are any related recovery messages, they can be also shelved. If a filter is shelved, alarms that match the filter's rules can also be automatically moved to the shelves.
Three types of shelving:
Continuous Shelving (MOST COMMONLY USED)
Any further alarms from the shelved alarm, will be moved to the shelf, until a predetermined period.
After the Shelf duration has finished, the shelved alarms remains in the shelf.
Any further alarms will not be moved to the shelf.
THIS IS THE MOST COMMONLY USED SHELVING.
What Happens during shelving
When alarm is shelved, the alarm will dissapear fom main screen and go to the shelve window
While on this shelved states, any new alarms (if it chatters) will be suppressed.
After the shelve state finishes, the icon of the alarm will change. The alarm will still STAY in the shelve. it will not be UNSHELVED. This is in accordance with ISA 18.2 which highlight the dangers of AUTO UNSHELVING as it will cause a massive influx of alams
However, if the alarm chatters after the shelve state finishes, sound will be audible.
The alarm needs to be unshelved manually by moving it to the main window
One-shot Shelving (USELESS)
Simply puts an alarm in a shelf, nothing special.
Auto-Shelving (DANGEROUS)
When an alarm meets a particular criteria, the alarm is automatically shelved. What this essentially do is delaying alarms.
The criteria must be dragged and dropped from the filters pane to the shelfing pane
The picture below show Auto shelving ‘fghgfh’ in action
.
The word ‘Auto-Shleving’ is shown in the Shelved filter.
Does shelving in one HIS effects other HIS? This depends on Extent of shelving definition.
There are two extents
User – The shelve occurs in all HISs where the user is logged on to (MOST COMMONLY USED)
System – The shelves occurs everywhere
This is configured in the CAMS for HIS Configuration.
Minimum Shelving time is 1 minute, cannot shelve lower that that.
Maximum Shelving time is
For CS3000, 24 Hours
For VP R5.03, 10 Days (23 Hours and 59 Minutes)
Load Shedding
If too many alarms are generated in a short period of time due to an unexpected event, predefined filters can be automatically activated to reduce the operators’ monitoring load.
This is set under tools ==> Options ==> Filter Pane tab ==>
If within 120s, more than 6 alarms come in, load shedding will start.
TESTED ON CS3000 R3.08 – DID NOT WORK
Suppression
Alarm suppression (also known as Static alarm suppression) is the act of suppressing a group of alarms. For example, disabling all alarms permeating from a shut down unit/Equipment.
When an Alarm is Suppressed, it will emit a ‘RECOVER (Suppression) Message’, meaning the alarm has been recovered, by means of Alarm Suppression
When an Alarm is Unsuppressed,
If the Alarm is still ON : it will emit a ‘ALARM (Suppression) Message’, meaning the alarm has came out of suppression and alarms out again. Buzzer will Sound
if the Alarm has gone OFF: Nothing will happen. Buzzer will not sound
In CAMS, Suppression is done by running the program:
C:\CS3000\program\BKHCAMS_SON.exe FCS0101
This Suppresses all alarms in FCS0101
The result of suppression will be displayed in the Suppression window
The suppression can be cancelled by pressing the ‘Cancel’ button or by running the cancelling program:
C:\CS3000\program\BKHCAMS_SOF.exe FCS0101
Suppression works on FCS and also on CAMS group.
The CAMS group is set in the CAMS alarm database in the CAMS for HIS : Configurator
On top of that, Permissions must be allowed for the User to suppress the alarm group. This permission is given in the CAMS for HIS : Configurator ==> Alarm Group Tab ==> Alarm Sub State Change
'
Set Point Management / Enforcement
NOTE: This feature is only available in CENTUM VP. Not available in CAMS for CS300
CAMS Provide an easy to use Alarm Setpoint Management System.
A Master Alarm Setpoint is set in the CAMS Alarm database using the CAMS for HIS Alarm Builder
Once this is saved, any discrepancy can be seen from the Deviation Report Window, which can be accessed from the Plant Menu ==> Right Click
Any deviations will be shown here
Enforcement can be easssssily done by ticking the alarm and clicking on the Enforcement button
Manual Reset
Manual reset is a feature to automatically force the alarm to reset from CAMS. The reset alarm will ‘return back to normal’ in CAMS.
It is useful to be used for system alarms where manual reset is needed to delete System Alarm Messages
However, in DCS, the alarm is not return back to normal. It will still be there.
For this reason, this feature should not be used and should be disabled. To disable this feature, simply remove the manual reset ICON and the menu tool bar.
However, Manual Reset when used on operator guides
Sometime Manual Reset is not Allowed
Check under SYSTEM VIEW ==> HISXXXX ==> Configuration ==> HIS Constants Builder ==> Security Tab ==>
HIS Attribute must be = 1
Aknowledgement must be set (e.g.as ALL)
User must belong to group other than S1 (i.e. S2 and S3 is fine)
Manual Reset must be permitted in the CAMS for HIS Alarm Builder
For system alarms, manual reset is permitted by default
For Process Alarm, manual reset needs to be allowed at the alarm level under System View ==> Common ==> CAMS for HIS
Historical Viewer
Accessed from the Left Banner ==> Tool button ==> Historical Report
CAMS stores its historical data in several files which is in (C:\CENTUMVP\CAMS\hist)
The historical viewer will only record equalized alarms. Alarms which are specific to a HIS such as some system Alarms will not be recorded here
Alarm Generator
Used for Alarm Simulation
Other
If a user cannot do something in CAMS, change its attribute in the CAMS for HIS : Configurator
CART (Comparative Analysis Reporting Tool)
General
Versions
1.02
1.03
Provides a Data retrieval tool which allows data extraction for CENTUM VP R5.02 WITHOUT need of CART Software/Machine.
For VP R5.01 and below need dedicated machine.
Starting from CENTUM VP R5.02 onwards,
CART modules has literally been built into the system. There is no need to install CART Software anymore.
There is also no need for an OPC Server.
A Special Data retrieval tool is needed to get the CART related data
List of KPIs in CART
Installation STEPS (For Centum VP R5.01 and Below)
Prerequisites
Install SQL Server 2008 R2
Does not need to restart machine after install
Install HIS OPC Client
If Connecting to HISOPC
Does not need to restart machine after install
Install EXA OPC Client
For Connecting to EXAOPC
After Installation EXAOPC should appear under programs and features
Needs to restart machine after install
CART Software
CART Acquisition
Create Database
Use login ‘sa’, ‘vpsc_cart_1234’
Does not need to restart machine after install – Can safely restart later.
CART Comparer
Create Database
Does not need to restart machine after install
CART Raw Data Import Tool NOT NEEDED TO BE INSTALLED
Access Control Permissions
Gives users specific access controls
A RESTART WILL AUTOMATICALLY BE DONE AFTER THIS
Launch Security Settings tool
After Restart IT Security setting tool we appear
This takes a very long time
RESTART Machine Again
Post Installation
Run ‘CreateCEAProcess.exe’ / ‘CreateOPCProcess'.exe’
Location of CreateCEAProcess.exe:
For HISOPC, MAKE SURE CEA_PROCESS IS UNDER CTM_OPC / CTM_OPC_LCL GROUP
For EXAOPC, MAKE SURE CEA_PROCESS IS UNDER OPC_USER GROUP
Verify OPC Server Connection using ZOPDACLient tool
Create CART Time Synchronization Schedule
Create a batch file i.e. “TIMESYNC.BAT” with following command:
NET TIME \\<STN...> /SET /Y
Example: NET TIME \\HIS0154 /SET /Y
Configuration
Data Retrieval Tool
Used for CENTUM VP 5.02 and above
Configurator
Default Username Password : Administrator, Cart
Maintenance/Operations
CART Databases
CART uses SQL Server and has three databases!
Acquisition Database
This is where the CART initial configurations are kept
There can be MANY Acquisition Databases. Yes, this is the interesting part.
This maybe used for segregation purpose. One may have two separate companies in the Control System which want two separate report
Another interesting fact is that both Acquisition may run simultaneosly as one instance of the service.
Target is set based on 1st quartile of worldwide participants NOT based on EEMUA or ISA18.2
Report Structure
Summary
Ratings and Quartiles
Quartile will be based on WORLDWIDE participants, not just limited to that industry.
Alarm Effectiveness
Summary
Quartile Analysis Chart
This chart is confusing as it start at the top. The height of each bars is the Number of alarms.
Alarm and Event Trend
Unit is Events Per Day (NOT PER OPERATOR)
Plant Stability
The lesser the interventions, the better
The lesser the alarms, the better
Operator Workload
Output look number means the number of PID and MLD blocks per operator
The target here is to drop down alarms to the green zone, and increase the output loop number. The higher the output loop number, the more efficient the operator is.
No of Alarms
Unit: Alarms per 10 minute per operator
ISA 18.2 Target
EEMUA Target : 1 alarm per 10 minutes
No of Alarms Monthly Trend
Unit: Alarms per day ( Per Operator Excluded)
The Target 1 alarm per 10 min, is translated by multiplying with 144 and number of operators (In the above example, it is 4)
No of Alarms Shift Trend
AON/AOF Comparison
Number of alarms per day in AON/Mode
No of Repeated Alarms
How it is counted : From an alarm occurrence, see if there are similar alarm occurrence in the next 10 minutes. If occurrence is > 3, count this as a repeated alarm
Due to Oscillating process.
Unit: Per Day Per operator
Chart Example
% Alarms constitute
No of Chattering Alarms
Unit : Alarms per day per operator
Can be due to Instrumentation Failure, Wiring Loose or Oscillating Process
Chart Example
% Alarm constitute
No of longstanding alarms
Unit : Alarms per day per operator, standing more than 60 minutes
Alarm is recovered when it receive alarm recovery OR mode change to AOF
No of neglected alarms
Measure the number of alarms not being acknowledged within 5 minutes after annunciation
Unit : Alarms per day per operator
Time tags in alarming
Is the percentage of time when tags are in alarm mode / number of tags. It is per TAG, not per Alarm Point (e.g. FIC101, not FIC101.LL, not FIC101.LO
Alarm Priority
EEMUA recommendation : 80,15,5, Critical < 20
MOC Effectiveness
Summary
Change Item Distribution
Show what type of values were commonly changed
No of PH/PL changes
Takes average over period
No of HH/LL changes
No of AON/AOF Changes
No of PID changes
HMI Effectiveness
Summary
No of Panels Called up (Per day per Operator)
Is a total of Graphic Panels + Trend panels + Control Group Panels + Overview Panels
No of panels called up shift trend
No of graphic panels called up
No of trend panels called up
No of Control group panels called up
Control Group is a combined face plate page
No of overview panels called up
Special Panel only available in CS3000
Automatic Control Effectiveness
Summary
Time loop in Control
Time loop in compliance
Is the measure of the percentage of time the PID controller is not deviating from its set point.
The controller does not hit the Deviation limit (DV+, DV-) alarms. By default PID block put in a default.
Time loop output at limit
Manual Intervention Effectiveness
Summary
No of manual interventions
No of SV changes
No of MV Changes
No of Mode Changes
For controller, should mimic the Time loop in Control KPI
Repeated Works
% of PID and MLD tags manually intervened more than twice a day.
Loop Number per Operator
Shows Productivity of the operator
The higher the loop number, the more productive the operator
RASIS
Reliability
Common definition: MTBF
Number of System Alarms Per month/ Only specific system alarms which relate to reliability is selected.
Availability
Common Definition : Total time equipment is useable.
CEA calculates the % time the equipment run without critical (faulty) alarms.
Serviceability
Common Definition : MTTR
The average time a system is in some failed state by measuring critical alarms
Integrity
generally > 60% VNet Load deserves attention
Security
Yokogawa Exaquantum
Exaquantum PIMS
Installation
Straight forward process. Directly from DVD.
Some install logs can be found in ‘C:\Users\<username>\AppData\Local\Temp
Some logs can also be seen in windowslogs ==> application log
Common Problems
ExaOPC Client unable to be installed. Solution : Run the ExaOPC Client Setup Manually from the installer
HISOPC unable to be installed. Solution : HISOPC installer needs to exist on root drive (E.g. C,D or E). Copy the HISOPC Installation folder (Typically it would be called HISOPC_RX.XX), and run it manually.
When prompted for Exaquantumuser password, this is referring to the ‘QUANTUMUSER’ account. Create the new password here.
Upgrade
Upgrading exaquantum
There should be no complication with SQL Server because SQL Server is Frontward compatible (Since in an Exaquantum Upgrade, SQL Versions will go frontward)
If SQL Server Backup file comes from and older version, e.g. SQL Server 2008 and one wishes to restore it to SQL Server 2008 – THIS is OK. SQL SErver is frontward compatible.
If SQL Server backup file comes from a newer version, e.g. SQL Server 2008 R2 and one wishes to restore it to SQL Server 2008 – THIS CANNOT BE DONE. SQL SERVER is not Backward compatible in Restoring from New to Old Server
General Upgrade Procedure (Upgrading Exaquantum R2.4 to 2.7)
On Old R2.4 Server
Backup all Exaquantum SQL Databases
On New Server,
Set Exaquantum Machine name on new server
Install Exaquantum 2.6 on New Server
Add groups to user accounts
Allow Remote Desktop Connection
Turn off Firewall
Restore old R2.4 database here (SQL is frontward compatible)
Uninstall Exaquantum R2.6
Install new Exaquantum R2.7
This process will upgrade the SQL Server Database to make it compatible with the latest Exaquantum Version.
Set Exaquantum Service to start automatically
Exaquantum PIMS Versions
Exaquantum R2.4
Supported OS
Windows 2000 Server or Professional [Not provided] with Service Pack 4 [Provided].
Windows Server 2003 Standard Edition with Service Pack 1 or higher [Not provided].
Windows Server 2003 R2 Standard Edition
Windows XP Professional with Service Pack 1 or higher [Not provided].
SQL Server 2005 (Included in Installation)
Up to IE6
Exaquantum R2.5
Supported OS
Windows Server 2003 Standard Edition with Service Pack 2 [SP2 provided].
Windows Server 2003 R2 Standard Edition with Service Pack 2 [SP2 provided].
Windows Server 2008 Standard Edition with Service Pack 2 [SP2 provided].
Windows XP Professional with Service Pack 2 or higher [Not provided].
SQL Server 2008 or 2005 with Backwards Compatibility
Up to IE7
Exaquantum R2.6
Supported OS
Windows Server 2008 R2 Standard 64Bit (*1)
Windows Server 2008 Standard (SP2)
Windows Server 2003 Standard (SP2)
Windows Server 2003 R2 Standard (SP2
Windows XP Professional (SP3) (*2)
SQL Server 2008 (Provided with Installer)
Exaquantum R2.7
Supported OS
Windows Server 2008 Standard Edition with Service Pack 2 (32 bit) [SP2 provided].
Windows Server 2008 R2 Standard Edition (64 bit) with Service Pack 1.
SQL Server 2008 R2, 2008 SP1, 2005 with backwards compatibility
SQL Server 2008 R2 (Provided with Installer)
Up to IE9
Exaquantum R2.8
Supported OS
Windows Server 2008 Standard Edition with Service Pack 2 (32 bit).
Windows Server 2008 R2 Standard Edition (64 bit) with Service Pack 1.
NOT SUPPORTED CLIENT : Windows XP, Windows 2003
Key Features
Has Enhanced Web Client
The only version which support EXAOPC R3.
General Notes
Services Used
Exa bossd
Exaquantum
Exaquantum Server
Exaquantum OPC HDA
Some Services will only start when Exaquantum starts to receive data
IT Security Toolcheck firewll configuration option
Is run from Start Menu ==> Yokogawa Exa ==> IT Security Tool
The IT Security tool sometime givves an error when run, common problems
Firewall turned off - un
Server needs a restart
Precautions
USE service startup tool as it need to be in sequence. Service startup tool is actually a service. Needs to be started up
To Allow Exaquantum Service to startup Automatically when OS Start, use the ‘QCatchupConfig’ tool
To know the exaquantum version, go to the Administration tool (in mmc) under help and support, the version is shown there. In the screenshot below it is shown R2.70 Build 273
Exaquantum System Architecture
Window Based
Exaquantum/PIMS Server (Server)
Exaquantum/Explorer Client
Web Based
Exaquantum/Web Server (Front End)
Exaquantum/PIMS Server (Back End)
Exaquantum/Web Client
Web Based (Combined)
Exaquantum PIMS and Web Server on Single Box'
License
Is based on
Tags (i.e. DATA ITEMS)
This is actually data items, as in PV, MV , SV = 3 tag licences
Users
Based on input from Alan, this is just a number on paper (which is displayed). There is no actual software restriction.
Features
Web Server
21 CFR Part 11
GUI Conversion
This is required to convert
Open Interface
Typically only this feature is purchased
Custom Batch Data Collection
Maximum Active Recipes
Can be found in Administration MMC Console ==> System Configuration ==> License Management
License Key Code NOT bounded by MAC ADDRESS, Different code for each Exaquantum Server
Aggregations are for free – All other historian vendors charge you from aggregation. It will not effect licences
If delete a tag, License number goes down, the archived data for the tag will be orphaned
Changing License
The license is only a single value, it can be changed anytime by going to the Licence Management Console In Exaquantum
There are no multiple licenses held in the server.
Exaquantum Server Configuration
Remote Desktop
It is important to enable remote desktop to allow easy configuration
For window server 2008 R2, go to Server Manager ==> Configure Desktop. Give acccess to ‘Authenticated Users’ group. Using ‘Everyone’ will include Guest accounts even.
Server Time
It is important that the server time is synchronized with the EXAOPC Time. Exaquantum will report an error if it receives future timestamps.
To automatically sync time, create a batch file with the following script:
NET TIME \\STN0354 /SET /YES <== Put this inside Batch file
The script must be run as ‘Administrator’. Being under Administrators group doesn’t seem to work
Schedule the script using windows task scheduler
OPC Gateway
If connecting to a third party OPC Server, need to create a new OPC Server Type using the OPC Server Type Wizard.exe program
Then Configure the settings. Make sure to leave the YokogawaMarex ProgIDs cause this is used for Internal Programs
Also to note that Exaquantum doesn’t use OPCEnum to grab ProgramIDs. If connecting to a third party OPC Server on a different machine, these IDs need to be added into windows registry.
For example, to add Matrikon.OPC.Simulation in, Create a registry file with any name e.g. “test.reg”, then add the following and run:- REGEDIT4 [HKEY_CLASSES_ROOT\AppID\{F8582CF2-88FB-11D0-B850-00C0F0104305}]@="MatrikonOPC Server for Simulation and Testing" [HKEY_CLASSES_ROOT\CLSID\{F8582CF2-88FB-11D0-B850-00C0F0104305}]@="MatrikonOPC Server for Simulation and Testing""AppID"="{F8582CF2-88FB-11D0-B850-00C0F0104305}" [HKEY_CLASSES_ROOT\CLSID\{F8582CF2-88FB-11D0-B850-00C0F0104305}\ProgID]@="Matrikon.OPC.Simulation.1" [HKEY_CLASSES_ROOT\Matrikon.OPC.Simulation.1]@="MatrikonOPC Server for Simulation and Testing" [HKEY_CLASSES_ROOT\Matrikon.OPC.Simulation.1\CLSID]@="{F8582CF2-88FB-11D0-B850-00C0F0104305}"
In the Administration MMC, key in the OPC Gateway Configuration
Here you will have a chance to key in Alarm and Events Filter
Exaquantum A&E Filter filters out alarms, ‘AND’,’OR’, ‘.’ means stop the AND/OR statement
Note: For Centum OPC Connection, one may need to enable the logon type
This is set under HISUtility from the Windows Start Menu. Use Enguser to allow data write for the OPC Server
Production Calender
Is used to define aggregation timing and period (The name ‘Production Calender’ is really confusing.. it’s not what people would intuitively think what it is.. it’s actually just to define the period of aggregations).
Aggregation is the process of pre calculating data averages/maximum/min/sum/etc over periods of time (or production calender…). The purpose is to provide speed as these aggregation values will be stored as separate data in the database.
History Catchup
Is used to catchup history when server is down. It is based on accessing the HDA component of an OPC Server
Servers
Used if redundant Exaquantum Server Exists
For RBNS, the SERVERS need not be defined on non RBNS MASTER Servers as the RBNS MASTER Server will eventually copy the SERVERS detail during a “publish” operation (See RBNS Below)
NOTE: Each Server needs to have a separate Exaquantum License or not the following Error will be thrown:-
This error seems only to be an annoying warning.. it does not limit the functionality of Exaquantum
Role based Namespace (RBNS)
Configures a custom tree for Tag Access which can be customized for different workgroups. E.g.
Maintenance would like to see tag structured by FCS / Junction Boxes and etc
Operation would want to see the tags structure by Process Units
However, this is not the main reason when RBNS is used. RBNS is typically used when multiple Exaquantum servers are used, so all clients can share a common view but connecting to different exaquantum databases
RBNS DOES NOT WORK FOR ALARM AND EVENTS
How RBNS works in a Multi Server Environment
Each Exaquantum Server has its own SQL Database.
It has it’s own list of tags, which may be obtained from OPC Equalization
It has it’s own historical data of it’s tags
It has connections to it’s related OPC Server
When RBNS is configured, the idea behind it is that it will now have a “global” presence, as in
It has a new tag browser structure which may contain tags from different servers. This is the RBNS.
It will have a pointer to tags from different servers
When a client connected to it asks for a tag from a different server, it will run a QData function to connect to the tag
ALarm and Events however does not work in RBNS, each Server will have it’s own A&E Database based on the configured OPC Servers in it.
There are 2 ways to work around this
Have all OPC Servers configured in every Exaquantum Server
Design the Exaquantum Explorer workbook so that the A&E Controls OCX would point to a specific OPC Server.
RBNS is typically published to all servers so that all servers will have a common RBNS. Clients connecting to it will see same RBNS.
The publishing is done via the “publish” button in the RBNS Builder in Exaquantum Administrator.
What happens during publishing is that the master server will COPY all it’s RBNS tables in QCONFIG database to the other tables.
It’s basically just a copy and paste operation in SQL database
Apart from the RBNS Tables, IT ALSO COPIES the QSERVER Table
In the end all servers will have the same RBNS.
Note that this is not a necessity, as some servers can have different RBNS or NOT have RBNS at all. The alienated server will not be able to see tags from different OPC Servers.
RBNS Builder
Reference Folder
MOST COMMONLY USED
A Folder referencing to folder configured in the in a selected Exaquantum Server
the Server and Folder can be selected using the ‘Intrinsic Data Selector’
(I guess) this would be used if an Existing Server which already has folders is upgraded to include Multiple Servers
Folder
This is a folder held in the RBNS, not a referenced
Function Block
Is a reference to a function block in the local or remote server
You have to Select the Function Block..
This would be rather tedious as you have to do it for each and every function block
Notice in the “Intrinsic Data Selector” window, Each Server has it’s own tag.. this is defined in the ‘Server’ part
Filter Tab
Used to Filter out anything you don’t want to see in the function block
Security
Controls Write Access… leave it be
Tag
Same as Function Block, but instead of writing Tag, writes a Data Item
Tag Configuration
Tag Template
Tag Template is used to group different tags update rates. The idea is we may want different tags to be updated at different intervals
I.e. you may want controller MV to be polled at 1 second but pH alarm limit to be polled once every minute
Base
Tag Template Name
It is a good practice to create a template that match a particular instrument.
Tag Type
OPC
For OPC Input, most commonly used
Man
Calc
The Calc Tag Type is used to create a new tag which is based on a calculated value,
e.g. If we want to calculate FIC101.AvgControlErr (Average Absolute Controller Error)
Note, In the Exaquantum world, FIC101.PV is a tag, FIC101 is a Function Block
Raw Historian Interval Change
Leave it at ‘On Change’
None – Means the Raw Data is not Archived (Aggregated values may be archived)
Reference Data
This can be ticked if the OPC server supports giving Engineering unit and range
OPC Communication
Write To OPC Gateway
WRITE back to OPC Server (Write back to DCS). This may be used for some sort of Calculation application or Watchdog timer
When this is chosen the Deadband is automatically set to 100% to prevent data being read.
Period
The OPC Group Update Rate
Percent Deadband
The OPC Group Deadband (OPC will only send data through if there are changes greater than the Dead Band).
Note: if deadband is set at 0%, this does not mean that every data will be recorded in the Database. Exaquantum only records data if it changes. If the data maintains, a static value, only one record is inserted in Database
Also a side NOTE: Exaquantum does not perform interpolation of data. Data will remain the same until it changes. From the point to the data change, it wil be a straight line, no interpolation is done.
This can be seen using Exaquantum Live Explore in the Developer Tools Folder
Aggregations
Aggregation Type
Continuous
For Analogue Tags
Discrete
For Digital Tags
Aggregation Calculations
Normally ‘Spot Value’ is selected here
Note: For Maximum and Minimum Aggregation time stamped when the value of the min and max occured.
For All other time stamp is at the end of each period.
Take Note: This is important when you are doing Daily KPI calculations and how it is displayed in a grap. Take example if one is calculating the Average Controller Error in a day. Because the timestamp is at the end of each period, the result in exaquantum trend will be a straight line between the timestamp of the end of period to the timestamp at the end of tomorrow.
MEAN, STD DEV is based on time weighted average.
DISCRETE aggregation can only work for single states
Versioning
Function Block Template
The name function block is rather confusing. One may think that it is some support of defined calculation block to be applied on the tags. What its really used for is to define the Tag and Items under the tag.
i.e. In the exaquantum world, FIC101.PV is a tag, FIC101 is a Function Block
For example, a Controller Function Block would have PV,MV,SV,MODE
Versioning
What if a function block is updated?
The template version will change.
The function block will appear nicely in the exaquantum explorer, as tags, and under a specific tag will be items e.g. pv,mv,sp,op. In the example below SDV101 is a function block with items under it.
Tag Generation Tag generation is the process of bulk tag generation. The most common way is by use of OPC equalization where Exaquantum will browse the OPC server in search for new tags
OPC Equalization
Most Common Method, Easiest Method
Does not create tag templates, it uses tag templates
What OPC Equalization does is to find all the tags in the OPC server which matches a particular criteria. The interface to define the matching criteria is easy but a bit confusing at first.
The process involves an INCLUSION and then an EXCLUSION Process
HOW DOES TAG DESCRIPTION, RANGE, ENGINEERING UNIT work with equalization,
These items are specified in Centum Control Drawings
Description is the one seen on the tag faceplate in centum.
The exaquantum tag must have a tick on the items
IMPORTANT!!! These items must be specified before an equalization, once equalization occurs, the tag’s description,range, engineering is locked in. CHANGING the items in CENTUM and re-running the equalization will not insert a Tag description. To update or insert a tag description the tag has to be DELETED FIRST.
An alternative to deleting and re-adding the tag is to update the tag directly from the tag editor
Explanation on Steps for OPC Equalization
STEP 1 - Create a new job. Type in Job name, normally job name should be indicative of the reason for tag import, what is imported and etc. For example ‘Plant A Expansion’
STEP 2 – Click New. Specify the Inclusion FIlters.
This is to find the tags matching a particular name. If you do not have any naming criteria, simply put a *
For example in the Inclusion Name Filters type in “FIC"*, this finds all tags with FIC in front of the prefix
STEP 3 – Specify Target Folder
This is to specify where to put the resultant tags.
STEP 4 – Specify Function Block Template
This is the critical part, in which the OPC Server is browsed to find and parent tags with entry matching the definition in the function block
For example, a Controller Function block should have PV,MV,SV,MODE.
STEP 5 - Click Apply.
After this is done, that specific filter will be added under Applied Filters
Also, a list of all tags matching the criteria will be shown under candidates
STEP 6 – Repeat STEP 2 to 5 for additional filters
The Applied filters and Candidates will be added. Each additional filter acts like an “OR” gate, not an “AND” gate
Note that in reference to STEP 2, if the tag name matches, but the OPC data item specified (STEP 4) does not match, an error will come out. The unmatching tags will be shown in RED.
Don’t worry about it, just click ‘Ignore Candidate Errors’ and the ‘Next’ button should be available.
STEP 7 – Click Next. This will bring you to Exclusion Screen.
STEP 8 (OPTIONAL) – Specify an optional the Exclusion Filter. It can be based on Name or by Instrument Type
If you a tag matches the filter, it will be excluded from the equalization process.
STEP 9 – Click Next. List of all tags to be created will be displayed. Click Generate.
STEP 10 – Report is displayed. Click Finish. This also AUTOMATICALLY starts data archiving onto the SQL Database.
The OPC Equalization job done will be shown. This is for historical purpose, to show what tags have been imported.
Tag Versioning
OPC File Import
Performs the process of OPC Equalization but via a file, rather than directly browsing the OPC Server.
When to use:
Only use this when you are at the office, no access to OPC Server
When OPC Server does not have browse capability
Example of OPC Import Text File Content:
For a Function block with single item PV (FUNCTION BLOCK Template name is ‘Indicators’)
For a Function block several PV values. The example below is for populating function block template ‘Indicators2’ which has PV and OPMK tag.
Exaquantum matches the OPC Server Items though combining the candidates and ITEM, in the following example, would be M0711.PV and M0711.OPMK, etc TEMPLATE=Indicators2
ITEM=PV,.PV
ITEM=OPMK,.OPMK
OPCSERVER=HISOPC
TARGETPATH=Root
CANDIDATES
M0711
M0713
M0720
M0721
Some notes on the OPC File Imoprt Text File Contents
What happens when duplicate/existing tags are imported?
Exaquantum checks for existing or duplicate tags during the job definition. If there are no new tags, the following will appear:P
The Analysis report will show new tags, existing tags do not get updated
Function Block Generation
Use for complex systems typically
Just fills the Database
Tag File Import
Same as Function block generation but is for tags not associated with Function blocks.
When to Use:
Typically used when you need just a single tag without associating to a function block. You can for example make a folder named “OPC Tags” and put all associated OPC items in there which correspond to an Exaquantum Graphic
The result of a tag import will be a folder of tags The example is shown below:
PIC07104 was created using TagFile Import whereas SDV101 was created using OPC equalization. As can be seen, PIC0714 becomes a folder instead of a tag.
FIC12451 will give an error. THis is because by having an existing tag before the definition, the Create Root Path dialog box will not appear. This is a small bug in exaquantum. To fix, this simply delete the M0711 line (only have FIC12451 definition in the TagFIleImport text file). Then only the create path appear
HIS Generation
A New feature
Only works for Yokogawa OPC Servers
Automatically creates Tag Templates
Format C3TC::XXXXX
PV will always used _ for PV
is under advanced tab
Exaquantum History Catch-up
Performs history catchup via HDA
Fires when Exaquantum Service starts
Should always be turned on. Only turned of on following scenarios:
When troubleshooting startup failure.
Some notes on EXAOPC HDA
Only historizes items that have been configured to historize via
Role based Name Spaces
Exaquantum uses windows users and groups
Exaquantum checks for group memberships before granting access
SQL SERVER Database
Login
Local Machine’s QAdministratorGroup and QUser Group is added in the logins
There are 4 Database
Exquantum Framework
This database was introduced in R2.80 and used to tie in exaquantum products together
QApplicationConfig
QApplication
QConfig
QHIstorianData
Historical data are stored in the QHIstorianData, in Image datafields, where one image is 2GB size. It basically works like a replay data.
The name of the column of the Qhistorian data tables represents a dataID
This dataId is found in the QConfig “TAG” table
The following shows the column number for example item ID 3, the columns are 23,24,25,26 and 27.
What ID constitutes is found in the “ITEM” table of the QCOnfig Database
The QHistorianData Database can be shrunk using the following command:
Exaquantum Client Configuration
On the client, the Exaquantum Server Manager can be accessed from:
The Primary Server is the main server to connect to
The Secondary Server is the Secondary client to connect to
If Exaquantum Server and client are different versions, the client needs to point to the server with the same version.
Allowing ALL USERS do access Exaquantum
For workgroup installations, since Exaquantum Client communicates with DCOM, one problem users face is that a accessing user account and password must exist on the Exaquantum Server.
This is not ideal if there are many users, or if the user’s password expires…. then the matching password on the server needs to be changed
To get arround this, there are two ways
Use a domain controller
Anonymous Logon
Have not tried this yet!
Allow Guest
Some Notes:
All the Exaquantum DCOM Components use default windows DCOM Settings. Therefore changing the default setting will affect all Exaquantum DCOM Components… So you don’t need to know which DCOM Component Exaquantum is using.
Everyone Includes “Guest”
During DCOM Callback (even when using Guess Accout), the Exaquantum Server will callback as “QUANTUMUSER”, so it is imperative that the quantumuser account exists on the client machine.
In the client“QUANTUMUSER” account does NOT need to be in any groups!, it just needs to authenticate and have object access set in DCOMCNFG.
QuantumUser will be added in the default DCOM Security (Edit Limit and Edit Default in Access, Launch and Activation Permissions)
Whenever one makes a group or username change, one needs to logon with that username so that the authentication passes. The best is to restart the server but that’s normally not an option
ONe alternative method is to run the runas command
For example if you want to update the HIS0164\TESTUSER credentials, do the following:
runas /user:HIS0164\TESTUSER cmd.exe
Checking Windows Logs
Windows logs may be used when attempting to troubleshoot DCOM Errors
In Local Security Policy (Secpol.msc) ==> Audit Policy, enable the following:
Audit Logon Events
Audit Account Logon Events
Audit Account Management
After finish, run gpupdate, to update the policy change
In Security, Look for task category
Credential Validation
Special Logon
Special Logon
Best to check windows logs on the Exaquantum Server
Call backs
When a callback fails, the failure will be seen in the Client’s Windows log (Under security), not the Server log
The Task Category is credential verification
Guest account needs to be enabled
Guest Account needs to be added in ‘Users’
Guest Account (or Simply use Everyone) should be added in ‘QUserGroup’
Security paradigm for all Exa Products
Standard
Complicated, less preferred.
Has a password nobody knows.
Local Standard
Secure
Special passwords nobody knows. It’s only known by the EXA Applications
QTM_PROCESS
EXA_PROCESS
QTM_SQLSERVER
OPC_PROCESS
Groups
EXA_MAINTENANCE
QTM_DATA_READ
QTM_DATA_WRITE
QTM_EXPLORER_DESIGN
QTM_MAINTENANCE
QTM_OPC
Domain Standard
Engineering Guide Volume 2 Appendix A.15
Groups must be created manually in the domain
A local group with same access as domain is added in case domain access in unavailable
QTM_MAINTENANCE_LCL
EXA_MAINTENANCE_LCL
QTM_OPC_LCL
Strengthened
Same as standard with some tweaks
Legacy
Most commonly used
Can be more secure than standard is the service accounts are locked down. Lock downs mean:
Cannot login using the account
Uses 4 LOCAL groups
QUserGroup
QAdministratorGroup
QExplorerDesignGroup
QDataWriteGroup
USERS
QUANTUMUSER is the service runner.
ALSO IT IS USED For Administration Purpose
Password specified during installation. Typically used password : yokeng1, Yokogawa1
EXA
Regular User with no Admin Priveledges
Default Passworrd is EXA
Local Service User (QuantumUser) automatic created during installation
Can remove login rights
Exaquantum and SQL Server runs as this user
Levels of Security
Default
Intrinsic
Basic
All data is visible
TOp data is called root
Role Based Security
Can define and Limits tag views based on groups
What tags are writeable
Normally used for plant areas
BUT ACTUALLY its normally used to allow people to see more tags
Exaquantum Database
Databases
QHistorianAdmin
Historian Management Info
QHistorianData
Binary Data
The timestamps are all in UTC, to convert to local time:
SELECT
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, TimeStamp), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime, *
FROM
[QHistorianData].[dbo].[EXAOPCCSProcessAlarm] ORDER by TimeStamp desc
QConfig
Configuration Database
FrameworkSchema
For Web Server
Some Notes on the Database
The Database is not really offline, for some queries, Exaquantum service needs to be running for it to work. This is because some of the stored procedures uses OLEDB linked servers.
Most of the Timestamp Data in Exaquantum is stored in UTC. To convert into local time, use convert function. Example:
SELECT
CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, TimeStamp), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime, *
FROM
[QHistorianData].[dbo].[EXAOPCCSProcessAlarm] ORDER by TimeStamp desc
To access a Spot Data from SQL Command, use the ‘QData’ function
This return the current value. The timestamp given out will point to the last time the data changed
The Time is LOCAL TIME, not UTC time.
IMPORTANT, the Timestamp specified in the parameter should NOT include miliseconds
The QDATA Function used OLEDB. Due to this Exaquantum Service needs to be running
Some notes on SQL Queries
#T1 ==> The # means its a temporary table. Table will be dropped after the query finishes
QHistorianData..vCompletedTrips ==> The .. means that it is obtaining a Table from a Database
Sometimes we see N’ in SQL such as N’Select * from table’. This is to declare a string as nvarchar data type, rather than varchar. dsds
Database Tools
To check disk usage
Use ==> C:\Program Files (x86)\Yokogawa\Exaquantum PIMS\Developer Tools\DiskUsage.exe
Expand Database
Expanding the Database is a MUST before putting it into Production!!!
This is because Exaquantum will not trigger autogrowth!!
Go To Windows ==> Start ==> Database Expansion Tool
If no shortcut, the program should be in ==> "C:\Program Files (x86)\Yokogawa\Exaquantum PIMS\System\ExpandDB.exe"
Question : Which Database does database expansion tool work on?
Question : Does SQL Autogrowth works
It does not work on QHistorian Data
For QApplicationConfig and QApplicationData, i tested this on ARA 2.80. These databases are for ARA
Before I did a bulk load of tags
After I did a bulk load of 30 days of data
Archiving
It is the process of backing up the database and deleting the backed up data from the Main Database
Data is transferred from the main database to a temporary database
The data in the main database is deleted
From the temporary database, it can be sent to a disk. This process is called ‘saving’
The temporary database can be deleted, this process is called ‘Deleting’
Most customers keep data up to 3 years
Archive Groups
Raw Fast – Up to 10 second fast
Raw Slow – Anything low
Alarm and Event
Normally people just set the archive groups the same settings so they do not distinguish anything.
Can Either Archive to
File
Device
Archive Period is
Auto Archiving
This is the most common thing set, particularly the auto-deletion as it is required to maintain Database space.
At 12 midnight, the auto archiving function kicks in
Operations
The ‘Group Advanced’ button
for each group
Enable Automatic Deletion
As soon as there is candidate it will archive the items from the database (And delete the data) and then puts it into the temporary database. It will then save the item and then AUTOMATICALLY DELETE the TEMPORARY database.
Enable Automatic Archiving
As soon as there is a candidate it will run the archive and put it in a Temporary database
Auto Save
Automatically saves it to a database
Normally ticked since nowadays, people dump the archive into the disk. Previously people use tape device.
Retention Period
How long to hold data before it first becomes available for archiving
Example for 30 day retentions
Automatic offline period
How long to keep the temporary database
Unrestore
Process of
The bottom button advanced button is for all
Set the archive size,
Normally set to 4096MB so it can fit in DVD
Default folder
The smallr the archive size, the more candidates there will be. THe archieve will not be created until archive is run
Troubleshooting
LiveXplore
See live/historical data
Typically used to check OPC Connection
Stored in ‘C:\Program Files (x86)\Yokogawa\Exaquantum PIMS\Developer Tools’
OPC Server Viewer Data Recovery
OPC Gateways
Checks OPC Status
OPC Groups ‘X(X)’, X is the number of groups created, (X) is the number
Data Recovery
AUtomatcially recover lost data into database from the HDA Server
Recalculae is used to calculate the aggregations
Add a downtime
Used to atificially create an OPC Downtime entry in the database
And then run data recovery to recover lost data
OPC Data Viewer
Exaquantum keeps a log of data collected from the OPC Server
Typically used if customer complains that value is not as it is expected
Item registration file
C:\…\ExaquantumPims\OPCDALog\
IRF and RDF
Put item name (EG 00FIC001.PV).
It will then show registration tieme and then
Tag Config Viewer
Used to view tag configuration
Can save as CSV File, document entire system
Raw history period tells whether sampling time mismatches with History Period in database
ExaquantumXref Tool
Used to find certain items in a calculation script
Network Test
FQDN = Full Qualified Domain Name
Performs DCOM Connection to Exaquantum as well for testing
QVersion
Find all exaquantum versions
Usually used to confirm if Customer has installed correct patches or find missing files
Check Version
It creates a file in the server at install time
QSystemConfig
Allows low level setting of Exaquantum
Archive Creation Timeout
History Catchup
Timeout writing to the HIstorian (From OPC Server)
Default set to 20 minutes
EXAQuantum DCOM Settings
Default Properties
Default Authentication Level – None
Default Impersonation Level – Identify
COM Security
Access Permission
Limits
Everyone – ALL
QUserGroup – ALL
Performance Log Users – ALL
Distributed COM Users – ALL
Anonymous Logon – ALL
Defaults
Everyone – ALL
Self – ALL
System – ALL
QUserGroup – ALL
Administrator – ALL
Administrators – ALL
INTERACTIVE - ALL
Launch and Activate Permission Limits
Limits
Everyone – ALL
QUserGroup – ALL
Administrators – ALL
Performance Log Users - ALL
Distributed COM Users – ALL
Default
Everyone – ALL
SYSTEM – ALL
QUSerGroup – ALL
Administrators – ALL
INTERACTIVE – ALL
Individual DCOM Config
THESE ALL should be set by running the QDCOMConfigTool in ‘C:\Program Files (x86)\Yokogawa\Exaquantum PIMS\System’ Directory
Daily database backup backs up the entire database and keeps it in a machine. It is a best practice to keep only two days worth of backup while deleting any previous days.
Daily database backup is setup using SQL Server Management Studio under Management ==> Maintenance Plans
How to setup
On SSMS ==> Management ==> Maintenance Plants == Right Click ==> Maintenance Plan Wizard
Under Maintenance Tasks, select
Back Up Database (Full)
This backs up the database
Maintenance Clean Up Tasks
This delete old Database Fi
In Backup Database
The ‘Backup will expire after’ checkbox is rather confusing. When a backup expires, it does not delete the file. What this backup expire after is used for is just to prevent database overwrite. Technically, this does not require to be set
In Maintenance Cleanup Task
Troubleshooting
To check the status of a job, use the following SQL Query
EXEC msdb.dbo.sp_help_job
If Current Execution Status is 4, that means the Job is not run, 1 means it’s currently running
Weekly ARA Backup
This backup backs up the ARA Related data. It is particularly important for CAMS integration
How to Setup
First create the folder ‘C:\ARABACKUP’ in drive where ARA is installed
Launch from Start ==> Exaquantum ARA ==> ARA Backup Restore
Here, set the backup location
Next, from SSMS ==> SQL Agent ==> Jobs ==> ARA Set Pending Build Backup ==> Properties
Change the schedule accordingly, recommended Weekly
How it Works
When the ‘ARA Set Pending Build Backup’ job is run, the backup queues in a task will be executed int he next 10 minute ARA Update job pulse
This is done via SQL Query (in the ARA set pending Build Backup job):
UPDATE ara.BoundaryTimes
SET Pending_Build_Level = 4
The result of the backup is shown as follows:
Weekly Database Trim
This maintenance routine trims the database size using the Exaquantum Archiving Function.
It is a good idea to keep the database small a good practice is 5 years archive
How it Works
After enabled, Auto Deletion kicks off at 12 midnight eveyday (this is not configurable)
How to Setup
Configure auto-deletion on all Archive groups
NOTE : Exaquantum does not have a generic group for all data, it breaks it down into type.. so you will have to configure autoarchiving for all groups
The Daily/Monthly aggregation may be left as is as it is good idea to keep these values as they are small
Click on ‘Group Advanced’ and set Automatic Deletion and put retention period to ‘1825 days’ (5 years)
Exaquantum Excel Addin
There are 3 files
Exaquantum Explorer Add-In.xla
Exaquantum Query Add-In.xla
Tag Configuration Viewer.xla
If Excel does not exist during Exaquantum Installation, the excel addin will be placed at:
C:\Program Files (x86)\Yokogawa\Exaquantum PIMS
Copy the Addin files to the Excel Library folder, e.g.
Once copied, the Excel addin options should display the Exaquantum addins. Click on them tho actvate it
Exporting CENTUM CS 3000 and VP Graphic
The Export requires special license
CENTUM graphic are in the form of EDF Files. Copy the EDF files. For VP, need to copy the XAML files as well
Known
How Exaquantum Client Communicates with the server with Excel Addin
When Exaquantum Client is installed, the following DCOM Objecs are installed (or registered) on the client machine
ExaExecutive
ExaQuantumExecutive
ExaquantumProgressWindow.ProgressWIndow
ExaquantumService.cService
ExaService
QFBDescriptionFetch.cFBDConnector
QFBRetriever.cCandidates
QItemIDCache
QOPCConnectionTest
QProgressView.clsPrivate
QReporter
QTransformationServer.cParser
Quantum
Exaquantum Explorer
Uses Exaquantum
Exporting CENTUM CS 3000 and VP Graphic
The Export requires special license
CENTUM graphic are in the form of EDF Files. Copy the EDF files. For VP, need to copy the XAML files as well
Known issues
The graphic conversion generally works like a charm!
The common issues would be that some PV’s are not registered in Exaquantum therefore it may need some updating
The typical problem would be valve colour indicators
Sometimes some lines would come out funny and this needs to be corrected
Procedure for CS3000
Run the Graphic converter tool for HIS ==> ToolSVGConver.exe on a HIS
The tool should be straight forward
The graphic DOES NOT need to be in test function or current project. User defined project works fine
Make sure the EDF graphics are are NOT SHORTCUTS!!… noobie mistake I made
Some Note
The converter uses HIS Graphics Builder
the tool can only run on a HIS as it requires CS3000 DL
Procedure for CENTUM VP
Run the Graphic Converter Tool
The tool should be in the DVD under tools folder
Copy the entire “Graphic Converter” folder and it can run from anywher
Run the “Yokogawa.IA.iPCS.CENTUMVP.ENG.UTY.SvgConvertTool.exe”
The result of conversion will ben an SVG file which can be imported directly into Exaquantum Explorer
How the Exaquantum Explorer Graphics Import Tool Finds Tags
The graphic Import tool from Exaquantum Explorer (not graphic Convertor), will query the Exaquantum Database and find for Tags with the correspending OPC Item ID/Address.
It will pick the first tag it finds and assign the variables to it. This can be seen in the variables window. The following is the variables window, accessed from (ExaquantumExplorer ==> Document ==> Variables)
Exaquantum ARA (Alarm Reporting and Analysis)
Uses Exaquantum
Exaquantum ARA Versions
R2.6
Supports windows Server 2003 and 2008, and 2008 R2
Supports IE8
Key Features
INTEGRATION WITH CAMS!!!!!!
New Report Export Formats
R2.7
Supports Windows Server 2008 and 2008 R2 64 Bit (But operates on Wow64)
Supports IE9
Key features
ARA can be configured to use DCS plant hierarchy information to construct it plant structure
Added new Alarm Overview Report
Ability to produce reports over time (eg. calender year, quarter)
Tooltips on reports with charts
Ability to change report styles
Able to run on HTTPS
R2.8
Supports IE10
Key Features
Reports CAMS shelved alarms
Added “Top Alarms by Operator Report”
Added “Bad Actors by Condition”
For Installing on the same server with SER, ensure SER is installed first before ARA
Uses SSRS and analysis services
Compatible with all types of browsers
Able to interface with CAMS (Consolidated Alarm Management System) Interface
Licensing
SER is licensed by Number of Clients
Installation
Prerequisites
Exaquantum and WebServer
NOTE EXAQUANTUM COMBINED PIMS/WEB SERVER NEEDS TO BE INSTALLED. A PIMS SERVER ONLY WILL NOT WORK!!! and will cause error during ARA Webserver Install.
.NET Framework 4.0
IIS
IIS Configuration (IF SER HAS BEEN ISNTALLED AND WEBSITE CREATED, SKIP THIS)
Create Website
Normally Call it ExaquantumARA
In Application Pool
Create Unique Application Pool (Usually called ExaquantumSER)
In Advance Settings
Set Enable 32bit Application = True
Set Identity = QARAViewUserGroup
Change .NET Framework to 4
Basic Settings ==> Change Managed Pipeline Mode to ‘Integrated’
Authentication
NOTE : ANONYMOUS AUTHENTICATION DOES NOT WORK WITH EXAQUANTUM
Disable Anonymous Authentication
Enable Basic Authentication, Windows Authentication, ASP.NET Impersonation
Try open http:\\localhost\ReportServer. If succesful, the following will appear:
Try open http:\\localhost\reports. If succesful, the following will appear:
If not, configure connection at ==> Reporting Services Configuration Manager under Start->Programs->Microsoft SQL Server 2008 R2->Configuration Tools->SQL Reporting Services Configuration Tool
Check Database Connection
Try create a new report server database if error prevails
Try rename the Report Server database e.g. from ReportServer to ReportServer2 if error prevails
Install Historian Indexes
This actually runs an SQL Query which can be found in the Installation CD under “D:\Setup\SQL”
Length of execution would dpeend on databse size
May need to expand database if error occurs as the indexes occupy database size
Server Installation
Creates QARAViewUser
This is used by the Services
Creates QARAAdminGroup,QARAViewGroup
This is where users need to be added to have access to ARA
If problem during installation, may need to manually create the QApplicationConfig and QApplicationData Databases. Use the following Script (Run in SQL Server Management Studio):
USE [master]
GO
/*--- CREATE QApplicationConfig ---*/
CREATE DATABASE [QApplicationConfig]
GO
DECLARE @sql NVARCHAR (4000)
DECLARE @historianDataCollation SQL_VARIANT
DECLARE @appConfigCollation SQL_VARIANT
SET @historianDataCollation = DATABASEPROPERTYEX('QHistorianData', 'Collation')
IF (ISNULL(@historianDataCollation, 1) = 1) SET @historianDataCollation = SERVERPROPERTY('collation')
SET @appConfigCollation = DATABASEPROPERTYEX('QApplicationConfig', 'Collation')
IF (ISNULL(@appConfigCollation, 1) = 1) SET @appConfigCollation = SERVERPROPERTY('collation')
IF(@historianDataCollation <> @appConfigCollation)
BEGIN
SET @sql = 'ALTER DATABASE [QApplicationConfig] COLLATE ' + CAST (@historianDataCollation AS NVARCHAR)
EXEC (@sql)
END
GO
/*--- CREATE QApplicationData ---*/
CREATE DATABASE [QApplicationData]
GO
DECLARE @sql NVARCHAR (4000)
DECLARE @historianDataCollation SQL_VARIANT
DECLARE @appDataCollation SQL_VARIANT
SET @historianDataCollation = DATABASEPROPERTYEX('QHistorianData', 'Collation')
IF (ISNULL(@historianDataCollation, 1) = 1) SET @historianDataCollation = SERVERPROPERTY('collation')
SET @appDataCollation = DATABASEPROPERTYEX('QApplicationData', 'Collation')
IF (ISNULL(@appDataCollation, 1) = 1) SET @appDataCollation = SERVERPROPERTY('collation')
IF(@historianDataCollation <> @appDataCollation)
BEGIN
SET @sql = 'ALTER DATABASE [QApplicationData] COLLATE ' + CAST (@historianDataCollation AS NVARCHAR)
EXEC (@sql)
END
GO
One may also want to try rebuild the QAPPLICATION data tables manually. Use the following Query
USE [QApplicationData]
GO
DECLARE @forward tinyint
EXECUTE QApplicationData.ara.update_AS 3 ,@forward OUTPUT
EXECUTE QApplicationData.ara.update_ASDimensionsMeasures @forward
UPDATE QApplicationData.ara.BoundaryTimes SET Pending_Build_Level = 3
GO
Web Server Installation
Select Website
Application Pool Settings
Web Reports Installation (NOT REQUIRED) (Not Available anymore >= ARA R2.80)
Do not run, only run if you have already Installed SER
it just allows you to install the Web Reports on the same Application pool as SER
Add User to QARAViewGroup and Add Admins to QARAAdminGroup
Don’t Forget to log on and log off user (TESTED THIS ON WINDOWS SERVER 2008R2 SP1)
Precautions
If Installation fails, try delete the Exaquantum Cube in SSAS
Also Delete QApplicationConfig and QApplicationData
If ARA Update, Full OLAP Refresh on OLAP Cube Fails,
Run the Process Database manually from Exaquantum ARA Server
Find the offending dimension
Process the dimension from SSAS manually
Run ARA Update Default (Incremental Update)
HOW ARA WORKS
ARA’s front end is SQL Server Reporting Services (SSRS). The webpages call SSRS Reports
SSRS Reports, obtain data from Microsoft SQL Server Analysis Services (SSAS).
Is SSAS, ARA has a SSAS data cube called the ‘EventsCube’.
The Cube takes two data source:
QApplicationConfig Database
In this database, the table contains configuration data such as plant, area and unit
QApplicationData
In this database, the tables are built using the ‘ARA Update’ SQL Job. The table consists shelved alarms, suppressed alarms, stale alarms and etc
The database also has views which makes reference to QHistorianData tables such as the EXAOPCCSALARM table in QHistorianData.
The cube is updated by a SQL Server Agent Job called ‘ARA Update’.
The job runs every 10 minutes (for checking purpose). though, The actual cube is processed once every hour i.e. if the job is forced to run, it will still update the last hour
The job deploys an SQL Server Integration Services (SSIS) or (SQLIS) package. We don’t need to know the details of this….
The job can be forced at anytime from SQL Server Management Studio “Start Job at Step” as shown below:
The next job to run details can be seen in the [QApplicationData].[Ara].[BoundaryTimes] table
ARA Update has different processing options. These options can be selected from the ARA COnfigurator under ‘Set Pending Build Status’. Once Apply is clicked, the [BoundaryTimes] table is automatically updated, signalling a new run job.
After the apply button is clicked, the run job is set.
Next, to run the process, either wait for the next SQL Agent call (which is every 10 minutes) or simply force run the ARA Update from SSMS.
The Build Applicable Are:
Incremental Update : This is the default update, which should be left as is. It simply updates the SSAS Cube from the last update.
Full Process : This processes the whole cube
Full Refesh : This first deletes data in QApplicationData database and processes the whole cube
This is ideal if the database has changed, typically when you are back filling the database with data
Full Backup :
Directly processing the cube from SQLServerManagement Studio Analysis Services, should not need to be done as the ‘ARA Update’ rebuilds everything including the QApplicationData tables
The following direct cube process does not need to be done as ARA needs an update QApplication data to update. QApplication data tables are only update by the ‘ARA Update’ SQL JOB
Configuration
First day of Week
Star of Reporting (Start of database)
Plant Hierarchy
Hierarchy
Plant
Area
Unit
Operators
Tags
Hierarchy Building
Manual
Can Be built using a CSV File
For duplicate tagnames in a plant, there is a patch
GENERALLY THIS IS BEST USED
Create a Script and schedule it using SQL Server Agent
The script should rebuild the QApplicationConfig Plant, Area, Unit tables based on a criteria. The most common criteria used is based on TagName Prefixes
Automatic
Manual not allowed
Everytime an Alarm is recorded in Exaquantum, it will also record the Alarm’s Plant Hierarchy in one of the Table Column.
If no plant hierarchhy is configured, it will set the Column value as the FCS name ‘FCS0101’
If plant hierarchy is set, it will set the column value in reference to the hierarchy address, e.g. ‘YOKODEMOPLANT.PLANTA.UNITA
Generally, plant hierachies are seldom used in a CENTUM project due to the extent of work required to set it i.e. the configuration is at block level. Every tag block in CENTUM will need to be configured to assign it to a plant hierarchy. The are typically 10,000+ blocks in one CENTUM project
GENERALLY, THIS IS SELDOM USED DUE TO LACK OF PLANT HIERARCHY
Security
Uses windows security
Groups
QARAAdminGroup
QARAViewGrou
After add user to group, need to log off and log on back again
Patches
CAMS Integration
Exaquantum ARA integrets with CAMS, as in, if an alarm is shelved in CAMS, it will not be counted in ARA
How it Works
ARA Runs the following program to extract CAMS data:
CAMSEngDump.exe
This tool dumps the engineering settings of CAMS
CAMSHistDump.exe
This tool dumps the actual alarms seen by CAMS
To run this tool,’CD C:\Program Files (x86)\Yokogawa\Exaquantum ARA\Tools’
Exaquantum/SER (Figure 1-1) is an event driven integrated reporting system combined with a powerful user interface
Typical usage: A trip criteria is configured which will report SOEs after the trip.
How It Works
Trip criterias are defined using the Trip Configuration Tool (This is stored in the QConfig Database)
The reload button will reload the trip criteria after any changes have been done
The condition of a trip is defined in the “Trip Condition Report Definition”
When these conditions are met, the trip monitor will record a trip.
A trip report will be compiled x seconds before the pre trip span and x seconds after the post trip span (In the example above, it would be 10 minutes before and 10 minutes after). Total would be 20 minutes
In the Value, Wild cards ca be used e.g. *ALM*
The “Do not trigger when this trip is active” should always be turned on to prevent flood if the trip condition is fluctuating on and off
A trip monitor program (run as Quantum User) monitors trips
Ironically, this is not run as a service. It is automatically loaded, when the Exaquantum Service is started using the Exaquantum Service Manager
Stopping the Exaquantum service will terminate the QTripMon.exe program
The trip monitor records the trip activities in the QHistorianData Table, specifically the table:
CompletedTrips
Lists down every trip. The id column is most important which identifies the trip.
CompletedTripsTagData
Specifies the Tag data (every single value change) for each trip. This is so that Exaquantum does not need to query the main QHistorian Table data. This will only populate if one specifies the need to record a particular tag data and display it in the SOE report.
To Delete a trip report from appearing in the Webpage, simply delete data in these tables
The Web Reports queries QHistorian Data and produces the report
The trip reports are displayed in the webpage
The Trip Report Can Also be automatically saved as PDF and put into a folder location.
This is done by editing the SERinfo table in the QConfig Database. E.g.
Report Template : ‘/SERTripReports/TripReport1’
Report Output Path : ‘C:\Reports"’
Some tips
From the Trip Configuration, to know a report has been tripped, just click on “delete”. If a trip is currently occuring, immediately a message will display “Report has already been tripped”
Installation
SER must always be installed first if ARA is to be installed next
Variations
Exaquantum SER Server
Requires Exaquantum PIMS Server Installed
Exaquantum SER Web Server
Requires Exaquantum Web Server Installed
Typically Installed at:
C:\Program Files (x86)\Yokogawa\Exaquantum SER
Key Steps
Perform Server Installation
The installer creates an SQL user called ‘icecap’
Perform Web Server Installation if you are using Exaquantum Web (Typically clients don’t use the web)
Leave the default Website Settings
THIS IS VERY IMPORTANT OR NOT IT WILL NOT WORK
By Selecting Default website, SER web stuff will be installed at “C:\Inetpub\wwwroot\”
Run Database Ammendments
This simply creates several indexes mainly for performance purpose
Configure IIS
Create New Application Pool
Change ExaquantumSER Virtual Directory Settings
Edit the Web.Config File in C:\inetpub\wwwroot\ExaquantumSER\Web.config (If required)
Particularly, check the Connection Strings Section
Edit Registry at “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Quantum\Server\SER”
Run the DeployReport.bat file from the Installation CD (D:\Reports)
Run using Command Line, as administrator
Sometime it may not work in which you have to read the command line output
Uninstall
From add/remove programs… easy!
Upgrade
Uninstall Exaquantum/SER Web Server
Uninstall Exaquantum/SER Server
Uninstall Exaquantum
Install Exaquantum (New Version)
Install Exaquantum/SER Server (New Version)
Install Exaquantum/SER Web Server (New Version)
Configuration
WebConfigSettings
C:\Inetput\wwwroot\ExaquantumSER
Allows changing of the ‘icecap’ SQL password
SER user the ICECAP user to connect to SQL to see the trip definitions. User is created during installation.
Web.config XML file
C:\Inetput\wwwroot\ExaquantumSER\web.config
Various parameters can be changed here
Changing Web Links
Using SSMS, edit the ExaquantumFrameWork Database..Aplications Table.
Reports
The SER Reports are stored “.rdl” files.
Customization
SER Allows report customization. One common report customization is a the ‘Valve Shutdown Report’ where SER is customized to report the time take for shutdown valves to open and close.
The report needs first be created. It can be created using SQL Server Business intelligent studio.
ECMData <= This entire folder can be deleted to purge all caches and logs
DataCache log
The purpose of this datacache is like a buffer. If the archiver channel fails, it will keep on this buffer. So when the Archiver starts back, it will start archiving the ones in the datacache
Once data is being archived, the data cache will be deleted. The deletion will be done only when all the data in the file is processed. The file size will not decrease accordingly
Once data is full, it will right to a second file
Once second file is full, it will overwrite the first file
Audit log
All messages received from a collector channel will be logged here
The logs will fill up to 2 files an then overwrite again
Unlike datacache log, it will not be deleted
Input
Is the position of the ODBC Channel Time
Archiver
When Archiving is being done, the following indicators are available at the archiver console
Total Received Messages
The total received messages is calculated by the number of messages in the Collector Cache
Archived Messages
Unrecognized Messages
Messages that are not recognized by the rules builder, i.e. it does not match any of the identifying rules, nor does it fit in any criteria
Typically would be gibberish value
Appears in Error.dat cache
Unrecognized Messages will STILL GO THROUGH the PP Script but it’s data will be totally gibberish and it will not be archived
Bad or Failed Messages
These messages are messages that are recognized by the rules builder and is eventually processed by the PP Script
HOWEVER, it fails to be archived after being processed by the PP Script. Even though message.Archive is set as true. One typical reason may be due to the unrecognized timestamp field
It will appear in Error.dat cache
Messages Filtered by Script
These messages are recognized and it will be processed by the PP Script.
Messages set as “ignore” as message type will counted in the Messages Filtered by Script
Messages set as Message.Archive=False
Duplicate Filtered Messages
Note that when the post processing script run, there are Messsage. Duplicate and Message.Archive flag.
If either of these flags are set (Message.Archive=False or Message.Duplicate=True) then the message will not be archived.
The message.duplicate flag will be set by the duplicate filter before the message is parsed by the PPScript
RULES Builder Time Format
·
The Alarm Manager ODBC Channel
The easiest way to connect to a Database is to create a windows system DSN. In the ODBC DSN, simply right the DSN Name
In the ODBC Channel SQL Statement, one can write a complex query. A&E Collector than convolutes that query into another SQL Select Statement which it uses to put a where clause on the last time stamp. (WHERE TimeStamp > {ts '1970-01-01 10:00:00.000'} ORDER BY TimeStamp)
The Polling delay in the ODBC Channel will cause a delay for the channel to initiate its first query after it is enabled. The delay will occur again if the channel is disabled and then enabled back again.
It was tested when a query is executed and finished later on (e.g. 5 minutes later), the polling delay will start from the time it finished. This will be a problem for sites wanting to set a delay to poll during off peak hours as the time to execute the query is unknown.
Restarting a fresh new archive
The entire ECM data folder can be deleted to start a fresh new archive
You can also delete individual folders inside ECMdata such as datachache and input folders to restart a fresh new archive
·
Rules Builder
The ‘system’ message type is used to indicate a DCS system message. This will not be counted as an alarm as it is of no action for the operator.
The ‘Ignore’ message type in rules builder will not be recorded as unrecognized message by the archiver nor will It be recorded as archived message or error message. It will be counted as received Messages and will be counted as Messages Filtered by Script. Avoid using it for error detection
The ‘Suppress’ message type is just used as a marker to indicate a tag suppression/alarm disabling activity. Since the latest Matrikon version does not have alarms disabled report anymore, this suppression tag is only useful in the Sequence of events report
To delete a rule in the field, simply click on the field and press delete. Sometimes if you scroll down there are values down the field even which even when you press delete it doesn’t delete. Don’t worry these fields are nothing (probably a bug). To know whether a field exists in the XML file click on the field and notice a dotted line surrounding the fields. This means that the fields are not in the rules xml file
Post Processing Script
Message object
Message.TagName
Message.Timestamp
Message.InputName
Message.MessageType
Can be Either Acknowledge, Alarm, Ignore, OperatorAction, OperatorMessage, Other, ReturnToNormal, Suppress, System, UnSuppress
Message.RawMessage
Message.Field(fieldName)
Message.FieldCount
Returns the number of fields (Read-only). Note: TagName, Timestamp, RawMessage, and MessageType are not included in this count.
Message.Archive
Message.PrintDebug(text)
This will print the specified text to the console. Used for debugging.Note: the text will only appear if the Archiver Service has a console window.
Message.Beep(frequency, duration)
Will cause the computer to emit a beep at the specified frequency for the specified duration (milliseconds).
Message.LaunchApp(appName, commandLine)
The Archiver will try to launch the application specified by appName. This can be any windows executable that is accessible from the system PATH, or the full path of the executable. Specify arguments with commandLine. Be careful when launching applications with a user interface. If the Archiver service does not have the "Allow service to interact with desktop" option checked, then the application will be hidden!
Any variables declared outside the subrountine is will be a global variable and will retain its value during successive calls of the process_message SUbrountine
Any code outside the process_message subroutine is executed only once
Message.Suppressed can be assigned as
Message.Suppressed = True OR Message.Suppressed = 1
Message.Suppressed = False OR Message.Suppressed = 0
A Direct SQL query such as “Select 1” result can be automatically assigned to Message.Suppressed
When creating an SQL Query, single quotes (‘’) are required for VarChar Datatype. For Bit (Such as the Suppressed Field) and Int (Such as EventID field), quote can be inserted and also be omitted. It makes no difference. Both will yield the same value
Database Structure
VT_Start points to the time the event occurred
VT_End points the time the next alarm starts (Or when the alarm ends). All Alarm, RTnormal, Acknowledge, Suppress and etc will have the same VT_End time which is effectively pointing to the next alarm occurrence. NOTE: NOTE THE RETURN TIME, the next alarm time.
Duplicate Filtering
Matrikon AM duplicate filter does not work when the Archiver Service is restarted