인덱스 명령
인덱스 레지스터(R)는 디바이스와 함께 사용하여 디바이스를 간접 지정하는 방식입니다. 인덱스 레지스터는 R0 ~ R15 까지 16개의 영역이 있으며, 각 영역은 -32768~32767 사이의 값이 입력될 수 있습니다.
인덱스 레지스터 사용의 제약 |
---|
인덱스 레지스터는 응용 명령어에서만 사용이 가능합니다. 기본 명령에서는 사용이 불가능 합니다.
디바이스 S(Step Relay), T(Timer), C(Counter)에서는 사용이 불가능 합니다.
PLC-S 에서 인덱스 레지스터는 항상 Word 오프셋으로 처리됩니다.
인덱스 레지스터의 동작작 |
---|
워드 디바이스에서 사용
인덱스로 지정된 값이 워드 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 3 입니다. M00의 조건이 ON되었을 때 D10번지에 MOV되는 값은 D0의 값이 아닌 D(0+R0의 값)이 됩니다. 따라서 D10번지로 MOV되는 값은 D03번지의 값이 됩니다. |
비트 디바이스의 워드 명령에서 사용(XP1R, XPnA, CP1 ~ 4(A ~D))
인덱스로 지정된 값을 16으로 나누어 그 몫을 취해 워드 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 100입니다. M00의 조건이 ON 되었을 때, D10번지에 MOV되는 값은 100을 16으로 나눈 값의 몫(6)을 취해 그 값을 워드로 더한 M(00+60)의 값이 됩니다. 따라서 D10번지에 MOV되는 값은 M60번지의 워드 값이 됩니다. |
비트 디바이스의 워드 명령에서 사용(XPnB, XPnE, CPnE/F, PLC-S, PLC-S Block)
인덱스로 지정된 값이 워드 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 100입니다. M00의 조건이 ON 되었을 때, D10번지에 MOV되는 값은 M이 워드값 이므로 M(1000+0)의 값이 됩니다. 따라서 D10번지에 MOV되는 값은 M1000번지의 워드 값이 됩니다. |
비트 디바이스의 비트 명령에서 사용(XP1R, XPnA, CP1 ~ 4(A~D))
인덱스로 지정된 값이 비트 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 7, R1의 값은 3입니다. M00의 조건이 ON 되었을 때, M(00+7)의 Bit 어드레스부터 3Bit가 M(20+3)의 Bit 어드레스로 MOV 됩니다. 따라서, M07번지부터 3Bit가 M23번지로 MOV됩니다. |
비트 디바이스의 비트 명령에서 사용 ( XPnB, XPnE, CPnE/F, PLC-S, PLC-S Block)
인덱스로 지정된 값이 비트 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 7, R1의 값은 3입니다. M00의 조건이 ON 되었을 때, M(00+70)의 Word 어드레스부터 3Bit가 M(20+30)의 Word 어드레스로 MOV 됩니다. 따라서, M70번지부터 3Bit가 M50번지로 MOV됩니다. |
비트 디바이스의 비트 명령에서 사용(XP1R, XPnA, CP1 ~ 4(A~D))
인덱스로 지정된 값이 비트 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 7, R1의 값은 3입니다. M00의 조건이 ON 되었을 때, M(00+7)의 Bit 어드레스부터 3Bit가 M(20+3)의 Bit 어드레스로 MOV 됩니다. 따라서, M07번지부터 3Bit가 M23번지로 MOV됩니다. |
비트 디바이스의 비트 명령에서 사용(XP1R, XPnA, CP1 ~ 4(A~D))
인덱스로 지정된 값이 비트 단위로 동작
명령어 사용 예 | 동작 설명 |
| R0의 값은 7, R1의 값은 3입니다. M00의 조건이 ON 되었을 때, M(00+70)의 Word 어드레스부터 3Bit가 M(20+30)의 Word 어드레스로 MOV 됩니다. 따라서 M70번지부터 3Bit가 M50번지로 MOV됩니다 |
비트 디바이스를 대상으로 동작하는 명령어와 해당 오퍼랜드
TEST, TESTP, DTEST, DTESTP 의 세 번째 오퍼랜드
DUTY 의 세 번째 오퍼랜드
BSFL, BSFLP, BSFR, BSFRP 의 첫 번째 오퍼랜드
BITMOV, BITMOVP 의 첫 번째, 두 번째 오퍼랜드