본문으로 건너뛰기

자동화와 공정 제어 데이터

📍 현재 위치: 우리는 계측기 그 자체에서 한 단계 위로 올라가, 계측기를 읽고, 공정을 운영하며, 그 신호를 구조화된 기록으로 바꾸는 자동화 계층으로 이동합니다.

이전 장 데이터 소스로서의 계측기와 센서(Instruments and Sensors as Data Sources)에서 우리는 공정 흐름에 가장 가까이 자리한 물리적 장치들, 즉 온도, pH, 용존 산소, 또는 배양액의 화학적 지문(chemical fingerprint)을 측정하는 인라인(in-line) 및 온라인(on-line) 프로브와 분광기를 만났습니다. 하지만 센서 그 자체만 놓고 보면 그것은 그저 전압일 뿐입니다. 무언가가 그 값을 1초에 여러 번 읽고, 그에 대해 어떻게 할지 결정하고, 그에 응답하여 펌프나 밸브를 작동시키며, 무슨 일이 일어났는지 기록해야 합니다. 그 "무언가"가 바로 자동화 및 제어 계층이며, 이는 공장 전체에서 가장 분주한 데이터 공장(data factory) 중 하나입니다.

이것은 센서와 데이터베이스 사이에 자리한 조용한 기계 장치입니다. 그것은 단지 공정을 관찰하는 데 그치지 않고, 공정을 운영하며, 그렇게 하는 과정에서 숫자, 알람, 운전원 조치(operator action), 레시피 값(recipe value)의 연속적인 흐름을 내보냅니다. 이 값들은 나중에 배치(batch)가 어떻게 만들어졌는지에 대한 공식 기록이 됩니다.

쉽게 말하면

항공기 자동조종장치(autopilot)를 떠올려 보세요. 센서는 비행기의 고도와 속도를 보고하고, 자동조종장치는 이를 비행 계획과 비교하여 항로를 유지하도록 조종 장치를 미세하게 조정하며, 비행 데이터 기록 장치(flight data recorder)는 모든 측정값과 모든 조정을 기록합니다. 현대의 바이오리액터(bioreactor)도 똑같은 방식으로 작동합니다. 제어기는 각 조건을 목표값에 유지하고, "비행 기록 장치"는 운전 전체를 포착합니다. 바로 그 의약품이 올바르게 만들어졌음을 입증하는 데이터입니다.

이 장에서 다루는 내용

우리는 센서에서 제어기를 거쳐 운전원이 지켜보는 화면에 이르는 제어 계층(control hierarchy)을 따라 올라가고, 배치 레시피에 형태를 부여하는 ISA-88 표준을 만나며, 이 계층이 내보내는 네 종류의 데이터를 목록으로 정리하고, 이 계층이 동작하는 현대적 장비와 인터페이스를 살펴보며, 이 모든 것이 왜 전자 배치 기록(electronic batch record)의 근간이 되는지를 보게 됩니다.

센서에서 설정값까지: 제어 계층

공정 공장의 자동화는 계층화된 스택으로 조직되며, 흔히 퍼듀 모델(Purdue model)이라 불립니다. 이는 ISA-95 표준(국제적으로 IEC 62264와 동일)에서 다른 이름으로 레벨 0부터 4까지로 정형화된 바로 그 계층화 모델입니다 [2][3]. 이 장에서는 그 스택의 맨 아래 부분만 알면 됩니다. 레벨 0은 센서 및 작동기(actuator)를 갖춘 물리적 공정이고, 레벨 1은 제어기이며, 레벨 2는 감독(supervision)입니다. 레벨 3은 배치를 스케줄링하고 추적하는 MES(Manufacturing Execution System, 제조 실행 시스템)이고, 레벨 4는 전사적 계획 및 비즈니스 시스템입니다. 아키텍처와 통합: ISA-95(Architecture and Integration: ISA-95) 장이 다섯 레벨 전부를 온전히 펼쳐 보이므로, 여기서는 장비에 가까이 머무릅니다.

폐루프 제어: 피드백의 심장 박동

레벨 1에는 일꾼들이 자리합니다. 견고한 산업용 컴퓨터인 PLC(Programmable Logic Controller, 프로그래머블 로직 컨트롤러)와, 여러 제어기가 함께 작동하여 공정 또는 공장 전체를 조율된 방식으로 운영하는 제어기 네트워크인 DCS(Distributed Control System, 분산 제어 시스템)입니다. PLC는 정확히 레벨 1(기본 제어)에 자리합니다. DCS는 그보다 폭이 넓어, 레벨 1의 기본 제어 그 위 레벨 2의 감독 기능을 함께 제공하므로, 한 칸에 머무는 것이 아니라 레벨 1-2에 걸쳐 있습니다. 각각이 정확히 어디에 자리하는지는 아키텍처와 통합: ISA-95(Architecture and Integration: ISA-95) 장이 자세히 다룹니다. 실제 바이오의약품 공장에서 이들은 알아볼 수 있는 제품들입니다. 스키드를 구동하는 지멘스 SIMATIC S7-1500(Siemens SIMATIC S7-1500) PLC, 또는 한 스위트(suite) 전체를 조율하는 에머슨 델타V(Emerson DeltaV), 요코가와 CENTUM(Yokogawa CENTUM), ABB Ability System 800xA DCS 같은 것들입니다. 이들 장치는 1초에 수십 번씩 센서를 읽고 작동기를 구동합니다. 그들이 실행하는 로직 자체도 표준화되어 있습니다. IEC 61131-3은 제어 엔지니어가 그 로직을 작성하는 프로그래밍 언어 — 구조화 텍스트(Structured Text), 래더 다이어그램(Ladder Diagram), 함수 블록 다이어그램(Function Block Diagram), 그리고 아래에서 소개하는 ISA-88 배치 표준의 단계 시퀀스(step sequence)에 잘 맞는 순차 함수 차트(Sequential Function Chart) 등 — 를 정의합니다 [6].

제어기의 핵심 임무는 폐루프 제어(closed-loop control)입니다. 제어기는 공정값(process value, 실시간 측정값 — 예컨대 배양액이 36.4 °C)을 설정값(setpoint, 목표값 — 37.0 °C)과 비교하고, 둘이 일치할 때까지 히터를 조절하며 그 차이를 메우기 위해 작동합니다. 둘 사이의 차이, 즉 오차(error)는 제어기가 0으로 몰아가려고 애쓰는 대상입니다. 측정하고, 목표와 비교하고, 보정하고, 반복한다는 이 하나의 발상이야말로 공장의 심장 박동입니다. 이 루프는 첫 번째 책이 기술하는 모든 물리적 단계를 관통하며 끊임없이 작동합니다. 동일한 루프가 생산 바이오리액터(production bioreactor)를 2주 동안 목표 온도에 유지하고, 시드 트레인(seed train) 용기를 분할 단계마다 끌어올리며, 캡처 크로마토그래피(capture chromatography) 컬럼의 구배(gradient)를 조정합니다. 각 루프는 이전 장의 계측기에서 값을 읽고 설정값을 다시 써 넣습니다.

한 루프를 끝까지 하류(downstream)로 따라가 볼 가치가 있습니다. 이 계층이 내보내는 데이터는 상류 바이오리액터의 이야기만이 아니며, 모든 정제 단계도 똑같은 방식으로 자동화되기 때문입니다. 정화된 수확물에서 항체를 붙잡는 친화(affinity) 단계인 Protein A 캡처 컬럼에서, 제어기는 적재-세척-용출-세정(load-wash-elute-clean) 주기를 ISA-88 시퀀스로 운전하지만, 배치를 규정하는 순간은 풀링(pooling)입니다. UV-A280 센서가 용출액을 지켜보다가 흡광도가 시작 임계값을 넘어 올라가면 제어기가 수집 밸브를 열고, 뒤쪽 컷 포인트(cut point)에서 다시 닫으므로, 운전원은 두 컷 사이의 용출 피크 조각만을 보관합니다. 그 결정은 온도 제어와 똑같이 측정값에 대한 폐루프이며, 똑같은 네 흐름을 내보냅니다. 즉 태그 시계열로서의 UV 추세선, 운전원 또는 제어기 이벤트로서의 풀링 시작과 정지, 적재 도중 돌파(breakthrough)가 올라가면 발생하는 알람, 그리고 실행된 레시피 값으로서의 컷 포인트 설정값입니다. 이 패턴은 하류 공정 전반에서 거듭됩니다. 설정값과 센서가 저-pH 바이러스 불활성화(low-pH viral inactivation) 유지(제어기가 풀을 정해진 불활성화 시간 창 동안 약 pH 3.5 근처에 유지함)를 조정하고, 폴리싱(polishing) 이온 교환 컬럼의 염(salt) 구배를 조정하며, 바이러스 필터(viral filter)의 막간 차압(transmembrane-pressure) 루프와 무결성 시험 결과를, 그리고 UF/DF의 농축 및 정용여과(diafiltration) 종점을 조정합니다. 하류 제어는 오히려 상류보다 배치를 규정하는 결정이 더 풍부한데, 각 풀링 창과 각 종점이 기록에 영원히 포착되는 일회성 품질 판단이기 때문입니다.

그 루프 안에서 일하는 일꾼 알고리즘이 바로 PID 제어기(PID controller) — 비례-적분-미분(proportional-integral-derivative) — 입니다. PID 제어기는 배양액이 차가울 때마다 히터를 무작정 최대로 켜는 대신, 세 항(term)을 섞습니다. 즉 현재 오차에 맞춰 크기가 정해지는 비례(proportional) 응답, 과거 오차를 누적하여 끈질긴 잔류 편차(offset, 좀처럼 사라지지 않고 스스로는 닫히지 않는 작은 간극)를 지워 내는 적분(integral) 항, 그리고 오차가 어디로 향하는지를 내다보고 오버슈트(overshoot, 목표를 지나쳤다가 도로 안착하는 것)를 감쇠시키는 미분(derivative) 항입니다. 잘 조정하면, 그 결과는 설정값에 매끄럽게 안착하여 그곳에 머무는 온도입니다. 그러나 실제 바이오리액터 조건이 단일 루프로 유지되는 일은 드뭅니다. 두 가지 패턴이 거듭 나타납니다. 캐스케이드 제어(cascade control)는 한 루프를 다른 루프 안에 중첩시킵니다. 즉 배양액 온도에 대한 "마스터(master)" 루프는 히터를 직접 구동하지 않고, 재킷 워터(jacket-water) 온도에 대한 더 빠른 "슬레이브(slave)" 루프의 설정값을 계산하며, 그 슬레이브 루프가 다시 밸브를 구동합니다. 빠른 내부 루프는 교란(냉각수 공급의 출렁임)을 배양액에 도달하기 한참 전에 떨쳐 내므로, 느린 외부 루프는 더 안정된 공정을 보게 됩니다. 분할 범위 제어(split-range control)는 하나의 제어 변수가 서로 반대되는 두 작동기에 명령을 내리게 합니다. 즉 단일 온도 루프가 출력 범위의 하반부에서는 가열 밸브를, 상반부에서는 냉각 밸브를 열어, 하나의 설정값이 가열과 냉각을 모두 매끄럽게 다스립니다. 용존 산소 제어는 전형적인 바이오의약품 분할 범위 사례입니다. 즉 하나의 DO 루프가 교반, 그 다음 가스 유량, 그 다음 산소 농화(oxygen-enrichment) 작동기로 이어지는 순위가 매겨진 시퀀스를 거치며 캐스케이드하여, 세포의 요구가 높아질수록 그 공급을 유지합니다. 이 구조들은 저마다 루프가 내보내는 데이터를 배가시킵니다. 즉 캐스케이드 루프는 단순히 보면 하나를 예상할 자리에 두 개의 설정값과 두 개의 공정값을 기록합니다.

폐루프 제어는 또한 바로 FDA의 2004년 산업계를 위한 지침 — PAT: 혁신적 의약품 개발, 제조 및 품질 보증을 위한 프레임워크(Guidance for Industry — PAT: A Framework for Innovative Pharmaceutical Development, Manufacturing, and Quality Assurance)가 장려하고자 했던 역량 그 자체입니다 [12]. 즉 연속 감지(continuous sensing)와 그에 따라 작동하는 PLC/DCS 자동화 위에 세워진 실시간 공정 제어를, 품질을 사후에 시험하기보다 공정에 미리 구축해 넣는 선호되는 경로로 본 것입니다. 애초에 어떤 파라미터가 제어기와 설정값을 부여받는가 또한 임의적이지 않습니다. 그 제어 전략은 ICH(International Council for Harmonisation, 국제의약품규제조화위원회) 품질 지침 — 특히 품질 설계 기반(quality-by-design)과 핵심 공정 파라미터에서 제품 품질로 이어지는 연결을 정립하는 Q8(R2)(Pharmaceutical Development, 의약품 개발), 그리고 실제로 그 품질을 좌우하는 파라미터로 주의를 향하게 하는 Q9(Quality Risk Management, 품질 위험 관리)과 Q10(Pharmaceutical Quality System, 의약품 품질 시스템) — 에 의해 형성됩니다 [13][14][15]. 연속 및 관류 공정의 경우, 더 최근의 Q13(Continuous Manufacturing, 연속 제조)이 동일한 제어 전략적 사고를 개별 배치가 아니라 정상 상태(steady-state) 운전으로 확장합니다 [16].

제어기 위, 레벨 2에는 SCADA(Supervisory Control and Data Acquisition, 감시 제어 및 데이터 수집)와 그것의 눈에 보이는 얼굴인 HMI(Human-Machine Interface, 인간-기계 인터페이스)가 자리합니다. 운전원은 이 화면을 통해 추세(trend)를 지켜보고, 설정값을 변경하며, 문제에 대응합니다 [2]. 운전원이 센서를 직접 만지는 일은 드뭅니다. 그들은 HMI를 통해 행동하며, 그들이 취하는 모든 조치는 그 자체로 하나의 데이터 포인트입니다.

네 개 레벨이 수직으로 쌓인 퍼듀/ISA-95 제어 계층. 레벨 0 공정(공정 흐름과 센서 및 작동기)은 레벨 1 PLC 폐루프 제어와 데이터를 주고받으며, DCS는 레벨 1-2에 걸쳐 있다. 공정값은 아래로 흐르고 설정값과 명령은 위로 돌아온다. 레벨 1은 레벨 2 SCADA 및 HMI와 데이터를 교환한다. 태그, 알람, 이벤트는 아래로 흐르고 운전원 조치는 위로 돌아온다. 그 다음 레벨 2는 실행된 배치 데이터를 레벨 3 MES로 내려보내며, MES는 배치 실행과 전자 배치 기록을 담당한다.

센서가 제어기에 신호를 공급하고, 제어기가 설정값·알람·실행된 레시피 데이터를 내보내는 제어-데이터 경로 도해 자동화 계층은 데이터를 처리하는 데 그치지 않고, 설정값·알람·실행된 레시피라는 새로운 종류의 데이터를 만들어 냅니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

ISA-88: 배치의 문법

오늘날 대부분의 바이오의약품(biologics)은 여전히 배치(batch) 공정으로 만들어집니다. 즉 정해진 양의 제품을 순서가 정해진 단계의 연속으로 운전하는 것입니다(나중에 만나게 될 연속/관류(perfusion) 공정은 점점 늘어나는 예외입니다). 배치 자동화를 공급업체와 사이트 전반에 걸쳐 일관되고 이식 가능하게 유지하기 위해, 업계는 ISA-88 — 구체적으로는 배치 제어를 위한 모델과 용어를 정의하는 Part 1(ANSI/ISA-88.00.01-2010; 그 1995년 전신이 국제적으로 IEC 61512-1:1997로 채택됨) — 을 사용합니다. 이는 배치 제어에 공유된 어휘와 계층화된 모델 집합을 부여하는 표준입니다 [1]. 그 뿌리는 NAMUR의 더 이른 권고안 NE 33으로 거슬러 올라가는데, 이 권고안은 레시피 기반 운전(recipe-based operation)에 대한 최초의 요구사항을 제시했으며 ISA-88에 직접적으로 영향을 주었습니다 [4].

ISA-88은 과거에 공장들이 뒤엉키게 만들던 두 가지를 분리합니다. 바로 설비(equipment, 무엇을 가지고 있는가)와 절차(procedure, 그것으로 무엇을 하는가)입니다 [1][7]. 물리적 모델은 공장을 사이트(site), 영역(area), 공정 셀(process cell), 유닛(unit, 예를 들어 바이오리액터 한 대), 설비 모듈(equipment module), 제어 모듈(control module)의 계층으로 분해합니다. 절차적 모델은 이를 절차(procedure), 유닛 절차(unit procedure), 작업(operation), 그리고 페이즈(phase, "이송"이나 "접종"과 같이 재사용 가능한 가장 작은 동작)로 거울처럼 반영합니다. 이 둘을 따로 유지하는 것이 바로 레시피를 한 번만 작성하고도 서로 다른 설비에서 재사용할 수 있게 해주는 요인입니다 [7].

ISA-88 레시피 유형: 일반에서 제어까지

레시피(recipe)가 그 핵심입니다. ISA-88은 레시피가 이동하고 다듬어지면서 거치는 네 가지 형태로 레시피를 정의합니다 [1]:

  • 일반 레시피(general recipe)는 설비에 독립적입니다. 즉 제품의 본질적 노하우, 그것을 만드는 과학입니다.
  • 사이트 레시피(site recipe)는 그것을 특정 공장에 맞게 적응시킵니다.
  • 마스터 레시피(master recipe)는 절차를 특정 설비에 결합하여 배치가 운전되는 기준이 되는 템플릿이 됩니다.
  • 제어 레시피(control recipe)는 실제 배치 한 건에 대한 마스터 레시피의 단일 실시간 인스턴스이며, 배치가 끝나면 실행된(as-executed) 값들을 담습니다. 즉 단지 계획된 것이 아니라 실제로 일어난 것을 담습니다.

마스터 대 제어의 간극: 계획 대 현실

레시피가 제어 시스템을 떠나 다른 소프트웨어 — MES, 스케줄러, 분석 플랫폼 — 로 이동해야 할 때, 그것은 흔히 BatchML(Batch Markup Language)로 직렬화(serialize, 전송 가능한 파일 형식으로 써내는 것)됩니다. BatchML은 ISA-88의 XML 구현이며, MESA International이 B2MML(ISA-95 구현, 연결성 및 상호운용성 표준(Connectivity and Interoperability Standards) 장에서 논의함)과 함께 관리합니다. 제어 레시피 파라미터 하나는 그러면 대략 다음과 같은 모습이 됩니다.

<RecipeElement>
<ID>INOCULATE.Temperature.Setpoint</ID>
<Parameter>
<Value><ValueString>37.0</ValueString><UnitOfMeasure>degC</UnitOfMeasure></Value>
</Parameter>
</RecipeElement>
참고

마스터 레시피(계획)와 제어 레시피(현실) 사이의 간극이야말로 가장 가치 있는 제조 데이터가 자리하는 바로 그곳입니다. 계획은 "37.0 °C를 14일간 유지"라고 말합니다. 실행 기록은 "6일 차에 두 번의 짧은 이탈(excursion)과 함께 36.8에서 37.1 °C를 유지함"이라고 말합니다. 품질은 첫 번째 이야기가 아니라 두 번째 이야기로 판정됩니다.

제어 레시피 파라미터의 해부

XML을 벗겨내고 보면 레시피 파라미터는 그저 하나의 구조화된 행(row)입니다. 이 데이터는 제어 시스템에서 히스토리안을 거쳐 분석으로 옮겨가는 바로 그 형태이고, 세 번째 책이 구체적인 데이터베이스 행으로 구현하는 형태이기 때문에 해부해 볼 가치가 있습니다. 하나의 설정값은 결코 벌거벗은 숫자가 아니라, 작은 신분증과 같습니다.

하나의 제어 레시피 파라미터에 대한 신분증으로, recipe_id, name, value, unit, valid_from, valid_to 행과, 마스터 레시피의 계획을 실행된 제어 레시피와 대비하는 녹색 블록, 그리고 마스터 레시피·유닛·페이즈·실시간 설정값 태그로의 관계를 담은 보라색 패널을 보여 준다. 제어 레시피 파라미터는 날짜가 찍히고, 출처가 있으며, 관계가 부여된 하나의 행입니다. 즉 recipe_id, 설정값 이름, 값과 그 단위, 그리고 각 목표가 언제 유효했는지를 정확히 기록하는 유효 기간(effective dating, valid_from / valid_to)으로 이루어집니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

두 필드가 조용한 일을 해냅니다. name은 ISA-88 구조를 담습니다. INOCULATE.Temperature.Setpoint는 페이즈, 변수, 역할을 한 문자열에 담아 이름 짓기 때문에, 파라미터는 주석에 덧붙은 헐거운 숫자가 아니라 그 자체로 자기 자신을 설명합니다. 유효 기간valid_fromvalid_to — 은 설정값을 이력으로 바꿔 놓는 것입니다. 운전원이 운전 도중 목표값을 올리면, 옛 행은 닫히고(그 valid_to에 타임스탬프가 찍히고) 새 행이 열리므로, 기록은 나중에 "설정값이 무엇이었는가?"만이 아니라 "6일 차 10:42에 설정값이 무엇이었는가?"에도 답할 수 있습니다. 유효 기간이 없으면 실행된 값의 재구성은 불가능합니다. 이것은 바로 세 번째 책이 배치 및 설비 모델(The Batch and Equipment Model)에서 구축하는 산출물입니다. 그곳에서 ISA-88 레시피 파라미터는 valid_from / valid_to 열을 가진 s88.recipe_parameter 행이 됩니다. 즉 생산 바이오리액터(production bioreactor)의 물리적 설정값이 여기서는 데이터 기록으로 포착되었다가, 그곳에서는 문자 그대로의 SQL 행으로 안착하는 것입니다.

동일한 파라미터를 시맨틱 트리플로

SQL 행은 파라미터를 하나의 데이터베이스 안에서 질의 가능하게 만듭니다. 그것이 시스템 전반에서 같은 것을 의미하게 만들려면 한 걸음이 더 필요하며, 이는 바로 네 번째 책이 정형화하는 것이기에 살펴볼 가치가 있습니다. 자기서술적 name 문자열과 타입이 부여된 값은 이미 시맨틱 트리플(semantic triple)주어 — 술어 — 목적어 형태의 RDF 진술 — 에 거의 다다라 있으며, 여기서 태그와 그 설정값은 로컬 키가 아니라 전역 정체성을 지닙니다. RDF 트리플을 위한 표준 텍스트 표기법인 터틀(Turtle)로 표현하면, INOCULATE.Temperature.Setpoint 파라미터는 다음과 같이 됩니다.

# 접종 온도 설정값을 전역적으로 식별되고 단위를 지닌 트리플로
bp:BR101-INOCULATE-TempSP a bp:RecipeParameter ;
qudt:numericValue "37.0"^^xsd:float ; # 값, 텍스트가 아니라 숫자로 타입 부여
qudt:hasUnit unit:DEG_C ; # 단위를 IRI로, 그래서 37.0이 화씨로 오독될 수 없음
bp:validFrom "2024-06-14T10:42:00Z"^^xsd:dateTime .

온톨로지 책의 두 가지 규율이 여기서 핵심 일을 해냅니다. 첫째는 IRI(Internationalized Resource Identifier, 국제화 자원 식별자 — 전역적으로 고유한 웹 이름)입니다. bp:BR101.Temp.SP는 단 하나의 태그로 해석되므로, 모든 하류 조인을 수작업 조정으로 만들던 Reactor2_TIBR101.Temp.PV의 충돌이 애초에 생길 수 없습니다. 식별자와 단위(Identifiers and Units) 장은 영속적 IRI가 왜 로컬 기본 키를 능가하는지, 그리고 단위가 왜 열 머리글이나 주석이 아니라 (QUDT, 즉 Quantities, Units, Dimensions and Types 어휘를 통해) 데이터로서 이동해야 하는지를 보여 줍니다. 둘째는 "값은 결코 벌거벗은 채 이동하지 않는다"가 단지 좋은 조언이 아니라 게이트(gate)가 될 수 있다는 것입니다. SHACL 셰이프(SHACL shape)(Shapes Constraint Language는 그래프 데이터가 요구된 구조를 갖췄는지 검증함)는 단위 없이 또는 설정값이 누락된 채 도착하는 레시피 파라미터를 거부합니다. 이는 릴리스 게이트(release gate) 장이 출하 결정으로 바꿔 놓는 폐쇄 세계(closed-world) 검사이며, 이에 대응하는 역량 질문(competency question)(모델이 답할 수 있어야 하는 질문, 명세(specification)의 실행 가능한 인수 시험)은 단순히 *"저장된 모든 설정값이 단위를 지니는가 — 벌거벗은 숫자는 없는가?"*입니다.

마스터 대 제어의 간극은 PROV-O(W3C 출처 온톨로지)에 똑같이 깔끔하게 매핑됩니다. 계획된 값은 마스터 레시피에 귀속된 하나의 주장이고, 실행된 값은 배치를 운전한 제어 시스템에 귀속된 두 번째 주장이며, 운전원의 운전 도중 변경은 그것에 서명한 사람에게 귀속된 세 번째 주장입니다. 이들을 계획을 현실로 조용히 덮어쓰는 대신 각자의 prov:wasAttributedTo 간선을 지닌 세 개의 prov:Entity 주장으로 모델링하는 것이야말로 감사 추적을 온전히 유지하는 출처 규율이며, 바로 그 덕분에 실행 기록이 단지 목표가 무엇이었는가가 아니라 누가 이 목표를 설정했고 어떤 근거로 했는가에 답할 수 있습니다. 더 깊은 온톨로지적 요점은 BFO와 상위 척추(BFO and the upper spine)가 그리는 것입니다. 즉 배양액의 온도 품질(quality)은 그 물질에 내재하며 그 하나의 용기에만 존재하는 연속체(continuant)인 반면, 설정값 기록은 배양액을 옮기지 않고도 복사하고, 로그하고, 이메일로 보낼 수 있는 정보 산출물입니다. 사물과 그 사물에 대한 기록을 구별해 두는 것이야말로, 동일한 37.0이 물리적 제어 동작으로, 히스토리안 샘플로, 릴리스 기록의 한 줄로 사는 동안에도 모델이 그 숫자가 곧 온도라고 결코 주장하지 않게 해 주는 것입니다.

자동화 계층이 실제로 내보내는 것

공정을 운영하면 네 가지 큰 데이터 흐름이 생성되며, 그 형태를 이해하는 것은 이를 하류(downstream)에서 관리하는 데 필수적입니다. 그 어느 것도 단독으로는 최종 기록이 아닙니다. MES(다음 장)가 네 가지 모두를 엮어 전자 배치 기록으로 만듭니다.

태그 시계열, 알람과 이벤트, 운전원 조치, 레시피 파라미터라는 네 개의 데이터 흐름 카드가 MES 박스로 수렴하여 전자 배치 기록을 조립하고, 그 아래에는 녹색 추세선이 37.0의 점선 설정값을 따라가다 6일 차에 두 번 짧게 떨어지는 14일간의 실행된 온도 차트가 있는 도해. 제어 계층이 내보내는 네 흐름은 MES에서 수렴하여 EBR을 이룹니다. 아래 패널은 평평한 계획이 아니라 실행된 추세선이야말로 중요한 데이터인 이유를 보여 줍니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

네 가지 데이터 흐름: 태그, 알람, 운전원 조치, 레시피 파라미터

태그 시계열(Tag time-series). 태그(tag)는 제어 시스템 내의 명명되고 주소 지정이 가능한 단일 변수입니다. 예를 들어 BR101.Temp.PV는 바이오리액터 101의 온도 공정값을 가리킵니다. 단 한 대의 바이오리액터가 일관된 명명 규칙(naming convention)을 따르는 이런 태그를 수십 개 노출합니다. BR101.pH.PV, BR101.DO.PV(용존 산소), BR101.Agit.PV(교반 속도), BR101.Temp.SP(온도 설정값), BR101.AcidPump.OUT(산 펌프에 대한 제어기의 출력 명령) 등이 그 예입니다. 이 숫자들이 얼마나 빠르게 움직이는지를 정확히 짚어 둘 가치가 있는데, 쉽게 혼동되는 세 가지 서로 다른 속도가 있기 때문입니다. 스캔 속도(scan rate)는 제어기 자체가 센서를 읽고 루프를 갱신하는 빈도로, 흔히 1초에 여러 번입니다(PLC나 DCS 내부에서는 1초 미만의 주기 시간이 일상적입니다). 로그 속도(log rate)는 그 위의 히스토리안에게 값을 기록하라고 요청하는 빈도로, 흔히 1초에 한 번 또는 몇 초에 한 번인데, 수천 개 태그의 모든 제어기 스캔을 수 주에 걸쳐 저장하는 것은 그 비용을 들일 만한 경우가 드물기 때문입니다. 그리고 압축 속도(compression rate)는 히스토리안의 데드밴드 필터가 예측 가능한 추세 위에 떨어지는 점들을(뒤에서 논의할 스윙잉 도어 알고리즘) 버리고 난 뒤 살아남는 실효 속도로, 평평한 신호는 시간당 몇 개의 점만 쓰는 반면 움직이는 신호는 많은 점을 씁니다. 루프는 빠르게 돌고, 히스토리안은 더 느리게 로그하며, 압축은 그것을 더 얇게 솎아 냅니다. 이 셋을 모두 거친 뒤에도 그 결과는 밀도 높은 고주파(high-frequency) 아카이브입니다. 즉 수천 개의 태그가 각각 타임스탬프가 찍힌 숫자의 긴 열을 이룹니다. 글로 적어 보면, 한 태그 이력의 몇 행은 데이터가 가질 수 있는 가장 평범한 모습에 가깝습니다.

timestamp, tag, value, unit
2024-06-14T10:05:23Z, BR101.Temp.PV, 36.95, degC
2024-06-14T10:05:24Z, BR101.Temp.PV, 36.96, degC
2024-06-14T10:05:25Z, BR101.Temp.PV, 37.01, degC

이것은 공정 히스토리안(process historian, 다음 장)이 저장하도록 만들어진 원시적이고 밀도 높은 재료이며, 이후의 다변량 분석(multivariate analysis, 여러 공정 변수를 함께 모델링하는 것, 제5부)이 의존하는 재료입니다.

태깅 전략: 명명 규칙과 일관성

명명 규칙은 겉치레가 아닙니다. 그것은 데이터 관리의 첫 번째이자 가장 값싼 계층이며, 가장 그르치기 쉬운 계층이기도 합니다. BR101.Temp.PV와 같은 규율 있는 체계는 유닛 . 측정 . 역할로 읽히므로, 사람이든 쿼리든 이것이 바이오리액터 101의 온도 공정값이며 설정값인 BR101.Temp.SP와 구별된다는 것을 즉시 알 수 있습니다. 사이트가 모든 유닛에 걸쳐 하나의 규칙을 강제하면 "모든 온도 PV"를 묻는 쿼리는 사소한 일이 되고, 모델은 배치 전반에서 동일한 변수를 정렬할 수 있습니다. 두 유닛이 같은 것을 다르게 명명하면 — 여기서는 BR101.Temp.PV, 저기서는 Reactor2_TI — 모든 하류 조인(join)은 수작업 조정이 되고, 그 비일관성은 히스토리안, 공장 정보 시스템(plant information systems), 그리고 그 위에 세워진 모든 분석으로 번져 나갑니다. 게다가 완벽하게 일관된 명명 체계조차도 태그가 시스템 전반에서 무엇을 의미하는가라는 더 깊은 물음을 미뤄 둘 뿐인데, 이는 왜 숫자는 연결되지 않는가(Why Numbers Don't Connect)온톨로지와 FAIR 데이터(Ontologies and FAIR Data)에서 다룹니다. 이 규율은 태그가 다른 소프트웨어로 건너가는 경계에서 가장 중요합니다. 세 번째 책은 OPC UA / MQTT 연결성(OPC UA / MQTT connectivity) 계층이 각 태그를 그 정체성을 온전히 유지한 채 실어 날라, 하류의 그 무엇도 BR101.Temp.PV가 무슨 뜻인지 추측하지 않아도 되게 하는 방법을 보여 줍니다.

알람과 이벤트(Alarms and events, A&E). 공정값이 설정된 한계를 넘어서면, 시스템은 알람(alarm)을 발생시킵니다. 이는 운전원의 주의를 요구하는 청각적 또는 시각적 신호입니다. ISA-18.2는 이를 관리하는 권위 있는 표준입니다. 이 표준은 알람의 전체 수명 주기(lifecycle)를 정의하고, 합리화(rationalization, 어떤 알람이 진정으로 필요한지 결정하는 것)와 우선순위 지정(prioritization)을 요구하여 운전원이 잡음에 파묻히지 않도록 합니다 [5]. 각 알람과 각 일상적 이벤트는 공정이 한 일 또는 운전원에게 통보된 일에 대한 타임스탬프가 찍힌 기록입니다. 일반적으로 타임스탬프, 출처 태그, 알람 식별자, 사람이 읽을 수 있는 메시지, 그리고 우선순위를 담으며, 다음과 같은 모습입니다.

timestamp, tag, alarm_id, message, priority
2024-06-14T10:42:11Z, BR101.Temp.PV, TI-101-HI, Temperature High, HIGH

운전원 조치(Operator actions). HMI를 통해 이루어진 모든 설정값 변경, 수동 오버라이드(manual override), 배치 시작 또는 보류(hold), 그리고 확인(acknowledgment)이 기록됩니다. 미국 규정 21 CFR Part 11과 EU의 GMP(Good Manufacturing Practice, 우수 제조 관리 기준) Annex 11(EudraLex Volume 4, "Computerised Systems")에 따라, 이와 같은 전자 기록은 신뢰할 수 있어야 하며, 필요한 경우 누가 무엇을 언제 했는지 식별하는 전자 서명(electronic signature)에 연결되어야 합니다 [8][10].

레시피 파라미터와 그 실행된 값. 마지막으로, 이 계층은 자신에게 주어진 레시피 파라미터와 실제로 달성한 값을 기록합니다. 이는 위에서 설명하고 해부 카드에서 분해한, 계획과 현실의 결합입니다.

ISA-18.2 알람: 합리화와 잡음

네 흐름 가운데 알람은 가장 흔히 방치되는 흐름입니다. 제어 시스템은 거의 모든 한계에 대해 알람을 발생시킬 수 있고, 가장 저항이 적은 경로는 그 많은 알람을 켜 두는 것입니다. 그러면 운전원은 정작 중요한 단 하나의 알람이 그렇지 않은 수백 개 사이에 묻혀 버리는 홍수에 잠깁니다. ISA-18.2는 이에 합리화(rationalization)로 답합니다. 즉 설정된 모든 알람을 의도적으로 검토하여, 그것이 진정으로 필요한지, 어떤 우선순위가 마땅한지, 어떤 대응을 요구하는지를 결정하는 것입니다. 합리화된 시스템은 더 조용하고, 역설적으로 더 안전합니다. 알람이 울리면 그것은 무언가를 의미하기 때문입니다. 데이터 관리에서의 보상은 하류에 있습니다. 합리화된 알람 로그는 깨끗하고 해석 가능한 이벤트 흐름인 반면, 합리화되지 않은 로그는 알람을 공정 이탈과 상관시키려는 어떠한 시도도 압도하는 대부분의 잡음입니다. 이 표준은 또한 알람의 전체 수명 주기 — 정상, 발생, 확인, 정상 복귀, 보류(shelved) — 를 정의하여, 각 상태 변화 자체가 타임스탬프가 찍힌 분석 가능한 이벤트가 되게 합니다 [5].

감사 추적과 신뢰성

이 네 가지 모두를 관통하는 결정적인 실타래가 있습니다. 바로 감사 추적(audit trail)입니다. FDA는 이를 검토자가 사건의 경과를 재구성할 수 있게 해주는, 안전하고, 컴퓨터로 생성되며, 타임스탬프가 찍힌 기록으로 정의하며, 이러한 추적이 검토될 것을 기대합니다 [9]. 태그, 알람, 운전원 조치는 이 계층이 그 누구도 몰래 변경할 수 없는 방식으로 그것들을 포착할 때에만 비로소 신뢰할 수 있는 기록이 됩니다.

검토자가 이 기록들을 견주는 표준에는 이름이 있습니다. 바로 ALCOA+입니다. 이는 모든 기록이 Attributable(귀속 가능), Legible(판독 가능), Contemporaneous(동시 기록), Original(원본), Accurate(정확)해야 하고, 거기에 더해 나중에 추가된 완전(Complete), 일관(Consistent), 영속(Enduring), 가용(Available)해야 한다는 데이터 무결성 기대입니다. 이 장에 견주어 읽으면, 네 흐름은 하나의 ALCOA+ 점검표입니다. 즉 동시 기록된 타임스탬프는 바로 NTP/PTP 시계 규율이 보호하는 것이고, 완전원본은 과설정된 압축 데드밴드가 실재하는 이탈을 지울 때 정확히 파괴하는 것이며, 귀속 가능은 설정값 변경에 대한 운전원의 전자 서명이 공급하는 것입니다. 요점은 자동화 계층이 우연히 ALCOA+를 만족한다는 것이 아니라, 이 계층의 설계 결정(어떤 데드밴드, 어떤 시계 소스, 조치에 서명하는지 여부) 자체가 어떤 검사관이 기록을 읽기 수년 전에 내려진 데이터 무결성 통제라는 것입니다.

두 번째, 더 조용한 결과가 있습니다. 기록은 그것을 만들어 낸 시스템만큼만 신뢰할 수 있으며, 21 CFR Part 11EU GMP Annex 11에 따라 그 시스템 자체가 그 기록에 의존하기 전에 검증(validate)되어야 합니다. DCS나 MES의 경우 이는 IQ/OQ/PQ — 설치 적격성 평가(Installation Qualification), 운영 적격성 평가(Operational Qualification), 성능 적격성 평가(Performance Qualification), 즉 시스템이 올바르게 설치되고, 올바르게 작동하며, 실제 작업 부하에 대해 올바르게 수행됨을 입증하는 것 — 을 뜻하고, 점점 더 CSA(Computer Software Assurance, 컴퓨터 소프트웨어 보증)의 더 가볍고 위험 기반인 자세를 뜻합니다. CSA는 모든 시험을 동일하게 문서화하던 데서 환자 위험이 실제로 자리하는 곳에 보증 노력을 들이는 쪽으로의 FDA의 전환입니다. 컴퓨터 시스템 검증: GAMP 5와 CSA(Validating Computerized Systems: GAMP 5 and CSA) 장이 이를 온전히 전개합니다. 여기서 중요한 것은, 이 계층의 핵심 기능 — 풀링 창 컷 포인트, 실행된 레시피 값, 알람 로직, 감사 추적 포착 — 이 그 척도의 고위험 끝단에 자리하여 가장 엄격한 입증을 받는 반면, 비핵심 표시 필드는 더 가벼운 검사를 받는다는 점입니다.

그 아래의 장비

현대의 바이오 제조는 점점 더 단일 사용(single-use) 시스템 — 멸균되고 일회용인 플라스틱 조립체 — 과 스키드(skid) 위에서 운영됩니다. 스키드란 자체 로컬 제어기와 태그를 가지고 도착하는, 사전 조립되고 독립적인 유닛(크로마토그래피 스키드, 버퍼 조제 스키드 등)을 말합니다. 사르토리우스(Sartorius)의 BIOSTAT STR 교반 탱크형 바이오리액터나 ambr 벤치 규모 시스템, 사이티바(Cytiva)의 Xcellerex XDR 시리즈와 같은 단일 사용 플랫폼은 스키드 하드웨어에 제어기가 내장된 채 출하되며, 각각 자체 태그 네임스페이스(tag namespace)를 지니고 있습니다. 따라서 각 스키드는 사이트가 더 큰 전체에 통합해야 하는 작은 자동화의 섬입니다.

스키드의 데이터를 공장의 나머지 부분으로 실어 나르는 다리는 가장 흔히 OPC(Open Platform Communications, 개방형 인터페이스 표준의 한 계열)입니다. 더 오래된 OPC는 이제 대체로 OPC UA(Unified Architecture)로 대체되었으며, 이는 서로 다른 공급업체의 제어기와 소프트웨어가 표준 프로토콜을 사용하여 태그와 이벤트를 교환할 수 있게 해주어, 모든 짝마다 필요하던 맞춤형 점대점(point-to-point) 배선을 줄여 줍니다. 그렇다고 통합 작업이 완전히 사라지는 것은 아닙니다. 양쪽 끝단이 모두 OPC UA 사양(specification)을 지원해야 하고, 각 태그의 의미BR101.Temp.PV가 실제로 무엇을 나타내는지 — 는 여전히 시스템 간에 매핑되어야 합니다. OPC는 제어 계층과 그 위의 정보 시스템 사이의 가장자리(edge)에 자리합니다. (OPC UA와 더 넓은 연결성 표준은 연결성 및 상호운용성 표준(Connectivity and Interoperability Standards)에서 깊이 다룹니다.)

"자동화의 섬" 문제에 대한 더 새로운 답은 OPC보다 한 걸음 더 나아갑니다. MTP(Module Type Package) 표준 — 공정 산업에서 태어나 점점 단일 사용 바이오공정 스키드에 적용되고 있는 VDI/VDE/NAMUR 2658 — 은 한 모듈의 서비스, 태그, HMI 화면, 알람을, 스키드와 함께 따라다니는 단일 공급업체 중립(vendor-neutral) 패키지로 기술합니다. 통합자가 새 스키드마다 그 태그를 사이트의 오케스트레이션 계층에 손으로 매핑하는 대신, 공정 오케스트레이션 시스템이 MTP 파일을 읽으면 그 모듈은 "플러그 앤 프로듀스(plug-and-produce)"가 됩니다. 데이터 관리를 위한 약속은 명확합니다. 잘 구성된 MTP를 가지고 도착하는 스키드는 그 태그 의미가 이미 선언된 채로 도착하므로, OPC UA만으로는 수작업 매핑에 맡겨지던 의미가 패키지 자체에 담겨 옵니다. 바이오의약품에서의 도입은 아직 초기 단계이지만, 이는 모듈형 스키드가 맞춤형 엔지니어링 프로젝트를 기다리는 대신 스스로 통합되도록 만들려는, 현재로서 가장 분명한 시도입니다. 태그의 주소뿐만 아니라 그 의미를 선언하는 것은 이 책이 왜 숫자는 연결되지 않는가(Why Numbers Don't Connect)온톨로지와 FAIR 데이터(Ontologies and FAIR Data) 장에서 다루는 더 깊은 문제이며, 거기서는 공유 어휘가 수작업 매핑을 완전히 대체합니다.

왜 중요한가

데이터 관리 측면에서의 보상은 이렇습니다. 이 계층이 내보내는 흐름은 제조의 부산물이 아니라, 그 자체가 공식적인 제조 기록입니다. 배치가 올바르게 만들어졌음을 증언하는 법적 문서인 전자 배치 기록(electronic batch record, EBR)은 MES(다음 장)가 대체로 이 제어 및 레시피 데이터로부터 조립하는 것입니다. 즉 실행된 파라미터, 운전원 서명, 알람 이력, 그리고 태그 추세로부터 말입니다 [8][9]. 그 데이터를 제어 현장에서 MES와 ERP로 깨끗하게 끌어올리는 것 자체가 하나의 엔지니어링 문제이며, 세 번째 책은 흐름이 도착할 때의 구조를 잃지 않으면서 DCS, MES, ERP를 잇는(bridging the DCS, MES, and ERP) 일에 한 장을 할애합니다.

그 기록이 규제적 무게를 지니기 때문에, 자동화 계층이 데이터를 구조화하는 방식은 멀리 하류에까지 영향을 미칩니다. 만약 태그가 유닛 전반에 걸쳐 일관성 없이 명명되거나, 알람이 합리화되지 않거나, 운전원 조치에 서명이 되지 않거나, 감사 추적이 편집될 수 있다면, EBR — 그리고 그 위에 세워진 모든 분석 — 은 그 결함을 물려받습니다 [5][9]. 반대로, 깨끗하고 ISA-88로 구조화되었으며 태그가 잘 부여된 제어 시스템이야말로 이후의 다변량 분석을 애초에 가능하게 만드는 것입니다. 데이터가 일관되게 라벨링되고, 시간 정렬되며, 신뢰할 수 있는 공정만을 모델링할 수 있기 때문입니다.

아직 어려운 것: 타임스탬프와 압축 아티팩트

ISA-88과 ISA-18.2가 부과하는 모든 구조에도 불구하고, 두 가지 조용히 부식시키는 문제가 이 데이터 흐름에 여전히 진정으로 열려 있으며, 둘 다 품질이 의존하는 실행된 기록을 공격합니다.

첫째는 타임스탬프 불일치(timestamp misalignment)입니다. 태그, 알람, 운전원 조치, 레시피 값은 서로 다른 시계 — 스키드의 로컬 제어기, DCS, SCADA 서버, 히스토리안 — 에 의해 타임스탬프가 찍히며, 그 시계들은 표류(drift)합니다. 나중에 흐름들이 하나의 EBR로 병합될 때, HMI가 10:42:03에 기록한 설정값 변경과 그것이 야기한 온도 이탈이 바이오리액터에 의해 10:41:58로 찍히면, 이들이 잘못된 순서로 나타날 수 있습니다. 원인이 결과를 뒤따르는 것처럼 보이게 되는 것입니다. 원리상의 해법은 모든 시계를 하나의 공통 시간 소스에 맞춰 규율하는 것입니다. NTP(Network Time Protocol, 네트워크 시간 프로토콜)는 네트워크로 연결된 장치들을 밀리초 이내로 동기화하며 통상적인 기준선이 되고, PTP(Precision Time Protocol, 정밀 시간 프로토콜, IEEE 1588)는 빠른 사건의 순서가 정말로 중요한 곳에서 마이크로초 미만의 정확도에 이릅니다. FDA의 데이터 무결성 지침이 감사 추적의 핵심 기능으로 다루는 사건의 진정한 순서 재구성 [9]은, 모든 시계가 그러한 소스에 맞춰지지 않는 한 추측이 되고 맙니다. 그리고 실제로 많은 사이트는 동기화되지 않았거나 느슨하게 동기화된 시계들의 누더기를 그대로 운용합니다.

둘째는 더 음흉합니다. 바로 압축 아티팩트(compression artifact)입니다. 히스토리안은 모든 샘플을 저장하지 않습니다. 수천 개 태그의 수십 년치를 감당 가능하게 유지하기 위해, 히스토리안은 스윙잉 도어(swinging-door, 데드밴드) 압축을 적용하여, 직선 보간(interpolation) 주위의 허용 대역(tolerance band) 안에 떨어지는 점들을 버리고 추세의 형태를 정의하는 점들만 남깁니다. 잘 조정되면 이것은 중요한 어떤 변화에 대해서도 무손실입니다. 너무 공격적으로 조정되면 — 공간을 아끼려 데드밴드를 넓게 설정하면 — 그것은 짧지만 실재하는 이탈을 조용히 지워 버립니다. 6일 차의 2분짜리 온도 스파이크, 즉 품질 검토가 가장 봐야 할 종류의 사건이, 충분히 멀리 또는 충분히 오래 움직이지 않았다는 이유로 필터를 통과하지 못하고 존재 자체가 압축되어 사라집니다. 데이터가 깨끗해 보이는 것은 바로 증거가 버려졌기 때문입니다. 데이터 관리와 무결성에 관한 PIC/S(Pharmaceutical Inspection Co-operation Scheme, 의약품실사상호협력기구) 지침은 기록이 완전(complete)해야 하고 원래 활동이 재구성 가능(reconstructable)해야 한다고 명시합니다 [11]. 실재하는 이탈을 재현할 수 없는 압축 설정은 이 둘을 모두 위반하지만, 그 설정은 검토자가 거의 감사하지 않는 히스토리안 구성 안에 묻혀 있습니다. 비용과 완전성을 한꺼번에 만족시키는 깔끔한 기술적 해법은 없습니다. 오직 태그별로 의도적이고, 문서화되고, 위험 기반으로 선택된 데드밴드를, 공정에 대한 이해가 깊어짐에 따라 다시 검토하는 것뿐입니다. 이것은 저장 효율에 대한 선의가 기록의 신뢰성을 조용히 훼손하는 지점들 가운데 하나입니다.

모델링에 이것이 왜 중요한가: 누출, 분할, 드리프트

이 두 아티팩트는 규제적 책임일 뿐만 아니라, 이 데이터 위에 세워진 모델을 애초에 신뢰할 수 있는지를 좌우합니다. 바로 이 때문에 다섯 번째 책은 제어 계층을 머신러닝의 연료로 다룹니다. 짚어 둘 만한 세 가지 연결이 있습니다. 첫째, 타임스탬프 불일치는 데이터 누출(data-leakage)의 함정입니다. 모델이 품질 결과를 예측하도록 학습되었는데 병합된 기록이 결과를 원인보다 앞에 놓으면, 모델은 예측 시점에 실제로는 사용할 수 없던 정보를 사용하도록 "학습"할 수 있습니다. 이는 모델과 검증(Models and Validation) 장이 점수를 조용히 부풀리다 운영에서 실패한다고 경고하는 종류의 누출입니다. 둘째, 압축은 모델이 무엇을 볼 수 있는지를 빚어냅니다. 짧은 이탈이 압축되어 사라진 태그로 학습된 소프트 센서는 실제보다 더 매끄럽고 순한 공정을 보게 되므로, 가장 중요한 사건 바로 그 순간에 가장 크게 틀립니다. 셋째 — 그리고 가장 큰 결과를 낳는 것 — 바이오공정 모델을 시험하는 올바른 방법은 리브-원-배치-아웃(leave-one-batch-out, 배치 단위) 교차검증입니다. 무작위 행이 아니라 배치 전체를 떼어 두는 것인데, 한 배치 안의 행들은 독립이 아니기 때문입니다. 무작위 행 분할은 같은 배치의 이웃 샘플들이 학습 세트와 시험 세트 양쪽에 들어가게 하여, 누출된 타임스탬프가 그러듯 점수를 부풀립니다. 데이터, 연료(Data, the Fuel) 장은 구속 제약이 밀도 높은 행의 수가 아니라 독립적인 배치의 수라고 논증합니다. 이 장이 강조한 명명 규율은 이 모든 것의 전제 조건입니다. 즉 일관되게 태그가 부여되고 시간 정렬된 아카이브만이 애초에 배치별로 분할되고 변수별로 묶일 수 있습니다.

이 계층의 두 위험과 ML 책이 세우는 두 발상 사이에는 깔끔한 평행 관계도 있습니다. 공정 드리프트(process drift) — 살아 있는 세포주와 그 하드웨어가 캠페인마다 떠도는 것 — 는 모델 드리프트(model drift), 즉 배포된 모델이 학습된 것에서 세상이 멀어짐에 따라 조용히 쇠퇴하는 것의 물리적 사촌입니다. MLOps와 라이프사이클(MLOps and Lifecycle) 장은 드리프트하는 공정을 지켜보는 모델 자체가 모니터링되어야 함을 보여 주는데, 정적 모델은 이 계층이 결코 보장할 수 없는 정상(stationary) 공정을 암묵적으로 가정하기 때문입니다. 그리고 적용 범위(applicability domain) — 모델이 검증된 입력의 외피로, 그 바깥에서는 예측을 신뢰해서는 안 되는 범위 — 는 제어 루프가 그 안에서 운전되는 적격화된 운전 범위(qualified operating range)의 모델링 대응물입니다. 둘은 같은 것을 말합니다. 즉 숫자는 그 뒤의 증거가 실제로 미치는 곳에서만 신뢰할 수 있다는 것입니다.

실제 현장에서

ISA-88과 ISA-95는 학술적 이상이 아닙니다. 그것들은 공급업체 배치 소프트웨어 — 지멘스 Opcenter Execution Pharma(Siemens Opcenter Execution Pharma), 쾨르버(Körber)의 PAS-X, 에머슨 Syncade(Emerson Syncade)와 같은 제품 — 의 공용어이며, 실제 공장이 자신의 공정을 MES(Manufacturing Execution System, 제조 실행 시스템) — 배치 실행을 조율하는 레벨 3 시스템 — 에 기술하는 방식입니다 [2][3]. 집약화된(intensified) 단일 사용 관류 공정을 운전하는 현대적 시설도 바로 이 언어에 의존합니다. 즉 그 스키드, 제어기, 히스토리안 역시 이 언어를 말하며, 태그는 OPC를 통해 위로 흐르고, 레시피는 ISA-88 용어로 표현되며, 알람은 ISA-18.2 기대치에 맞춰 관리되고, 감사 추적은 Part 11 표준에 맞춰 유지됩니다 [1][5][8]. 이 표준들이야말로 한 시설에서 개발된 공정이 다른 시설로 이전되고도 여전히 동일하게 보이는 데이터를 만들어 낼 수 있게 해주는 것입니다.

핵심 용어

  • 제어 계층(control hierarchy, 퍼듀/ISA-95 레벨) — 센서(레벨 0)에서 제어기(레벨 1), 감독(레벨 2)을 거쳐 공장 및 비즈니스 시스템(레벨 3-4)에 이르는 계층화된 스택.
  • PLC / DCS — 프로그래머블 로직 컨트롤러(레벨 1 기본 제어)와 분산 제어 시스템(기본 제어와 감독 제어를 아울러 레벨 1-2에 걸침). 폐루프 제어를 실행하는 산업용 컴퓨터.
  • SCADA / HMI — 감시 계층과 그것의 운전원 화면.
  • 폐루프 제어(closed-loop control) — 공정값을 설정값과 끊임없이 비교하고 그 차이를 보정하는 것.
  • PID 제어기(PID controller) — 대부분의 루프가 사용하는 비례-적분-미분 알고리즘. 현재, 누적, 예측 오차를 섞어 오버슈트 없이 설정값에 안착한다.
  • 캐스케이드 / 분할 범위 제어(cascade / split-range control) — 마스터 루프가 더 빠른 슬레이브 루프의 설정값을 구동하는 것(캐스케이드), 그리고 하나의 루프가 가열과 냉각, 또는 용존 산소를 위한 교반-가스-산소 시퀀스처럼 서로 반대되는 두 작동기에 명령을 내리는 것(분할 범위).
  • 설정값 대 공정값(setpoint vs. process value) — 제어기가 겨냥하는 목표값 대 그것이 읽어 들이는 실시간 측정값.
  • ISA-88(IEC 61512) — 설비를 절차로부터 분리하고 레시피 유형을 정의하는 배치 제어 표준.
  • 레시피 유형(recipe types) — 일반, 사이트, 마스터, 제어 레시피. 마지막 것이 실행된 값을 담는다.
  • 페이즈(phase) — ISA-88에서 재사용 가능한 가장 작은 절차적 동작.
  • 태그(tag) — 제어 시스템 내의 명명된 단일 변수로, 고주파 시계열로 샘플링된다.
  • 스캔 대 로그 대 압축 속도(scan vs. log vs. compression rate) — 제어기가 센서를 읽는 속도(빠름), 히스토리안이 값을 기록하는 속도(더 느림), 그리고 데드밴드 압축을 거치고 살아남는 실효 속도(더욱 얇음).
  • 알람과 이벤트(alarms and events, A&E) — 무언가에 주의가 필요하거나 기록되었음을 알리는, 타임스탬프가 찍힌 신호(ISA-18.2가 관장).
  • 감사 추적(audit trail) — 검토자가 무슨 일이 일어났는지 재구성할 수 있게 해주는, 안전하고 타임스탬프가 찍힌 기록.
  • ALCOA+ — 기록이 귀속 가능(Attributable), 판독 가능(Legible), 동시 기록(Contemporaneous), 원본(Original), 정확(Accurate)해야 하고, 더해 완전·일관·영속·가용해야 한다는 데이터 무결성 기대. 검토자가 네 흐름을 견주는 표준.
  • IQ/OQ/PQ 대 CSA — 제어 시스템이 작동함을 입증하는 전통적 설치/운영/성능 적격성 평가와, 그 입증을 모든 기능에 동일하게 시험하는 대신 환자 위험에 맞춰 조정하는 FDA의 위험 기반 컴퓨터 소프트웨어 보증(CSA) 자세.
  • 풀링 창(pooling window, 하류 제어) — 두 UV 임계값 컷 포인트 사이에서 제어기가 제품으로 수집하는 크로마토그래피 용출 피크의 조각. 기록에 포착되는 일회성·배치 규정 폐루프 결정.
  • 시맨틱 트리플 / IRI(semantic triple / IRI) — 태그와 그 설정값에 전역적으로 고유한 웹 이름(IRI)을 부여하는 RDF 주어 — 술어 — 목적어 진술. 그래서 동일한 파라미터가 로컬 키가 아니라 시스템 전반에서 같은 것을 의미한다.
  • SHACL 게이트 / 역량 질문(SHACL gate / competency question) — 단위 없이 또는 설정값이 누락된 채 도착하는 레시피 파라미터를 거부하는 폐쇄 세계 셰이프와, 그것이 답하는 실행 가능한 인수 질문("벌거벗은 숫자는 없는가?").
  • PROV-O 출처(PROV-O provenance) — 계획된 값, 실행된 값, 운전원이 변경한 값을 계획을 덮어쓰는 대신 각자 귀속된 주장으로 모델링하여, 기록이 누가 이것을 설정했고 어떤 근거로 했는가에 답하게 하는 것.
  • 리브-원-배치-아웃 교차검증(leave-one-batch-out cross-validation) — 무작위 행이 아니라 배치 전체를 떼어 두고 모델을 시험하는 것. 한 배치 안의 행들은 독립이 아니므로 무작위 행 분할은 누출되어 점수를 부풀린다.
  • 공정 드리프트 대 모델 드리프트; 적용 범위(process drift vs model drift; applicability domain) — 캠페인마다 떠도는 살아 있는 공정(공정 드리프트), 배포된 모델에서 그것의 조용한 대응물(모델 드리프트), 그리고 모델의 예측을 신뢰할 수 없는 입력 외피(적용 범위, 제어 루프의 적격화된 운전 범위의 모델링 사촌).
  • 전자 배치 기록(electronic batch record, EBR) — 배치가 올바르게 만들어졌다는 법적 기록으로, 대체로 제어 데이터로부터 조립된다.
  • 단일 사용 / 스키드(single-use / skid) — 일회용 플라스틱 공정 조립체와, 자체 제어기를 갖춘 사전 제작된 독립 유닛.
  • OPC — 공급업체 시스템들 사이에서 태그와 이벤트를 교환하기 위한 개방형 인터페이스 표준.
  • MTP(Module Type Package) — VDI/VDE/NAMUR 2658. 스키드의 서비스, 태그, 화면, 알람을 기술하는 공급업체 중립 패키지로, 모듈이 맞춤형 매핑이 아니라 "플러그 앤 프로듀스"로 통합되게 한다.
  • NTP / PTP — 네트워크 시간 프로토콜(밀리초)과 정밀 시간 프로토콜, IEEE 1588(마이크로초 미만). 서로 다른 시스템의 타임스탬프를 하나의 신뢰할 수 있는 순서로 조정할 수 있게 해주는 시계 동기화 표준.
  • 유효 기간(effective dating, valid_from / valid_to) — 레시피 파라미터가 정확히 언제 유효했는지를 기록하는 타임스탬프로, 설정값을 재구성 가능한 이력으로 바꾼다.
  • 마스터 대 제어의 간극(master-vs-control gap) — 계획된 레시피와 실행된 제어 레시피 사이의 차이. 이 간극에 가장 가치 있는 제조 데이터가 자리한다.
  • 스윙잉 도어 압축(swinging-door compression) — 히스토리안이 허용 대역 안의 샘플을 버리는 데 쓰는 데드밴드 알고리즘. 너무 공격적으로 조정되면 짧지만 실재하는 이탈을 지울 수 있다.

이 다음은

자동화 계층은 원시 흐름을 생산하지만, 그 자체로는 그것들을 장기적으로 저장하거나, 조직하거나, 조정하지 않습니다. 그 일은 제어 계층 위에 자리한 일군의 공장 정보 시스템에 속하며, 각각은 데이터의 서로 다른 조각을 소유합니다. 다음 장 공장 정보 시스템: 히스토리안, MES, LIMS, ELN(The Plant Information Systems: Historian, MES, LIMS, and ELN)은 이들을 차례로 소개합니다. 즉 태그 시계열을 삼키는 공정 히스토리안, 배치를 실행하고 EBR을 조립하는 MES, 실험실 결과를 보관하는 LIMS, 그리고 실험을 기록하는 ELN — 그리고 이들 사이에서 벌어지는 통합 이음매(integration seam)와 데이터 사일로(data silo)를 소개합니다.