Below are some helpful troubleshooting steps to resolve bad data quality for tags with a Data Source of ABLogix and ABClassic for communications to Allen Bradley ControlLogix, CompactLogix, GuardLogix, Micro800, MicroLogix, SLC 500, and PLC-5 controllers.
ABLogix or ABClassic
To communicate to ControlLogix, CompactLogix, GuardLogix, and Micro800 choose AB Logix for the Driver type. For MicroLogix, SLC 500, and PLC-5 choose AB Classic.
ControlLogix Backplane and CPU Slot
When communicating to ControlLogix processors the Backplane and Slot number must be correctly set.
Default Network Adapter
The AB Logix and AB Classic drivers commutate out of the default network adapter. View Set Default Network Adapter for Driver Interfaces to see how to set the default adapter on Windows.
When connecting to a controller the device will need to be reachable from the OAS system. Use Windows Command Prompt or Linux terminal where the OAS Engine is running to ping the device to verify it is reachable.
The Address field in each tag should be set to a variable name or address that exists in the online controller.
When interfacing with AB Logix controllers use the Browse button to select the correct address from the on-line controller.
See One Click Allen Bradley to automate setup of addressing from either online controllers or offline program files.
If an Address is incorrectly defined to something that does not exist in the controller a System Error will be posted under Configure-System Errors listing all addresses that are invalid.
Use CSV Export under Configure-Tags to open with MS Excel and to search for the tags that contain the invalid addresses that are listed. The System Errors are also logged to text files into the OAS Error Log directory specified under Configure-Options-System Logging.
AB Data Type for Strings
When using AB Logix the AB Data Type will need to be set to STR if the variable in the controller is a string. Set AB Data Type to AUTO for all other variable types.
Also match the OAS tag Data Type to the correct value type to be set. If you are unsure of the data type use Object to see the result.
Note: If you are using Gain and Offset in a tag to scale an integer value to a floating point value use Double Float or Single Float as the Data Type.
One or More Invalid Addresses
If one or more of the Tags defined to the Driver Interface has invalid address defined or the address does not exist in the device the remaining good addresses can be affected with either taking the device offline or invalid packet request or response.
AB Tag Validation Program
If running on Windows you can identify which addresses are defined as invalid using the program AB_Tag_Validation.exe located in C:\Program Files\Open Automation Software\OAS\AB Validation\.
Note: if you do not see the AB Validation subdirectory update your version of OAS to the latest version.
Run AB_Tag_Validation.exe and enter the admin username and password you have defined for OAS.
Select each Driver Interface in the Driver Interfaces list in the upper left to verify all tags defined to that Driver Interface.
Any addresses that are defined incorrectly that do not exist in the controller will appear in the Bad Data Quality Tags folder along with the tag name that contains that address.
Alternative - Create Additional Driver
If running on Linux or Windows another way to identify the issue is to isolate one or more tags to their own dedicated communication channel select the existing driver interface and change the name to a new unique name and select Add Driver.
To define a tag to the new driver select Configure-Tags, then select the tag you want to isolate to select the new driver interface.
Select Apply Changes.
If the data quality changes to good for the tag then resolve the other addresses in the tags defined to the first driver interface used.
To help you further identify which tag addresses are bad use the Tag Watch Window to view multiple tags in one window.
To add a tag to the Watch Window, select any tag or tag group and right click on it. Then choose Add to Watch from the context menu.
The tag you selected will then appear in the Watch Window.
If an address is defined that does not exist in the device other tags with valid addresses can also be affected if the address is grouped into the same communication packet request as the invalid address.
Once you identify which addresses are invalid investigate if the address exists in the device or refer to the controller program to find the correct addresses to use.
Device Read Enabled
When the property Device Read is enabled polling communications will be disabled and read requests will only be performed when the tag defined for the Device Read transitions from false to true. If data is to be polled continuously from the device disable the tag property Device Read.
Enable by Tag
The Enable by Tag property is used to define a Boolean tag that will enable or disable communications for the tag. If data is to be polled continuously from the device disable the tag property Enable by Tag.
Use Configure-License to verify that the Driver ABLogix or ABClassic is enabled.
Select Configure-System Errors and expand any AB or Driver Interface error to see the details of the error.
The information provided can often help you determine the cause of communication failures.
The history of all systems errors can be found in the OAS Error Log specified under Configure-Options-System Logging.
The default directory is the Log subdirectory in the OAS installation directory. On Windows the default location is C:\Program Files\Open Automation Software\OAS\Log\.
Log AB Communications
You can enable the Log AB and Siemens Comm. transaction logging under Configure-Options-System Logging to track .
Specify the location of where the communication logs will be saved with the property Transaction Log Path further down in System Logging.
Wireshark is an excellent third party tool to analyze network communications over Ethernet.
Use Apply a display filter field to filter the network traffic based on the IP address of the AB controller you want to monitor with ip.addr == <IP address>, an example ip.addr == 192.168.0.1
You can download Wireshark from https://www.wireshark.org/download.html
Poor Network or Line Quality
If communication failures are intermittent due to faulty network you can increase the Transaction Timeout under Configure-Drivers.
The default Timeout is 1000 milliseconds (1 second).