오토튜닝 버튼을 눌렀는데 상태 표시가 그대로거나, 시작은 했는데 몇 초 만에 멈추는 일이 있습니다. 이럴 때 제어 대상을 의심하기 쉬운데, 실제 원인은 대부분 튜닝을 시작할 자격 자체가 안 되는 상태라는 데 있습니다. 아래 내용은 지멘스가 배포한 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가 남으면 호출 주기 문제입니다. 이 두 값만 보면 원인이 열 중 아홉은 갈립니다.
참고 자료
- PID control with PID_Compact — SIMATIC S7-1200 / S7-1500 + TIA Portal V15.1 (Entry-ID 100746401) — 사전조정 조건, State 값, 시뮬레이션 설정의 출처
- Closed-Loop Control with PID_Compact V2.2 (Entry-ID 79047707) — 블록 버전별 상세 문서
'Process Control' 카테고리의 다른 글
| 캐스케이드 제어의 원리 - 내부루프를 나누는 기준 (0) | 2026.09.02 |
|---|---|
| 전류출력형 압력센서 배선 (0) | 2024.12.17 |
| Process Control / manual zip / PMD75 (0) | 2024.12.17 |