Peer Cop Overview
Modicon’s Peer Cop feature is a method of having data read and written to and from remote nodes at the top of each PLC scan. Either of Modicon’s Modsoft® and Concept® software packages can be used to configure Peer Cop.
Peer Cop supports four types of automatic data transfers:
Specific Inputs
Specific Outputs
Global Inputs
Global Outputs
Of these four types, only Global Inputs are supported by the RMC. Global inputs refer to the global data sent out by other devices, such as the RMC. Modsoft and Concept allow the user to select which of the Global Data registers get copied to which Modicon PLC registers.
The following steps are required to set up Peer Cop. The exact details are not described as they differ between versions of Modsoft and Concept:
Reserve Config Extension Memory in the PLC:
Peer Cop uses Config Extension memory. Refer to Modicon Modsoft Programmer User Manual for details on the exact procedure for allocating Config Extension memory and the method of calculating the memory requirements.
Add the RMC Device as a Peer Cop Node:
Some versions of Modsoft require that the Peer Cop node be added.
Add Global Data Sub-entries to the RMC Peer Cop Node:
For each device, the global data can be copied into eight sections of the PLC memory. Each section is called a sub-entry. Each sub-entry has the following pieces of information:
Address in PLC memory (0xxxxx, 1xxxxx, 3xxxxx, 4xxxxx).
Length (in 16-bit registers) to copy.
Type of the data. This should always be BIN for the RMC.
Index. The index refers to the number of the first register to be copied. Its range is from 1-31.
At the top of each scan, for each sub-entry, the Global Data registers beginning at the Index—and continuing for the number of registers given by the Length—are copied into the PLC address.
See the example below.
Add a Network for Detecting the Peer Cop Health:
This step is not required, but highly recommended. Refer to MSTR Block Peer Cop Health Operation for an example of the Modicon logic for doing this.
Example
Suppose we have a four-axis RMC module at node address 3, and we have configured the Status Map to have the following assignments for the first nine registers:
Status Map Register: |
RMC Register: |
Holds: |
0 |
0 |
Axis 0 Command Position |
1 |
1 |
Axis 0 Target Position |
2 |
2 |
Axis 0 Actual Position |
3 |
4 |
Axis 0 Status Word |
4 |
10 |
Axis 1 Command Position |
5 |
11 |
Axis 1 Target Position |
6 |
12 |
Axis 1 Actual Position |
7 |
14 |
Axis 1 Status Word |
8 |
2632 |
CPU Digital Inputs 0 and 1 in LSBs of low byte, Outputs 0 and 1 in LSBs of high byte. |
Next suppose that we want to copy the first eight global registers into PLC holding registers from 400401 through 400408. In addition, we want the two status words also to be copied into coils at 000801 through 000816 for axis 0 and 000817 through 000832 for axis 1 so that each bit can be used easier. Finally, we want the CPU input and output bits to be mapped into discrete inputs 100001 through 100016. The following set of sub-entries would be added to node 3:
Length |
Reference |
Type |
Index |
8 |
400401-400408 |
BIN |
1 |
1* |
000801-000816 |
BIN |
4 |
1* |
000817-000832 |
BIN |
8 |
1* |
100001-100016 |
BIN |
9 |
*The lengths are given in global registers, and therefore one global register corresponds to 16 discrete inputs.
The following table shows the placement of the input bits:
Address |
Content |
000801 |
MSB of axis 0 Status Word (No Transducer) |
: |
: |
000816 |
LSB of axis 0 Status Word (In Position) |
000817 |
MSB of axis 1 Status Word (No Transducer) |
: |
: |
000832 |
LSB of axis 1 Status Word (In Position) |
100007 |
CPU Digital Output 1 |
100008 |
CPU Digital Output 0 |
100015 |
CPU Digital Input 1 |
100016 |
CPU Digital Input 0 |
Copyright (c) 1997-2015 by Delta Computer Systems, Inc.