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:
- 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).
- 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 TypeSession 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 / ValueServer 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