IPI, Bus Controller, GFK-0363AD
I
NFORMATION
GFK-0363AD
READ THIS INFORMATION FIRST
Product:
Bus Controller
IC697BEM731V
Firmware version 5.5.50
Enhancement
Compatible with VersaMax Genius Network Interface Unit. This bus controller supports the use of VersaMax I/O modules in
an I/O Station controlled by a Genius NIU.
Operating Notes
Function Blocks: The DO I/O function block is not supported with this release of the Bus Controller. A new Do Outputs
COMREQ can be used instead, as explained in this notice.
BSMs and Bus Error Rate Configuration: If the bus includes any Bus Switching Module(s), the Bus Error Rate must be
set to zero. This keeps the Bus Controller from dropping off the bus while the BSMs are switching.
Input Defaults: If the Bus Controller loses communications with a device on the bus, the Bus Controller continues
supplying input data for that device to the PLC. The content of that data depends on the device type:
A. Discrete block, PowerTRAC block or Remote I/O Scanner: Inputs may either default or hold last state, as configured.
B. Analog block or High-speed Counter: Inputs automatically hold last state.
C. Global data: Automatically defaults to off.
Queuing Fault Information: If a large number of faults (45 or more) occurs simultaneously, some faults may be lost. This
is most likely to be caused by the sudden loss of numerous blocks at each bus controller in the system. The resulting PLC
diagnostics and diagnostic contacts may be incorrect.
Impact on PLC Sweep Time when Adding or Losing Bus Devices: If a number of bus devices are lost or added at the same
time, it can cause a PLCs watchdog timer to expire, shutting down the PLC. For example, I/O blocks that do not use the same
power source as the PLC might all lose power during the same CPU sweep, while the PLC kept operating. When power was
restored, the blocks might all return to the system during the same CPU sweep. When calculating CPU sweep time, include the
following steps:
1.
Determine the maximum number of devices on all busses in the system that might be lost or added in the same PLC sweep period.
2.
Find the Asynchronous Events Fault Message time listed for the type of CPU in the system. Multiply this number by the number
of devices that might be added or lost together.
3.
Add the total to the worst case PLC sweep time. Set the PLC sweep timeout period above this value.
Downloading a Configuration When the Bus is Damaged: If you download a configuration to the Bus Controller while
the bus is broken, shorted, or otherwise damaged, it may be necessary to cycle power to the Bus Controller for it to function.
If the bus is known to be corrupted, do not download a configuration.
Repeated Power Cycles to Main Rack May Cause Loss of Bus Controller in Expansion Rack. Using the same power
source for the main rack and expansion rack switching them on and off together will prevent this.
Read/Write Device Rejection: This Bus Controller will ignore any incoming Read or Write Device datagrams sent using
the routing parameter FE (hex) in byte 0. This byte is designated as reserved in the datagram descriptions in the I/O
System Users Manual. For a Bus Controller to use this capability, datagrams must be sent with the Send Datagram
command. Please refer to the Bus Controller Users Manual for instructions.
Checking COMREQ Status for Send Datagrams: When using the Send Datagrams command, permissive logic should be
used to test the COMREQ status before sending the request. Otherwise, the Bus Controller may reset.
Errata
Description: In some versions of the Bus Controller Users Manual, there are mistakes in the programming example that
illustrates the use of COMREQs. The Status Pointer Offset given in the example would cause the Status Block to overlap
the start of the Command Block.
Recommendation: If necessary, correct the Status Pointer Offset example in your manual. In two logic illustrations, and in
the table showing the Command Block contents, change the value in %R0103 to 97. The two-word Status Block would then
use %R0098 and %R0099, avoiding conflict with the Command Block which begins at %R0100.
Important Product Information
2
GFK-0363AD
COMREQ #17: Do Output Command
To immediately send a total of up to 128 bytes (64 words) of output data to selected discrete devices on the bus (2 words per
device), use the Do Output command. The output data is transferred immediately to the Bus Controller, which transmits it
to the specified devices during its next turn on the bus. The user should also place the same data in the output table, to insure
that the same data will be transferred to the Bus Controller as part of the normal output update.
To use the command, set flags of all bus addresses that are to receive output data, then enter the data into the COMREQ
addresses that correspond to those devices (for example, you would enter output data into locations [address+11] and
[address+12] to update a block at serial bus address #1). To minimize the impact on bus scan time. Devices to be updated
using this method should be configured to have the lowest possible serial bus addresses, and the overall message length
should be kept as short as possible.
Caution: none of the outputs on a targeted device should be updated in any other way during the PLC sweep.
Command Block for the Do Output Command
Address +0:
Command Length
5 to 64. Enter the number of words from Address +6 to the end of the output
data to be transferred to the Bus Controller.
Address +1:
No Wait
0
Address +2:
Status Block memory type
70 (%I), 72 (%Q), 8 (%R), 10 (%AI), or 12 (%AQ)
Address +3:
Status Block offset
Beginning address for the COMREQ status.
Address +4:
Idle timeout value
0
Address +5:
Max. communications time
0
Address +6:
Command number
17
Address +7,
Address +8:
Flags for Device Numbers 0-15
Flags for Device Numbers 16-31
Each bit represents a potential target bus address. In Address +7, LSB is
Device Number 0. MSB is Device Number 15. In Address +8, LSB is Device
Number 16. MSB is Device Number 31.
LSB
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
MSB
Device Numbers (SBAs)
Set to 1 any bit that corresponds to a block that will receive output data from
the Do Output command.
Address +9,
Address +10
Outputs for Device Number 0
Each bit represents an output, with output 1 in the LSB.
LSB
16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
MSB
Circuit Numbers
Bits that correspond to circuits that are used as inputs, or are unused, or are
not present on the block are ignored.
Address +11
Address +12
Outputs for Device Number 1
to Address +72
Outputs for Device Number 31
Use command length to determine the last serial bus address serviced.
Registers past that point will not be used in the command.
Important Product Information
3
GFK-0363AD
Example
In this example, there are two blocks on the bus that should be updated using Do Outputs. The first is a 16-circuit block
located at Device Number 1. All 16 of its circuits are used as outputs. The second device is a 32-circuit block located at
Device Number 2. On this block, circuits 17 to 32 are used as outputs. (In this application, Device Number 0 is used by the
Hand-held Monitor).
Address +0:
Command Length
(number of words from Address +6 to the
end of the data.)
For this example, the length is 9 (the number of words from Address +6 to
Address +14). This limits the number of registers used, and only serial bus
addresses 0, 1 and 2 will be affected.
Address +1:
No Wait
0
Address +2:
Status Block memory type
8 (%R)
Address +3:
Status Block offset
Beginning address for the COMREQ status.
Address +4:
Idle timeout value
0
Address +5:
Max. communications time
0
Address +6:
Command number
17
Address +7:
Flags for Device Numbers 0-15
This marks serial bus addresses 1 and 2 as the targets.
LSB
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
Address +8
Flags for Device Numbers 16-31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
MSB
Address +9,
Address +10
Outputs for Device Number 0
32 bits: dont care in this example, because the flag for serial bus address 0 is
set to 0.
Address +11
Address +12
Outputs for Device Number 1
32 bits. In this example, Device Number 1 is a 16-circuit block. All 16 circuits
(shown below as 1s for clarity) are outputs.
LSB
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
MSB
The result will be to turn all 16 outputs on. The remaining 16 bits are ignored,
because the block has only 16 points.
Address +13
Address +14
Outputs for Device Number 2
32 bits. In this example, Device Number 2 is a 32-circuit block. Circuits 17-32
(shown below as 1s) are outputs.
LSB
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
MSB
T
he result will be to turn points 17 - 32 on. To turn any of these points off, place
a zero in the corresponding bit (for example, to turn output #32 off, put a zero
in the MSB).
Important Product Information
4
GFK-0363AD
Using the Do Output Command for Global Data
The Do Output command can also be used to immediately change the content of the first 2 words of Global Data being sent
by a Bus Controller in the same PLC. Program COMREQ #17 with the contents listed below. The 2 data words are
transferred immediately to the Bus Controller, overwriting the first 2 words of that Bus Controllers usual Global Data.
During that Bus Controllers next turn on the bus, the Global Data it transmits will begin with these 2 words, followed by its
remaining Global Data. The changed data is sent only once following receipt of the COMREQ. During its next turn on the
bus, the Bus Controller will again send the entire contents of its assi