前“上料位、吹掃位、測試位”形成流水線的設(shè)備節(jié)拍。但建議拆為長期運(yùn)行的異步 Worker 加狀態(tài)機(jī),不要直接創(chuàng)建多個裸線程)
可以拆而且很適合當(dāng)前“上料位、吹掃位、測試位”形成流水線的設(shè)備節(jié)拍。但建議拆為長期運(yùn)行的異步 Worker 加狀態(tài)機(jī)不要直接創(chuàng)建多個裸線程。PLC、主控、搬運(yùn)機(jī)構(gòu)仍需要嚴(yán)格串行控制否則會再次出現(xiàn)指令交叉、Socket 回讀錯亂的問題。當(dāng)前StationControlViewModel.cs的RunAutomaticTestFlowCoreAsync是串行鏈路上料掃碼 - 搬運(yùn) - 建文件 - 預(yù)測試 - 正式測試 - 持久化 - 下料因此一顆器件未全部結(jié)束下一顆無法進(jìn)入搬運(yùn)或測試無法發(fā)揮三個位置并行工作的能力。建議重構(gòu)后的站內(nèi)模型如下搬運(yùn)任務(wù)測試結(jié)束后搬運(yùn)搬運(yùn)任務(wù)上料/下料位掃碼完成測試位建文件 - 預(yù)測試 - 正式測試 - 實時存儲 - 匯總吹掃位吹掃完成下料等待取走建議分成 4 個業(yè)務(wù) WorkerLoadWorker檢測 PLC 允許上料、執(zhí)行掃碼與上料校驗。完成后創(chuàng)建ProductContext狀態(tài)標(biāo)為“上料完成等待搬運(yùn)”。TransferWorker統(tǒng)一負(fù)責(zé)所有搬運(yùn)動作根據(jù) PLC 條件和位置狀態(tài)決定執(zhí)行吹掃位 - 下料位測試位 - 吹掃位上料位 - 測試位同一時刻只允許一條搬運(yùn)指令執(zhí)行。TestWorker測試位有器件且允許測試時執(zhí)行數(shù)據(jù)文件創(chuàng)建、預(yù)測試、正式測試、實時數(shù)據(jù)寫入、結(jié)果匯總。結(jié)束后只標(biāo)記“測試完成等待移至吹掃位”不直接自行搬運(yùn)。UnloadWorker檢測下料位/自動化取料條件執(zhí)行下料掃碼、確認(rèn)、狀態(tài)清理。人工下料時保留“等待取走”狀態(tài)。每顆器件應(yīng)有獨(dú)立的ProductContext至少保存器件編碼、RFID 工裝信息、LOT、配方快照、數(shù)據(jù)文件路徑、當(dāng)前物理位置、當(dāng)前流程狀態(tài)、測試結(jié)果和錯誤信息。這樣三顆器件在不同位置時不會把數(shù)據(jù)文件、工裝次數(shù)或測試結(jié)果混到一起。關(guān)鍵約束如下資源處理原則PLC 讀寫統(tǒng)一由 PLC 狀態(tài)采集器讀取寫指令通過單一串行通道執(zhí)行主控板單站測試位獨(dú)占預(yù)測試和正式測試絕不能并發(fā)搬運(yùn)機(jī)構(gòu)單站獨(dú)占三種搬運(yùn)方向由TransferWorker仲裁負(fù)載板卡與測試任務(wù)綁定避免搬運(yùn)任務(wù)同時下發(fā)控制指令數(shù)據(jù)文件每個ProductContext獨(dú)立寫入后臺隊列寫 CSV但文件歸屬不能共享停止/復(fù)位使用一個站級運(yùn)行會話取消源統(tǒng)一停止全部 Worker 并阻止新任務(wù)入隊搬運(yùn)優(yōu)先級建議為吹掃位-下料位測試位-吹掃位上料位-測試位。這樣先騰出吹掃緩沖位避免測試完成后無位置可移造成測試位長期被占用。還需要一個統(tǒng)一的PlcSignalWatcher。它周期性讀取 PLC 信號更新站內(nèi)位置快照并通知各 Worker而不是每個 Worker 自己無限循環(huán)讀取 PLC。這樣更快也能減少 PLC 通信沖突。另外當(dāng)前調(diào)用處對RunAutomaticTestFlowCoreAsync(...).ConfigureAwait(true);沒有await實際是未受控的后臺任務(wù)注釋與實際行為不一致。改造成 Worker 后應(yīng)由站級調(diào)度器集中保存并等待所有 Worker 任務(wù)停止按鈕才能可靠取消整條流水線。結(jié)論可以拆并且應(yīng)拆。推薦先將現(xiàn)有 7 步抽成獨(dú)立方法并保持串行驗證再引入ProductContext 工位狀態(tài)機(jī) Worker PLC 狀態(tài)采集器。這樣風(fēng)險最低也最利于后續(xù)增加雙工位、多器件、自動化聯(lián)機(jī)和異常恢復(fù)。