CitectSCADA Driver Information

Driver: ABCLX

Version: v3.02.03.000+

Relevant Versions of CitectSCADA: v5.41r0+

Author: Paul Hanna

Date: 18November 2005

Document Version: 1.00

Document Revision: 3

Document Structure

Introduction

Checklist

Hardware Requirements

Required Hardware

Software Requirements

Required Software

Additional Software

How ABCLX works

CIP Connections

Status Tags

Session Control

ControlLogix Configurations

Standard ControlLogix Configuration

No Redundant PLC

‘Hot-Swappable’ Redundant PLC

Redundant PLC

Remote ControlLogix CPU Configuration

Setting up an ABCLX IO Device

CitectSCADA Kernel Diagnostics

ABCLX Kernel Diagnostics

Citect.ini Parameters

ABCLX Redundancy

Changing from ABLOGIX to ABCLX

Troubleshooting

Common problems (FAQs and Knowledgebase articles)

Known Issues

Optimal Setup

Glossary

Introduction

This document contains information relating to the use of Citect’s ABCLX driver.Although all efforts have been taken to ensure the accuracy of the content of this document, the author and Citect Pty Ltd do not directly, indirectly or in any way imply that there is any form of guarantee, warranty or form of responsibility upon the author or organisation relating to the information contained in said document.

This document is intended as a guide and should only be used for information purposes only.
Checklist:

Before choosing ABCLX driver

  • Ensure you have installed the latest ABCLX driverpack from Citect’s Driverweb (
  • Ensure you have the latest ABCLX.chm help file from Citect’s Driverweb (
  • Ensure that you are attempting to communicate with an Allen Bradley ControlLogix, CompactLogix or FlexLogix PLC.
  • Ensure that the first connection between the PC and the PLC is an Ethernet connection.
  • Ensure that you will not need to be making online changes to the system. (Refer to clarification in Section X).
  • If you are planning to use ABCLX over a radio/wireless/dialup/slow connection, ensure you are using ABCLX driver v3.02.03.X.
  • Ensure you will not exceed the 32 CIP connections per ENBT module limitation.

Hardware Requirements

Required Hardware

Citect’s ABCLX driver has been developed to communicate to the following industrial equipment:

Allen Bradley ControlLogix

Allen Bradley CompactLogix

Allen Bradley FlexLogix

Development and testing of the ABCLX driver was conducted on Allen Bradley ControlLogix PLCs, however the method of communication, namely Allen Bradley’s CIP messaging architecture, is common to the ControlLogix, FlexLogix and CompactLogix PLCs.

Communication between the PC and PLC must be by means of Ethernet as the hardware layer and TCPIP as the protocol transport layer. It is however possible to have the first jump from the PC to be Ethernet to a ControlLogix Gateway then along the backplane to a Data Highway/ControlNet/etc module and through to an equivalent module in a rack containing the PLCs CPU.

Please Note

It is possible to have numerous jumps such as from Ethernet to

DH+ to ControlNet to DH+ to the PLCs CPU. It is only important

that the first jump from the PC is Ethernet.

Software Requirements

Required Software

CitectSCADA v5.41r0+

ABCLX driver v3.02.03.000+

The introduction of CitectSCADA 5.41r0 saw the implementation of Object Identifiers (OIDs) for the majority of tag based drivers. ABCLX is a tag based driver that uses OIDs for data exchange between the PLC and PC as well as PC to PC (Citect to Citect).

ABCLX will not work on CitectSCADA versions previous to 5.41r0.

Please Note

Citect strongly recommends that you familiarise yourself with KB article Q4074 and take the appropriate action.

CitectSCADA v6.0r1 was used for this documentation, and although ABCLX should have no issue operating reliably on CitectSCADA 5.41 and above, Citect recommends using CitectSCADA v6+ due to substantial work that was done with OID Security.

Additional Software

Please Note

No additional software is required to be used for Citect’s ABCLX

driver to talk to ControlLogix, FlexLogix and CompactLogix PLCs.

Rockwell RSLinx (v2.42 Build 18)and Rockwell RSLogix 5000 Standard Edition ( Revision 13)was used for this documentation.

How ABCLX Works

KB article Q4001 details how ABCLX works.

Here is a description of how CitectSCADA brings ABCLX online.

Figure X

From Figure X you can see that Init Channel starts the driver, which then begins to download tags. Init Unit will check back to see if the Driver is polling every watchtime. Projects with a large number of tags (approx 5000+) tend to take more time to download and subscribe the tags, so Init Unit may need to check back a few times. This is where extending the value for the watchtime may be useful. You do however need to be careful in doing this as the watchtime is also the check to see if the PLC is still online - so if you have a large watchtime and your PLC goes offline, it may take the entire watchtime to attempt to re-establish comms (which is the entire process of downloading tags, subscribing them and polling them takes place - hence potential additional delays).

Lack of idle time in the PLC processor is also a possible throttle point. If there is insufficient idle time in the PLC processor, then Citect driver requests are split up to fit into the small idle time that exists. This means that for all of the Citect driver request can be stretched out over a significant period of time when you consider that it is attempting to download tags, subscribe them and finally poll them. Customers are advised to aim to have sufficient overhead timeslice in the PLC processor to allow for the Citect driver to establish and maintain comms.

CIP Connections

Each ENBT Ethernet module has a maximum of 32 CIP connections. Citect’s ABCLX driver uses four CIP connections by default with the following exceptions:

  1. There are less than 4 ABCLX optimised packets in the project, then the ABCLX driver will use the same number of CIP connections as optimised packets that exist (i.e. 2 optimised packets means ABCLX will use 2 CIP connections to the PLC).
  1. There are more than 4 ABCLX optimised packets in the project and the user has increased the default value of ForwardOpenPoolSize in the citect.ini file to some other value. This may be done to increase the performance of ABCLX. Please refer to Section X for further information.

Care should be taken when designing the system so as to ensure that you do not run out of available connections. This is especially true for systems with redundant ENBT modules (i.e. multiple communication paths).

Example 1:

For instance, if you intend to have a system as shown in Figure X, you should calculate the number of CIP connections that are left free for inter-PLC communications (which also use CIP messaging) as well as the CIP connections used by the programming software (RSLOGIX5000).

In this case (using default settings where there are 4 or more optimised packets), there would be 4 CIP connections on the ENBT card being used by the Primary IO Server and another 4 CIP connections on the same ENBT module being used by the Standby IO Server. A total of 8 CIP connections out of a possible 32. This leaves 24 CIP connections on the Ethernet card for the programming software and inter-PLC communications to take place.

If however, the user had increased the ForwardOpenPoolSize parameter in the citect.ini file to 16 in order to increase performance of the ABCLX driver (where there were 16 or more optimised packets), we would be using all 32 connections to the Ethernet module on the ControlLogix Gateway. This would not allow one of the IO Servers to come online if programming software (i.e. RSLOGIX5000) or any inter-PLC communications were taking place.

Example 2

In Figure X, we see that if we were using default settings where there are 4 or more optimised packets, there would be 8 CIP connections (4 CIP connections for the Primary PLC and 4 for the Standby PLC) on the ENBT card in the ControlLogix Gateway being used by the Primary IO Server and another 8 CIP connections on the same ENBT module being used by the Standby IO Server.

A total of 16 CIP connections on the ENBT module in the ControlLogix Gateway out of a possible 32. This leaves 16 CIP connections on the Ethernet card for the programming software and inter-PLC communications to take place.

Please Note

In this case the ENBT modules in the ControlLogix Gateway (the one connected to the PC’s and the other one connected to the PLCs) has 16 CIP connections used, while the ENBT modules in each of the PLCs only has 8 CIP connections used. This is useful to know as it aids you in the design of your system.

Status Tags

ABCLX is capable of monitoring tags in the PLC to ascertain if the IO Device is online or offline. For further information please refer to the Status Tag section in the ABCLX Help File under “Advanced configuration and maintenance”.

Session Control

ABCLX has a feature called Session Control. This should be used instead of Citect’s IODeviceControl() cicode function.

You can use session control to release any current references to tags on the ControlLogix PLCs. This is required if you want to modify or delete any of your PLC tags, as the Logix5000 software cannot access a tag if CitectSCADA is currently subscribed to it. You can also use session control to load a refreshed tag list from a PLC.

Session control is achieved by using the SessionDisable:x tag. This tag needs to be configured on a virtual device on a virtual channel. The virtual channel is specified by entering 0.0.0.0 as the IP address in the Special Options field of the Ports form. There should be a single virtual port and virtual device configured for each I/O server, and the virtual devices should not be configured for redundancy; i.e., the network numbers for the virtual units should not be the same. Otherwise it is not possible to communicate with a specific virtual unit from a CitectSCADA client.

Device Data Description / Citect Address Format / Access rights / Citect Data Type
Session Disable and Enable / SessionDisable: x / R/W / INTEGER

Where:

x = / the address entered for the specified device in the I/O Devices form. It needs to be unique across all systems.

If this tag is written to with a 1, the session is disabled. Writing a 0 to this tag will re-enable the session.

Example

The following example will operate on the I/O Device with 123 in the address field of the I/O Device Form.

Firstly, create a virtual channel by entering 0.0.0.0 as the IP address in Special Opt field in Ports Form.

Create a virtual device.

Create a virtual tag on the virtual device.

This will allow you to control the session on IODev device by writting 0 or 1 to the virtual tag CI_Session_Control.

ControlLogix Configurations

Standard ControlLogix Configuration (no PLC redundancy)

CLX Configuration 1

System:

Single PC

Single ethernet network

Single ethernet card on PC

Single ethernet card on PLC

N PLCs

Details:

No Redundancy

CLX Configuration 2

System:

Single PC

Single ethernet network

Dual ethernet cards on PC

N PLCs

Details:

Ethernet network card on PC redundancy

CLX Configuration 3

System:

Single PC

Dual ethernet network

Dual ethernet card on PC

Dual ethernet card on PLC

N PLCs

Details:

Ethernet network card on PC redundancy

Ethernet network card on PLC redundancy

Ethernet network redundancy


CLX Configuration 4

System:

Two PCs

Single ethernet network

Single ethernet card on PCs

Single ethernet card on PLC

N PLCs

Details:

PC redundancy

Citect redundancy

CLX Configuration 5

System:

Two PCs

Single ethernet network

Dual ethernet cards on PC

Single ethernet card on PLC

N PLCs

Details:

PC Redundancy

Citect redundancy

Ethernet network card on PCs redundancy

CLX Configuration 6

System:

Two PCs

Dual ethernet networks

Dual ethernet cards on PC

Dual ethernet cards on PLC

N PLCs

Details:

PC redundancy

Citect redundancy

Ethernet network card on PCs redundancy

Ethernet network card on PLC redundancy

Ethernet network redundancy


Standard ControlLogix Configuration (‘Hot-Swappable’ PLC Redundancy)

CLX Configuration 7

System:

Single PC

Single ethernet network

Single ethernet card on PC

Single ethernet card on ControlLogix rack

Single controlnet network

Single controlnet card on PLC rack

Single controlnet card on each PLC

Two ControlLogix PLCs

Single ControlLogix PLC rack

Single SRM module on each PLC (with optical cable)

Single Remote IO (RIO) ControlLogix rack

Single controlnet card on Remote IO (RIO) ControlLogix rack

Details:

“Bumpless” PLC redundancy via CNet/SRMs

CLX Configuration 8

System:

Single PC

Single ethernet network

Dual ethernet card on PC

Dual ethernet card on ControlLogix rack

Single controlnet network

Single controlnet card on ControlLogix rack

Single controlnet card on each PLC

Two ControlLogix PLCs

Single ControlLogix PLC rack

Single SRM module on each PLC (with optical cable)

Single Remote IO (RIO) ControlLogix rack

Single controlnet card on Remote IO (RIO) ControlLogix rack

Details:

“Bumpless” PLC redundancy via CNet/SRMs

Ethernet network card on PCs redundancy

Ethernet network card on ControlLogix rack redundancy

CLX Configuration 9

System:

Single PC

Dual ethernet network

Dual ethernet card on PC

Dual ethernet card on ControlLogix rack

Dual controlnet network

Dual controlnet card on PLC rack

Dual controlnet card on each PLC

Two ControlLogix PLCs

Single ControlLogix PLC rack

Single SRM module on each PLC (with optical cable)

Single Remote IO (RIO) ControlLogix rack

Dual controlnet card on Remote IO (RIO) ControlLogix rack

Details:

“Bumpless” PLC redundancy via CNet/SRMs

Ethernet network card on PCs redundancy

Ethernet network card on ControlLogix rack redundancy

Ethernet network redundancy

ControlNet network redundancy

ControlNet network card on ControlLogix rack redundancy

ControlNet network card on ControlLogix PLCs redundancy

ControlNet network card on ControlLogix Remote IO (RIO) rack redundancy

CLX Configuration 10

System:

Two PCs

Single ethernet network

Single ethernet card on PC

Single ethernet card on ControlLogix rack

Dual controlnet network

Dual controlnet card on PLC rack

Dual controlnet card on each PLC

Two ControlLogix PLCs

Dual ControlLogix PLC rack

Single SRM module on each PLC (with optical cable)

Single Remote IO (RIO) ControlLogix rack

Dual controlnet card on Remote IO (RIO) ControlLogix rack

Details:

PC redundancy

Citect redundancy

“Bumpless” PLC redundancy via CNet/SRMs

ControlNet network redundancy

ControlNet network card on ControlLogix rack redundancy

ControlNet network card on ControlLogix PLCs redundancy

ControlNet network card on ControlLogix Remote IO (RIO) rack redundancy

Please Note

Added redundancy is possible by implementing:

a)Redundant Power Supplies on items indicated with *.

b)Redundant IO cards in Allen Bradley ControlLogix IO Rack

c)Device redundancy

d)Redundant Ethernet Network

CLX Configuration 11

System:

Two PCs

Dual ethernet network

Dual ethernet card on PC

Dual ethernet card on ControlLogix rack

Dual controlnet network

Dual controlnet card on PLC rack

Dual controlnet card on each PLC

Two ControlLogix PLCs

Dual ControlLogix PLC rack

Single SRM module on each PLC (with optical cable)

Single Remote IO (RIO) ControlLogix rack

Dual controlnet card on Remote IO (RIO) ControlLogix rack

Details:

PC redundancy

Citect redundancy

“Bumpless” PLC redundancy via CNet/SRMs

Ethernet network card on PCs redundancy

Ethernet network card on ControlLogix rack redundancy

Ethernet network redundancy

ControlNet network redundancy

ControlNet network card on ControlLogix rack redundancy

ControlNet network card on ControlLogix PLCs redundancy

ControlNet network card on ControlLogix Remote IO (RIO) rack redundancy

Please Note

Added redundancy is possible by implementing:

a)Redundant Power Supplies on items indicated with *.

b)Redundant IO cards in Allen Bradley ControlLogix IO Rack

c)Device redundancy

Redundant PLC

Configuration 12

Configuration 13

Remote ControlLogix CPU Configuration

This information can be found in the ABCLX help file navigating to the section "Advanced configuration and maintenance" and selecting "Using a route path to locate a remote CPU ".

It is important to realise the following:

The route path takes the form /P:m/A:n,/P:m/A:n,etc

/P:m is the PORT that we wish to travel along. This will either be the Backplane (1), Port A (2), Port B (3), Port C (4) or Reserved (0).

/A:n is the ADDRESS that we wish to use. This will either be a CNET address, IP Address, Slot # on the backplane or DH address.

Please Note

If you are trying to take a route path from one ethernet card to another you will need to use /P:2 for the PORT and the IP address of the destination ethernet card as the ADDRESS (i.e. /A:n).

Example

The following is an example of how to configure an ABCLX route path.

Figure X illustrates a PC running CitectSCADA and utilising ABCLX.

Please Note

ControlLogix Gateways may or may not have a processor (CPU) in it.

This is not the only configuration possible, the only limitation is that the first link from the PC to the network must be Ethernet.

To set this up in CitectSCADA, in the Ports form, the IP address of the ENBT card in the ControlLogix Gateway should be entered in the ‘Special Options’ field and appended with the slot number of the ENBT module.

You are then required to enter the route path in the citect.ini file as follows:

The syntax for the first example (solid line) would be:

IOServerName.PortName.RoutePath=/P:1/A:3,/P:2/A:23,/P:1/A:9,/P:2/A:123.234.0.124,/P:1/A:6

The syntax for the second example would be:

IOServerName.PortName.RoutePath=/P:1/A:3,/P:2/A:23,/P:1/A:7,/P:2/A:17,/P:1/A:6

Setting up an ABCLX IO Device

Define an I/O Server

Figure 1

The I/O Server form lists all I/O Servers used in the CitectSCADA project. Each I/O Server record defines a separate I/O Server within the project.
Field / Value
Server Name / A unique name (up to 32 alphanumeric characters) per IO Server. This is used by CitectSCADA in the Boards form.
Comment / Any useful comment. This is stored in the scanner.dbf file of the Citect project.

Table 1

Define a Board