본문 바로가기
PLC/Siemens (S7)

SIEMENS PLC Simatic Manager 프로그래밍 기초 - Interger Function

by 쪼렙엔지니어 2022. 2. 16.
반응형

오늘은 Interger Function에 대해서

알아보겠습니다.

Interger는 정수라는 개념이죠?

Siemens PLC에서 Interger는 word(16bit) 사이즈의

메모리를 차지합니다.

Unsign Interger는 부호가 없기 때문에

양의 정수만을 이야기 하지만

그냥 Interger는 부호도 포함하기 때문에

음의 정수와 양의 정수 모두를 이야기 합니다.

그래서 Interger Function은 정수 함수라는 뜻이되지요.

카테고리를 한번 열어보겠습니다.

지난번에 "Comparator"를 배울 때와 마찬가지로

중복되는게 보이네요.

언더바 뒤의 I는 Interger, DI는 Double Interger를 의미합니다.

Double Interger는 Double word (32bit)사이즈의

메모리크기를 차지합니다.

 

그럼 하나씩 알아보겠습니다.

먼저 간단히 얘기하자면 사칙연산입니다.

더하기, 빼기, 곱하기, 나누기

 

 

1. ADD ( ADD_I, ADD_DI )

먼저 ADD 입니다.

이정도는 다들 느낌으로 아시죠?

더하기 입니다.

IN1 단자의 MW100과 IN2 단자의 MW200의 값을

더하여 OUT단자의 MW300에 저장합니다.

여기서 ADD_I는 word(16bit)사이즈의 메모리 크기를

차지하는 데이터 단위이기 때문에

변수 address가 MW가 됩니다.

만약에 ADD_DI에는 Double word (32bit) 사이즈이기 때문에

변수 address가 MD가 되어야겠죠?

2. SUB ( SUB_I, SUB_DI )

다음은 SUB, 빼기 입니다.

뭐 어려울것 없죠?

IN1 단자의 MW100과 IN2 단자의 MW200의 값을

빼서 OUT단자의 MW300에 저장합니다.

3. MUL ( MUL_I, MUL_DI )

다음은 곱하기 입니다.

IN1 단자의 MW100과 IN2 단자의 MW200의 값을

곱해서 OUT단자의 MW300에 저장합니다.

 

4. DIV ( DIV_I, DIV_DI )

다음은 나누기 입니다.

나누면 몫과 나머지가 생기는데

Interger는 몫만 있습니다.

나머지는 Double Interger단위에만 있습니다.

IN1 단자의 MW100과 IN2 단자의 MW200의 값을

나누어서 몫을 OUT단자의 MW300에 저장합니다.

5. MOD ( MOD_DI )

마지막으로 MOD는 나누기의 나머지입니다.

IN1 단자의 MW100과 IN2 단자의 MW200의 값을

나누어서 나머지를 OUT단자의 MW300에 저장합니다.

간단하지요?

그럼 여기서 의문이 생깁니다.

왜 굳이 Interger와 Double Interger로 나누어서 사용하는가??

그 이유는 메모리 사용의 효율성 때문입니다.

Interger만 있을 경우에는 큰 수를 표현할 수 없고,

Double Interger만 있을 경우에는 작은수를 표현하기에는

메모리의 낭비가 너무 심하게 됩니다.

예를 들어

Interger의 경우 word (16bit )사이즈 이기 때문에

-32,768 ~ 32,767 까지의 숫자 표현이 가능합니다.

그럼 30,000의 수를 더하게 되면 60,000이 되기 때문에

덧셈만 하더라도 계산이 불가능하게 됩니다.

그렇기 때문에 Double Interger가 있는 것이고,

반대로 5 또는 10 정도의 수를 계산할 때는

약 -20억 ~ +20억의 수를 저장할 수 있는 Double Interger는

메모리의 낭비가 너무 심하게 되는 것입니다.

그래서 Interger와 Double Interger를

적절히 사용해야 합니다.

이해가 되시나요??

사칙연산은 전혀 어렵지 않은 내용입니다.

다음시간에는 좀 더 다양한 계산을 알아보겠습니다.

 
 

제 블로그를 방문해 주셔서 감사합니다.

도움이 되셨다면 공감(좋아요) 부탁드리고,

댓글은 다른분들께도 좋은 정보일 수 있으니

공개로 부탁드립니다.

여러분의 작은 정성이 좋은 포스팅을 생산하는

힘이 된답니다. :)

감사합니다.

 
반응형

댓글