You have to be careful with the term rack.
You mentioned that you have a scanner module in slot #7. We will assume that is in the same chassis where your 5/03 is located.
You mentioned you have an ASB module in the remote chassis. We will assume it is in the leftmost slot.
Now that ASB module has dip switches that define the Staring Logical Rack #, Starting Logical Group #, and the Adapter Image Size. Plus other things like whether or not to allow Block Transfer, complementary I/O, etc....
By selecting that you do not want to allow BTR/BTW that means all data transfers have to be done discretely. Now lets just assume for a moment that you have configured your ASB for 1-slot addressing and your rack # is 00 and your group # is 0. We will also assume that you have configured it for one full rack (8 Logical Groups). Lets also assume it is a 10-slot chassis.
Now that means:
Slot #0 ASB Module
Slot #1 Rack #0 Group #0 with reserved SLC 500 addresses I:7.0 and O:7.0
Slot #2 Rack #0 Group #1 with reserved SLC 500 addresses I:7.1 and O:7.1
Slot #3 Rack #0 Group #2 with reserved SLC 500 addresses I:7.2 and O:7.2
Slot #4 Rack #0 Group #3 with reserved SLC 500 addresses I:7.3 and O:7.3
Slot #5 Rack #0 Group #4 with reserved SLC 500 addresses I:7.4 and O:7.4
Slot #6 Rack #0 Group #5 with reserved SLC 500 addresses I:7.5 and O:7.5
Slot #7 Rack #0 Group #6 with reserved SLC 500 addresses I:7.6 and O:7.6
Slot #8 Rack #0 Group #7 with reserved SLC 500 addresses I:7.7 and O:7.7
Slot #9 Rack #1 Group #0 with reserved SLC 500 addresses I:7.8 and O:7.8
Slot #10 Rack #1 Group #1 with reserved SLC 500 addresses I:7.9 and O:7.9
So those addresses and that memory are automatically created in the SLC controller even though we haven't specified what modules are in those slots. That is different from the local chassis where memory is allocated based on the actual modules in use. With Remote I/O that is all defined by the ASB Dip Switches.
So now that means that each slot (1-slot addressing) is assigned one word of input memory and one word of output memory. Or if you prefer 16-bits of input and 16 bits of output.
Now, if you place a 16-pt discrete input module in slot #1 then that module will consume and use all sixteen inputs assigned to that slot. But the 16 bits of output memory are now inaccessible.
If you place a 16-pt discrete output module in slot #2 then that module will consume and use all sixteen outputs assigned to that slot. But the 16 bits of input memory are now inaccessible.
But here is the kicker. Image if you then placed a 4-channel analog input in slot #3. Each analog input (channel) requires an entire word (16 bits) of memory. But how many words are assigned to that slot? Only one. So that analog module will consume it's own input word and the input words for slots 4, 5, and 6. So those slots have no input memory available to them. If you plugged discrete input modules into those slots they would not work. But those slots could have output modules. Or they must be left empty.
Now change that analog input module to an 8-channel version. It would consume the inputs from its own slot and the next seven slots. Meaning our 10-slot module could not have any inputs in slots 4-10 because the module in slot #3 is consuming the memory they would need.
Imagine if our chassis was a smaller 7-slot chassis instead. Our analog module would be short three input words. So it would fail. Or worse, lets say you had another ASB module in a separate chassis using Rack #2. Our analog module would steal those three inputs from the first three slots in that chassis.
This is why we use Block Transfers. Analog modules are data hogs.
OG