![background image](http://html1.mh-extra.com/html/omron/cp1l-12-2007/cp1l-12-2007_operation-manual_742083177.webp)
144
Index Registers
Section 4-11
Since some operands are treated as word data and others are treated as bit
data, the meaning of the data in an Index Register will differ depending on the
operand in which it is used.
1,2,3...
1.
Word Operand:
MOVR(560)
0000
IR2
MOV(021)
D0
, IR2
When the operand is treated as a word, the contents of the Index Register
are used “as is” as the PLC memory address of a word.
In this example MOVR(560) sets the PLC memory address of CIO 2 in IR2
and the MOV(021) instruction copies the contents of D0 to CIO 2.
2.
Bit Operand:
MOVR(560)
000013
,IR2
SET
+5 , IR2
When the operand is treated as a bit, the leftmost 7 digits of the Index Reg-
ister specify the word address and the rightmost digit specifies the bit num-
ber. In this example, MOVR(560) sets the PLC memory address of CIO 13
(0C00D hex) in IR2. The SET instruction adds +5 from bit 13 (D hex) to this
PLC memory address, so it turns ON bit CIO 1.02.
Index Register
Initialization
The Index Registers will be cleared in the following cases:
1.
When the operating mode is changed from PROGRAM to RUN or MONI-
TOR mode or vice-versa
2.
When the power is cycled
Setting Index Registers
Always set the required value in an index register before using it. The contents
of an index register will be unpredictable if it is not set in advance.
The contents of an index register is also unpredictable after an interrupt task
is started. When using index registers inside an interrupt task, use
MOVR(560) (for anything but timer/counter PVs) or MOVRW(561) (for
timer/counter PVs) to set the required value.
Direct Addressing
When an Index Register is used as an operand without a “,” prefix, the instruc-
tion will operate on the contents of the Index Register itself (a two-word or
“double” value). Index Registers can be directly addressed only in the instruc-
tions shown in the following table. Use these instructions to operate on the
Index Registers as pointers.
The Index Registers cannot be directly addressed in any other instructions,
although they can usually be used for indirect addressing.
Instruction group
Instruction name
Mnemonic
Data Movement
Instructions
MOVE TO REGISTER
MOVR(560)
MOVE TIMER/COUNTER PV TO REG-
ISTER
MOVRW(561)
DOUBLE MOVE
MOVL(498)
DOUBLE DATA EXCHANGE
XCGL(562)
Table Data Processing
Instructions
SET RECORD LOCATION
SETR(635)
GET RECORD NUMBER
GETR(636)
Increment/Decrement
Instructions
DOUBLE INCREMENT BINARY
++L(591)
DOUBLE DECREMENT BINARY
– –L(593)
Summary of Contents for CP1L - 12-2007
Page 3: ...iv...
Page 9: ...x...
Page 13: ...xiv TABLE OF CONTENTS...
Page 21: ...xxii...
Page 33: ...xxxiv Conformance to EC Directives 6...
Page 65: ...32 Function Blocks Section 1 5...
Page 428: ...395 Clock Section 6 9...
Page 429: ...396 Clock Section 6 9...
Page 523: ...488 Troubleshooting Unit Errors Section 9 4...
Page 531: ...496 Replacing User serviceable Parts Section 10 2...
Page 563: ...528 Auxiliary Area Allocations by Function Appendix C...
Page 611: ...576 Auxiliary Area Allocations by Address Appendix D...
Page 638: ...603 Connections to Serial Communications Option Boards Appendix F Connecting to Unit...
Page 639: ...604 Connections to Serial Communications Option Boards Appendix F...
Page 669: ...634 Index...
Page 671: ...636 Revision History...