ClassObject Engineering
ClassObject Engineering
IM 36K10L10-01EN
IM 36K10L10-01EN
3rd Edition
i
Introduction
PROCESS Service is a member of the CI Server collection offering a high-level process varia-
ble manipulation by using objects. An object specifies the relation between a number of input
and output process variables. The relation between the process variables is described by us-
ing the PROCESS Service language.
This document describes an overview of PROCESS Service, how to set configurations, how
to create classes and objects, and the debugger. It also describes the database as appendix
Class/Object Engineering
CONTENTS
1. Overview................................................................................................1-1
2. Configuring PROCESS Service...........................................................2-1
3. The quick load utility............................................................................3-1
4. Debugger...............................................................................................4-1
Class/Object Engineering
CONTENTS
Appendix
Appendix 1. Databases........................................................................ App.1-1
1. Overview
This chapter deals with:
• The environment of PROCESS Service
• The components of PROCESS Service
• Distributed character of PROCESS Service
n Environment
Figure 1-1 shows the environment of PROCESS Service.
PROCESS Service
USER Service
APPLICATION
DSS
ITEM Service
PROCESS Service lies on top of ITEM Service and allows manipulation of groups of process
variables by using objects. An application can affect the behavior of objects by using PROC-
ESS Service. In addition, applications can use the PROCESS Service for configuration purpo-
ses, such as class and object creation.
DSS is accessed to obtain definition information about process variables. In addition, USER
Service is the standard user interface to PROCESS Service.
n Components
PROCESS Service is built up of blocks called OPC.
• OPC: PROCESS Service engine
OPC contains a number of background processes, utilities and a set of interface routines.
IMPORTANT
In CI Server, "OPC" is used as a part of process name as an abbreviation for "Object oriented
Process Control." On the other hand, although OPC, a data exchange standard proposed by
the OPC Foundation, has been widely recognized in the industry in recent years, "OPC” in CI
Server is completely different from the OPC standard, so please not to be confused.
l Background processes
The background processes are started in the background and controls the run-time behavior
of PROCESS Service. These processes are:
• OPCMAN
The manager process that maintains the PROCESS Service configuration. The configu-
ration consists of trigger groups, classes, objects and their relation to each other. The
USER Service
INTEGRATION APPLICATION
Maintenance
Maintenance
Item Activate object
definition Attribute info
info Create OPCMAN
Destroy
data store’
OPCLOA
DSS Create/delete
Run object
alarm items
Attribute
info
Create/delete
items
ITEM Service OPC(J)
EXE
Item info
Events
USER Service and applications issue maintenance requests to OPCMAN. Upon which OPC-
MAN updates its data store.
In case of a compile request, OPCMAN directs the request to OPC(J)COM which extracts the
class source from the data store, compiles it and stores the compiled information back in the
data store. In case of a create request, OPCMAN directs the request to OPC(J)ACT which
links process variables to the object by executing its prolog. when specified in the class prolog
new process variables can be created and inserted in item history groups by OPC(J)ACT.
DSS is queried for item definition info and requested to create/delete items. When
OPC(J)ACT has created the object, OPCMAN sends the object information to OPCLOA. OP-
CLOA prepares the information that is run by OPC(J)EXE.
In case of an object delete request, OPCMAN informs OPCLOA that the object must be stop-
ped and removed. OPCMAN issues a destroy request to OPC(J)ACT which removes the links
between the object and its process variables. Process variables that were created for the ob-
ject instancing are removed by OPC(J)ACT if no longer needed by other objects. Finally OPC-
MAN removes all information about the object from its data store.
While the object is running in OPC(J)EXE, ITEM Service is used to get real-time information
of the item.
l Utilities
The following OPC utility is started from the command line:
• OPCDBG
The OPC debugger is used to gather performance characteristics of objects and to check
and repair inconsistencies in the OPC data store. It can also be used to maintain trigger
groups, classes and objects for this purpose.
This utility is discussed in detail in chapter 4.
n Distributed character
Figure 1-2 shows the relationship between the OPC background processes. It is not necessa-
ry to run them all on the same node. The rules for a distributed environment are:
• More than one application may concurrently address OPCMAN. The application may run
on a different node from the node on which OPCMAN is running. However, when running
on a different node, the functions which pass file names between the application and
OPCMAN will not work.
• Multiple USER Services (HMI) can request maintenance by using OPCMAN at the same
time.
• OPCMAN, OPC(J)COM and OPC(J)ACT must always run on the same node. Only one
OPCMAN, OPC(J)COM and OPC(J)ACT may run together.
• The object may run on a different node from the node where OPCMAN is running. The
processes OPCLOA and OPC(J)EXE take care of running objects. More pairs of these
processes may be active concurrently when active on different nodes. More than one
OPC(J)EXE process may be active on a single node, each one handling a different range
of object priorities. In case an OPCLOA and OPC(J)EXE pair is running on a different
node from where OPCMAN is running, OPCLOA maintains a copy of the data store (data
store’ in Figure 1-2) to enable start-up of the node without connection with the node
where OPCMAN is running.
Figure 1-3 shows the distributed characteristics of OPC.
Node A or other
USER Service
OPC(J)
ACT OPCMAN
OPC(J)
COM
DSS
data store
Node A
data store’
2
3 OPCLOA
Node A or other
1. USER Server can run on the same node as OPCMAN or on a different node.
IMPORTANT
This option typically does not apply to CI Server. This is only for supporting legacy features.
When the complete priority range (0-999) is not covered, a warning is issued by OPCLOA
to inform the user that objects with certain priorities are not handled.
When an executor process is started for which no priority range is specified in the setup
file, the range 0-999 is used.
l Stand-alone
A stand-alone system is the most basic configuration. In this case, all PROCESS Service pro-
cesses are running on the same node.
Node A or other
APPLICATION or
USER Service
Node A
OPCMAN
OPC(J) OPC(J)
ACT COM
data store
DSS OPCLOA
• All PROCESS Service processes are running on the same node. Default parameters as-
sume a stand-alone configuration.
• IITEM Service may or may not run on the same node. If the ITEM Service kernel has a
different name, it may be necessary to provide the name of the kernel by using the ITM-
PROC setup parameter.
• It is possible to have more than one executor process running, handling objects within
given priority ranges. This can be performed by using the PRIORITY-RANGE keyword
that specifies the BUS Service queue name of the executor process and the priority
range it handles.
4. Debugger
Debuggers are useful for solving problems that occur at run-time or during configuration of
PROCESS Service.
In most cases debugging is performed on the host where OPCMAN is running. <Return> (ac-
tion zero) specifies that the host is the current node. Some debugging functions will not work
when the node number of the host differs from that where the debugger was invoked.
Once the node has been entered, the debugger requests which action to perform:
Enter action to do : [-1 - 5] [0] <Return>
Allowed actions numbers are:
-1 -- Exit 0 -- Help
1 -- Trigger groups 2 -- Classes
3 -- Objects 4 -- Performance
5 -- Utilities
Responding with <Return> only (action zero) returns the possible actions.
It is possible to specify the actions on the command line. For example:
opcdbg 0 0
-1 -- Exit 0 -- Help
1 -- Trigger groups 2 -- Classes
3 -- Objects 4 -- Performance
5 -- Utilities
n Trigger groups
The ‘Trigger groups’ action allows manipulation of trigger groups. When this option is selec-
ted, action 0 can be used to return help:
TRIGGER GROUPS: Enter action to do : [-1 - 5] [0] <Return>
Allowed actions numbers are:
n Classes
The ‘Classes’ action allows manipulation of classes. When this option is selected, action 0
can be used to return help:
CLASSES: Enter action to do : [-1 - 21] [0] <Return>
Allowed actions numbers are:
l Insert a class
This action inserts a new class. The following information must be entered:
Enter class name : []
Enter description : []
Copy source from Class or File (C/F) : [C/F] [C]
l Lock a class
This action locks a class for modification, copies the class source into the specified file and
returns information about the class.
Enter file to copy sources to : []
Enter class name : []
Always include a full directory path specification for the file to copy the source to.
The class is unlocked by any other ‘Trigger groups, ‘Classes’ or ‘Objects’ action.
l Modify a class
This action modifies a class:
Enter class name : []
Enter description : []
Enter file containing sources : []
Enter priority : [0]
The name of a file containing the modified or new source can be specified. Use action ‘Lock
class’ prior this action.
l Delete a class
This action allows a class to be deleted. The class to delete is specified by name.
l Get class
This action returns the parameters for a class. The class can be specified by name or internal
identification.
l Next class
This action returns the parameters for the next class. The next class is obtained by name or
internal identification.
l Compile class
This action compiles a class:
When production of a listing is specified then the file to put the listing in is requested:
Enter file for listing : []
Always include a full directory specification in the name for the list file. Finally, whether or not
to compile with the trace option is requested:
Produce trace info (Y/N) : [Y/N] [Y]
l Reset class
This action resets all objects derived from a certain class on a specific node:
Enter class name : []
Enter node number : [0 - 254] [0]
l Trigger class
This action triggers all objects derived from a class specified by name.
l Insert in trigger
This action inserts a class in a certain trigger group:
Enter class name : []
Enter trigger group name : []
l All triggers
This action returns all trigger groups in which a class has been inserted. The class must be
specified by name.
l All prompts
This action returns all the prompts defined for a class. The class has to be specified by name.
l Get attribute
This action returns information about an attribute:
Enter class name : []
By Path or Id (P/I) : [P/I] [P]
l All attributes
This action returns all the attributes defined in a class. The class has to be specified by name.
l Get signal
This action returns information about a signal:
Enter class name : []
By Path or Id (P/I) : [P/I] [P]
l All signals
This action returns all the signals defined in a class. The class has to be specified by name.
Hiding disables the [Code] and [Listbox] tabs in the class definition form, and the code cannot
be displayed.
n Objects
The ‘Objects’ action allows manipulation of objects. All object names must be entered includ-
ing the path.
When this option is selected, action 0 can be used to return help:
OBJECTS: Enter action to do : [-1 - 18] [0] <Return>
Allowed actions numbers are:
l Inserts object(s)
This action inserts one or more new objects. The following information must be entered:
Enter number of objects to create : [1]
Enter object name: []
Enter description : []
Enter class name : []
Use object control item (Y/N) : [Y/N] [Y]
When usage of a control item is selected then the name of the item is requested:
Enter item name : []
l Modify object
This action modifies an object:
Enter object name : []
Enter description : []
Enter priority : [0]
Enter activation time (GMT) : [01-01-1970 00:00:00]
Enter deactivation time (GMT) : [01-01-1970 00:00:00]
l Delete object(s)
This action deletes a number of objects:
Enter object name : []
When the item name has a ‘*’ character appended (for example ‘VALVE*’), all objects pos-
sessing the specified item name that match the specified item name will be deleted.
l Get object
This action returns the parameters of an object. The object can be specified by name or inter-
nal identification.
l Next object
This action returns the parameters of the next object. The next object is obtained by name or
internal identification.
l Reset object
This action resets an object which must be specified by name.
l Trigger object
This action triggers the specified object.
l Insert in trigger
This action inserts an object in a certain trigger group:
Enter object name : []
Enter trigger group name : []
l All triggers
This action returns all trigger groups in which an object has been inserted. The object must be
specified by name.
l Get attribute
This action returns information about an attribute:
l All attributes
This action returns all the attributes defined in an object. The object is specified by name.
l Get signal
This action returns information about a signal:
Enter object name : []
By Path or Id (P/I) : [P/I] [P]
l All signals
This action returns all the signals defined in an object. The object has to be specified by
name.
l Debug object
This action enables or disables debugging of a specific object. The object can be specified by
name or internal identification. When debug is enabled, the name of the file to which debug
information is logged has to be entered. Always include a directory path in the file name.
n Performance
The ‘Performance’ action allows inspection of run time characteristics of objects. When this
option is selected, action 0 can be used to return help:
Enter the front-end node number : [0 - 254] [0] <Return>
Enter the OPC executor process name : [OPCEXE] <Return> <Return>
If the response is negative, the name or id of the desired trigger group must be specified. Oth-
erwise information about all trigger groups is displayed.
The following information is displayed:
• Trigger group id
• Activation time
• Deactivation time
• Trigger interval
• Next trigger time
• Current users of that trigger group (class/object)
l Classes in trigger
This action retrieves information about classes within trigger groups. The trigger group can be
specified by name or id. The following information is available:
• Class id
• Priority
l Objects in trigger
This action retrieves statistical information about objects within trigger groups. The trigger
group can be specified by name or id. The following information is available:
• Object id
• Object’s class id
• Priority
• Activation time
• Deactivation time
• User of the object
• Execution time statistics
If a negative response is supplied then the class must be specified by name or id. The follow-
ing information is displayed:
• Class id
• Priority
• Users
• Execution times
l Objects in class
This action retrieves statistics about objects within a specified class. The class name must be
supplied by name or id. The following information is available:
• Object id
• Object’s class id
• Priority
• Activation time
• Deactivation time
• User of the object
• Execution times
If a negative response is supplied then the object must be specified by name or id. The follow-
ing information is available:
• Object id
Enter the number of classes you want to list (top N). The following information can be used:
• Class ID
• Priority
• User of the object and trigger
• Number of execution
• Total run-time
• Duration
• Minimum run-time
• Maximum run-time
Enter the number of objects you want to list (top N). The following information can be used:
• Object ID
• Class ID
• Priority
• Activation time
• Deactivation time
• User of trigger
n Utilities
The 'Utilities' action provides various administrative functions. When this option is selected,
action 0 can be used to obtain help:
UTILITIES: Enter action to do : [-1 - 9] [0] 0
Allowed actions numbers are:
l Reset
This action resets all classes on a PROCESS Server host or related front-end. For front-ends,
all information in the front-end is removed and downloaded by the host. When this option is
selected, the user is first requested to confirm the action:
This action resets the PROCESS Service host or one of its
front-ends
Continue : [Y/N] [N]
If the action is confirmed, the node number of the host or front-end is requested:
Enter node number : [0 - 254] [0]
l Dump classes
This action makes it possible to dump all existing class definitions for the current node to a
quick-load file. This can be used for transferring definitions quickly to another system. The file
can be read by the DSS quick load utility (DSSQLD).
Enter name for the quickload output file : [classes.qli]
Processing class A
l Dump objects
This action makes it possible to dump all existing object definitions for the current node to a
quick-load file. This can be used for transferring definitions quickly to another system. The file
can be read by the DSS quick load utility (DSSQLD).
Enter name for the quickload output file : [objects.qli]
Processing object TEST.TEST.OBJECT_1
Processing object ...
Processing object TEST.TEST.OBJECT_100
l Database check
This action is used to check the PROCESS Service databases. It opens and reads the con-
tents of all databases and performs a consistency check on their contents. The debugger dis-
plays its actions and reports any inconsistencies found.
Opening the PROCESS Service databases
Reading the trigger group definitions
7 trigger group definition(s) read
Reading the active triggers
4 active trigger(s) read
Reading the class definitions
35 class definition(s) read
Reading class sources
35 class source record(s) read
Reading the class code
745 class code record(s) read
Reading the object definitions
216 object definition(s) read
Reading the signals
0 signal records(s) read
Reading the attributes
1026 attribute record(s) read
Checking the class definitions
Checking the class sources
Checking the class code
Checking the object definitions
Checking the signals
Checking the attributes
Checking the active triggers
l Database repair
If any inconsistencies are found in the PROCESS Service databases, it is possible to repair
them with this action. Before proceeding, the action must be confirmed:
This actions repairs inconsistency within the PROCESS Service databases.
Inconsistencies are repaired by deletion of incomplete
information.
If confirmed the repair action is performed. The debugger reports its actions and any inconsis-
tencies it locates
Opening the PROCESS Service databases
Reading the trigger group definitions
7 trigger group definition(s) read
Reading the active triggers
0 active trigger(s) read
Reading the class definitions
35 class definition(s) read
Reading class sources
35 class source record(s) read
Reading the class code
745 class code record(s) read
Reading the object definitions
0 object definition(s) read
Reading the signals
0 signal records(s) read
Reading the attributes
162 attribute record(s) read
Checking the class definitions
Checking the class sources
Checking the class code
Checking the object definitions
Checking the signals
Checking the attributes
Checking the active triggers
l Disassemble class
This action makes it possible to obtain information about a class. Not only the class definition
is displayed but also modification and compilation information:
Enter class name : [] THE_FIRST_CLASS
Disassembly of class THE_FIRST_CLASS generated at
29-11-1993 13:56:31
GENERAL INFORMATION
===================
Description: Hello my first class
Priority: 100
Class identification (cls_id): 751656049.0
Modified at: 26-10-1993 17:25:48Publich
Modified without compilation
Never compiled
End of disassembly of class THE_FIRST_CLASS
l Dump memory
This action makes it possible to get a memory dump of a PROCESS Service-related process.
The memory dump is stored in the specified file:
Enter the node number of the OPC process: [0 - 4095] [0]
Enter the OPC process name: [OPCMAN]
Enter the file to dump to: [C:\Users\Public\Yokogawa\tls\lst\OPCMAN.dmp]
Appendix 1. Databases
This appendix describes all PROCESS Service databases. These databases are "owned" by
PROCESS Service and are described here for identification purposes only.
n Database type
The PROCESS Service data store consists of a number of databases such as:
• Class definition
• Class source
• Class object
• Object definition
• Attributes
• Signals
• Trigger group definition
• Active triggers
• Pending update
All the databases are located in the CI Server data directory.
l Class definition
The class definition database, ’opc_clsdef.dat’, contains the definition of all classes. A re-
cord in the database specifies a class and contains:
• The name of the class.
• The one-liner description.
• The language used, Traditional or Java.
• The priority.
• Maintenance information, like internal class identification, date of insertion, compilation,
etc.
l Class source
The class source database, ’opc_clasrc.dat’, contains the sources written in the PROCESS
Service language of all classes. For each class a number of records is required depending on
the size of the source. A record contains:
• The internal identification for the class to which the source belongs.
• The source itself.
l Class object
The class object database, ’opc_clsobj.dat’, contains the result of class source compilation.
For each class a number of records are required depending on the size of the compiled
source. A record contains:
• The internal identification of the class to which the compiled source belongs.
• The compiled source.
l Object definition
The object definition database, ’opc_objdef.dat’, contains the definition of all objects. A re-
cord specifies an object and contains:
• The name of the object.
• The one-liner description.
• The internal identification of the class where the object is derived from.
• The BUS Service node where the object runs.
• The item id of the control item.
• The priority.
• The time window the object is active.
• Maintenance information, like internal object identification, date of insertion, modification,
etc.
l Attributes
The attributes database, ’opc_attrib.dat’, contains the value of all attributes of all classes
and objects. When the value of an attribute is modified, the value for the attribute is updated
in this database. It contains:
• The internal identification of the class or object the attribute belongs to.
• The internal identification of the attribute.
• The attribute value.
l Signals
The signals database, 'opc_signal.dat', contains the related item id of all signals for all ob-
jects. A record contains:
• The internal object identification.
• The internal signal identification.
• The id of the item related to the signal.
• The item history information. In which storage groups is the item inserted, which attributes
are stored and what are the storage criteria in case of event based storage.
l Active triggers
The active triggers database, 'opc_trgact.dat', specifies all trigger group class relations and
all trigger group object relations. Each record contains:
l Pending update
In a distributed PROCESS Service environment, where OPCLOA is running on a node other
than where OPCMAN is running, OPCMAN sends information to OPCLOA. When communi-
cation between OPCMAN and OPCLOA is lost, information is queued in the pending update
database until the communication is reestablished. When reestablished, the pending update
database is flushed to OPCLOA before other information is sent to OPCLOA. The name of
the pending update database is ’opc_msgovf.dat’. Each record contains information which
needs to be sent to OPCLOA and has the following layout:
• Node of OPCLOA.
• Pending request id.
• Information.
The OPC debugger can be used to show the number of pending requests and to delete these
pending requests from the pending update database.
Revision Information
Title: Class/Object Engineering
Manual No.: IM 36K10L10-01EN
Sep. 2023/3rd Edition/R1.03 or later
Entire contents of the book Updated descriptions.
Mar. 2022/2nd Edition/R1.02
Entire contents of the book Reorganized structure
Jan. 2021/1st Edition/R1.01
Newly published