오늘은 MOV명령어 두번째 시간으로 FMOV에 대해서 알아보겠습니다.
1. FMOV
먼저 FMOV명령어의 작성방법과 실행조건에 대해서 알아보겠습니다.
S : Source (워드, 상수 가능)
D : Destination (워드, 비트 가능)
n : 상수
동작 설명을 하자면, Source의 값을 Destination address부터 n개의 address까지 복사한다. 입니다.
간단한 예시를 통해 알아보겠습니다.
위와 같이 [FMOV K100 D1 K10]을 작성해 보았습니다.
이 프로그램을 해석하면, 입력접점 M1이 ON되면 100이 D1~D10까지 복사된다. 입니다.
실제로 실행해 보겠습니다.
F4를 눌러 컴파일 한 뒤, 시뮬레이터를 실행시켜 입력접점 M1을 ON 시켰습니다.
D1에 100이 입력된것은 확인이 되었네요.
그럼 실제로 D2 ~ D10까지도 100이 잘 입력되어 있는지 확인해 보겠습니다.
아래는 Device/Buffer Memory Batch Monitor 입니다.
Device Name에 "D0"를 검색하면 아래와 같이 확인이 가능합니다.
D1부터 D10까지 100이 잘 입력된것을 확인 할 수 있었습니다.
그럼 좀 더 고차원적인 연습을 한번 해보겠습니다.
FMOV 명령어의 사용법 중에서 다음과 같은 내용이 있습니다.
Source가 워드 디바이스이고 Destination이 비트 디바이스인 경우 Source의 워드 디바이스 중에서 복사가 되는 대상은 Destination에서 지정된 비트들 만이다.
먼저 이 내용을 이해하기 위해서는 word(워드) = 16bit(비트) 인것을 이해해야 합니다.
아래 포스팅을 참조하시기 바랍니다.
위 내용을 좀 더 자세하게 설명해보자면
Source가 워드 디바이스인 경우에 이것은 16비트 디바이스 이므로
하나의 워드로 생각하지 않고 일단 16비트 디바이스로 생각해야 합니다.
그리고 Destination이 비트 디바이스로 선언되었으니
Source의 16비트중에서 Destination에 복사될 수 있는 비트는
Destination에서 지정된 비트만이 복사된다라고 생각해야 합니다.
어렵나요?
그럼 바로 예제를 통해서 한번 확인해 보시지요.
먼저 [FMOV D1 K1M0 K4]를 입력하여 프로그래밍을 하였습니다.
1번렁의 [MOV K19 D1]은 FMOV에서 D1을 Source로 사용하기 위해서 19의 값을
미리 입력시켜 두기 위한 프로그램이므로 신경쓰지 않으셔도 됩니다.
위 프로그램[FMOV D1 K1M0 K4]을 해석해보자면,
D1중 4bit만큼의 데이터를 M0부터 4bit까지인 M3까지 복사하는걸 4번 반복한다. 입니다.
여기서 핵심은 Destination에서 선언된 K1이 1nibble 즉 4bit를 의미한다는 것입니다.
바로 실행해보겠습니다.
실행한 뒤 1번렁의 MOV 명령어부터 실행하여 D1에 19를 입력했습니다.
다음으로 M1을 ON시켜보겠습니다.
Destination에 3이라는 값이 입력된것을 확인 할 수 있습니다.
Device monitor로 확인해 보겠습니다.
먼저 D1의 값부터 확인해 보겠습니다. 19라는 수를 16bit binary(바이너리)로 표현하기 때문에
아래와 같이 표현 됩니다.
이때 우리는 4bit만 옮기기 때문에 D1의 0번 칸부터 3번 칸까지를 옮긴다고 생각하시면 됩니다.
그렇기때문에 결국 우리가 옮기는 4bit Binary는 (0 0 1 1) 인것입니다.
다시 M11을 검색하여 보면 아래와 같이 (0 0 1 1)이 4번 반복된것을 확인 할 수 있습니다.
잘 이해 하셨나요??
오늘은 여기까지 하고, 다음시간에는 BMOV에 대해서 알아보겠습니다.
감사합니다.
'PLC > MITSUBISHI (MELSEC Q)' 카테고리의 다른 글
GX-WORKS2 명령어 플립플롭 (FF) (0) | 2021.03.10 |
---|---|
GX-WORKS2 명령어 BMOV (0) | 2021.03.08 |
GX-WORKS2 명령어 MOV, DMOV (0) | 2021.03.07 |
GX-WORKS2 카운터 (0) | 2021.03.07 |
GX-WORKS2 타이머 (0) | 2021.03.07 |
댓글