FC 146 - Remote I/O Interface

The remote I/O interface function code defines the interface between:

• A BRC-100/200/300/400 controller or HAC controller and a local remote I/O module.

• RIO-BRC (BRC-300/400 configured for HNET communication) controllers.

 

Expander Bus Communication

The remote I/O interface function code defines the interface between a BRC-100 controller or HAC controller and a local remote I/O module. The local remote I/O module is the remote master processor (RMP). Function code 146 defines the expander bus addresses for both the primary and secondary remote master processors.

 

NOTE: In order to minimize the possibility of malfunctions, it is essential that the RMP function block (FC146), the RSP function blocks (FC147), and all the slave definition blocks for the remote slaves (FC79, FC83, FC84, FC132, etc.) all reside within the same segment. In addition, these blocks must be sequenced in the following order: FC146 must reside at a lower block number than all FC147s for that link, and the FC147s must reside at lower block addresses than the slave definition blocks and station blocks (FC80) for the remote slaves.

 

 

Outputs:

Blk

Type

Description

N

B

Primary RMP or RIO-BRC status:

0 = good

1 = bad

N+1

B

Secondary RMP or RIO-BRC status:

0 = good

1 = bad

N+2

B

Cycle time of remote master processor  (secs)

 

 

Specifications:

Spec

Tune

Default

Type

Range

Description

S1

N

0

I

Note 1

Block address of remote I/O definition

S2

N

0

I

0 - 63

Expander bus address of primary RMP or HNET

address of primary RIO-BRC

S3

N

0

I

0 - 63

Expander bus address of secondary RMP or any

valid number not equal to S2 (HNET communication)

S4

N

0

I

Full

Remote block input allocation:

  0 = IMRIO02 module being used (expander bus communication)

>0 = total remote I/O blocks to allocate to RIO-BRC controller (HNET communication)

 

Refer to Calculating Specification S4 for more information.

S5

N

2

I

Note 1

S5 - S16 are block addresses of control or indicator stations (expander bus communication) or spare parameters (HNET communication)

S6

N

2

I

Note 1

S7

N

2

I

Note 1

S8

N

2

I

Note 1

S9

N

2

I

Note 1

S10

N

2

I

Note 1

S11

N

2

I

Note 1

S12

N

2

I

Note 1

S13

N

2

I

Note 1

S14

N

2

I

Note 1

S15

N

2

I

Note 1

S16

N

2

I

Note 1

S17

N

0

I

Note 1

Spare boolean input

S18

N

0

I

Note 1

Spare boolean input.

 

 

NOTES:

1. Maximum values are:9,998 for the BRC-100/200/300, IMMFP11/12 and 31,998 for the BRC-400 and HAC

 

 

 

Calculating Specification S4

The value used for Specification S4 is calculated based on the number of input block references defined by all linked I/O function codes attached to the FC146/FC147 linked list. The S4 value must non-zero when the BRC-300/400 controller is being used for remote I/O. Use the information in Table 146-1 to calculate the S4 value.

 

 

 

Table 146-2 provides an example of how Specification S4 is calculated.

 

 

 

HNET Communication

 

FC146 (remote I/O interface) and FC147 (remote I/O definition) can use HNET as a remote I/O link. The BRC-300/400 controller is capable of running as both the RIO-BRC master and RIO-BRC slave. Minimal configuration alterations are required to use the HNET functionality. Existing IMRIO02 modules and RIO-BRC controllers can be used simultaneously in the same controller configuration. Porting an RIO02 configuration to a RIO-BRC configuration can be easily done, due to the small differences in configuration. With HNET functionality, the RMP/RSP is effectively replaced by a single RIO-BRC on HNET. Redundant communications is inherently part of HNET and the BRC also supports redundancy as a RIO-BRC.

The RIO-BRC scans its I/O using the same function codes that would run on normal BRC controllers, but can be located remotely.

 

NOTE: In order to minimize the possibility of malfunctions, it is essential that function block (FC146), function blocks (FC147), and all the slave definition blocks for the remote slaves all reside within the same segment. In addition, these blocks must be sequenced in the following order: FC146 must reside at a lower block number than all FC147s for that link, and the FC147s must reside at lower block addresses than the slave definition blocks and station blocks (FC80) for the remote slaves.

 

Configuration is performed on the local BRC-300/400. Similar to IMRIO02 operation, the local BRC-300/400 downloads the associated I/O function codes defined in FC146/FC147 into the RIO-BRC. If the I/O device is defined with more than one linked function code (that is, 14 AO channels require two FC149s), only the first FC needs to be referenced in FC146/FC147 for all associated/linked function codes to be downloaded into the RIO-BRC. The complete I/O slave configuration executes on the RIO-BRC.

 

Online configuration has one small enhancement, The RIO-BRC operation is affected only when changes are made to the function codes it is using. The I/O on the RIO-BRC holds the last value during the configuration download and then resumes updating with dynamic data as soon as the update is complete (same as IOR800). If the configuration changes are not associated with the RIO-BRC then dynamic data updates continue unchanged. Multiple RIO-BRCs can be configured, and each FC146/147 configuration is managed independently. A configuration change on one RIO-BRC has no impact on another RIO-BRC configuration.

 

Block number order is enforced via FC146/FC147. The base block number of FC146 must be less than any I/O it is linked to including FC147. The linked list of FC147 must be in ascending block number order (that is, S1 block number reference must be greater than its own block number). I/O function codes must have block numbers greater than the FC147 they are linked to. Figure 146-1 shows an example of expander bus and HNET communication configurations.

 

 

 

146.1   Explanation

 

The following explanation adds detail to the specifications for the remote I/O interface block.

 

Specifications

 

S1

Block address of the first remote I/O definition (function code 147). This specification links the remote I/O definition block to the remote I/O interface block. This link defines the remote I/O module processors (or RIO-BRC controller) and their associated I/O modules (or allocated remote I/O blocks). Specification S1 can be set to zero if there is no remote I/O definition block (or allocated remote I/O blocks).

 

S2

Expander bus address of the primary remote master processor. The local remote I/O module is the remote master processor. Remote master processors can address up to eight control stations and four indicator stations. Stations addressed by remote master processors are configured as inputs to this block. This specification also can be used to define the HNET address of the primary RIO-BRC module.

 

S3

Expander bus address of the secondary remote master processor (expander bus communication) or any valid number not equal to S2 (HNET communication).

 

NOTE: If redundancy is not implemented, the definition of the secondary expander bus address must be set equal to the primary (S2).

 

When HNET communication is being used, the secondary RIO-BRC controller has the same address as the primary (S2 would be equal to S3 incorrectly telling the module redundancy is not implemented) so set this specification to any valid number that is not equal to the number in specification S2.

 

S4

Remote block input allocation. Set to zero when IMRIO02 modules (expander bus communication) are supplying remote values or set to the total number of remote I/O blocks to allocate to the remote RIO-BRC module (HNET communication) when it is supplying remote values.

 

When HNET communication is being used, The RIO-BRC is configured with the I/O function codes referenced in FC147 and executes them to update the I/O data. Only the base function code is defined in FC147 (S5-S36). When the I/O slave definition uses multiple function codes, all associated function codes (block number linking specifications that is) for a particular slave interface are downloaded. The function codes downloaded to the RIO-BRC need their block input values in order to execute correctly. Each I/O function block has a certain number of block inputs that must be updated. S4 allocates the necessary memory in both the local BRC and remote RIO-BRC for the input blocks to be updated. Add up the number of inputs on all of the RIO-BRC function codes being referenced (excluding FC80/146/147) for a simple input total and enter the total into S4. A larger number can be used if future changes are expected. If optimization of the S4 value is desired,

three additional rules can be used to subtract from the previous simple input total:

 

  1. Block number addresses that reference the base blocks (block #0 to #29) do not need allocation.

  2. Duplicated references only need one allocation.

  3. Linking references can be excluded.

 

S5 through S16

Block addresses of the control stations or indicator stations (expander bus communication) or spare parameters (HNET communication). Valid station addresses are zero through seven. Valid indicator addresses are eight through 11.

 

S17 and S18

Spare boolean inputs.

 

 

146.2  RMP/RSP Memory Usage Calculation (Expander Bus)

 

The number of slaves an RMP can support is determined by memory usage only. To calculate RMP memory requirements, refer to RMP/RSP Memory Usage Calculation (Expander Bus) in the function code 147 section of this manual.

 

146.3   Applications

 

Figure 146-2 shows the block diagram configuration detailing the relationship between a harmony controller and a remote I/O module interface and the control station and indicator station. The associated module function codes required to define this interface are also shown.

 

 

 

The remote I/O interface block defines the interface between the harmony controller and the remote I/O module. This interface links the station functions in the module to their respective remote I/O modules. Refer to function code 147 for a block diagram example showing the remote I/O block working in conjunction with the remote I/O definition block.

 

Figure 146-3 illustrates a configuration using the remote I/O interface and the remote I/O definition blocks (function codes 146 and 147 respectively). The control interface slave (function code 79) references the I/O from a control interface slave connected to the remote slave processor. This configuration has the control stations interfaced via the remote master processor.

 

 

NOTE: The configuration shown in Figure 146-3 is only valid for applications using IMRIO02 modules.