Process Control

PID 오토튜닝 실패 원인과 사전조정 조건

테크플렉스 2026. 8. 30. 22:00
반응형
플랜트 배관에 설치된 아날로그 압력계 여러 개
사진: Jay Heike / Unsplash

오토튜닝 버튼을 눌렀는데 상태 표시가 그대로거나, 시작은 했는데 몇 초 만에 멈추는 일이 있습니다. 이럴 때 제어 대상을 의심하기 쉬운데, 실제 원인은 대부분 튜닝을 시작할 자격 자체가 안 되는 상태라는 데 있습니다. 아래 내용은 지멘스가 배포한 PID control with PID_Compact 응용 예제 문서(Entry-ID 100746401, V2.0)를 기준으로 정리한 것이며, 대상은 S7-1200 및 S7-1500의 PID_Compact V2.x입니다.

사전조정은 지금 목표에서 멀리 떨어져 있을 것을 요구합니다

PID_Compact의 자동 튜닝은 사전조정(Pretuning)과 미세조정(Fine tuning) 둘로 나뉩니다. 이 가운데 사전조정을 시작하려면 아래 조건이 모두 맞아야 합니다.

조건 내용
수동 요청 없음 ManualEnable = FALSE, Reset = FALSE
동작 모드 Manual, Inactive, Automatic 중 하나
범위 안 설정값과 측정값이 모두 설정한 상하한 안에 있을 것
거리 조건 ① 설정값과 측정값의 차이가 측정값 상한과 하한 차이의 30% 초과
거리 조건 ② 설정값과 측정값의 거리가 설정값의 50% 초과

앞의 세 개는 대개 자동으로 만족합니다. 실무에서 발목을 잡는 것은 뒤의 두 개, 곧 거리 조건입니다.

측정값이 이미 설정값 근처에 있으면 사전조정은 시작되지 않습니다. 이 글의 도해 두 개는 개념 설명을 위해 직접 그린 것이며 특정 화면의 실제 표시가 아닙니다.

 

ErrorBits는 비트를 더한 값입니다

튜닝이 안 될 때 가장 먼저 볼 값은 인스턴스 DB의 ErrorBits입니다. 이 값은 여러 오류가 동시에 걸리면 이진 합으로 표시됩니다. 0003h가 떴다면 0001h와 0002h가 함께 걸려 있다는 뜻이지 0003h라는 별도 오류가 아닙니다.

의미 조치
0002h Input_PER 값이 유효하지 않음 아날로그 입력 단의 오류를 먼저 확인
0008h 사전조정 시작 오류. 측정값이 설정값에 너무 가까움 사전조정 대신 미세조정을 실행
0800h 샘플링 시간 오류. 진행 중인 튜닝이 중단됨 호출 주기 흔들림 확인. 시뮬레이션이면 아래 설정 적용

0800h는 PLCSIM으로 시뮬레이션할 때 특히 자주 만납니다. 시뮬레이션 PLC는 주기 인터럽트 OB의 실제 실행 간격이 실물보다 크게 흔들리는데, PID_Compact는 기본 설정에서 호출 간격을 스스로 측정하고 그 흔들림을 감시하기 때문입니다. 감시에 걸리면 튜닝이 그 자리에서 중단됩니다. 지멘스가 안내하는 시뮬레이션용 설정은 세 줄입니다.

CycleTime.EnEstimation = FALSE
CycleTime.EnMonitoring = FALSE
CycleTime.Value        = 주기 인터럽트 OB 주기 (단위: 초)

참고로 PID_Compact V2.x는 S7-1500 + PLCSIM 조합만 시뮬레이션을 지원합니다. S7-1200 CPU로는 PLCSIM 시뮬레이션이 지원되지 않으므로, 1200 프로젝트를 시뮬레이터에서 튜닝해 보려던 계획은 여기서 접어야 합니다.

사전조정이 실제로 하는 일

사전조정은 조작량에 계단 변화를 준 뒤 측정값 응답에서 변곡점을 찾습니다. 그리고 그 변곡점의 최대 기울기와 제어 대상의 낭비시간으로 P·I·D 파라미터를 계산합니다.

계단을 준 뒤 곡선이 충분히 그려져야 변곡점과 기울기를 잡을 수 있습니다. 거리 조건이 붙어 있는 이유가 여기 있습니다.

 

거리 조건이 왜 필요한지가 이 그림에서 드러납니다. 측정값이 이미 설정값 근처에 있으면 계단을 줘도 곡선이 그려지기 전에 목표에 닿아 버립니다. 변곡점도 최대 기울기도 잡을 자료가 안 나옵니다. 그래서 0008h가 뜨면 사전조정을 다시 시도할 게 아니라 미세조정으로 넘어가라고 안내하는 것입니다.

측정값 범위를 넓게 잡으면 튜닝이 영영 안 됩니다

여기서 실무에서 놓치기 쉬운 함정이 나옵니다. 30% 조건의 기준은 설정값이 아니라 측정값 상한과 하한의 차이입니다. 온도 채널을 0~1000℃로 넉넉하게 잡아 두었다면, 사전조정을 시작하는 데만 설정값과 측정값이 300℃ 넘게 벌어져 있어야 합니다. 실제 운전점이 80℃인 설비라면 이 조건은 물리적으로 만족할 수 없습니다.

채널 범위는 넓게 잡아 두는 게 안전하다는 습관이 여기서는 반대로 작용합니다. 튜닝을 염두에 둔다면 측정값 상하한을 실제 운전 범위에 맞춰 좁히는 편이 낫습니다. 문서도 가능하면 측정값 범위의 중간쯤에 목표값을 두고 시작하라고 적어 두었습니다.

사전조정과 미세조정은 둘 다 해야 합니다

문서의 표현은 분명합니다. 사전조정과 미세조정을 모두 수행했을 때 가장 좋은 PID 파라미터가 나옵니다. 진행 상태는 State 값으로 확인합니다.

State 상태
0 Inactive (정지)
1 SUT — 사전조정 진행 중
2 TIR — 미세조정 진행 중
3 Automatic (자동 운전)
4 Manual (수동)

튜닝 규칙은 제어기 구조에 따라 초기값이 달라집니다. Chien·Hrones·Reswick 방식이나 PID 자동, 또는 Chien·Hrones·Reswick와 Ziegler-Nichols PI 중에서 잡힙니다. 속도 제어라면 제어기 구조를 PI로 고르라는 것이 문서의 권고입니다. D 항이 속도 신호의 잡음을 그대로 증폭하기 때문입니다.

오류가 났을 때의 동작도 미리 정해 둘 수 있습니다. 오류가 지속되는 동안 현재 조작량을 그대로 유지하거나, 지정해 둔 대체값을 출력으로 내보내는 두 가지입니다. 사전조정과 미세조정, 자동 운전 모두에서 이 설정이 적용됩니다. 수동 모드에서는 제어기가 비활성으로 전환됩니다.

다음에 할 일

튜닝이 안 될 때 화면만 보고 판단하지 말고, 워치 테이블에 State와 ErrorBits 두 개를 올려 두고 버튼을 누르세요. State가 1로 갔다가 0으로 돌아오면서 ErrorBits에 0008h가 남으면 거리 조건, 0800h가 남으면 호출 주기 문제입니다. 이 두 값만 보면 원인이 열 중 아홉은 갈립니다.

참고 자료

반응형