Applies To:
  • CitectSCADA
  • CitectHMI

Summary:
I have defined an array of 2000 elements of type LONG in my Control Logix PLC and mapped the array to a PLC5 array of INT, say N23. When I tried to access element 2000 and above using Citect ABRSLINX driver, the Citect kernel reports errors such as:

Fri Oct 24 10:42:02 2003 94:44:53.791 Error: Address is out of range

READ 0001 PORT1_BOARD1 IODev $N23:2000 100

Generic 000001 Driver 00262182 (0x00040026)

Is there a limitation in the Citect ABRSLINX driver code which limits accessing element addresses above 2000?

 

Solution:
The limitation is due to the RSLINX API from Rockwell Automation which CitectSCADA uses to communicate to the PLCs.

When using the ABRSLINX driver to communicate to a PLC5, the Citect abrslinx5.dbf driver dbf file tells the Citect compiler that the valid address range for N file access is 0-9999. Thus, you can define any address using the "N" file up to and including 9999.

The driver specific error code 0x00040026 (Address is out of range) is generated by the RSLINX API when the Citect ABRSLINX driver calls the function DTL_C_DEFINE(). It seems that the RSLINX API will pass a request to read data from the PLC if the base address is less than 2000.

For example, requesting data for address N23:1999, 50 will be successful, but requesting address N23:2000,1 will not pass and results in error 0x26 being returned from the RSLINX API.

 

Keywords:
 

Attachments