The issues between RSLogix 500 and Logix 5000 are no more than notation and analogy, because
the data are always the same i.e.
streams of bits; cf. TL;DR below.
A Data File, e.g. B3, in RSLogix 500 can be represented by an array of BOOLs in Logix 5000.
So B3:100/[N13:1] in Binary Data File B3 in RSLogix 500 would be equivalent to B3_100[N13_1] in RSLogix 5000, assuming B3_100 is an array of bools of length one greater than the maximum expected value of N13_1 (N13:1).
The Logix 5000 conversion took a different approach:
- Create a tag, B3[N], as an array of 16-bit INTs
- N is the number of elements in the RSLogix 500 Data File B3.
- Once that was done,
- B3:100 in RSLogix 500 ≡ B3[100] in Logix 5000
- B3:100/[N13:1] in RSLogix 500 ≡ B3[100].[N13:1] in Logix 5000
- The [100+(N13:1 AND 16#FFFFFFF0)/16] and [N13:1 AND 15] notations allow for the possibility that N13:1 could be larger than 15, in which case the RSLogix notation B3:100/[N13:1] refers to a bit in word B3:101 or beyond (see TL;DR below).
- N.B. the approach is different, i.e. bits in RSLogix 500 and INTs in Logix 5000, but all that changes is the notation used to refer to a specific bit, because the data are still represented by a stream of bits.
- The Logix 5000 notation for referring to a single bit in an INT is .<bit offset>, or . where I is a tag that contains the bit offset; this is analogous to the /<bit offset> and / notations in RSLogix 500.
TL;DR:
Any RSLogix 500 data file, and any Logix 5000 tag, is a stream of bits:The B3:<element offset>/<bit offset> notation makes it look like the bits are in a two-dimensional array, but that is only an artifact of the notation; all data files comprise streams of bits.N.B. OP has configured RSLogix 5000 to display the two-line notation, but that is equivalent to the one-line notation with a forward slash as the delimiter between element offset and bit offset: