Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
27 views40 pages

ClassObject Engineering

The document is a user's manual for the PROCESS Service, part of the CI Server collection, detailing how to manipulate process variables using objects. It covers configuration, class and object creation, and debugging, along with an overview of the system's components and distributed characteristics. Additionally, it provides information on setup files and their usage in configuring the PROCESS Service.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views40 pages

ClassObject Engineering

The document is a user's manual for the PROCESS Service, part of the CI Server collection, detailing how to manipulate process variables using objects. It covers configuration, class and object creation, and debugging, along with an overview of the system's components and distributed characteristics. Additionally, it provides information on setup files and their usage in configuring the PROCESS Service.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

User's

Manual Class/Object 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

3rd Edition : Sep. 2023 (YK) IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


All Rights Reserved. Copyright © 2021, Yokogawa Electric Corporation
Toc-1

Class/Object Engineering

IM 36K10L10-01EN 3rd Edition

CONTENTS
1. Overview................................................................................................1-1
2. Configuring PROCESS Service...........................................................2-1
3. The quick load utility............................................................................3-1
4. Debugger...............................................................................................4-1

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


TocApp.-1

Class/Object Engineering

IM 36K10L10-01EN 3rd Edition

CONTENTS
Appendix
Appendix 1. Databases........................................................................ App.1-1

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<1. Overview> 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

Figure 1-1 Environment of PROCESS 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

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<1. Overview> 1-2
manager accesses the compiler to compile the class source, accesses the activator to
create and destroy objects and accesses the loader process to run objects. Applications
address the manager (via a routine set) to perform tasks.
• OPCLOA
The loader process that receives information from the manager to run objects. The loader
processes the information and passes it to the executor process which actually runs the
objects.
• OPCCOM
The compiler that receives requests from the manager and compiles the source of a class
written in the Traditional PROCESS Service language. When the compilation is comple-
ted or fails, a reply is returned to the manager.
• OPCACT
An activator process that creates or deletes objects written in the Traditional PROCESS
Service language upon the request from the manager.
Creates and deletes items using DSS. Items are created when an object is instanced and
deleted when the objects are removed.
• OPCEXE
The executor process receives the processed information about objects written in the Tra-
ditional PROCESS/FAST language to run and executes them. OPCEXE creates alarm
items by using DSS.
• OPCJCOM
The compiler that receives requests from the manager and compiles the source of a class
written in the Java PROCESS Service language. When the compilation is completed or
fails, a reply is returned to the manager. OPCJCOM is started immediately by OPCMAN
when it needs to compile the Java PROCESS Service class. It remains running for a
while to server future compile request. When, during a certain time no compilation are
performed, OPCJCOM will exit. These timings can be specified in the setup file of PROC-
ESS Service.
• OPCJACT
An activator process that creates or deletes objects written in the Java PROCESS Serv-
ice language upon the request from the manager. Creates and deletes items using DSS.
Items are created when an object is instanced and deleted when the objects are re-
moved. OPCJACT is started immediately by OPCMAN when it creates or deletes the
Java PROCESS Service object. It remains running for a while to server future create or
destroy request. When, during a certain time no create or destroy request are executed,
OPCJACT will exit. These timings can be specified in the setup file of PROCESS Service.
• OPCJEXE
An executor process that receives the process information about objects written in the
Java PROCESS Service language and executes it. OPCJEXE creates alarm items by us-
ing DSS.
Figure 1-2 shows the relationship between background processes and the environment, and
the relationship between processes.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<1. Overview> 1-3

USER Service

INTEGRATION APPLICATION
Maintenance
Maintenance
Item Activate object
definition Attribute info
info Create OPCMAN
Destroy

Compile OPC(J) Stop +


COM remove
object
OPC(J)
ACT data store

data store’
OPCLOA

DSS Create/delete
Run object
alarm items
Attribute
info
Create/delete
items
ITEM Service OPC(J)
EXE
Item info
Events

Figure 1-2 Relationship between the OPC background processes

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.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<1. Overview> 1-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

ITEM Service OPC(J)


EXE
4
Node A or other

Figure 1-3 Distributed characteristics of OPC

1. USER Server can run on the same node as OPCMAN or on a different node.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<1. Overview> 1-5
2. OPCLOA accesses data store only when it is running on the same node as where OPC-
MAN is running.
3. data store is created and maintained by an OPCLOA which is running on a different node
from that on which OPCMAN is running.
4. More than one OPC(J)EXE process may run on a node supported by one OPCLOA.
Each OPC(J)EXE process handles a distinct priority range.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-1

2. Configuring PROCESS Service


This chapter describes how to configure PROCESS Service. First a description of the setup
files and other configuration files is given. Then a step by step approach is used to guide the
system integrator through configuring PROCESS Service.
The following topics are described is this chapter:
• Access of setup files
• Description of the setup files
• How to configure PROCESS Service

n Access of setup files


All OPC setup files are in the CI Server setup directory. Two levels of setup files can be distin-
guished. The OPC wide setup file ‘opc.sup’ contains setup information for all OPC processes.
Process specific setup files ‘ opc*.sup’ contain information for a single process only. When an
OPC process starts it reads the OPC wide setup file and stores all encountered setup infor-
mation. After the OPC wide setup file is read, the process searches the CI Server setup direc-
tory for a setup file with the same name as the BUS Service queue name of the process (for
example ‘opcman.sup’ for the manager process OPCMAN). If found, this setup file is read
and all information encountered overrules the information found in the OPC wide setup file.
Thus, the OPC wide setup file specifies the general configuration of OPC processes while us-
age of the process specific setup files enable detailed configuration of a single process.
In most configurations, using the OPC wide setup file alone is sufficient. Note that the OPCJ-
COM, OPCJACT and OPCJEXE will only process the OPC wide setup file ‘opc.sup’.

n PROCESS Service setup files


The OPC setup file may contain a number of keywords optionally followed by one or more ar-
guments. The keywords and their arguments can be changed by opening the setup file with
general-purpose text editor, but use the Setup File Editor to change the settings in the OPC
setup file.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-2

Figure 2-1 General tab

• Traditional class template file: <Keyword: CLASS-TEMPLATE>


When a Traditional PROCESS Service class is created, the source can be copied from
another specified class, copied from a specified file or copied from the standard template.
The file containing the standard template is specified by the CLASS-TEMPLATE keyword.
The file name specified must include a directory specification. When this entry is omitted,
OPC uses “opc_src_tpl.asc” located in the CI Server data directory.
• Java class template file: <Keyword: JCLASS-TEMPLATE>
When a Java PROCESS Service class is created, the source can be copied from another
specified class, copied from a specified file or copied from the standard template. The file
containing the standard template is specified by the JCLASS-TEMPLATE keyword. The
file name specified must include a directory specification. When this entry is omitted, OPC
uses “opc_jsrc_tpl.asc ” located in the CI Server data directory.
• Event buffering: <Keyword: EVENT-BUFFER>

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-3
For items connected to signals which trigger an object, it is possible to specify whether
ITEM Service performs event buffering. When specified, each item event is not sent to
OPC as a distinct BUS Service message, but buffered by ITEM Service until the buffer is
full or when a time has expired. When the keyword is omitted, event buffering is disabled.
• Node number: <Keyword: node>
This keyword specifies the node number where ITM operates. More than one ITMs can
be used in a system. 0 specifies its own node. -1 means that event buffering is used on
all connected nodes.
• Buffer size: <Keyword: size>
This keyword specifies the buffer size of event buffering in bytes.
• Time-out: <Keyword: time-out>
The time-out is specified in seconds. Fractions of a second may be given, but will be ig-
nored (reserved for future extensions).
• Ask for immediate events from items: <Keyword: IMMED-EVENTS>
When this check box is selected (default setting), at the startup of the OPC executor
process (OPC(J)EXE) for each item, one extra update with the actual item value is pro-
cessed. If this check box is not selected, no extra initial update is processed at the start-
up. In both cases item change events will be normally processed.
• Load data from host on start-up: <Keyword: COLD-START>
This keyword only affects nodes where OPCLOA is running without OPCMAN (front-end,
see also the HOST keyword). When this check box is selected, OPCLOA obtains all infor-
mation from OPCMAN running on the host at the startup. The front-end cannot start when
there is no communication with the host. If this check box is cleared, OPCLOA loads in-
formation from its private data store at the startup. In this case the front-end can start-up
without communication with the host.

IMPORTANT
This option typically does not apply to CI Server. This is only for supporting legacy features.

• Use audit trail: <Keyword: AUDIT>


This keyword specifies whether or not to audit trail configuration changes and changes to
items values and attributes. When this check box is selected, the execution speed of ob-
jects is reduced a little. When the keyword is omitted, audit trailing is disabled.
• Flow control: <Keyword: FLOW-CONTROL>
When flow control is enabled (default), ITEM Service includes the account information in
the item update events sent to OPCMAN. In addition, when no events are sent by ITEM
Service during a certain time (<interval>), ITEM Service sends a flow control message
to OPC. If within a certain time (<timeout>) no event or flow control message has been
received from ITEM Service, OPC assumes that a problem has occurred and tries to re-
establish connection with ITEM Service. Flow control can be disabled by specifying an
Interval and Time out of zero.
• Interval: <Keyword: interval>
Specify in seconds. Default setting is 300 seconds.
• Time out: <Keyword: timeout>
Specify in seconds. Default setting is 360 seconds.
• Maximum number of triggers: <Keyword: TRIGGER-QUEUE-SIZE>
Specifies the maximum number of triggers which can be queued by the OPC(J)EXE proc-
ess for an object. The default is 100 triggers. An object receives triggers from the outside
CI Server. Each trigger lets the object execute itself. When the frequency of triggers ex-
ceeds the execution speed of the object, the triggers are queued by the OPC(J)EXE
process. The maximum size of this queue for an object is determined by this keyword.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-4
When the number of queued trigger exceeds 90% of this limit the warning ”Loosing
real-time for object <object>” is outputted for Traditional classes (OPCEXE). For
Java classes (OPCJEXE) ”Processing of events to slow for object:<object>” is
outputted.
• Alarm items: <Keyword: ALARM-ITEMS>
OPC(J)EXE uses a set of items to support the ALARM statement of the PROCESS Serv-
ice language. These items are automatically created by OPC(J)EXE on startup when this
keyword is specified.
• Node number: <Keyword: node>
This keyword specifies the node number to create an item. If it is omitted, it will be a host
node.
• Number of alarm items: <Keyword: nr_alarm_items>
This keyword specifies the number of alarm items to be created. If it is omitted, it will be
10.
• Section that will contain alarm items: <Keyword: section>
This keyword specifies the section name of alarm item. Note that the specified section
must be exist. If it is omitted, it will be ’opc.opc’. The tag names of the alarm item are the
OPC (J) EXE process name with the BUS Service node number and a serial number
starting from 1.
• Alarm priorities: <Keyword: ALARM-PRIORITY>
This entry specifies the priorities of the alarm message that correspond with ALARM sta-
tuses NORMAL, A1, A2 and A3.
• Normal priority: <Keyword: normal_p>
This entry specifies the priorities of the alarm message of ALARM statuses NORMAL.
• A1 priority: <Keyword: a1_p>
This entry specifies the priorities of the alarm message of ALARM statuses A1.
• A2 priority: <Keyword: a2_p>
This entry specifies the priorities of the alarm message of ALARM statuses A2.
• A3 priority: <Keyword: a3_p>
This entry specifies the priorities of the alarm message of ALARM statuses A3.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-5

Figure 2-2 Process tab

• Alarm process: <Keyword: ALM-PROC>


This keyword specifies the name of the BUS Service queue for the ALARM Service ker-
nel process. A node may be specified that is different from that on which OPC is running.
• Node number: <Keyword: node_number>
This keyword specifies the node number. If it is omitted, it will be a host node.
• Node name: <Keyword: queue_name>
This keyword specifies the name of the BUS Service queue. If it is omitted. it will be
“ALM.”
• PROCESS Service host node: <Keyword: HOST-NODE>
Specifies the node where PROCESS Service runs in a (distributed) CI Server system.
• Node number: <Keyword: node_number>
Default is -1, indicating the host node of the system.
• Audit process: <Keyword: ADT-PROC>
This keyword specifies the name of the BUS Service queue for the AUDIT Service stor-
age process. A node may be specified that is different from that on which OPC is running.
• Node number: <Keyword: node_number>
This keyword specifies the node number. If it is omitted, it will be a host node.
• Node name: <Keyword: queue_name>
This keyword specifies the name of the BUS Service queue. If it is omitted, it will be
“ADTSTO.”
• Process for handling ITM requests: <Keyword: ITM-PROC>

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-6
This keyword specifies the name of the BUS Service queue for the ITEM Service kernel
process. No node number is necessary. OPC determines the node to access from the
item definition. If omitted, it will be "ITM."
• Processing timeouts: <Keyword: PROC-TIME>
The OPCJCOM and OPCJACT processes are only running if Java classes are compiled
and objects from Java classes are created or destroyed. When required, OPCMAN starts
OPCJCOM or OPCJACT when not running.
• OPCJCOM and OPCJACT start waiting time: <Keyword: opcjxxx_wait>
The opcjxxx_wait time (in seconds) specifies the time OPCMAN allows OPCJCOM or
OPCJACT to start.
• OPCJACT process timeout: <Keyword: opcjact_timeout>
The opcjact_timeout time (in minutes) specifies the time OPCJACT will wait for objects to
be created or destroyed before going exit.
• OPCJCOM process timeout: <Keyword: opcjcom_timeout>
The opcjcom_timeout time (in minutes) specifies the time OPCJCOM will wait for compi-
lation requests before going exit.

Figure 2-3 Queue/Priority tab

• Queue sizes: <Keyword: QUEUE-SIZE>


This keyword specifies the queue size (in kilobytes) for a certain OPC process.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-7
• Process name: <Keyword: process_name>
The following process name can be specified:
-OPCMAN The manager process
-OPC(J)COM The compiler process
-OPC(J)ACT The activator process
-OPCLOA The loader process
-OPC(J)EXE, OPC(J)EXE01, The executor processes.
OPC(J)EXE02,…OPC(J)EXEnn
• Queue size: <Keyword: queue_size>
When the queue size for a process is not specified, a size of 10 kilobytes will be used.
• Priority ranges: <Keyword: PRIORITY-RANGE>
This keyword is used to specify the priority range that a certain OPC executor process
handles. Note that more than one executor process may be active on a single node.
• Process name: <Keyword: queue_name>
The queue name of the executor process must be specified. Normally their queue names
follow the convention; OPC(J)EXE01, OPC(J)EXE02, ... OPC(J)EXEnn.
• Range From To: <Keyword: from, to>
The priority ranges are mandatory and may not overlap each other. For example:
PRIORITY-RANGE =“OPCEXE01”, 0, 499
PRIORITY-RANGE =“OPCEXE02”, 500, 999
PRIORITY-RANGE =“OPCJEXE01”, 0, 99
PRIORITY-RANGE =“OPCJEXE02”, 100, 999

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.

Figure 2-4 IIntervals tab

• Lock check interval: <Keyword: LOCK-CHECK>


This keyword specifies the interval (in seconds) used by the OPC manager process to
perform regular tasks such as determining dead clients and communication checks with
OPCLOA. When this entry is omitted, an interval of 10 seconds is used.
• Scheduler interval: <Keyword: SCHEDULER-INTERVAL>

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-8
This entry specifies the maximum resolution at which an object may be run by the OPC
executor process. The interval is specified in milliseconds. When this entry is omitted, 500
milliseconds is taken as default. This is only used for objects of Traditional classes.

Figure 2-5 Data tab

• Enable tracing output: <Keyword: TRACE>


When this check box is selected, the debug information output to the standard output of
the OPCEXE process is enabled. If this check box is cleared, information will not be out-
put. This keyword is not used by OPCJEXE.
• Gather statistical data: <Keyword: STATISTICS>
When this check box is selected, gathering of object performance information of the OP-
CEXE process is enabled. This information can be examined via the OPC debugger proc-
ess. Gathering performance information reduces the execution speed of objects a little. If
this check box is cleared, information will not be collected. This keyword is only valid for
Traditional Classes. For Java classes (OPCJEXE), statistics are always gathered.
• Enable output of PRINT statements: <Keyword: PRINT>
When this check box is selected, the output of the PRINT statement of the traditional
PROCESS Service language is enabled, and the expression of the PRINT statement is
output to the system error log (umhlog). When the check box is cleared, then the output is
suppressed.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-9

Figure 2-6 OPCCOM process tab

• Size of the symbol table: <Keyword: SYMTAB-SIZE>


This entry specifies the number of symbols the OPC compiler (OPCCOM) can handle
during the compilation of a Traditional class. The default number of entries is 4000.
• Size of the class include table: <Keyword: INCTAB-SIZE>
This entry specifies the number of included class identifiers the OPC compiler (OPC-
COM) can handle during the compilation of a Traditional class. The default number of en-
tries is 100.
• Size of the alarm table: <Keyword: ALARMTAB-SIZE>
This entry specifies the number of alarm identifiers the OPC compiler can handle during
the compilation of a class. The default number of entries is 40.
• Size of the timer table: <Keyword: TIMERTAB-SIZE>
This entry specifies the number of timer identifiers the OPC compiler (OPCCOM) can
handle during the compilation of a Traditional class. The default number of entries is 40
• Size of the attribute table: <Keyword: ATTRIBTAB-SIZE>
This entry specifies the number of attribute identifiers the OPC compiler (OPCCOM) can
handle during the compilation of a Traditional class. The default number of entries is
1000.
• Size of the signal table: <Keyword: SIGTAB-SIZE>
This entry specifies the number of signal identifiers the OPC compiler (OPCCOM) can
handle during the compilation of a Traditional class. The default number of entries is
1000.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-10
• Size of the label table: <Keyword: LABELTAB-SIZE>
This entry specifies the maximum nesting depth of IF-THEN-ELSE-ENDIF statements for
Traditional classes. The default is a maximum depth of 100.
• Size of the variable table: <Keyword: VARITAB-SIZE>
This entry specifies the number of variable identifiers the OPC compiler (OPCCOM) can
handle during the compilation of a Traditional class. The default number of entries is
4000.
• Size of the function table: <Keyword: FNCTAB-SIZE>
This entry specifies the number of functions the OPC compiler (OPCCOM) can handle
during the compilation of a Traditional class. The default number of entries is 200.
• Size of the string pool table: <Keyword: STRPOOL-SIZE>
This entry specifies the maximum size (in kilobytes) of static strings the OPC compiler
(OPCCOM) can handle during the compilation of a Traditional class. The default size is
32.
• Size of the code partition: <Keyword: CODE-SIZE>
This entry specifies the maximum size (in kilobytes) of code the OPC compiler (OPC-
COM) can handle during the compilation of a Traditional class. The default size is 1000.
Besides the setup files, a number of files can be found in the cfg\properties folder of the %TL
S_WAP_PATH% directory:
• opcjactlogging.properties
Defines the logging of the OPCJACT process.
• opcjcomlogging.properties
Defines the logging of the OPCJCOM process.
• opcjexelogging.properties
Defines the logging of the OPCJEXE process.

n How to configure PROCESS Service


In the first chapter of this manual, the environment of PROCESS Service was described. This
included a list of points worth noting when running PROCESS Service on a multi-node sys-
tem. These points shall be used as a basis for this discussion.
The manager, activator and compiler processes are considered to be the main body of
PROCESS Service and are responsible for general management. These three processes
must run together on the same node. Multiple instances of these processes are not possible.
In addition, these processes are the loader-executor pairs. These processes are responsible
for actually executing the objects within a PROCESS Service system. One loader process can
be used to service many executor processes on the same node, each executor handling ob-
jects of a certain priority range.

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.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<2. Configuring PROCESS Service> 2-11

Node A or other

APPLICATION or
USER Service

Node A

OPCMAN

OPC(J) OPC(J)
ACT COM

data store

DSS OPCLOA

ITEM Service OPC(J)


OPC(J)
EXE EXE

Figure 2-7 Standalone configuration of PROCESS Service

• 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.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<3. The quick load utility> 3-1

3. The quick load utility


There are four ways to create classes and objects:
• Using the Engineering Module. This is the easiest and most user friendly way.
• Using the OPC debugger (when performing database repair for example).
• Using a home brewed application which uses the OPC routine interface.
• Using the DSS quick load utility (for transferring definitions to other systems or when re-
loading definitions after a database dump).
The quick load utility reads a text input file which contains class or object definitions and in-
serts the specified classes or objects in PROCESS Service.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-1

4. Debugger
Debuggers are useful for solving problems that occur at run-time or during configuration of
PROCESS Service.

n Invoking the debugger


The debugger is an interactive utility which is started by the command:
opcdbg

The debugger responds with the following query:


Enter the OPC host node number : [0 - 254] [0]

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

Allowed actions numbers are:


Allowed actions numbers are:

-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:

-1 -- Return to main menu 0 -- Help


1 -- Insert trigger group 2 -- Modify trigger group
3 -- Delete trigger group 4 -- Get trigger group
5 -- Next trigger group

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-2

l Insert a trigger group


This action inserts a new trigger group. The following information must be entered:
Enter trigger group name : []
Enter description : []
Enter activation time (GMT) : [01-01-1970 00:00:00]
Enter deactivation time (GMT) : [01-01-1970 00:00:00]
Enter interval (secs) : [0]
Interval Absolute or Relative (A/R) : [A/R] [R]

The activation and deactivation time must be entered in GMT.

l Modify a trigger group


This action modifies the parameters for a trigger group. It is advisable to obtain the parame-
ters first via the ‘Get trigger group’ or ‘Next trigger group’ action.

l Delete a trigger group


This action deletes a trigger group. Requests the name of the trigger group to delete.

l Get trigger group


This action returns the parameters for a trigger group. The trigger group can be specified by
name or internal identification. The internal identification is displayed when a retrieval is per-
formed by name.

l Next trigger group


This action returns the parameters of the next trigger group. The next trigger group is ob-
tained by name or internal identification. The internal identification is displayed when a retriev-
al is performed by name.

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:

-1 -- Return to main menu 0 – Help


1 -- Insert class 2 -- Lock class
3 -- Modify class 4 -- Delete class
5 -- Get class 6 -- Next class
7 -- Compile class 8 -- Reset class
9 -- Trigger class 10 -- Insert in trigger
11 -- Delete from trigger 12 -- All triggers
13 -- All included classes 14 -- All prompts
15 -- Get attribute 16 -- All attributes
17 -- Get signal 18 -- All signals
19 -- Get attribute value 20 -- Modify attribute value
21 –- Hide/Unhide class code

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-3

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]

When Class is selected the next query appears:


Enter class name to copy from : []

When File is selected the next query appears:


Enter file containing sources : []

In addition the priority is prompted for:


Enter priority : [0]

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:

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-4
Enter class name : []
Produce listing (Y/N) : [Y/N] [Y]

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 Delete from trigger


This action deletes a class from 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 included classes


This action returns all the classes included by a particular class. The class should be speci-
fied 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]

When Path is selected, the path is requested:


Enter attribute path : []

When Id is selected then the internal identification of the attribute is requested:

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-5
Enter atr_id.sec : [0]
Enter atr_id.seq : [0]
Enter atr_id.opt : [0]

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]

When Path is selected, the path is requested:


Enter signal path : []

When Id is selected then the internal identification of the signal is requested:


Enter sig_id.sec : [0]
Enter sig_id.seq : [0]
Enter sig_id.opt : [0]

l All signals
This action returns all the signals defined in a class. The class has to be specified by name.

l Get attribute value


This action returns the value of an attribute. The class must be specified by name and the
attribute by path.

l Modify attribute value


This action modifies the value of an attribute. The class must be specified by name and the
attribute by path. The old value is displayed as the default. Entering a new value replaces the
old one.

l Hide/Unhide class code


This action hides or unhides the class code. For the class name you entered, the hide/unhide
status of that class is displayed, so specify whether to hide or unhide it.

Figure 4-1 Hiding/Unhiding the class code

Hiding disables the [Code] and [Listbox] tabs in the class definition form, and the code cannot
be displayed.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-6

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:

-1 -- Return to main menu 0 -- Help


1 -- Insert object(s) 2 -- Modify object
3 -- Delete object(s) 4 -- Get object
5 -- Next object 6 -- Reset object
7 -- Trigger object 8 -- Insert in trigger
9 -- Delete from trigger 10 -- All triggers
11 -- Get attribute 12 -- All attributes
13 -- Get signal 14 -- All signals
15 -- Debug object 16 -- Get attribute value
17 -- Modify attribute value
18 –- Get object status

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 : []

The following additional information is requested:


Enter node number : [0]
Enter priority : [0]
Enter activation time (GMT) : [01-01-1970 00:00:00]
Enter deactivation time (GMT) : [01-01-1970 00:00:00]
Query 1 []
Query 2 []
...
Query n []

Prompt 1, 2, etc. are the prompts defined in the class.


When the number of objects to create is greater than one, identical objects with the same pa-
rameters will be created, except for the tag name which has a sequence number ‘000’,
‘001’,...’nnn’ appended.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-7

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]

It is advised to obtain information about the object prior to modification.

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 Delete from trigger


This action deletes an object from 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:

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-8
Enter object name : []
By Path or Id (P/I) : [P/I] [P]

When Path is selected, the path is requested:


Enter attribute path : []

When Id is selected then the internal identification of the attribute is requested:


Enter atr_id.sec : [0]
Enter atr_id.seq : [0]
Enter atr_id.opt : [0]

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]

When Path is selected, the path is requested:


Enter signal path : []

When Id is selected then the internal identification of the signal is requested:


Enter sig_id.sec : [0]
Enter sig_id.seq : [0]
Enter sig_id.opt : [0]

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.

l Get attribute value


This action returns the value of an attribute. The object must be specified by name and the
attribute by path.

l Modify attribute value


This action modifies the value of an attribute. The object must be specified by name and the
attribute by path. The old value is shown and the new value can be entered.

l Get object status


This action returns the object status. The object must be specified by name.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-9

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>

PERFORMANCE: Enter action to do : [-1 - 11] [0] <Return>


Allowed actions numbers are: <Return>

-1 -- Return to main menu 0 -- Help


1 -- Obtain main info 2 -- Obtain trigger group info
3 -- Classes in trigger 4 -- Objects in trigger
5 -- Obtain class info 6 -- Objects in class
7 -- Obtain object info 8 -- Reset statistic info
9 –- Switch statistic gathering on/off
10 –- Class execution top 10
11 –- Object execution top 10
Statistic information about objects is gathered only when enabled in the OPC setup file. This
is done by the STATISTICS keyword.

l Obtain main info


This action is used for retrieving general statistics from the specified OPCEXE process. Infor-
mation includes the location, name and start time of the process plus class, object, trigger info
and execution statistics.

l Obtain trigger group info


This action is used to retrieve information about the currently active trigger groups. First the
following prompt appears:
All trigger groups (Y/N) : [Y/N] [Y]

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

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-10
• Information about the triggered objects in the class
• Execution time statistics

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

l Obtain class info


This action retrieves statistics about all classes currently under execution. Firstly the following
prompt appears:
All classes (Y/N) : [Y/N] [Y]

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

l Obtain object info


This action retrieves statistics about objects that are currently being run. Firstly the following
prompt appears:
All objects (Y/N) : [Y/N] [Y]

If a negative response is supplied then the object must be specified by name or id. The follow-
ing information is available:
• Object id

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-11
• Class id
• Priority
• Activation time
• Deactivation time
• User of the object
• Execution times

l Reset statistic info


This option is used to reset all statistical information gathered so far. This is useful for obtain-
ing fresh statistics without restarting the system.

l Switch statistic gathering on/off


This action switches run/stop of gathering of the statistics information. The following prompt
appears:
Switch statistic gathering (+ = on / - = off) : [+/-][-]

To set to ON, enter +, and to set to OFF, enter -.

l Class execution top 10


This action fetches statistics from all classes in descending order of the number of execution.
The following prompt appears first:
Enter top count to list (0=all) : [0 - 32000] [10]

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

l Object execution top 10


This action fetches statistics from all objects in descending order of the number of execution.
The following prompt appears first:
Enter top count to list (0=all) : [0 - 32000] [10]

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

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-12
• Number of execution
• Total run-time
• Duration
• Minimum run-time
• Maximum run-time

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:

-1 -- Return to main menu 0 -- Help


1 -- Reset 2 -- Pending front-end updates
3 -- Dump classes 4 -- Dump objects
5 -- Database check 6 -- Database repair
7 -- Disassemble class 8 –- Cleanup item used file
9 –- Dump memory

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 Pending front-end updates


When connection between an OPCMAN on the host and an OPCLOA on a front-end is lost,
any updates from OPCMAN are buffered on disk until the connection is restored. By means of
this action it is possible to see how many updates are pending and delete them if necessary:
There are 7 pending update requests for node 30
Delete pending updates : [Y/N] [N]

If the action is confirmed then the following prompt appears:


Enter node number : [0 - 254] [30]

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

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-13
Processing class ...
Processing class Z

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.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-14
Before continuing make a backup of the PROCESS Service
databases or use option 3 and 4 of this menu.
Continue : [Y/N] [N]

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

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<4. Debugger> 4-15

l Cleanup item used file


When an object is connected to an item, the item is marked so that it cannot be deleted by
itself. Even after the object connected to the item was deleted, the mark may remain on the
item, and it is not possible to delete the item. This action rechecks if the marked item is still
connected to the object and clears the mark on the item that is no longer connected to the
object:
UTILITIES: Enter action to do : [-1 - 9] [0] 8
2 itemused records deleted

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]

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<Appendix 1. Databases> App.1-1

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.

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<Appendix 1. Databases> App.1-2

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 Trigger group definition


The trigger group definition database, ’opc_trgdef.dat’, contains the definitions for all trig-
ger groups. A record specifies a trigger group and contains:
• The name of the trigger group.
• The one-liner description.
• The time window the trigger group is active.
• The interval.
• Maintenance information, like internal trigger group identification, date of insertion, modifi-
cation, etc.

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:

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


<Appendix 1. Databases> App.1-3
• The internal identification of the class or object.
• The internal identification of the trigger group.

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.

n Relation between the databases


All the databases have a relation to each other. This means, when one of the databases is
corrupted (deleted, for example) the whole data store of PROCESS Service is corrupt. The
OPC debugger can be used to detect a corrupt data store and repair it. The relation between
the data stores is described in Figure Appendix 1-1.
USER

OPC_TRGDEF group name group id others

OPC_CLSDEF class name class id others

OPC_CLSSRC class id others

OPC_OBJDEF object name object id class id others

OPC_TRGACT object id/class id group id others

OPC_CLSOBJ class id signal id attrib id others

OPC_SIGNAL object id signal id others

OPC_ATTRIB object id/class id attrib id others

Figure Appendix 1-1 Relationship between PROCESS Service databases

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00


Rev-1

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

n Written by Yokogawa Electric Corporation


n Published by Yokogawa Electric Corporation
2-9-32 Nakacho, Musashino-shi, Tokyo 180-8750, JAPAN

IM 36K10L10-01EN 3rd Edition : Sep.01,2023-00

You might also like