System 800xa: PLC Connect Configuration
System 800xa: PLC Connect Configuration
PLC Connect
Configuration
System Version 6.0
ABB may have one or more patents or pending patent applications protecting the intel-
lectual property in the ABB products described in this document.
The information in this document is subject to change without notice and should not be
construed as a commitment by ABB. ABB assumes no responsibility for any errors that
may appear in this document.
In no event shall ABB be liable for direct, indirect, special, incidental or consequential
damages of any nature or kind arising from the use of this document, nor shall ABB be
liable for incidental or consequential damages arising from use of any software or hard-
ware described in this document.
This document and parts thereof must not be reproduced or copied without written per-
mission from ABB, and the contents thereof must not be imparted to a third party nor used
for any unauthorized purpose.
The software or hardware described in this document is furnished under a license and
may be used, copied, or disclosed only in accordance with the terms of such license. This
product meets the requirements specified in EMC Directive 2004/108/EC and in Low Volt-
age Directive 2006/95/EC.
TRADEMARKS
All rights to copyrights, registered trademarks, and trademarks reside with their respec-
tive owners.
Section 1 - Introduction
Welcome to PLC Connect ...............................................................................................13
Release Information .............................................................................................14
3BSE035041-600 5
Table of Contents
6 3BSE035041-600
Table of Contents
INDEX
3BSE035041-600 7
Table of Contents
8 3BSE035041-600
About This User Manual
General
Any security measures described in this User Manual, for example, for user
access, password security, network security, firewalls, virus protection, etc.,
represent possible steps that a user of an 800xA System may want to consider
based on a risk assessment for a particular application and installation. This risk
assessment, as well as the proper implementation, configuration, installation,
operation, administration, and maintenance of all relevant security related
equipment, software, and procedures, are the responsibility of the user of the
800xA System.
This user manual describes how to engineer and maintain PLC Connect.
Document Conventions
Microsoft Windows conventions are normally used for the standard presentation of
material when entering text, key sequences, prompts, messages, menu items, screen
elements, and so on.
Electrical warning icon indicates the presence of a hazard which could result in
electrical shock.
3BSE035041-600 9
Terminology About This User Manual
Warning icon indicates the presence of a hazard which could result in personal
injury.
Tip icon indicates advice on, for example, how to design your project or how to
use a certain function
Although Warning hazards are related to personal injury, and Caution hazards are
associated with equipment or property damage, it should be understood that
operation of damaged equipment could, under certain operational conditions, result
in degraded process performance leading to personal injury or death. Therefore,
fully comply with all Warning and Caution notices.
Terminology
A complete and comprehensive list of Terms is included in the System 800xA
Extended Automation (3BDS100972*). The listing included in Engineering
Concepts includes terms and definitions as they that apply to the 800xA system
where the usage is different from commonly accepted industry standard definitions
and definitions given in standard dictionaries such as Webster’s Dictionary of
10 3BSE035041-600
About This User Manual Terminology
Computer Terms. Terms that uniquely apply to this instruction may be included
here as part of this document.
Term/Acronym Description
RTDB Real Time Data Base.
A memory resident area in which real time data collected
from the process is stored in a generic format,
regardless of the communication protocol used for
gathering the data.
Data is stored in a compact format and RTDB is
characterized by very efficient procedures for read and
write access.
RTU Remote Terminal Unit
3BSE035041-600 11
Related Documentation About This User Manual
Related Documentation
A complete list of all documents applicable to the System 800xA Extended
Automation System is provided in Released User Documents (3BUA000263*). This
document lists applicable Release Notes and User Instructions. It is provided in
PDF format and is included on the Release Notes/Documentation media provided
with your system. Released User Documents are updated with each release and a
new file is provided that contains all user documents applicable for that release with
their applicable document number. Whenever a reference to a specific instruction is
made, the instruction number is included in the reference.
12 3BSE035041-600
Section 1 Introduction
3BSE035041-600 13
Release Information Section 1 Introduction
Release Information
Read the Release Notes for information concerning the specific release of PLC
Connect.
14 3BSE035041-600
Section 2 Getting Started
This section describes how to start engineering your system, i.e., how to use PLC
Connect specific process objects and signals to create representations of real world
objects.
• Creating Process Object Types and Signal Types on page 20 exemplifies how to
create types to base the objects and signals on.
• Creating Instances of Process Objects and Signals on page 29 exemplifies how
to create objects and signals based on the created types.
• Configuring Instances of Process Objects and Signals on page 40 exemplifies
how process objects and signals inherits settings from process object types and
signal types.
These are only examples intended to get you started. They do not cover all
configuration settings. For more information, including relevant considerations,
refer PLC Connect online help where the configurations aspects are described in
detail.
3BSE035041-600 15
Creating a New Control Network Object Section 2 Getting Started
8. Click Create.
16 3BSE035041-600
Section 2 Getting Started Configuring PLC Connect Services
2. Click the Configure tab in the Preview Area to produce the view shown in
Figure 1.
3. Click Configure in the Server Settings area. This starts the Choose
Connectivity Server Node dialog box.
4. Select the primary Connectivity Server Node where the PLC Connect Server
software is installed and click OK.
5. Click OK at the “configuration completed” message.
3BSE035041-600 17
SoftPoint and PLC Connect Coexistence Section 2 Getting Started
18 3BSE035041-600
Section 2 Getting Started Process Objects and Signals
3. Use the Object Browser to select the PLC Generic control network containing
the dragged object.
4. Select Deploy in the Aspect List Area.
5. Click Deploy in the Preview Area.
Repeat this procedure for any other SoftPoint Generic control networks.
3BSE035041-600 19
Creating Process Object Types and Signal Types Section 2 Getting Started
20 3BSE035041-600
Section 2 Getting Started Object Type Grouping
3. In the Aspect List area, select Generic Control Network Configuration aspect
as shown in Figure 4. This aspect is used to create new process object or signal
types.
3BSE035041-600 21
Create Signal Type Section 2 Getting Started
2. Select Object Type Group from the list, enter a name and click Create.
3. Right-click the Object Type Group object and select New Object from the
context menu to create a new object type or signal type.
22 3BSE035041-600
Section 2 Getting Started Create Process Object Type
6. Click OK. The new type is created as part of the PLC branch object.
7. Expand the PLC branch object to view the created signal type as shown in
Figure 5.
3BSE035041-600 23
Create Process Object Type Section 2 Getting Started
13. In the Aspect List area, select Process Object Configuration aspect. This aspect
as shown in Figure 7 is used to add instances of other signal or object types to
the created composite process object type.
24 3BSE035041-600
Section 2 Getting Started Create Process Object Type
16. In Create New Composite Object Type dialog box as shown Figure 8, select a
composite process object type from the Library Version.
3BSE035041-600 25
Create Process Object Type Section 2 Getting Started
19. Expand the composite process object type to view the added instance as shown
in Figure 9.
20. The last part of the instance name shows the type as shown in Figure 10.
21. In the Process Object Configuration aspect, click to add an instance of the
real signal type VolumeType. In this example, name the instance TankVolume is
used as shown in Figure 11.
26 3BSE035041-600
Section 2 Getting Started Create Process Object Type
b. Add instances of the created signal types to the composite process object
types. Figure 12 shows the object types used in this example.
Figure 12. Example Pump Object Type (Left) and Valve Object Type (Right)
3BSE035041-600 27
Create Process Object Type Section 2 Getting Started
30. In the Process Object Configuration aspect, click to add an instance of the
ValveType object type. Name the instance TankValve as shown in Figure 14.
31. Expand the added object instances to view the finished TankType object type as
shown in Figure 15.
28 3BSE035041-600
Section 2 Getting Started Creating Instances of Process Objects and Signals
3BSE035041-600 29
Create Controller Object Section 2 Getting Started
30 3BSE035041-600
Section 2 Getting Started Create Controller Object
8. In the displayed dialog box, edit the driver configuration for the selected
communication protocol as shown in Figure 19.
3BSE035041-600 31
Create Process Object Section 2 Getting Started
11. Expand the Generic Control Network object to view the created controller
object as shown in Figure 20.
32 3BSE035041-600
Section 2 Getting Started Create Process Object
17. Enter the number of new process objects to create as shown in Figure 21.
When more than one object is created, the character 1 will be appended to the
first object name, 2 to the second and so on. If you want the numbering to start
with something else than 1, enter the number in the Starting number box.
3BSE035041-600 33
Create Process Object Section 2 Getting Started
For more information on the settings, refer PLC Connect online help.
34 3BSE035041-600
Section 2 Getting Started Create Process Object
23. The last part of the process object name shows the type as shown in Figure 24.
Figure 24. Object Type Structure (Left), and Control Structure (Right)
24. Each composite process object contains the same set of process signals and
other process objects as the composite process object type. Expand an object to
view them as shown in right side of Figure 25.
Figure 25. Tank Object Type (Left), and Tank Object (Right)
3BSE035041-600 35
Connect Process Signal Section 2 Getting Started
36 3BSE035041-600
Section 2 Getting Started Connect Process Signal
27. In the Aspect List area, select Signal Configuration aspect as shown in
Figure 27. Under ID tab, you can connect the signal to a hardware address in
the controller.
28. Select Connected and enter the relevant signal hardware address. The address
format depends on the used communication protocol.
For more information on valid addresses, refer PLC Connect online help.
3BSE035041-600 37
Deploy Section 2 Getting Started
Deploy
To make configuration changes take effect, you have to deploy them.
Libraries
Object types that are derived from PLC Process Object Type, PLC Composite
Process Object Type, PLC Binary Extended Signal Type, PLC Integer Extended
Signal Type, PLC Real Extended Signal Type and PLC String Extended Signal Type
38 3BSE035041-600
Section 2 Getting Started Sub Folders and Libraries for PLC Object Types
can be created as child object of a library version object. The library version must be
placed under the PLC object in the Object Type Structure, else these objects will not
be available as base types when creating instances in the Control Structure.
3BSE035041-600 39
Configuring Instances of Process Objects and Signals Section 2 Getting Started
3. Select PLC object as the insertion point of the new library. The new library can
then be used to create object types in the Object Type Structure.
40 3BSE035041-600
Section 2 Getting Started Configuring Instances of Process Objects and Signals
b. Enter the signal value range in the controller in the Low limit in PLC and
High limit in PLC boxes. In this example, the default values are used.
c. Enter an engineering unit as shown Figure 30. (You can use Character
Map to add special characters.)
5. Click Apply.
3BSE035041-600 41
Configuring Instances of Process Objects and Signals Section 2 Getting Started
7. Select a relevant Generic Control Network object, and then a signal based on
the signal type. In this example, TankTemp is selected as shown in Figure 31.
42 3BSE035041-600
Section 2 Getting Started Configuring Instances of Process Objects and Signals
b. Clear the check box to use individual settings, and enter the new values. In
this example, 0 and 100 are entered as new low and high limits as shown
in Figure 33.
3BSE035041-600 43
Configuring Instances of Process Objects and Signals Section 2 Getting Started
44 3BSE035041-600
Section 2 Getting Started Configuring Instances of Process Objects and Signals
3BSE035041-600 45
Configuring Instances of Process Objects and Signals Section 2 Getting Started
46 3BSE035041-600
Section 3 Alarm and Event List
Configurations
PLC Connect supplies two customized alarm and event list configurations. By
associating them with Alarm and Event List aspects, you can create PLC Connect
specific alarm and event lists configured to show a selection of the alarms and
events.
• Control Blocked Signals List: This configuration shows the manually
controllable signals that are disabled. The values of a control blocked signal
can’t be changed by an operator.
• Forced Signals List: This configuration shows forced signals. Forced signals
are signals whose values are temporarily forced to a certain value, i.e., the
signal values appear to be constant regardless of the actual process values.
PLC alarm list exists only for the backward compatibility.
The customized alarm and event list configurations are located in the Library
Structure under the object Alarm & Event List Configurations, sub-object SPS
Alarm & Event List Configuration.
Alarm and event list configuration is described in the System 800xA - System
Operator Workplace Configuration (3BSE030322*).
Event Configurations
Event configuration influence the appearance of the alarm and event list.
3BSE035041-600 47
Alarm Text Group Section 3 Alarm and Event List Configurations
4. Enter values for Disable, Enable, Autodisable, Event On, Event Off and
Acknowledge text-boxes.
5. Click the Apply button.
The Control, Force, Unforce, Disable Control and Enable Control texts/fields are
moved to the Operator Actions Text Group.
48 3BSE035041-600
Section 3 Alarm and Event List Configurations Alarm Text Group
3BSE035041-600 49
Alarm Text Group Section 3 Alarm and Event List Configurations
50 3BSE035041-600
Section 4 External Access to Process Data
and Configuration
This section describes various methods for client applications to access PLC
Connect Real Time Data and other means of interaction with PLC Connect:
• Extension Processes on page 52 describes the use of extension processes in the
PLC Server.
• PLC Connect Real Time Data Access on page 53 describes an interface for
project specific variable access in the Real Time Database (RTDB).
• Communication Server Pre-Treatment on page 71 describes an interface for
project specific variable pre treatment in the Communication Server.
• PLC Connect Properties on page 79 describes accessible properties.
• Dial Manager Server Access on page 92 describes an interface for accessing
the Dial Manager Server.
PLC Server
The PLC Server manages all PLC Connect specific server processes. It is configured
automatically during the software installation. However, it may be necessary to
configure PLC Server processes manually for a specific control network for
example, to:
• Restart a server process for the control network.
• Add a program as a server process for the control network; for example, to use
a customer generated program with the 800xA System.
3BSE035041-600 51
Extension Processes Section 4 External Access to Process Data and Configuration
Extension Processes
You can use applications of your own together with PLC Connect. When you want
such an application to start and stop synchronized with the PLC Server, you have to
add the application as an extension process to the PLC Server.
However, the application you add cannot have any kind of user interface that require
manual input, for example, clicking an OK button. This kind of user interface will
halt program execution, since extension processes (you can have more than one) run
in the same service context as the PLC Server.
In a redundant PLC Connect connectivity server environment, the PLC Connect
Server Service ensures that an extension process executes only in the node that is
currently master. Automatic restart of the extension process in the event of a process
crash is also supported. However, the PLC Connect built in mechanism for real time
data replication between the two nodes, cannot be utilized. If the implementation in
an extension process in a redundant connectivity server environment requires any
kind of data replication in order to function, this has to be solved by the extension
process itself.
To add your application as an extension process:
1. Open the Plant Explorer Workplace
2. Go to Service Structure.
3. Select the object named PLC Server, Service.
4. Select the Service Group object for the desired control network.(the Service
Group object representing the node with the Connectivity Server that is
connected to the desired control network). An example is presented in Service
Structure Example on page 53.
5. Select Service Group Definition in the Aspect List Area.
6. Select the Special Configuration tab in the Preview Area to view the server
processes for the control network.
7. Click Help and refer to the information on how to add the application as an
extension process.
8. If you want to add the application as an extension process for other control
networks, repeat Step 4 to Step 7 for each of these control networks.
52 3BSE035041-600
Section 4 External Access to Process Data and Configuration PLC Connect Real Time Data
3BSE035041-600 53
Variable Access Section 4 External Access to Process Data and Configuration
process to the PLC Server, only as a standalone executable, with or without a user
interface.
Variable Access
The variable access is performed by one or more executable files independently
from the RTDB.
In the RTDB two classes are implemented: Variables and Variable.
Client means a certain instance of a Variables object, refer Variable Access Interface
on page 56. A program (.EXE file) can have several instances of Variables, although
in most cases there is only one instance.
54 3BSE035041-600
Section 4 External Access to Process Data and Configuration Subscription
The RTDB is able to inform the respective EXE file when a certain variable changes
its value.
An object is created based on the class Variables. Using the methods for the class it
is possible to create Variable objects or direct references to PLC Connect instances.
It is possible to Lock variables before writing values to them, via methods in the
Variable Access Interface, refer Variable Access Interface on page 56.
The holder of a Lock is identified by NodeId and UserId.
Locking can be done on a signal level, however the whole object is then locked.
Subscription
When a client (Variables object) is created, a queue will be allocated. In this queue
variable changes will be stored. In one queue changes from all subscribed variables
will be stored.
• Each client may have a queue of its own which is independent of other clients.
3BSE035041-600 55
Variable Access Interface Section 4 External Access to Process Data and Configuration
• It is not necessary to use the queue function, the calculation results can be
written at any time, for example, cyclically.
• Any number of clients can choose not to use queues.
Variable Change
A variable change is defined as an analog signal value that is changing by a value
higher than the defined signal hysteresis (the hysteresis may also be 0) or a binary
signal change (leading, trailing or both edges).
56 3BSE035041-600
Section 4 External Access to Process Data and Configuration Variable Access Properties and
Class Methods/properties
Variables Init(...)
Variables Init2(...)
Variables Valid As Boolean
Variables Changed As Boolean
Variables Subscribe (…) As Boolean
Variables SubscribeByCalcType(…) As Boolean
Variables GetEvent(…) As Boolean
Variables GetQueueInfo(…) As Boolean
Variables ClearQueueInfo()
Variables Item(…) As Variable
Variables ReadValue(…) As Boolean
Variables WriteValue(…) As Long
Variables ForceLock(…) As Long
Variables ReleaseLock(…) As Long
Variables LockedBy(…) As Long
Variables GetGUID(…) As Long
Variable ReadValue(…) As Boolean
3BSE035041-600 57
Variable Access Properties and Methods Section 4 External Access to Process Data and
Class Methods/properties
Variable WriteValue(…) As Long
Variable ReadMeasure(…) As Boolean
Variable ReadAttributes(…) As Boolean
Variable ReadLimit(…) As Boolean
Variable WriteLimit(…) As Long
Variable ForceLock(…) As Long
Variable ReleaseLock(…) As Long
Variable LockedBy(…) As Long
Variable Lower As Double
Variable Upper As Double
Variable LowerControlLim As Double
(Read/Write)
Variable UpperControlLim As Double
(Read/Write)
Variable IsInverted As Boolean
Variable IsEvent As Boolean
Variable IsTimeStamped As Boolean
Variable IsBlocked As Boolean
Variable IsControllable As Boolean
Variable IsControlBlocked As Boolean
Variable IsForced As Boolean
Variable Name As String
Variable GUID As String
58 3BSE035041-600
Section 4 External Access to Process Data and ConfigurationProperties and Methods for the Class
In these methods the sVarName in-parameter is the name of the variable in the PLC
Server. If the name is entered in the format “{xxxxxxxx-xxxx-xxxx-xxx-
xxxxxxxxxxxx}”, it will be interpreted as a GUID for a variable in the PLC server.
The variable name must be entered in the format “<controller name>:<object
name>. <signal name>”.
If composite process objects are used, there may be several <object name> items
in SignalName. refer also the code sample referred to in Sample Code on page
69.
Init
Syntax: Init(pSysCtxId As AfwSystemContextId, pSGId As
AfwServiceGroupId)
Used to identify the server.
pSysCtxId (in): the System Context Id.
pSGId (in): the Service Group Id.
Init2
Syntax: Init2(pObject As AfwObject)
Used to identify the server.
pObject (in): an object in the PLC Generic Control Network tree.
Valid
Syntax: Valid As Boolean
Always TRUE. (Exists only for backward compatibility reasons).
Changed
Syntax: Changed As Boolean
TRUE when there are one or several variable changes in the queue.
3BSE035041-600 59
Properties and Methods for the Class Variables Section 4 External Access to Process Data and
Subscribe
Syntax: Subscribe(lQueueMaxSize As Long, sVarName As
String,bFilter As Boolean ) As Boolean
Subscribes a variable for queue handling. Returns TRUE if variable found.
lQueueMaxSize (in): states the maximum number of allowed events in the queue.
Is only significant at the first call.
sVarName(in): returns the name of the variable.
bFilter (in): if TRUE, one variable change for each signal at most is queued (the
latest).
SubscribeByCalcType
Syntax: SubscribeByCalcType(lQueueMaxSize As Long
lCalcTypeLow As Long, lCalcTypeHigh As Long, bFilter As
Boolean ) As Boolean
For future use.
GetEvent
Syntax: GetEvent( sVarName As String, vntValue As Variant,
OPCQuality As Integer, TimeStamp As Date, lCalculationType As
Long, sVarParam As String, bOverFlow As Boolean ) As Boolean
Gets a variable change from the queue. Returns FALSE if the queue is empty.
SVarName(out): returns the name of the variable.
vntValue(out): returns the value of the signal.
OPCQuality(out): indicates the OPC quality of the variable.
TimeStamp(out): time stamp for value changed.
lCalculationType(out): selected calculation type. This user defined private data is
selected in the Calculations dialog box. To access it, click Calculations under the
Common tab of a Signal Configuration aspect for an I/O signal type or signal.
sVarParam(out): entered subscription parameter. This user defined private data is
also entered in the Calculations dialog box. To access it, see above.
bOverFlow (out): is TRUE if the number of events in the queue = lQueueMaxSize.
60 3BSE035041-600
Section 4 External Access to Process Data and ConfigurationProperties and Methods for the Class
GetQueueInfo
Syntax: GetQueueInfo(lCurrentQueueSize As Long,
lPeakQueueSize As Long, lTotalQueuedEvents As Long) As Boolean
Gives diagnostic information about a queue. Returns TRUE if call succeeded.
lCurrentQueueSize(out): returns size of queue
lPeakQueueSize(out): returns peak size value of the queue
lTotalQueuedEvents(out): returns number of queued events
ClearQueueInfo
Syntax: ClearQueueInfo()
Clears diagnostic information for a queue.
Item
Syntax: Item( sVarName As String) As Variable
Gets a reference to a named variable. If the variable is not found, ”Nothing” is
returned.
sVarName(in): name of the variable.
ReadValue
Syntax: ReadValue( sVarName As String, vntValue As Variant,
OPCQuality As Integer ) As Boolean
Reads the value of a named variable. FALSE if the variable is not found.
sVarName(in): name of the variable.
vntValue(out): returns the value of the signal.
OPCQuality(out): indicates the OPC quality of the variable.
There are also variants of the ReadValue method, refer More on Reading and
Writing on page 69.
3BSE035041-600 61
Properties and Methods for the Class Variables Section 4 External Access to Process Data and
WriteValue
If you write data to a signal connected to an external IO then that data will be
written to the controller.
ForceLock
Syntax: ForceLock( sVarName As String ) As Long
Called by an application if it needs to Lock a certain variable. The Lock will be held
until it is released by the application or until another application forces the Lock. If
the variable is already locked by other application, this call will force the Lock.
Returns status codes according to Table 3 on page 68.
sVarName(in): name of the variable.
ReleaseLock
Syntax: ReleaseLock( sVarName As String ) As Long
Called by an application when it wants to release a Lock for the variable.
Returns status codes according to Table 3 on page 68.
sVarName(in): name of the variable.
62 3BSE035041-600
Section 4 External Access to Process Data and ConfigurationProperties and Methods for the Class
LockedBy
Syntax: LockedBy( sVarName As String, sNodeId As String,
sUserId As String ) As Long
Method that returns the identification of the user, currently holding the Lock.
Returns status codes according to Table 3 on page 68. If the variable isn’t locked,
nodeId and UserId will be set to 200.
sVarName(in): name of the variable.
sNodeId(out): name of the node where the Lock is held.
sUserId(out): name of the user that holds the Lock.
GetGUID
Syntax: GetGUID( sVarName As String, sGUID As String ) As Long
Method that returns the GUID of the variable. Returns status codes according to
Table 3 on page 68. The method is intended to be used whenever an Event occurs
and the client needs to know the Event’s guid, since the GetEvent() function returns
an object name and not a guid.
sVarName(in): name of the variable.
sGUID(out): GUID of the variable.
ReadValue
It is recommended to instead use the method ReadValue in the class Variables,
refer also ReadValue on page 61.
Syntax: ReadValue( vntValue As Variant, OPCQuality As Integer
) As Boolean
Reads the value of the variable.
VntValue(out): returns the value of the signal.
OPCQuality(out): indicates the OPC quality of the variable.
3BSE035041-600 63
Properties and Methods for the Class Variable Section 4 External Access to Process Data and
WriteValue
It is recommended to instead use the method WriteValue in the class Variables,
refer also WriteValue on page 62.
If you write data to a signal connected to an external IO then that data will be
written to the controller.
ReadMeasure
Syntax: ReadMeasure( fLower As Double, fUpper As Double,
fLowerControlLim As Double, fUpperControlLim As Double,
bIsControllable As Boolean, bIsControlBlocked As Boolean,
bIsForced As Boolean) As Boolean
Reads measuring properties of the instance. Returns FALSE if the signal is not
analog.
fLower(out): Returns the lower limit of the range of measurement.
fUpper(out): Returns the upper limit of the range of measurement.
fLowerControlLim(out): Returns the lower control limit.
fUpperControlLim(out): Returns the upper control limit.
bIsControllable(out): indicates if the signal is controllable.
bIsControlBlocked(out): indicates if the signal is control blocked.
bIsForced As Boolean(out): indicates if the signal is forced.
64 3BSE035041-600
Section 4 External Access to Process Data and ConfigurationProperties and Methods for the Class
ReadAttributes
Syntax: ReadAttributes(bIsInverted As Boolean, bIsEvent As
Boolean, bIsTimeStamped As Boolean, bIsBlocked As Boolean,
bIsControllable As Boolean, bIsControlBlocked As Boolean,
bIsForced As Boolean) As Boolean
Returns FALSE if the signal is not boolean.
bIsInverted(out): returns TRUE if the signal is inverted.
bIsEvent(out): returns TRUE if the signal is an event or an alarm.
bIsTimeStamped(out): returns TRUE if the signal is an alarm time stamped in the
controller.
bIsBlocked(out): returns TRUE if the signal is blocked.
bIsControllable(out): returns TRUE if the signal is controllable.
bIsControlBlocked(out): returns TRUE if the signal is control blocked.
bIsForced(out): returns TRUE if the signal is forced.
ReadLimit
Syntax: ReadLimit(lLimitNumber As Long,lTypeLimiter As Long,
fOnLimit As Double, fOffLimit As Double) As Boolean
Returns FALSE if the signal is not analog.
lLimitNumber(in): state the sequence number of the limiter from 1 and up to 8, for
the limiters enabled in the object, in consecutive order from top to bottom on the
limiter tab in the Configuration Tools. For more info on Configuration Tools, refer
PLC Connect online help.
lTypeLimiter(out): has the value 0 for minimum-limiter and the value 1 for max.
fOnLimit(out): fOnLimit is the limit where the alarm is activated.
fOffLimit(out): is the limit where the alarm is deactivated.
WriteLimit
Syntax: WriteLimit(lLimitNumber As Long,lTypeLimiter As Long,
fOnLimit As Double, fOffLimit As Double) As Long
Affects only RTDB, and not configuration values set in PLC Connect
configuration aspects.
3BSE035041-600 65
Conditions When Writing a Variable Value Section 4 External Access to Process Data and
Returns status codes according to Table 3 on page 68. For example, a status code is
returned if arg LimitNumber + Limittype is out of range, i.e., not in [1,8] and [0,1]
respectively.
lLimitNumber(in): states the sequence number of the limiter from 1 and upwards
for the limiters enabled in the object, in consecutive order from top to bottom on the
limiter tab in the Configuration Tools.
lTypeLimiter(in): has the value 0 for minimum-limiter and the value 1 for max.
fOnLimit(in): fOnLimit is the limit where the alarm is activated.
fOffLimit(in): is the limit where the alarm is deactivated.
ForceLock
Syntax: ForceLock() As Long
Called by an application if it needs to Lock a certain variable. The Lock will be held
until it is released by the application or until another application forces the Lock. If
the variable is already locked by other application, this call will force the Lock.
Returns status codes according to Table 3 on page 68.
ReleaseLock
Syntax: ReleaseLock() As Long
Called by an application when it wants to release a Lock for the variable. Returns
status codes according to Table 3 on page 68.
LockedBy
Syntax: LockedBy( sNodeId As String, sUserId As String ) As
Long
Method that returns the identification of the user, currently holding the Lock.
Returns status codes according to Table 3 on page 68.
sNodeId(out): name of the node where the Lock is held.
SuserId(out): name of the user that holds the Lock.
66 3BSE035041-600
Section 4 External Access to Process Data and Configuration Conditions When Writing a Variable
3BSE035041-600 67
Status Codes for Methods Returning a Value of the Type Long Section 4 External Access to
Variables Variable
WriteValuesEx
WriteValueEx
ReleaseLock
ReleaseLock
WriteValues
WriteValue
WriteValue
ForceLock
ForceLock
WriteLimit
LockedBy
LockedBy
GetGuid
Value Description
68 3BSE035041-600
Section 4 External Access to Process Data and Configuration OPC Quality (In/Out)
Sample Code
Sample Subscribe
A Visual Basic 6.0 sample, Subscribe.vbp, can be found in the folder
\…\ABB Industrial IT\Operate IT\PLC
Connect\Samples\PLCVariableAccess\Subscribe.
3BSE035041-600 69
More on Reading and Writing Section 4 External Access to Process Data and Configuration
UTCTime: whether local time (value is FALSE) or UTC time (value is TRUE) is
used.
timestamp: the date and time.
WriteValueEx returns status codes according to Table 3 on page 68.
70 3BSE035041-600
Section 4 External Access to Process Data and Configuration Communication Server Pre-
UTCTime: whether local time (value is FALSE) or UTC time (value is TRUE) is
used.
timestamps: the date and time.
WriteValuess and WriteValuesEx return status codes according to Table 3 on page
68.
3BSE035041-600 71
Variable Pre Treatment Section 4 External Access to Process Data and Configuration
72 3BSE035041-600
Section 4 External Access to Process Data and Configuration Properties and Methods for the
Table 4. Interfaces
Class Method
AdsCsRtdbPreTreat4 Initialize()
AdsCsRtdbPreTreat4 ReInitialize()
AdsCsRtdbPreTreat4 OnlineNotification()
AdsCsRtdbPreTreat4 ValueChanged(…)
AdsCsRtdbPreTreat4 ValueLimit(…)
AdsCsRtdbPreTreat4 OnControl(…)
AdsCsRtdbPreTreat4 Terminate()
Initialize
Syntax: Initialize(obj As
AdsCsInterfacesLib.IAdsCsRtdbVariable2)
Enables the DLL to make arbitrary preparations at start-up.
3BSE035041-600 73
Properties and Methods for the Variable Pre Treatment Section 4 External Access to Process Data
Obj is a callback interface that makes it possible to read and write to signals, refer
also Callback Interface on page 76.
ReInitialize
Syntax: Reinitialize()
Enables the DLL to make arbitrary preparations after deploy. Must not run too long.
OnlineNotification
Syntax: OnlineNotification()
Called prior to a deploy (as opposed to ReInitialize that is called after a deploy).
Lets the user application do any preparations necessary before a deploy.
ValueChanged
Syntax: ValueChanged (sSignalName as String, vntProcessValue
As Variant, vntPreviousValue As Variant, vntNewValue As
Variant, OPCQuality As Integer, dtTimestamp as Date,
lCalculationType As Long, sPreParam As String)
Is called when the value of the variable is changed. sSignalName is the variable in
the format “<controller name>:<object name>.<signal name>”.
If composite process objects are used, there may be several <object name> items
in sSignalName. refer also the code sample referred to in Sample Code on page
78.
vntProcessValue is the value from the Communication driver. vntNewValue is the
value pre-treated by the DLL. vntPreviousValue is the previous value.
OPCQuality: indicates the OPC quality of the variable. dtTimestamp is the date
and time. lCalculationType is the selected calculation type. sPreParam is the
entered pre calculation parameter, refer Calculation Parameters for Pre Treatment
on page 78. The method may assign new values to vntNewValue and OPCQuality
before returning.
ValueLimit
Syntax: ValueLimit(sSignalName as String, vntValue As Variant,
OPCQuality As Integer, lCalculationType As Long, sPreLimParam
As String, bEnableLimiter1 As Boolean, lTypeLimiter1 As Long,
74 3BSE035041-600
Section 4 External Access to Process Data and Configuration Properties and Methods for the
OnControl
Syntax: OnControl(sSignalName as String, vntValue As Variant,
vntPreviousValue As Variant, vntNewValue As Variant,
OPCQuality As Integer, dtTimestamp as Date, lCalculationType
As Long, sPreParam As String)
Is called when the variable value is changed by a client. sSignalName is the variable
in the format “<controller name>:<object name>.<signal name>”.
If composite process objects are used, there may be several <object name> items
in sSignalName. refer also the code sample referred to in Sample Code on page
78.
vntValue is the value that the client has set. vntPreviousValue is the previous
value. OPCQuality: indicates the OPC quality of the variable. dtTimestamp is the
date and time. lCalculationType is the selected calculation type. sPreParam is the
entered pre calculation parameter, refer Calculation Parameters for Pre Treatment
on page 78. The method may assign a new value to vntNewValue before returning.
3BSE035041-600 75
Callback Interface Section 4 External Access to Process Data and Configuration
Terminate
Syntax: Terminate()
Enables the DLL to make arbitrary preparations at termination.
Callback Interface
The callback interface has two methods for accessing the RTDB: ReadValue and
WriteValue.
ReadValue
Syntax: ReadValue (sVarName As String, iProperty As Long,
vntValue As Variant, OPCQuality As Integer, dtTimestamp as
Date) As Long
Read the property value of a variable. Returns less than zero if the variable cannot
be read.
sVarName(in) is the variable name in the format “<controller name>:<object
name>.<signal name>”.
If composite process objects are used, there may be several <object name> items
in sSignalName. refer also the code sample referred to in Sample Code on page
78.
iProperty(in) is the property number in the signal PCA. “1” is the value property of
the signal. vntValue(out) returns the value of the property. OPCQuality: indicates
the OPC quality of the variable. dtTimestamp is the date and time.
WriteValue
If you write data to a signal connected to an external IO then that data will be
written to the controller.
76 3BSE035041-600
Section 4 External Access to Process Data and Configuration Configure Calculation Parameters
Calculation Types
Calculation types are user defined private data. It is possible to select a type when
you configure calculation parameters for a signal. If desired, you can use the
selected calculation types to determine the type of function (in your own
application) to be performed for a given signal. By selecting a certain type of
calculation, the same type of calculation (for example linearization) can be
performed on a collection of signals without having to keep a record of exactly
which signal to calculate.
3BSE035041-600 77
Sample Code Section 4 External Access to Process Data and Configuration
Sample Code
The C++ project, AdsPreTreat.vcproj, contains a code sample.
The project can be found in the folder …\ABB Industrial IT\Operate IT\PLC
Connect\Samples\PreTreat4.
78 3BSE035041-600
Section 4 External Access to Process Data and Configuration PLC Connect Properties
Accessible Properties
Accessible properties of the configuration aspects are described below:
• Location: indicates where in the aspect the property is set or its value viewed
when you work in Plant Explorer.
• Writable: if the property is writable or not, i.e., if its value can be changed.
3BSE035041-600 79
Accessible Properties Section 4 External Access to Process Data and Configuration
Data
Property Name Location Writable
Type
Server Data Event tab
LimitAutoDisable Limit auto disable box Integer Yes
Property
Location Data Type Writable
Name
GCNGuid Generic Control Network String Yes
Address Address box String Yes
80 3BSE035041-600
Section 4 External Access to Process Data and Configuration Accessible Properties
Data
Property Name Location Writable
Type
Disable Disable box String Yes
Enable Enable box String Yes
Autodisable Autodisable box String Yes
EventOn Event On box String Yes
EventOff Event Off box String Yes
Acknowledge Acknowledged box String Yes
Data
Property Name Location Writable
Type
Control Control box String Yes
ControlOn Control On box String Yes
ControlOff Control Off box String Yes
Force Force box String Yes
ForceOn Force On box String Yes
ForceOff Force Off String Yes
Unforce Unforce box String Yes
DisableControl Disable Control box String Yes
EnableControl Enable Control box String Yes
LimitChanged Limit Changed box String Yes
3BSE035041-600 81
Accessible Properties Section 4 External Access to Process Data and Configuration
Data
Property Name Location Writable
Type
Protocol settings tab
CommInfo Communication information String Yes
box
DriverInfo (not shown) String No
FileName (not shown) String Yes
AlarmOwner Alarm Owner box Boolean Yes
Redundancy setting
Failover Integer Yes
SlaveReadyLevel Integer Yes
Data
Property Name Location Writable
Type
AlarmOwner Alarm owner box Boolean Yes
UserDefProcessObjectValues User default process object Boolean Yes
values
ObjectInfo String Yes
82 3BSE035041-600
Section 4 External Access to Process Data and Configuration Accessible Properties
Data
Property Name Location Writable
Type
IsInstance (wether it is a (not shown) Boolean No
signal or signal type)
ID tab
ItemType (Binary = 0, Integer Variable type box Integer No
= 1, Real = 2, String = 3)
ItemUsage (Internal = 0, Not Connected/Connected Integer Yes
External = 1) option buttons
Address Address box String Yes
Common tab
UseDefSignalValues Use default signal values Boolean Yes
check box
Inverted Inverted check box Boolean Yes
UpdateInterval Update interval box Integer Yes
Calculations dialog box
CalcEnabled Accessible for data access Boolean Yes
check box
CalcTypeNo Calculation type drop-down list Integer Yes
CalcEdge (Lading = 0, Edge selection box Integer Yes
Trailing = 1, Both = 2)
CalcHysteresis Hysteresis box Real Yes
CalcParameter Left-hand Parameter box String Yes
CalcEnablePreCalc Enable pre treatment check Boolean Yes
box
3BSE035041-600 83
Accessible Properties Section 4 External Access to Process Data and Configuration
Data
Property Name Location Writable
Type
CalcPreParameter Parameter box below Enable String Yes
pre treatment check box
CalcEnableLimCalc Enable limit pre treatment Boolean Yes
check box
CalcLimParameter Parameter box below Enable String Yes
limit pre treatment check box
Controllable tab
UseDefControllableValues Use default controllable values Boolean Yes
check box
Controllable Is controllable check box Boolean Yes
OperActionsTextGroupName Operator Actions Text Group String Yes
LogOpActions Log operator actions check Boolean Yes
box
Common - Advanced dialog box
CtrlLimEnable Control Limits check box Boolean Yes
CtrlLimHigh High box Real Yes
CtrlLimLow Low box Real Yes
CtrlResponseEnabled Response check box Boolean Yes
CtrlResponseVar Variable box String Yes
CtrlResponseDelay Delay time box Integer Yes
Range tab
84 3BSE035041-600
Section 4 External Access to Process Data and Configuration Accessible Properties
Data
Property Name Location Writable
Type
UseDefRange Use default integer values Boolean Yes
check box
or
Use default real values check
box
LowLimit Low limit box Real Yes
HighLimit High limit box Real Yes
LowLimitPLC Low limit in PLC box Real Yes
HighLimitPLC High limit in PLC box Real Yes
Unit Engineering unit box String Yes
Precision Single/Double Precision Integer Yes
option buttons
Data
Property Name Location Writable
Type
Limiter tab
UseDefLimValuesX Use default limiter values Boolean Yes
check box
LimEnabledX Use Limiter Boolean Yes
LimNameX Name box String Yes
3BSE035041-600 85
Accessible Properties Section 4 External Access to Process Data and Configuration
Data
Property Name Location Writable
Type
LimTypeX (Max = 1, Min = Type drop-down list Integer Yes
0)
LimitX Limit box Real Yes
LimHysteresisX Hysteresis box Real Yes
Event tab
UseDefEventValuesX Use default event values Boolean Yes
check box
IsEventX Is an event check box Boolean Yes
TimeStampFromPLCX Time stamped from controller Boolean Yes
check box
LogStatusChgOffX Log status changes 'Off' check Boolean Yes
box
LogStatusChgOnX Log status changes 'On' check Boolean Yes
box
AlarmTextGroupNameX Alarm text group drop-down String Yes
list
OverrideDefCondNameX Override Default Condition Boolean Yes
Name check box
CondNameX Box under Override Default String Yes
Condition Name check box
Event2 tab
MMSNotifyVariableX Box under the When detected String Yes
notify variable check box
MessageX Message text box String Yes
EventTextBulkX Extended event text box String Yes
86 3BSE035041-600
Section 4 External Access to Process Data and Configuration Accessible Properties
Data
Property Name Location Writable
Type
Alarm tab
UseDefAlarmValuesX Use default alarm values Boolean Yes
check box
IsAlarmX Is an alarm check box Boolean Yes
AckTypeX (Normal = 0, Acknowledgement selection Integer Yes
None = 1, Disappears = 2) box
SeverityX(1) Severity box Integer Yes
FilterTimeX FilterTime box Integer Yes
SummaryAlarmXY Summary alarms for this event String Yes
list view
Alarm2 tab
MMSAckVariableX Box under the When String Yes
acknowledged notify check
box
ClassX Class box Integer Yes
(1) If you update many properties of this type at the same time, and alarm priority changes are
set to be automatically deployed, then the updating can take a long time.
Data
Property Name Location Writable
Type
IndexCorrection Index Correction box Integer Yes
IndexRegister Index Register box String Yes
NoOfRegisters Number Of Registers box Integer Yes
3BSE035041-600 87
Example - Change Signal Properties with Bulk Data ManagerSection 4 External Access to Process
Data
Property Name Location Writable
Type
PhoneNumber Phone Number box String Yes
PLCNo Controller Identity box String Yes
Protocol Protocol drop-down list String Yes
SchedTries # tries box Integer Yes
Data
Property Name Location Writable
Type
UseDefaultPLCValues Use Default PLC Values check Boolean Yes
box
IndexCorrection Index Correction box Integer Yes
IndexRegister Index Register box String Yes
NoOfRegisters # Registers box Integer Yes
StartRegister Start Register box String Yes
HistoryLog History Log drop-down list String Yes
Set up Options
3. In Excel, click Activate BDM in the Bulk Data Manager tool bar.
4. Select Bulk Data Manager > Options.
88 3BSE035041-600
Section 4 External Access to Process Data and Configuration Example - Change Signal Properties
Set up Properties
7. In Plant Explorer, go to Control Structure.
8. Select a relevant Generic Control Network object.
9. In the Aspect List area, select Control Structure aspect.
10. Drag it from Plant Explorer to cell A1 in Excel.
11. Return to Plant Explorer and select any Signal Configuration aspect.
12. Drag the aspect from Plant Explorer to the first free cell on row 1 in Excel. In
this example, it is E1.
3BSE035041-600 89
Example - Change Signal Properties with Bulk Data ManagerSection 4 External Access to Process
13. In the displayed dialog box, select the properties you want to configure. For
example, you can select Address, Controllable, ItemUsage and
UseDefControllableValues.
90 3BSE035041-600
Section 4 External Access to Process Data and Configuration Example - Change Signal Properties
Export Objects
16. In Plant Explorer, go to Control Structure.
17. Select the same Generic Control Network object as in Step 8.
18. Drag the Generic Control Network object from Plant Explorer to cell A2 in
Excel. The object and all objects under it will be exported.
Filter Objects
19. In Excel, select all cells.
20. Select Data > Filter > AutoFilter. This makes it possible to filter the objects in
Excel. For example, you can filter the objects on [Control Structure.Parent
Object]. Then when you select one process object, you will only see its signals.
3BSE035041-600 91
Dial Manager Server Access Section 4 External Access to Process Data and Configuration
Introduction
The Dial Manager Server is handling dialed communication, including initiating
and terminating calls requested from the Dial Panel or Dial Supervisor.
How to configure dialed communication is described in the Section 5, Configure
Dialed Communication.
The Dial Manager interface makes it is possible for a user written standalone
application to initiate and disconnect new calls. The application can be with or
without a user interface, and written in, for example, Visual Basic or C++. It can be
run on both server and client nodes.
92 3BSE035041-600
Section 4 External Access to Process Data and Configuration Prioritized Calls
Prioritized Calls
Prioritized calls are only accessible via the Dial Manager interface, and not at all
via the PLC Connect standard aspects Dial Panel and Dial Supervisor. Hence, in
order to make these call types available you must do this via a user written
application. When writing such an application you should take great care, and be
aware of the fact that calls in progress are disconnected unconditionally. Logical
errors in such an application can for example break an ongoing collection of
historic data from PLCs, or cause other unwanted behavior.
Prioritized calls makes it possible to interrupt other calls in progress, for example
when there are no free connections (lines). When interrupted, a call will not be
automatically re-established. Calls in progress will be disconnected as follows:
1. Time Limit
2. Manual Close
3. Permanent
4. History: Single Controller
5. Cyclic
6. Prioritized
Accessible Methods
The Dial Manager interface belongs to the library
ADSDIALMANAGERHDLRLib, and the accessible methods to the class
AdsDialMgrHandler.
ConnectPLC
Use this method to initiate a call to a controller.
3BSE035041-600 93
Accessible Methods Section 4 External Access to Process Data and Configuration
DisconnectPLC
Use this method to disconnect a call.
GetLineStatus
Use this method to get information on the status of relevant connections (lines).
94 3BSE035041-600
Section 4 External Access to Process Data and Configuration Notes on PLC Connect Real Time
Sample
This is a Visual Basic 6.0 sample, DialManagerOpenness.vbp, which can be found
in the directory \…\ABB Industrial IT\Operate IT\PLC
3BSE035041-600 95
Sample Section 4 External Access to Process Data and Configuration
96 3BSE035041-600
Section 5 Configure Dialed Communication
License Information: The dial manager is part of the PLC Connect Dialed
communication functionality which requires a separate license to run.
This section describes how to configure dialed communication:
• Basic Preparations on page 98 describes what you need to do before you can
start the configuration.
• Basic Configuration Example on page 99 describes an example configuration,
not including dialed history.
• Dialed History on page 113 gives an overview of how dialed history works in
relation to dialed controllers.
• Dialed History Configuration Example on page 115 describes an example
configuration of dialed history.
3BSE035041-600 97
Basic Preparations Section 5 Configure Dialed Communication
Basic Preparations
Before you can configure or use dialed communication, you have to start the Dial
Manager server, set up the modems to use, and create the relevant objects and
signals.
Setup Modems
2. To be able to dial up remote controllers, each communication port you want to
use has to be connected to a modem.
For more information on how to install a modem and set up dialing rules, refer to
the modem and Windows documentation.
98 3BSE035041-600
Section 5 Configure Dialed Communication Basic Configuration Example
when a call to a controller is initiated. Refer PLC Connect online help for more
information on how to set a signal to be an event and/or alarm.
Process objects of this type are used to monitor the communication status for a
dialed controller. Generally, it is hard to get informed when a cyclic call fails.
However, the signal Error in process objects of type CommunicationType will
generate an alarm when a cyclic call fails.
8. For one of the dialed controllers, create a process object based on the process
object type CommunicationType.
Refer PLC Connect online help for more information on how to create process
objects. Make sure to:
– place the process object under the dialed controller you want to monitor.
– define the object as communication, i.e., select Communication when
entering object information for the object.
– set the update time to about 10 000 ms when entering object information
for the object.
9. Repeat Step 8 for each additional dialed controller.
3BSE035041-600 99
Set up Protocols Section 5 Configure Dialed Communication
Set up Protocols
The first part is to set up the protocols to use.
Startup
The Dial Editor aspect is used to configure dialed communication for a specific
control network.
1. In Plant Explorer, go to Control Structure.
2. Select a relevant Generic Control Network object.
3. Add a Dial Editor aspect.
4. In the Aspect List area, select the aspect added.
5. In the detailed view, select Protocol Setup tab.
100 3BSE035041-600
Section 5 Configure Dialed Communication Set up Protocols
Add Protocols
In Protocol Setup tab as shown in Figure 46 has a table with information on the
defined protocols.
3BSE035041-600 101
Set up Protocols Section 5 Configure Dialed Communication
102 3BSE035041-600
Section 5 Configure Dialed Communication Set up Connections
Set up Connections
The next part is to set up the connections (lines) to use.
Under the Line Setup tab as shown in Figure 47 lists the information of the defined
connections.
The Attached to column shows the type/name of the modem connected to the
selected communication port, i.e., the modem name as defined in the Windows
Control Panel.
Add a Connection
1. Click Add.
2. Enter a name in displayed dialog box.
3. Click OK. The dialog box is closed, and the connection added to the table.
3BSE035041-600 103
Set up Connections Section 5 Configure Dialed Communication
Answer Description
“Modem answered OK” The text string “OK” was received as a reply.
“No answer from modem” Either the modem is not connected or the power is
off.
“Modem answers incorrectly” Data was received, but could not be interpreted.
“Invalid port number” The selected port number does probably not exist in
the computer.
11. If desired, repeat Step 1 to Step 10 for each other connection you want to add.
12. Select the Cyclic Call Setup tab.
104 3BSE035041-600
Section 5 Configure Dialed Communication Set up Cyclic Calls
An active (blue) cell in the table means that the controller is scheduled to be called
at the call time shown in the column header.
3BSE035041-600 105
Set up Priorities Section 5 Configure Dialed Communication
Schedule Calls
6. Click the cell in the table corresponding to the desired call time for a controller.
The cell becomes active (blue).
When you want to clear a scheduled call, click in the cell again.
7. Click Apply.
8. Right-click a cell in the table.
9. From the displayed context menu, select Set Column. All cells in the column
will be scheduled as calls.
You can use the context menu to edit call times, schedule or clear multiple calls,
and so on.
10. Click Apply.
11. If desired, schedule more calls as described above.
12. Select the Priority Setup tab.
Set up Priorities
The next part is to set up priorities.
Priorities are used to avoid dedicating modems for either manual or cyclic calls.
This way it is possible to allocate many modems for cyclic calls when no manual
calls are in progress and vice versa. Modem failures can also be handled by defining
how the remaining modems are to be used.
106 3BSE035041-600
Section 5 Configure Dialed Communication Set up Priorities
In the Priority Setup tab as shown in Figure 49 for an example, there is a tab for
each defined protocol with information on the priorities of the outgoing connections
using that protocol.
The number of priority levels corresponds to the number of modems handling cyclic
and manual calls, i.e., the number of outgoing connections using the protocol. For
each priority level you define the primary use (1st choice) as Cyclic or Manual and a
secondary use (2nd choice) as Cyclic, Manual or “Blank”.
The settings are for priority levels and not for specific modems.
3BSE035041-600 107
Priority Guidelines Section 5 Configure Dialed Communication
5. Click Apply.
6. Repeat Step 1 to Step 5 for each other protocol tab.
7. Review the priority guidelines in the next sub-section, or skip directly to the
next part, refer Set up Dialed Controllers on page 111.
Priority Guidelines
• Begin by setting up the top-most row with Manual as 1st choice and Cyclic as
2nd.
• If more than one outgoing line is available consider to set up a row with
Manual as 1st choice and an empty 2nd choice, to make sure one connection is
reserved for manual calls.
• If several lines are available and it’s important that cyclic calls are not blocked
by manual calls a row with Cyclic as 1st choice and 2nd choice empty can be
set up.
• If a lot of lines are available the remaining can be defined as Manual as 1st
choice and Cyclic as 2nd choice.
Basic Example
In this example, see Table 18, five connections have been defined as outgoing for a
protocol:
• One modem has been reserved for manual calls only (no 2nd choice).
• One modem has been reserved for cyclic calls only (no 2nd choice).
• When needed, the modems on the top-most and bottom-most rows are used for
manual calls, when no manual calls are requested, they can be used for cyclic
calls.
108 3BSE035041-600
Section 5 Configure Dialed Communication Priority Guidelines
• When needed, the modem on the second top-most row is used for cyclic calls,
when no cyclic calls are requested, it can be used for manual calls.
Assume that four cyclic calls are in progress and four manual requests are issued,
which requires the use of more modems than are currently available.
1. The first manual call is served immediately, as one modem has been reserved
for manual calls only.
2. The second manual request is queued and will get a modem as soon as one of
the cyclic calls completes.
3. The other two manual requests are not queued and the operator is informed that
the manual requests cannot be served, because cyclic calls are in progress and
no more modems are available.
3BSE035041-600 109
Priority Guidelines Section 5 Configure Dialed Communication
• When three manual calls are in progress, the calling of cyclic scheduled
controllers start when any of the manually started calls in progress are stopped.
When the first cyclic scheduled controller has been called, it is not possible to
have more than two manual calls in progress before the queue of cyclic
scheduled controllers is empty.
• When max one manual call is in progress, two cyclic scheduled controllers can
be called simultaneously.
• One line is always reserved for manual calls.
110 3BSE035041-600
Section 5 Configure Dialed Communication Set up Dialed Controllers
• One line is always reserved for manual calls (no 2:nd choice), and one for
cyclic calls (no 2:nd choice).
• When max one manual call is in progress, four lines can simultaneously be
used for cyclic calls if needed.
• If four manual calls are in progress when several controllers are to be called
cyclic, one line is always available for cyclic calls. After the first manual call
has stopped, the controllers queued for cyclic calls keep two lines until the
queue is empty (the rows with cyclic as 1:st choice). Max three manual calls
can be in progress as long as the queue of cyclic called controllers isn’t empty.
• When more lines are available they can be added with Manual as 1st choice and
Cyclic as 2nd.
• If it is not so important that the calling of cyclic scheduled controllers starts
immediately the row with Cyclic as 1:st and no 2:nd choice can have Manual as
2nd choice. The difference is that the calling of cyclic controllers starts on one
line when the first manual call stops.
3BSE035041-600 111
Set up Dialed Controllers Section 5 Configure Dialed Communication
In the aspect, you can enter communication settings for the dialed controller and
also default history settings. These history settings will be set later on as part of the
dialed history configuration example.
5. In the #tries box, enter the number of dial attempts for a cyclic call sequence
that is to be carried out before the call is considered to have failed.
6. Click Apply.
112 3BSE035041-600
Section 5 Configure Dialed Communication Dialed History
7. Repeat Step 1 to Step 6 for each other dialed controller in the control network.
Dialed History
Dialed history is used to collect historic data from process signals that don’t require
a permanent connection, for example, for signals used for statistic analysis or status
surveillance.
The server calls a controller at scheduled times to collect the historic data. These
calls are denoted cyclic calls. A collection can also be ordered manually with the
Dial Supervisor.
3BSE035041-600 113
Dialed History Section 5 Configure Dialed Communication
The dialed controller has to be programmed to sample each signal value periodically
and store the value in a circular data buffer as shown in Figure 51. When a value is
stored in a circular data buffer, the oldest sample value is overwritten with the new
sample value. There should be one data buffer for each signal. The required buffer
size depends on how often the values are collected. For example, a signal is sampled
and stored every half hour and the values are collected once every day. The data
buffer then should be configured to contain 48 values.
Create one index register in the controller for each data buffer to keep track of the
latest sampled value in a buffer. The index register value should be incremented
each time a new value is stored in the data buffer.
Depending on how the controller is programmed, the index register can hold a
number between 0 and [buffer size - 1], or between 1 and [buffer size]. In the first
case, the index correction has to be 0; in the second case, it has to be 1.
The index register value together with the index correction value and the buffer start
register address are used to find the stored sampled values in the controller as shown
in Figure 52. If for example the index register holds the value 55, then this is the
latest stored value and the reading starts on the following, i.e., if the start address is
100, then the reading is to start on R155, go backwards through R154 to the start
address and then continue from the start address + number of registers backwards to
R156. This is if the Index correction is 0. When the Index correction is 1, reading
starts on 154. An index correction of 0 means that the index register holds a value
between 0 and the number of registers - 1. When the index correction is 1 then the
index register holds a value between 1 and the number of registers.
114 3BSE035041-600
Section 5 Configure Dialed Communication PLC Time Stamp
The maximal number of values that can be read each time is 32. If the number of
registers is more than that they are read 32 registers at a time until all have been
read.
The two registers in the controller should be of data type integer (16 bits), and the
first register should hold the date in the format MMDD. MM is the month and DD is
the day. For example, 0709 equals 9 July and 1122 equals 22 November. If the date
in the controller is later than the date in the computer, then the previous year is used.
The second register should hold the time in the format HHMMS. HH is the hour,
MM is the minute, and S is tens of seconds. For example, 23595 equals 23:59:50,
and 09203 equals 09:20:30. Midnight is 00000.
The time stamp from controller (only for binary signals) is available only when
the selected controller type and communication protocol permit this. The valid
communication protocols are Comli (telegram type “Å” and “Ä”) and Sattbus. It
is not displayed if OPC is used.
3BSE035041-600 115
Preparations Section 5 Configure Dialed Communication
Preparations
The first part contains some preparations.
Import DialHistoryType
1. Start the Import/Export tool. Refer to the Industrial IT 800xA - System
Administration and Security (3BSE037410*) for more information on the
Import/Export tool.
2. Use the Import/Export tool to import the process object type DialHistoryType.
It can be found in the file \...\ABB Industrial IT\Operate IT\PLC
Connect\Data\ObjectTypes\DialHistoryType.afw.
– define the object as a structure, i.e., select Structure when entering object
information for the object.
The signals in the created object are not connected. Don’t change their initial
configuration.
4. Repeat Step 3 for each additional dialed controller part of any Generic Control
Network object.
116 3BSE035041-600
Section 5 Configure Dialed Communication Enter Default History Settings
3BSE035041-600 117
Enter Default History Settings Section 5 Configure Dialed Communication
In the aspect, you can enter default history settings. The communication settings
were entered earlier on as part of the basic configuration example.
The index register address, data buffer size, index correction and PLC time stamp
register address mentioned below depend on how the dialed controller is
programmed. For more information, refer Dialed History on page 113.
3. In the Index Register box, enter the index register address. The index register is
the register used in the dialed controller to keep track of where the latest
historic value for the signal is stored.
4. In the No Of Registers box, enter the number of registers used in the dialed
controller to store the historic values for the signal. This number is also called
the data buffer size.
5. In the Index Correction box, enter the index correction value. This value is used
to offset where the latest historic value is stored. It is usually equal to 0 or 1.
118 3BSE035041-600
Section 5 Configure Dialed Communication Enter Signal History Settings
6. Select either:
– Use Computer Time Stamp. When historic data is collected, the time for
the call to the controller is used as time of the last sample.
– Use PLC Time Stamp. When historic data is collected, the time of the last
sample is read from two registers in the controller. Enter the address for
the first of these two registers in the Address box.
7. Click Apply.
8. Repeat Step 1 to Step 6 for each other dialed controller in the control network.
3BSE035041-600 119
Enter Signal History Settings Section 5 Configure Dialed Communication
The start register address, index register address, data buffer size, index
correction and PLC time stamp register address mentioned below depend on how
the dialed controller is programmed. For more information, refer Dialed History
on page 113.
5. From the History Log drop-down list, select the relevant dialed history direct
log.
Make sure to select a direct log, and not any hierarchical log.
6. Enter the start register address in the Start register box. The start register is the
first of the registers used in the dialed controller to store the historic values for
the signal.
7. To use the default history settings, select the Use Default PLC Values check
box, and then skip to the next step. Otherwise, clear it and then:
– In the Index Register box, enter the index register address. The index
register is the register used in the dialed controller to keep track of where
the latest historic value for the signal is stored.
– In the # Registers box, enter the number of registers used in the dialed
controller to store the historic values for the signal. This number is also
called the data buffer size.
– In the Index Correction box, enter the index correction value. This value is
used to offset where the latest historic value is stored. It is usually equal to
0 or 1.
– Select either Use Computer Time Stamp or Use PLC Time Stamp. When
historic data is collected, the time stamp is used to determine the time of
the last sample.
Computer time stamp: the time for the call to the controller is used.
PLC time stamp: the time is read from two registers in the controller. Enter
the address for the first of these two registers in the Address box.
8. Click Apply.
9. Repeat Step 1 to Step 6 for each other signal part of a dialed controller.
120 3BSE035041-600
Section 5 Configure Dialed Communication Enter Signal History Settings
3BSE035041-600 121
Enter Signal History Settings Section 5 Configure Dialed Communication
122 3BSE035041-600
INDEX
A ConnectPLC Method 93
Address 37 Control Blocked Signals 47
Alarm 47, 80, 85 Control Network 21, 29
Alarm and Event List 47 Control network setup 15
alarm owner 82 Controller 37, 82, 97, 111, 114
alarmowner 82 Address 37
Buffer Size 114
B Collect Historical Data 113
Buffer Size 114 Data Buffer 114
Bulk Data Manager 79, 88 Dialed 97
Driver 31
Index Register 114
C
Name 116
Calculation Type 74 to 75, 77
Setup 111, 117, 119
Call
Time Stamp 115
Cyclic 105
Cyclic Call 97, 106
Disconnect 93
Call Time 106
Manually Ordered 97
Setup 105
Permanent 97
Prioritized 93
Time Limited 97 D
Call Time 106 Data Buffer 114
Client 54 Database 55
Communication Deploy 38
Parameter 31, 34 Dial Editor 100
Settings 112 Dial Manager 92, 98
Communication Port 98 Dial Manager Access 95
COM-port 102, 104 Dial Supervisor 113
Configuration Dialed Communication 87 to 88, 97
Deploy 38 Configuration 99
Connection 97, 103 Dialed Controller 97
Add 103 Dialed History
Configure 104 Configuration Example 115
Setup 103 DialHistoryType 116
3BSE035041-600 123
Index
E M
Event 47, 85 Manually Controllable Signals List 47
Manually Ordered Call 97
F Method 56 to 57
Feature 13 Modem 98, 106 to 107
Force Check 104
Signal List 47
Function 13 O
Object 82
G Option
Generic Control Network Configuration 21, 29 Dialed Controller 97
GetLineStatus Method 94
P
H Parameters 78
Hardware Address 37 Permanent Call 97
Hierarchical Log 117 PLC 82, 87 to 88, 114
History 113 PLC Connect 13
Configuration Dialed 115 PLC connect
Log 117 Control network setup 15
Settings 117, 119 PLC Server 98
PLC Time Stamp 115
I Port 98, 102, 104
Incoming Connection 97 Pre Treatment 71, 73, 78
Index Register 114 Prioritized 93
Interface 56, 71 Priority 107
Introduction 53, 71 Guidelines 108
Setup 106
Process 98
L
Process Object 82
Line
Process Object Configuration 24
Add 103
Property 56 to 57, 79
Setup 103
Alarm 80, 85
List
Controller 82
124 3BSE035041-600
Index
Dialed Communication 87 to 88
Event 85
Process Object 82
Signal 83
Protocol 107, 112
Add 101
Configure 101
Priority 107
Setup 100
R
Real Time Database 53
Remote Controller 97
RTDB 53
Rules 98
S
Scheduled Call 97
Server 54, 71, 92, 98
Signal 83
History 119
Signal Type 83
Stamp 115
Status
Codes 68
Switchboard 112
T
Time 106, 115
Time Limited Call 97
Time Stamp 115
U
Update 38
V
Variable Access 54, 56 to 57, 69
3BSE035041-600 125
Index
126 3BSE035041-600
Contact us
3BSE035041-600
www.abb.com/800xA
www.abb.com/controlsystems All rights reserved.