Contents — find the section you need
CEA 회수 로트 — 혼합 및 시스템 격리 후의 추적성
혼합한다고 출처가 평균으로 사라지지 않습니다
두 장부 가이드는 영양 상태와 위생 상태를 분리했습니다. 이 가이드는 혼합을 거친 회수 로트를 추적합니다. 로트 A와 B의 EC는 평균화할 수 있지만, A와 관련된 우려 사항이 사라지는 것은 아닙니다. 혼합된 액체는 A와 B 모두로 추적 가능한 상태를 유지해야 합니다.
UVM 익스텐션(UVM Extension)은 순환하는 영양액이 표면들을 연결하며 한 위치의 문제를 시스템 전체로 퍼뜨릴 수 있다고 설명합니다. 해당 농산물 안전 자료는 혼합물을 완전한 초기화가 아니라 이력을 상속받은 새로운 로트로 기록하는 방식을 뒷받침합니다.
혼합 로트가 상속하는 필드
| 필드 | 예시 | 목적 |
|---|---|---|
| 새 로트 ID | M-2026-09-14-01 | 혼합 후 고유 참조값 |
| 모 로트 및 수량 | A: 6L, B: 4L | 계보 및 기여도 추적 |
| 접촉한 시스템 | 근권 챔버 2, 리턴 파이프, 격리 용기 | 범위의 역방향 조회 |
| 시간 및 작업자 | UTC 시간 및 작업 ID | 순서 고정 |
| 검사/처리 상태 | 미검사, 처리됨, 보류 | 재사용 결정 지원 |
한쪽 모 로트가 보류 상태라면 자식 로트도 보류 상태로 유지됩니다. 대부분의 용량이 문제없었다는 이유로 소량의 모 로트를 무시하지 마십시오. 이는 병원체 농도 모델이 아니라 추적성 규칙입니다.
공유 시스템을 그래프로 보존하십시오
탱크, 펌프, 필터, 노즐 열, 근권 챔버, 회수 용기를 노드로 표현하고, 액체의 이동을 방향성 간선으로 표현하십시오. 우려 대상 로트에서 역방향으로 간선을 순회하면 격리 후보 시스템을 열거할 수 있습니다.
def ancestors(lot, parents):
seen = set()
stack = [lot]
while stack:
current = stack.pop()
if current in seen:
continue
seen.add(current)
stack.extend(parents.get(current, ()))
return seen
parents = {"M-01": ("A-01", "B-01"), "M-02": ("M-01", "C-01")}
print(sorted(ancestors("M-02", parents)))
출력값은 ['A-01', 'B-01', 'C-01', 'M-01', 'M-02']입니다. seen은 순환도 방지합니다. 이는 로트 계보를 찾는 것이며, 미생물 전파 확률이나 실제 오염 경계를 추정하지 않습니다.
격리 해제 전에 해제 조건을 정의하십시오
이상이 감지되면 해당 로트, 접촉한 공유 탱크, 리턴 파이프, 근권 챔버를 기록한 뒤 정상 재사용 루프에서 제외하십시오. 해제는 검사 결과, 처리 이력, 잔류물 확인, 완료된 세척/소독, 책임 있는 승인과 연결되어야 합니다. 미검사 액체를 다른 탱크로 옮기는 것은 격리 해제가 아니라 범위 확대입니다.
회수 용액이 수확물이나 식품 접촉면과 접촉할 수 있는 경우, 농업용수 및 농산물 안전 요건이 적용될 수 있습니다. VCE의 식품 안전 가이드는 영양액이 수확물과 접촉하는지 여부에 따라 관리 방식이 달라진다고 설명합니다. VCE 지침은 맥락 정보일 뿐 법적 해제 결정이 아닙니다.
범위
이 가이드는 혼합 로트 계보, 공유 경로, 격리 기록을 다룹니다. 병원체 검사, 오염 확률, 소독제 투여량, 법적 해제 결정은 범위를 벗어납니다. 다음으로는 회수 액체의 혼합을 피하고 구역별 배수 및 처리 경로를 사용하는 설계를 비교합니다.
구역 격리 — 배수 및 처리 경로 분리
파이프도 기록만큼 분리하십시오
회수 로트 추적성은 혼합 이후 모 로트를 보존했습니다. 범위를 더 제한하려면 구역별 탱크, 리턴 라인, 회수 용기, 처리 목적지를 고려하여 일상 운영에서 이들이 섞이지 않도록 하십시오.
UVM 익스텐션은 순환수가 표면들을 연결하며 한 위치의 문제를 퍼뜨릴 수 있다고 설명합니다. UVM 자료는 이 개념을 물리적 경로 분리에 적용할 동기를 제공합니다. 이는 병원체를 제거하지는 않으며, 격리와 추적을 위한 더 작은 단위를 정의할 뿐입니다.
각 구역에 네 개의 경로를 부여하십시오
| 경로 | 구역 A | 구역 B | 분리하는 이유 |
|---|---|---|---|
| 공급 | 탱크 A → 펌프 A | 탱크 B → 펌프 B | 공급 이력 보존 |
| 리턴 | 근권 챔버 A → 회수 A | 근권 챔버 B → 회수 B | 이상 로트 공유 방지 |
| 배수 | 격리 배수 A | 격리 배수 B | 배출 기록 구분 |
| 처리 | 필터/처리 A | 필터/처리 B | 처리 상태 혼동 방지 |
수원이 공유되는 경우에도, 각 구역에 유입되기 전에 경계를 기록하십시오. 공유 헤더, 필터, 바닥 배수구가 있으면 구역 이름을 별도로 붙이는 것만으로는 격리가 성립하지 않습니다.
격리 범위를 그래프로 열거하십시오
def connected(start, edges):
seen, stack = set(), [start]
while stack:
node = stack.pop()
if node in seen:
continue
seen.add(node)
stack.extend(edges.get(node, ()))
return seen
edges = {
"tank-A": ("root-A", "drain-A"),
"root-A": ("tank-A",),
"tank-B": ("root-B", "drain-B"),
"root-B": ("tank-B",),
"drain-A": ("treatment-A",),
"drain-B": ("treatment-B",),
}
print(sorted(connected("tank-A", edges)))
출력값은 ['drain-A', 'root-A', 'tank-A', 'treatment-A']입니다. A에서 발생한 이상이 B를 중단시켜야 하는지는 공유된 연결과 운영 절차에 달려 있습니다. 그래프는 기록된 적 없는 연결을 추론할 수 없습니다.
처리 용량이 늘어난다고 가정하지 말고 배수를 분리하십시오
구역별 배수는 부피와 로트를 구분하지만, 하나의 처리 장치를 순차적으로 운영한다고 해서 용량이 늘어나지는 않습니다. 각 배치 전후로 용기 ID, 시작/종료 시각, 헹굼, 잔류물 확인을 기록하십시오. 처리가 공유되는 경우 원래 구역 ID를 유지하십시오.
배수량이 증가하면 펌프 고장, 근권 챔버 누수, 가득 찬 회수 용기, 중단된 처리를 구분하십시오. 배수를 다른 탱크로 옮긴다고 해서 원래의 이상이 해결되는 것은 아닙니다.
범위
이 가이드는 구역 경로와 기록 경계를 다룹니다. 배관 크기, 밸브, 병원체 검사, 처리 제품, 법적 해제 결정은 범위를 벗어납니다. 다음으로는 어류, 미생물, 식물의 수질 경계가 회계 방식을 바꾸는 아쿠아포닉스를 다룹니다.

댓글
먼저 로그인해 주세요.
아직 데이터가 없습니다.