비트 왼쪽 자리 이동(BSL)
이 표에는 이 명령어를 지원하는 컨트롤러 및 응용 프로그램이 나와 있습니다.
아키텍처 | 표준 응용 프로그램 | 안전 응용 프로그램 |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러 | 예 | 아니요 |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 및 ControlLogix 5590 컨트롤러 | 예 | 예 |
BSL 명령어가 배열 내에서 지정된 비트를 왼쪽으로 한 위치 이동합니다.
활성화된 경우 이 명령어는 지정된 비트의 맨 위에 있는 비트를 .UL 비트에 언로드하고, 나머지 비트를 왼쪽으로 한 위치 옮긴 다음 비트 주소를 Array의 비트 0에 로드합니다.
중요:
명령어가 변경하지 않으려는 데이터를 변경하지 않는지 테스트하고 확인해야 합니다.
BSL 명령어는 연속 데이터 메모리에서 작동합니다. 데이터가 지정된 구성원으로 제한됩니다.
이 전환 명령어에서 명령어가 실행되려면 릴레이 래더가 렁-입력-조건을 거짓에서 참으로 토글 전환합니다.
사용 가능한 언어
래더 다이어그램

피연산자
래더 다이어그램
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
Array | DINT ARRAY | 태그 | 수정할 배열 이동을 시작할 첫 번째 요소 지정 |
Control | CONTROL | 태그 | 연산의 제어 구조 |
Source Bit | BOOL | 태그 | 비어 있는 위치로 이동할 비트 |
Length | DINT | 즉시 | 배열에서 이동할 비트의 수 |
CONTROL 구조
니모닉 | 데이터 유형 | 설명 |
|---|---|---|
.EN | BOOL | 활성화 비트는 BSL 명령어가 활성화되었음을 나타냅니다. |
.DN | BOOL | 완료 비트는 비트가 왼쪽으로 한 위치 이동했음을 나타내도록 설정됩니다. |
.UL | BOOL | 언로드 비트는 명령어의 출력입니다. .UL 비트가 비트 범위 밖으로 이동된 비트의 상태를 저장합니다. |
.ER | BOOL | 에러 비트는 .LEN < 0인 경우에 설정됩니다. |
.LEN | DINT | 길이는 이동할 배열 비트의 수를 지정합니다. |
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
메이저 폴트가 발생하는 조건 | 폴트 유형 | 폴트 코드 |
|---|---|---|
LEN이 배열의 크기를 초과합니다 | 4 | 20 |
피연산자 관련 폴트에 대해서는 공통 특성 항목을 참조하십시오.
실행
래더 다이어그램
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | .EN 비트가 거짓으로 해제됩니다. .DN 비트가 거짓으로 해제됩니다. .ER 비트가 거짓으로 해제됩니다. .POS 값이 해제됩니다. |
렁-입력-조건이 거짓임 | .EN 비트가 거짓으로 해제됩니다. .DN 비트가 거짓으로 해제됩니다. .ER 비트가 거짓으로 해제됩니다. .POS 값이 해제됩니다. |
렁-입력-조건이 참임 | BSL 흐름도(참)를 참조하십시오. |
사후 스캔 | N/A |
BSL 흐름도(참)

예
예 1
활성화된 경우 BSL 명령어는 array_dint[0]의 비트 0에서 시작합니다. 이 명령어는 array_dint[0].9를 .UL 비트에 언로드하고, 나머지 비트를 이동한 다음 input_1을 array_dint[0].0에 로드합니다. 나머지 비트(10 ~ 31)가 유효하지 않습니다.
래더 다이어그램


예 2:
활성화된 경우 BSL 명령어는 array_dint[0]의 비트 0에서 시작합니다. 이 명령어는 array_dint[1].25를 .UL 비트에 언로드하고, 나머지 비트를 이동한 다음 input_1을 array_dint[0].0에 로드합니다. 나머지 비트(array_dint[1]의 31 ~ 26)가 유효하지 않습니다.


의견을 작성 부탁드립니다.