본문 바로가기
PLC/MITSUBISHI (MELSEC Q)

GX-WORKS2 명령어 MOV, DMOV

by 쪼렙엔지니어 2021. 3. 7.
반응형

오늘은 PLC 명령어 중에서 MOV 명령어에 대해서 배워보겠습니다.

MOV 명령어는 BMOV, DMOV 등등 여러가지 명령어가 있는데 그 중에서 가장 기본적인 MOV명령어부터

알아보겠습니다.

MOV는 MOVE를 의미한다고 생각하면 되는데 기본적으로 영어의 뜻을 해석하면 옮기다, 이동하다의 의미이지만

PLC에서는 약간 다르게 생각해야 합니다.

PLC에서는 복사하다. 복제하다.의 의미로 생각을 하셔야 합니다.

작성방법은 [MOV S1 S2]로 작성을 하며, 해석하자면 S1의 16bit(1word) 값을 S2에 복사한다. 입니다.

S1에는 상수부터 D address까지 입력이 가능하며, S2에는 D address를 입력 가능합니다.

또한 16bit(1word) 값이므로 0 ~ 65,535 or -32,768 ~ 32,767까지 표현이 가능합니다.

(메모리 체계와 데이터 사이즈에 대한 내용은 아래 포스팅을 참조하시기 바랍니다.)

mech19.tistory.com/10

 

PLC 메모리의 체계와 데이터의 단위

PLC의 기본 데이터 단위는 Bit(비트) 입니다. ​ 이 Bit라는 데이터 영역은 0 또는 1을 표현할 수 있습니다. 따라서 펌프나 팬에 달린 모터가 켜졌는지, 혹은 꺼졌는지를 표현할 수 있죠. 또는 모터를

mech19.tistory.com

이제 한번 직접 사용해 보겠습니다.

먼저 GX-WORKS2를 실행하여 아래와 같이 작성합니다.

주의할 점은 타이머나, 카운터와는 달리 출력코일 F7이 아니라 응용명령 F8을 눌러 [ ]을 이용해야 한다는 것입니다.

위의 프로그램 응용명령 [MOV K-30000 D0]을 해석하면

입력접점M0가 ON되면 -30000이 D0로 복사된다. 입니다.

이제 F4를 눌러 컴파일 한 뒤, 시뮬레이터를 실행시켜 보겠습니다.

그리고 M0를 ON시켜보면 아래와 같이 D0에 -30000이 들어간 것을 확인 할 수 있습니다.

D0에 입력된 -30000이라는 값은 PLC 전원이 OFF되거나 아니면 리셋을 한다던가 D0에 강제로 다른 값을 입력하기 전에는 입력접점 M0가 OFF된다고 한들 지워지지 않습니다.

자 그럼 16bit(1word)보다 더 큰 수를 복사하고 싶으면 어떻게 해야할까요?

DMOV 명령어를 사용하면 됩니다.

MOV는 16bit(1word)이고 DMOV는 32bit(double word) 입니다.

작성법은 동일하게 [DMOV S1 S2] 입니다.

그리고 DMOV는 Double word인데 S1이나 S2에서 표현하는건 word address인 D address 하나뿐이죠?

어떻게 Double word address를 인식시킬까요? 그것은 자동으로 한답니다.

그래서 D와 D+1 address를 자동으로 인식하는것을 기억해야 합니다.

예를들어 [DMOV D10 D20] 으로 작성했다면, D11&D10 => D21&D20 으로 가게 됩니다.

그리고 32bit(Double word)의 값은 뒤쪽address부터 씌여진다는 것을 기억해야 합니다.

이게 무슨 말이냐면 D0의 가장 높은 address가 D0.F인데 이 자리수가 2^15이고 D1의 가장 낮은 address가 D1.0인데 여기가 2^16이라는 의미입니다.

곰곰히 생각해보면 이해가 되실거에요.

그리고 MOV명령어에는 상승펄스에 작동하는 명령어도 있습니다.

이건 MOVP, DMOVP라고 작성하시면 됩니다.

명령어 Manual에 아래와 같이 친절하게 설명이 되어있네요.

S : Source

D : Destination

이라고 생각하시면 됩니다.

다음 포스팅에서는 BMOV등 더 많은 종류의 MOV명령어를 알아보겠습니다.

감사합니다.

반응형

'PLC > MITSUBISHI (MELSEC Q)' 카테고리의 다른 글

GX-WORKS2 명령어 BMOV  (0) 2021.03.08
GX-WORKS2 명령어 FMOV  (0) 2021.03.08
GX-WORKS2 카운터  (0) 2021.03.07
GX-WORKS2 타이머  (0) 2021.03.07
GX-WORKS2 명령어 SET, RST  (0) 2021.03.07

댓글