배열을 통한 인덱스
로직에서 참조하는 배열 요소를 동적으로 변경하려면 태그 또는 식을 첨자로 사용하여 해당 요소를 가리킵니다. 이는 PLC-5 로직에서의 간접 주소 지정과 유사합니다. 식에서 다음 연산자를 사용하여 배열 첨자를 지정합니다.
연산자 | 설명 |
|---|---|
+ | 추가 |
- | 빼기/부정 |
* | 곱하기 |
/ | 나누기 |
AND | AND |
FRD | BCD를 정수로 변환 |
NOT | 보수 |
OR | OR |
TOD | 정수를 BCD로 변환 |
SQR | 제곱근 |
XOR | 배타적 OR |
예:
정의 | 예: | 설명 |
|---|---|---|
my_list가 DINT[10]으로 정의됨 | my_list[5] | 이 예는 배열의 요소 5를 참조합니다. 아래 첨자 값이 상수로 유지되므로 이 참조는 정적입니다. |
my_list가 DINT[10]으로 정의됨 position이 DINT로 정의됨 | 값 5를 position에 MOV my_list[position] | 이 예는 배열의 요소 5를 참조합니다. 이 참조는 로직에서 position 값을 변경하여 아래 첨자를 바꿀 수 있으므로 동적입니다. |
my_list가 DINT[10]으로 정의됨 position이 DINT로 정의됨 offset이 DINT로 정의됨 | 값 2를 position에 MOV 값 5를 offset에 MOV my_list[position+offset] | 이 예는 배열의 요소 7(2+5)을 참조합니다. 이 참조는 로직에서 position 또는 offset의 값을 변경하여 아래 첨자를 변경할 수 있기 때문에 동적입니다. |
입력한 모든 배열 첨자가 지정한 배열의 경계 내에 있어야 합니다. 배열을 요소의 컬렉션으로 보는 명령어의 경우 첨자가 해당하는 차원을 벗어나면 주 폴트(유형 4, 코드 20)가 발생합니다.
의견을 작성 부탁드립니다.