일상에 꼭 필요한 정보, 늘 함께하는 나침반 일상에 꼭 필요한 정보, 늘 함께하는 나침반

PLC ADD·SUB 명령이란? 덧셈·뺄셈 연산 원리

읽는 시간 약 7분

PLC ADD·SUB 명령이란 숫자 데이터를 더하거나 빼서 새로운 값을 만드는 기본 산술연산입니다. INT·DINT·REAL 데이터형과 Overflow까지 연산 원리를 알아봅니다.

PLC ADD·SUB 명령이란 무엇일까?

PLC ADD와 SUB는 숫자 Data를 계산하는 가장 기본적인 Arithmetic Instruction입니다. ADD는 두 Operand를 더하여 결과를 Destination에 저장하고 SUB는 첫 번째 값에서 두 번째 값을 빼서 결과를 저장합니다. 개념적으로 ADD는 Result = A + B, SUB는 Result = A - B로 표현할 수 있습니다. 예를 들어 현재 생산수량이 120이고 추가 생산수량이 30이라면 ADD 연산으로 150을 계산할 수 있습니다. 반대로 목표수량 500에서 현재 생산수량 320을 SUB하면 남은 수량 180을 구할 수 있습니다. PLC 제조사에 따라 ADD, SUB Instruction을 별도로 사용하거나 +, - 연산자를 지원하며 Ladder, Function Block Diagram과 Structured Text에 따라 표현방식도 달라집니다. ADD·SUB는 단순한 수량계산뿐 아니라 Sensor 보정, Offset 계산, Position 계산, Recipe 값 조정과 공정 Data 처리 등 다양한 자동화 Logic의 기초가 됩니다.

ADD 명령은 데이터를 어떻게 더할까?

ADD 명령은 일반적으로 Source A와 Source B의 값을 읽은 뒤 두 값을 더하여 Destination Variable에 저장합니다. 예를 들어 A=100, B=50이라면 ADD 결과는 150입니다. Source에는 Constant, Register, Tag 또는 연산이 허용되는 Variable을 사용할 수 있으며 정확한 Operand 형식은 PLC Platform에 따라 다릅니다. 생산설비에서는 현재 생산량에 신규 Count를 추가하거나 기본 Setpoint에 Operator가 입력한 Offset을 더하는 데 사용할 수 있습니다. 중요한 점은 ADD 조건이 여러 Scan 동안 TRUE일 때입니다. Count = Count + 1과 같은 Logic을 일반 ON 조건으로 실행하면 조건이 TRUE인 모든 Scan에서 1이 반복해서 증가할 수 있습니다. 버튼을 한 번 누를 때 값이 1만 증가해야 한다면 Rising Edge나 One Shot을 이용하여 ADD가 한 번만 실행되도록 구성해야 합니다. 반대로 매 Scan마다 누적해야 하는 계산이라면 반복실행이 의도된 것인지 확인하고 Scan Time과 계산목적을 함께 고려해야 합니다.

SUB 명령은 어떤 계산에 사용할까?

SUB는 첫 번째 Operand에서 두 번째 Operand를 빼는 연산으로 Result = A - B 형태로 이해할 수 있습니다. 자동화설비에서는 목표값과 현재값의 차이를 계산하거나 재고량에서 사용량을 차감하고 Position Offset을 계산할 때 자주 활용됩니다. 예를 들어 Target Position이 1,000이고 Actual Position이 960이라면 1000 - 960 = 40을 계산하여 Position Difference를 구할 수 있습니다. 다만 제어에서 말하는 Error의 부호는 설계에 따라 Setpoint - Process Value 또는 다른 정의를 사용할 수 있으므로 Program 전체에서 일관된 기준을 정해야 합니다. Unsigned Data Type을 사용할 때 결과가 0보다 작아지는 경우도 주의해야 합니다. 예를 들어 UINT 값 10에서 20을 빼면 수학적인 결과는 -10이지만 Unsigned Type은 음수를 표현할 수 없습니다. 이때 발생하는 결과와 Error 처리방식은 PLC 및 Instruction에 따라 달라질 수 있으므로 Data Type과 범위를 반드시 확인해야 합니다.

INT·DINT·REAL에 따라 연산결과가 달라질까?

ADD·SUB에서는 Operand와 Destination의 Data Type을 정확하게 선택하는 것이 중요합니다. INT는 일반적으로 16-bit Signed Integer이며 -32,768부터 32,767까지 표현하고 DINT는 일반적으로 32-bit Signed Integer로 더 넓은 범위를 처리합니다. REAL은 소수점이 필요한 계산에 사용하는 Floating-point Type입니다. 예를 들어 온도 23.5에 Offset 1.2를 더하려면 REAL 연산이 적합합니다. 서로 다른 Data Type을 함께 계산할 때 PLC가 자동 Type Conversion을 지원할 수도 있지만 명시적인 Conversion이 필요한 Platform도 있습니다. 특히 큰 DINT 값을 REAL로 변환하면 Floating-point의 유효정밀도 때문에 모든 정수값을 정확하게 표현하지 못하는 영역이 생길 수 있습니다. 또한 INT 결과가 허용범위를 넘어가면 Overflow가 발생할 수 있습니다. 따라서 계산식만 맞는지 확인하는 것이 아니라 입력값의 최소·최대 범위와 중간 연산결과가 선택한 Data Type에 들어가는지 함께 검토해야 합니다.

ADD·SUB 명령에서 무엇을 주의해야 할까?

ADD·SUB Logic에서는 Overflow, Underflow, 반복실행과 Data Type Conversion을 주요하게 확인해야 합니다. 예를 들어 INT 값 32,000에 1,000을 더하면 16-bit Signed Integer의 표현범위를 넘어갑니다. 이때 값이 Wrap Around되는지, Error Flag가 설정되는지, 연산결과가 어떻게 처리되는지는 PLC CPU와 Instruction 규칙에 따라 달라질 수 있으므로 제조사 Documentation을 확인해야 합니다. 누적값이 계속 증가하는 Totalizer나 Production Count에는 충분한 범위의 DINT 또는 더 큰 Data Type을 선택하는 것이 좋습니다. 동일한 Destination Variable을 여러 Routine에서 계산하면 Scan Order에 따라 마지막 연산결과가 남을 수 있으므로 Data Ownership도 명확해야 합니다. HMI에서 입력받는 값은 예상범위를 벗어날 수 있으므로 Limit Check를 적용하는 것도 중요합니다. 결국 PLC ADD·SUB는 단순한 덧셈과 뺄셈 명령이지만 Data Type, 실행조건과 값의 범위를 함께 설계해야 신뢰할 수 있는 자동화 Data Processing Logic을 만들 수 있습니다.

jssj2627

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.