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

GX-WORKS2 명령어 더하기, 빼기

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

오늘은 PLC에서 아날로그 제어를 위한 필수 기초 명령어인 사칙연산중에서

더하기, 빼기를 연습해 보겠습니다.

프로그램은 GX-WORKS2이고 명령어로 사칙연산을 직접 해보며 연습해 보겠습니다.

사칙연산이란 더하기, 빼기, 곱하기, 나누기 입니다. 다들 잘 알고 계시지요?

오늘은 더하기, 빼기부터 해보겠습니다.

더하기 명령어는 +입니다. 입력이 들어올때마다 두값을 더하는 동작을 합니다.

1펄스로 실행하기 위해서는 +P를 사용하면 됩니다.

빼기 명령어는 -입니다. 입력이 들어올때 두값을 빼는 동작을 합니다.

1펄스로 실행하기 위해서는 -P를 사용하면 됩니다.

S : Source (비트, 워드 가능)

D : Destination (비트, 워드 가능)

정확히 다시 설명하자면,

Destination의 16비트 데이터와 Source의 16비트 데이터를 계산하여 Destination에 저장합니다.

Destination과 Source는 16비트(1워드)사이즈이기 때문에 -32768 ~ 32767까지의 수를 저장 및 표현할 수 있습니다.

참고로 최상위 비트인 15번째(비트자리수는 0부터 시작함을 기억!)비트는

데이터의 플러스 및 마이너스를 판정합니다.

0 일때 플러스

1일때 마이너스

직접 한번 해보겠습니다.

MOV 명령어를 사용하여 D0에는 100을 D10에는 1000을 넣어보겠습니다.

그리고 M1을 ON하여 더하기를 M2를 ON하여 빼기를 실행해 보겠습니다.

M0를 ON하여 D0에 100, D10에 1000을 넣었습니다.

M1을 ON하자 D0에 D10의 1000과 D0의 100이 더해진 1100이 저장되는것을 확인 할 수 있었습니다.

이어서 M2를 ON해 보겠습니다.

M2를 ON하자 D0에 저장되어 있던 1100에서 D10의 1000이 빠진

100이 저장되는것을 확인 할 수 있었습니다.

그럼 -32768 부터 32767까지를 벗어난 범위의 수는 어떻게 표현될까요?

+(P)명령어와 -(P)명령어는 16비트(1워드)명령어이기 때문에 표현 및 저장 가능한 수의 영역이

-32768 ~ 32767임을 이미 배웠습니다.

직접 해보면서 알아보겠습니다.

간단하게 D0에도 30000, D10에도 30000을 저장하여 더하기를 실행해 보겠습니다.

-5536이라는 수가 저장되었습니다.

대충 감이 오시나요?

맞습니다. 30000 + 30000을 실행했을때

32767이 되고 난 뒤에 -32768로 변경되고,

그때부터 60000에서 32767을 빼고 난 수 만큼 역으로 다시 증가를 시작하는 것입니다.

여기서 주의해야 할 점은 60000중에서 1은 부호를 플러스에서 마이너스로 바꾸는데 사용을 해버렸기 때문에

빼고 계산해야 한다는 점을 기억해야 합니다.

그럼 다음으로 빼기를 하여 -32768 ~ 32767 범위를 넘을때 어떻게 되는지 직접 해보겠습니다.

D0에 -32767, D10에 -30000을 저장했습니다.

바로 실행해 보겠습니다.

D0에 2769가 저장되었습니다.

맞습니다. -32767에서 2만큼 더 내려가면 32767이 됩니다.

그때부터 29998만큼 아래로 더 내려가는 것입니다.

여기서도 빠르게 계산할때

마이너스에서 플러스로 전환되는 1만큼은 빼고 계산해야 되는것을 기억해야 합니다.

오늘은 여기까지이며, 다음시간에 곱셈, 나눗셈에 대해서 더 알아보겠습니다.

감사합니다.

반응형

댓글