비트 오른쪽 이동(Bit Shift Right, BSR)

이 표에는 이 명령어를 지원하는 컨트롤러 및 응용 프로그램이 나와 있습니다.
아키텍처
표준 응용 프로그램
안전 응용 프로그램
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러
예
아니요
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 및 ControlLogix 5590 컨트롤러
예
예
BSR 명령어가 배열 내에서 지정된 비트를 오른쪽으로 한 위치 이동합니다. 활성화되면 이 명령어는 배열의 비트 0의 값을 .UL 비트에 언로드하고, 나머지 비트를 오른쪽으로 한 위치 이동한 다음 비트 주소에서 비트를 로드합니다.
중요: 명령어가 올바른 데이터를 변경했는지 테스트하고 확인하십시오. BSR 명령어는 연속 메모리에서 연산을 수행합니다. 배열이 구성원 배열인 경우 이 명령어가 배열의 경계를 넘어서 구성원의 뒤에 오는 다른 구성원으로 이동할 수 있습니다. 이러한 상황이 발생하지 않도록 주의해서 길이를 선택하세요.
BSR 명령어는 연속 데이터 메모리에서 연산을 수행합니다.
이 명령어가 배열의 끝을 지나서 읽기 작업을 수행하려고 할 경우(LEN이 너무 큼) .ER 비트를 설정하여 메이저 폴트가 발생합니다.
사용 가능한 언어
래더 다이어그램
피연산자
명령어 내에서 혼합된 데이터 유형을 위한 데이터 변환 규칙이 있습니다. 데이터 변환을 참조하세요.
래더 다이어그램
피연산자
데이터 유형
형식
설명
Array
DINT
ARRAY
태그
수정할 배열
이동할 첫 번째 요소를 지정합니다.
Control
CONTROL
태그
연산의 제어 구조
Source Bit
BOOL
태그
비어 있는 위치에 로드할 비트.
Length
DINT
즉시
배열에서 이동할 비트의 수
CONTROL 구조
니모닉
데이터 유형
설명
.EN
BOOL
활성화 비트는 BSR 명령어가 활성화되었음을 나타냅니다.
.DN
BOOL
완료 비트는 비트가 오른쪽으로 한 위치 이동했음을 나타내도록 설정됩니다.
.UL
BOOL
언로드 비트는 명령어의 출력입니다. .UL 비트가 비트 범위 밖으로 이동된 비트의 상태를 저장합니다.
.ER
BOOL
에러 비트는 .LEN < 0인 경우에 설정됩니다.
.LEN
DINT
길이는 이동할 배열 비트의 수를 지정합니다.
연산 상태 플래그에 영향
아니요
폴트 조건
이 표에는 BSR 명령어와 관련된 주 폴트가 나와 있습니다.
에러 코드
유형
설명
20
4
지정된 첫 번째 비트에 이동할 비트 수를 더한 값이 배열의 끝을 지나갈 경우 주 폴트가 발생합니다.
실행
래더 다이어그램
조건/상태
수행한 작업
사전 스캔
.EN 비트가 거짓으로 해제됩니다.
.DN 비트가 거짓으로 해제됩니다.
.ER 비트가 거짓으로 해제됩니다.
.POS 값이 해제됩니다.
렁-입력-조건이 거짓임
.EN 비트가 거짓으로 해제됩니다.
.DN 비트가 거짓으로 해제됩니다.
.ER 비트가 거짓으로 해제됩니다.
.POS 값이 해제됩니다.
렁-입력-조건이 참임
다음 BSR 흐름도(참)를 참조하십시오.
사후 스캔
N/A
BSR 흐름도(참)
예
예 1
활성화된 경우 BSR 명령어는 array_dint[0].0을 .UL 비트에 복사하고, 0 ~ 9를 오른쪽으로 이동한 다음 input_1을 array_dint[0].9에 로드합니다. 나머지 비트(10 ~ 31)가 유효하지 않습니다. 비트가 수정되지 않았을 수 있습니다.
래더 다이어그램
예 2
활성화된 경우 BSR 명령어는 array_dint[0].0을 .UL 비트에 복사하고, 0 ~ 9를 오른쪽으로 이동한 다음 input_1을 array_dint[1].25에 로드합니다. 나머지 비트(dint_array[1]의 31 ~ 26)가 유효하지 않습니다. 비트가 수정되지 않았을 수 있습니다. array_dint[1].0이 워드를 넘어서 array_dint[0].31로 이동하는 방식을 주의 깊게 살펴보십시오.
래더 다이어그램
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal