※ 주의사항 ※
본 블로그는 수업 내용을 바탕으로 제가 이해한 부분을 정리한 블로그입니다.
본 내용을 참고로만 보시고, 틀린 부분이 있다면 지적 부탁드립니다!
감사합니다😁
안녕하세요!!
오늘은 아래와 같은 내용을 확인해보겠습니다.
ROL / ROR
SFL / SFR
BSFL / BSFR
산술명령어
INC / DEC
비교명령어
1. 비트이동 관련 명령어
1-1. 로테이션 명령어(ROL / ROR)
1) 명령어 : [ROL(P) D` N`] / [ROR(P) D` N`]
지정된 데이터 D`에서 N`Bit 수 만큼 좌측 또는 우측으로 회전하면서 이동한다.
2) 래더프로그램
3) 응용예제
(1) 실행조건
- PLC RUN 하면 모든 램프는 소등이 된다.
- X0을 누르면 Y20 → Y27 순서로 1초 주기로 1개씩만 점등되며 계속 반복된다.
- X1을 누르면 Y27 → Y20 순서로 1초 주기로 1개씩만 점등되고 이를 반복한다.
- X2를 누르면 모든 램프는 소등된다.
(2) 래더프로그램
1-2. 쉬프트 명령어(SFL / SFR)
1) 명령어 : [SFL(P) D` N`] / [SFR(P) D` N`]
지정된 데이터(D`)에서 N` Bit 수 만큼 좌측 또는 우측으로 쉬프트 한다.
2) 래더프로그램
※ 로테이션 명령어와 쉬프트 명령어의 차이점!!
- 로테이션(ROL / ROR) : 원점으로 복귀 가능
- 쉬프트(SFL / SFR) : 원점으로 복귀 불가(비트 사라짐)
1-3. 1비트 쉬프트 명령어(BSFL / BSFR)
1) 명령어 : [BSFL(P) D` N`] / [BSFR(P) D` N`]
D`의 디바이스 선두번지부터 좌측 또는 우측으로 1비트씩 N`만큼 이동한다.
2) 래더프로그램
(1) [MOV K1 K1M0] : M0에 1의 값 전송
(2) [BSFL M0 K7] : 한번 누를때마다 1비트씩 왼쪽으로 이동
(1번 클릭 → M1 = 1, 2번 클릭 → M2 = 1, 3번 클릭 → M3 = 1 // 최대 M6까지)
(3) 쉬프트 명령어라 입력단에 B접점(M6, M0)을 넣어서 비트가 사라지지 않도록 함.
2. 산술 명령어
PLC 프로그램에서 값을 사칙연산을 하고자 할때 사용.
※ 주의사항
사칙연산시 덧셈 또는 뺄셈 연산에는 반드시! 펄스 형태 명령어를 사용할 것!!
WHY? 일반 접점을 사용하면 ON되어 있는 동안 지속적으로 연산이 수행 됨
1) 사칙연산(+, -, *, /)
(1) 연산범위 :
- 16Bit → -32768 ~ 32767
- 32Bit → -2147483 ~ 2147484
(2) 미쓰비시 PLC의 경우 나머지 연산시 몫과 나머지의 값을 따로 저장해준다.
(3) 음수의 경우는 2의보수를 통해 표현이 된다.
2) 부동소수점
부동 소수점 연산시에는 각각의 산술 명령어에 'E'를 붙여주고, 소수점에도 'E'를 붙인다
3) 산술명령어를 활용한 카운터
A = A+1, B = B+1이라는 컴퓨터 언어적인 공식을 근거하여 UP & DOWN COUNTER를 만들 수 있다.
(일반적인 카운터(C)로는 다운 카운터를 만들 수 없다.)
(1) X0을 누를때마다 D0의 값에 1을 더해서 D0에 저장한다.
(2) X1을 누를때마다 D0의 값에 1을 빼서 D0에 저장한다.
4) INC / DEC 명령어
INC와 DEC 명령어를 사용하면 각각 +1증가 및 -1씩 감소시킬 수 있다.(UP & DOWN COUNTER 명령어)
(1) [+ D0 K1 D0] == [INC D0]
(2) [- D0 K1 D0] == [DEC D0]
3. 비교 명령어
1) 명령어 : ["비교연산자" "값1" "값2"]
(1) 좌측 입력부에 "F8"Coil을 눌러서 접점형태로 사용한다. (예외적)
(2) 비교연산자 종류 : >, <, >=, <=, ==, <>(같지않음)
(3) 비교명령어는 직렬로 연결해서 AND형태나 병렬로 연결해서 OR형태로 사용 가능하다.
2) 응용 예제
(1) 실행조건
(2) 래더프로그램
'대한상공회의소 스마트팩토리 교육 > PLC 프로그래밍' 카테고리의 다른 글
[PLC 프로그래밍] BIN / BCD 명령어 활용 PLC 래더프로그램 예제모음 (2) | 2022.01.17 |
---|---|
[PLC 프로그래밍] BIN / BCD 명령어 (0) | 2022.01.16 |
[PLC 프로그래밍] C(Counter) / MOV / FMOV / BMOV / $MOV / EMOV (3) | 2022.01.15 |
[PLC 프로그래밍] TIMER 활용 PLC 래더프로그램 예제모음-3 (0) | 2022.01.15 |
[PLC 프로그래밍] TIMER 활용 PLC 래더프로그램 예제모음-2 (0) | 2022.01.14 |
댓글