Chapter 5
Issuing BlockTransfer Commands
5-10
Number of Scans
The total number of scans needed to empty the scanner’s BT queue is
equal to the largest (effective) number of scans needed to service all of the
BTs queued to any single adapter. In other words, determine the effective
number of scans each individual adapter needs, then use the largest one.
The following is a procedure to determine the number of scans any
individual adapter needs. Remember that a single adapter, containing more
than 8 slots and using 1-slot addressing, appears to the scanner as 2 distinct
adapters.
The number of scans is equal to the total number of BTs plus one. For
example, if 4 BTs are queued to 4 modules, then the number of scans needed
to service all of the BTs queued to that adapter is 5 (4 BTs + 1 = 5 scans).
At this point, you know the number of scans needed to service each
individual adapter. However, for the calculation of the time to empty the
scanner’s queue, the effective number of scans is required. The effective
number of scans is equal to the number of scans divided by the number of
times the adapter appears in the scanner’s scan list. For example, if the
number of scans to service an adapter’s BTs is 11, and the adapter appears
in the scan list 4 times, then the effective number of scans to service that
adapter is 2.75 (11 scans / 4 entries = 2.75 effective scans).
The effective number of scans to use to determine the total time to empty
the scanner’s queue is the largest effective number of scans for any
individual adapter.
The scanner places a module control byte (MCB) in the output image table
of the location of the BT modules discrete address when starting a read or
write BT.
Your program should never write to the output image bytes that correspond
to intelligent I/O modules; but if your program does, and happens to write
a valid MCB, the intelligent I/O module thinks the scanner is trying to do
a BT and responds accordingly. But the scanner doesn’t know anything
about a BT, so it tells the module “no thanks!” and sets the unsolicited BT
bit in
operating_status
. This indicates that a module tried to start an
unsolicited BT, one that the scanner itself knew nothing about.
This operating status bit stays set until your program resets it. Your
program should check once per program scan for this operating bit and
then should reset it.
Chapter 6 describes scanner status reporting.
Unsolicited Block Transfer
What's Next