agentworkshop 0.7.8 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/-6OnbLFb.js +1 -0
  3. package/.output/public/_nuxt/{BUxYN2mw.js → -nb2uqVg.js} +1 -1
  4. package/.output/public/_nuxt/6vYobj4F.js +1 -0
  5. package/.output/public/_nuxt/{BSXx2vqR.js → B-xskWta.js} +1 -1
  6. package/.output/public/_nuxt/B3Psw_sL.js +1 -0
  7. package/.output/public/_nuxt/B53Mp7lD.js +1 -0
  8. package/.output/public/_nuxt/B5CYgFAD.js +14 -0
  9. package/.output/public/_nuxt/{uBbDCfTz.js → B5S_UyaC.js} +1 -1
  10. package/.output/public/_nuxt/{DZk24ego.js → B7wL3pDk.js} +1 -1
  11. package/.output/public/_nuxt/B8WV7GzS.js +1 -0
  12. package/.output/public/_nuxt/{BYL0Rjqj.js → BBwMH_hG.js} +3 -3
  13. package/.output/public/_nuxt/BLzCac9K2.js +1 -0
  14. package/.output/public/_nuxt/BNXfwXpE.js +1 -0
  15. package/.output/public/_nuxt/{VnIWJ0ts.js → BN_PdN3J.js} +1 -1
  16. package/.output/public/_nuxt/BZGNTgTQ2.js +1 -0
  17. package/.output/public/_nuxt/BbZAzXjZ2.js +1 -0
  18. package/.output/public/_nuxt/Bc3PiGGr.js +1 -0
  19. package/.output/public/_nuxt/Bckshc9V.js +1 -0
  20. package/.output/public/_nuxt/BcrN7QEl2.js +1 -0
  21. package/.output/public/_nuxt/BgOhoDTI.js +1 -0
  22. package/.output/public/_nuxt/Bmpvki7M.js +1 -0
  23. package/.output/public/_nuxt/{BkfchkK62.js → Bp5luxkg2.js} +1 -1
  24. package/.output/public/_nuxt/BxPPAkGA.js +3 -0
  25. package/.output/public/_nuxt/{C8dxXc6K.js → BxtpDtzC.js} +1 -1
  26. package/.output/public/_nuxt/{pRQri7vQ2.js → BytVi9VX2.js} +1 -1
  27. package/.output/public/_nuxt/{D5KJ7_0V.js → C3tCneTM.js} +1 -1
  28. package/.output/public/_nuxt/{C_gFA2H_2.js → C4OAdbVK2.js} +1 -1
  29. package/.output/public/_nuxt/C6m-kenn.js +1 -0
  30. package/.output/public/_nuxt/{zwdqvGN_.js → CGx-mtWf.js} +1 -1
  31. package/.output/public/_nuxt/{DCXIGxzT.js → CKfhtOt7.js} +2 -2
  32. package/.output/public/_nuxt/{ChEKFMxj.js → CUXCQXjG.js} +1 -1
  33. package/.output/public/_nuxt/CfVAr2nf.js +1 -0
  34. package/.output/public/_nuxt/Cj6139IM.js +1 -0
  35. package/.output/public/_nuxt/{DM8DS9MA.js → Cor9siSf.js} +1 -1
  36. package/.output/public/_nuxt/{BsMpJf7S.js → D-Ca4BGY.js} +6 -6
  37. package/.output/public/_nuxt/{CsCpu2Zh.js → D1z7i2UP.js} +1 -1
  38. package/.output/public/_nuxt/D7jiode2.js +1 -0
  39. package/.output/public/_nuxt/D8CqF0yy.js +1 -0
  40. package/.output/public/_nuxt/{DYZBdSSg2.js → DA4lxCWC2.js} +1 -1
  41. package/.output/public/_nuxt/DEaY_uvR.js +1 -0
  42. package/.output/public/_nuxt/{DCEyMaN-.js → DNxVTfhe.js} +3 -3
  43. package/.output/public/_nuxt/DT-Wg8r1.js +1 -0
  44. package/.output/public/_nuxt/DTYBfjRY.js +1 -0
  45. package/.output/public/_nuxt/{fQUs58kX2.js → DWcEk1ur2.js} +1 -1
  46. package/.output/public/_nuxt/DXRZPxGs.js +1 -0
  47. package/.output/public/_nuxt/Dhqra7NB.js +1 -0
  48. package/.output/public/_nuxt/DlRO_q5L.js +1 -0
  49. package/.output/public/_nuxt/{C2iWjzEC2.js → DoLasgPj2.js} +1 -1
  50. package/.output/public/_nuxt/{DRq09ZmT.js → DpojD719.js} +1 -1
  51. package/.output/public/_nuxt/Ds8JbqGB.js +1 -0
  52. package/.output/public/_nuxt/{BCipft_k2.js → DsUUYP292.js} +1 -1
  53. package/.output/public/_nuxt/DtBu71ev.js +32 -0
  54. package/.output/public/_nuxt/Dy-mxvXY2.js +1 -0
  55. package/.output/public/_nuxt/DyisHHzD.js +18 -0
  56. package/.output/public/_nuxt/G0qIw7Gq2.js +1 -0
  57. package/.output/public/_nuxt/ORt9oDIy2.js +1 -0
  58. package/.output/public/_nuxt/QoCzfpo2.js +1 -0
  59. package/.output/public/_nuxt/RzXYI9FM.js +23 -0
  60. package/.output/public/_nuxt/TownView.BHLKAjEu.css +1 -0
  61. package/.output/public/_nuxt/VLI2Zy4t.js +5 -0
  62. package/.output/public/_nuxt/_id_.DIxEKj88.css +1 -0
  63. package/.output/public/_nuxt/_id_.DTvjd6VN.css +1 -0
  64. package/.output/public/_nuxt/{_wsId_.COUzMXpP.css → _wsId_.BFyCuUwS.css} +1 -1
  65. package/.output/public/_nuxt/agents.CEbox5-D.css +1 -0
  66. package/.output/public/_nuxt/{ZugRk0CM2.js → arUY5dyq2.js} +2 -2
  67. package/.output/public/_nuxt/builds/latest.json +1 -1
  68. package/.output/public/_nuxt/builds/meta/88479a5b-ce6a-400f-9737-1cc9f54b1fe5.json +1 -0
  69. package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +1 -0
  70. package/.output/public/_nuxt/d_Sz9KGm.js +1 -0
  71. package/.output/public/_nuxt/daq.6IrhVVfy.css +1 -0
  72. package/.output/public/_nuxt/dcw.DcDjwvqv.css +1 -0
  73. package/.output/public/_nuxt/default.BbgdTDCk.css +1 -0
  74. package/.output/public/_nuxt/{CblLEiCZ.js → eHYnGew0.js} +3 -3
  75. package/.output/public/_nuxt/eUGyJdiT.js +1 -0
  76. package/.output/public/_nuxt/{entry.5qf6EqfN.css → entry.B03HBJGC.css} +1 -1
  77. package/.output/public/_nuxt/{Cyk3du4K2.js → kZV5TQvh2.js} +1 -1
  78. package/.output/public/_nuxt/kkEthL84.js +2 -0
  79. package/.output/public/_nuxt/logs.BO-BSyjm.css +1 -0
  80. package/.output/public/_nuxt/{D4qXvjuV.js → niDwBOZW.js} +2 -2
  81. package/.output/public/_nuxt/permissions.CwZo6t1V.css +1 -0
  82. package/.output/public/_nuxt/plugins.Clsky_kl.css +1 -0
  83. package/.output/public/_nuxt/rqZ-1SoP.js +2 -0
  84. package/.output/public/_nuxt/settings.BqMF2nfj.css +1 -0
  85. package/.output/public/_nuxt/tJuVvBSl.js +1 -0
  86. package/.output/public/_nuxt/teams.CUMnbQGf.css +1 -0
  87. package/.output/public/_nuxt/tokens.BPLe9ioQ.css +1 -0
  88. package/.output/public/_nuxt/{Bi6AiCuP.js → vJ4FPb-_.js} +1 -1
  89. package/.output/public/_nuxt/workshop.BIdoGfoC.css +1 -0
  90. package/.output/public/_nuxt/{B7aqqzkY.js → zVkqCZ78.js} +1 -1
  91. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  92. package/.output/server/chunks/_/SearchOutlined.mjs +1 -1
  93. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  94. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  95. package/.output/server/chunks/_/nitro.mjs +1614 -1279
  96. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  97. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  98. package/.output/server/chunks/build/Col-biaNnEPf.mjs +1 -1
  99. package/.output/server/chunks/build/{OmpTerminalPanel-COphA1br.mjs → OmpTerminalPanel-Ban3yJZ4.mjs} +4 -5
  100. package/.output/server/chunks/build/OmpTerminalPanel-Ban3yJZ4.mjs.map +1 -0
  101. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs → TownView-CunmEMzS.mjs} +184 -184
  102. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs.map → TownView-CunmEMzS.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{_id_-Ct4Jhvl1.mjs → _id_-CVnMdSeG.mjs} +38 -37
  104. package/.output/server/chunks/build/_id_-CVnMdSeG.mjs.map +1 -0
  105. package/.output/server/chunks/build/{_id_-C-ewLgfl.mjs → _id_-D265Wh_k.mjs} +127 -126
  106. package/.output/server/chunks/build/_id_-D265Wh_k.mjs.map +1 -0
  107. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs → _wsId_-eNJmBp05.mjs} +137 -136
  108. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs.map → _wsId_-eNJmBp05.mjs.map} +1 -1
  109. package/.output/server/chunks/build/{agents-DSOptxXA.mjs → agents-B10wmFri.mjs} +24 -23
  110. package/.output/server/chunks/build/agents-B10wmFri.mjs.map +1 -0
  111. package/.output/server/chunks/build/alert-qJnjyRcP.mjs +1 -1
  112. package/.output/server/chunks/build/api-error-dul30BYQ.mjs +47 -0
  113. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -0
  114. package/.output/server/chunks/build/button-DEcZFcqN.mjs +2 -2
  115. package/.output/server/chunks/build/{card-Dipvaykh.mjs → card-CCPQoKlh.mjs} +4 -4
  116. package/.output/server/chunks/build/{card-Dipvaykh.mjs.map → card-CCPQoKlh.mjs.map} +1 -1
  117. package/.output/server/chunks/build/{channel-templates-BK0KuPOd.mjs → channel-templates-CpWxVk5A.mjs} +29 -28
  118. package/.output/server/chunks/build/channel-templates-CpWxVk5A.mjs.map +1 -0
  119. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs → checkbox-Dv1kjaUZ.mjs} +3 -3
  120. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs.map → checkbox-Dv1kjaUZ.mjs.map} +1 -1
  121. package/.output/server/chunks/build/client-only-D5BzSQc6.mjs +1 -1
  122. package/.output/server/chunks/build/{daq-D9RA_uze.mjs → daq-DxaXk_8N.mjs} +114 -114
  123. package/.output/server/chunks/build/daq-DxaXk_8N.mjs.map +1 -0
  124. package/.output/server/chunks/build/{dcw-BTM5YU-B.mjs → dcw-DqjHrl5Z.mjs} +48 -47
  125. package/.output/server/chunks/build/dcw-DqjHrl5Z.mjs.map +1 -0
  126. package/.output/server/chunks/build/{default-BfWGTlbj.mjs → default-YcUHc1Ev.mjs} +34 -26
  127. package/.output/server/chunks/build/{default-BfWGTlbj.mjs.map → default-YcUHc1Ev.mjs.map} +1 -1
  128. package/.output/server/chunks/build/drawer-Cmh90erI.mjs +1 -1
  129. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +2 -2
  130. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs +554 -0
  131. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs.map +1 -0
  132. package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs +1 -1
  133. package/.output/server/chunks/build/{input-sf_BT6o6.mjs → input-DxDqeyQW.mjs} +5 -553
  134. package/.output/server/chunks/build/input-DxDqeyQW.mjs.map +1 -0
  135. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs → input-number-CZ3ZrCsy.mjs} +3 -3
  136. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs.map → input-number-CZ3ZrCsy.mjs.map} +1 -1
  137. package/.output/server/chunks/build/{logs-Dyk0I2I9.mjs → logs-Co854R4y.mjs} +40 -40
  138. package/.output/server/chunks/build/{logs-Dyk0I2I9.mjs.map → logs-Co854R4y.mjs.map} +1 -1
  139. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +2 -2
  140. package/.output/server/chunks/build/modal-yvUquPj5.mjs +2 -2
  141. package/.output/server/chunks/build/{monitor-MIOvsyLa.mjs → monitor-miqq9xHB.mjs} +11 -11
  142. package/.output/server/chunks/build/{monitor-MIOvsyLa.mjs.map → monitor-miqq9xHB.mjs.map} +1 -1
  143. package/.output/server/chunks/build/{pages-DR2bzczM.mjs → pages-DPC1Vp6w.mjs} +6 -5
  144. package/.output/server/chunks/build/pages-DPC1Vp6w.mjs.map +1 -0
  145. package/.output/server/chunks/build/permissions-Eu9e6hfZ.mjs +534 -0
  146. package/.output/server/chunks/build/permissions-Eu9e6hfZ.mjs.map +1 -0
  147. package/.output/server/chunks/build/{plugins-DnOBIWGg.mjs → plugins-D84mvK9G.mjs} +27 -25
  148. package/.output/server/chunks/build/plugins-D84mvK9G.mjs.map +1 -0
  149. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +2 -2
  150. package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs +1 -1
  151. package/.output/server/chunks/build/{segmented-DPe9ZzLO.mjs → segmented-ChmQZwz6.mjs} +5 -4
  152. package/.output/server/chunks/build/{segmented-DPe9ZzLO.mjs.map → segmented-ChmQZwz6.mjs.map} +1 -1
  153. package/.output/server/chunks/build/select-D-CeE5vY.mjs +1 -1
  154. package/.output/server/chunks/build/{settings-DA8IkGLo.mjs → settings-BPBll_7K.mjs} +28 -26
  155. package/.output/server/chunks/build/settings-BPBll_7K.mjs.map +1 -0
  156. package/.output/server/chunks/build/space-CCBYAkXt.mjs +2 -2
  157. package/.output/server/chunks/build/spin-HVY81X_L.mjs +1 -1
  158. package/.output/server/chunks/build/switch-CelRXpcy.mjs +2 -2
  159. package/.output/server/chunks/build/{table-Cswq-l2r.mjs → table-BtksyDlQ.mjs} +5 -5
  160. package/.output/server/chunks/build/{table-Cswq-l2r.mjs.map → table-BtksyDlQ.mjs.map} +1 -1
  161. package/.output/server/chunks/build/{tabs-BM3tAh_J.mjs → tabs-DQv-_-R6.mjs} +3 -3
  162. package/.output/server/chunks/build/{tabs-BM3tAh_J.mjs.map → tabs-DQv-_-R6.mjs.map} +1 -1
  163. package/.output/server/chunks/build/{tag-NO9jEqKy.mjs → tag-A0tZ2Ouq.mjs} +4 -4
  164. package/.output/server/chunks/build/{tag-NO9jEqKy.mjs.map → tag-A0tZ2Ouq.mjs.map} +1 -1
  165. package/.output/server/chunks/build/{teams-BhSKBBBM.mjs → teams-CNflUtPh.mjs} +25 -24
  166. package/.output/server/chunks/build/teams-CNflUtPh.mjs.map +1 -0
  167. package/.output/server/chunks/build/{tokens-D_eyxmcv.mjs → tokens-CZpnEDVf.mjs} +27 -26
  168. package/.output/server/chunks/build/tokens-CZpnEDVf.mjs.map +1 -0
  169. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -1
  170. package/.output/server/chunks/build/{town-DPtOPRRO.mjs → town-BbaR-8io.mjs} +10 -10
  171. package/.output/server/chunks/build/{town-DPtOPRRO.mjs.map → town-BbaR-8io.mjs.map} +1 -1
  172. package/.output/server/chunks/build/{useDaqStream-hwkhJHFU.mjs → useDaqStream-BkmyQT06.mjs} +36 -24
  173. package/.output/server/chunks/build/useDaqStream-BkmyQT06.mjs.map +1 -0
  174. package/.output/server/chunks/build/{useDcwStream-Bdew_yrr.mjs → useDcwStream-DWVoU96J.mjs} +63 -48
  175. package/.output/server/chunks/build/useDcwStream-DWVoU96J.mjs.map +1 -0
  176. package/.output/server/chunks/build/{useDeviceTwins-C6EBg9oN.mjs → useDeviceTwins-34WGk9aN.mjs} +4 -3
  177. package/.output/server/chunks/build/useDeviceTwins-34WGk9aN.mjs.map +1 -0
  178. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -1
  179. package/.output/server/chunks/build/{useOpsLog-DdCqKVVG.mjs → useOpsLog-C9zTzYof.mjs} +30 -17
  180. package/.output/server/chunks/build/useOpsLog-C9zTzYof.mjs.map +1 -0
  181. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs +1 -1
  182. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +1 -1
  183. package/.output/server/chunks/build/{useWorkshopWs-B3j5wIAK.mjs → useWorkshopWs-CprkZEdq.mjs} +2 -3
  184. package/.output/server/chunks/build/useWorkshopWs-CprkZEdq.mjs.map +1 -0
  185. package/.output/server/chunks/build/{users-CmVvb1oq.mjs → users-D6RNylrW.mjs} +10 -10
  186. package/.output/server/chunks/build/{users-CmVvb1oq.mjs.map → users-D6RNylrW.mjs.map} +1 -1
  187. package/.output/server/chunks/build/{workshop-D5CQj2A8.mjs → workshop-Crsai2Y9.mjs} +27 -26
  188. package/.output/server/chunks/build/workshop-Crsai2Y9.mjs.map +1 -0
  189. package/.output/server/chunks/build/{workspaces-IfORCDJE.mjs → workspaces-BuydxM-3.mjs} +2 -3
  190. package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +1 -0
  191. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  192. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  194. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  195. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  196. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  197. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  198. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  199. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/system/index.get.mjs +1 -1
  201. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -1
  202. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
  203. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
  204. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -1
  205. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
  206. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -1
  207. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  208. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
  209. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  210. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
  211. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  212. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  213. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
  214. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
  215. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  216. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +1 -1
  217. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  218. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  219. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +19 -8
  229. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  230. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -2
  232. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -2
  233. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  237. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  238. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  239. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  240. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  241. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -2
  242. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  243. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -2
  244. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  245. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
  246. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -3
  247. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  248. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  249. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  250. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  251. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  252. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  253. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  254. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  255. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  256. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  257. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  258. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  259. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  260. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  261. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  262. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  263. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  264. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  265. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  266. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  267. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  268. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  269. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  270. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  271. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  272. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  273. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  274. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  275. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  276. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -1
  277. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -1
  278. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  279. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +7 -6
  280. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  281. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +5 -4
  282. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  283. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +5 -4
  284. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +5 -4
  286. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  287. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
  288. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
  289. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +5 -4
  290. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +5 -2
  292. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  293. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  294. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +3 -2
  295. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  296. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  297. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  298. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  299. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  300. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  301. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  302. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +7 -6
  303. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  305. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  306. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +5 -4
  307. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +4 -3
  309. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  311. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  312. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  313. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  314. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +4 -4
  315. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +8 -4
  317. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +4 -4
  319. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  321. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  322. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  323. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  324. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -4
  325. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  327. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +7 -3
  328. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +3 -2
  330. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +3 -2
  332. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  334. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  335. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  336. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  337. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  338. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  339. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  340. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  341. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  342. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  343. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  344. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  345. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -2
  346. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  347. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +5 -3
  348. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  350. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  351. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  352. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  353. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  354. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  355. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  356. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  357. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  358. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +2 -2
  359. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -2
  360. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -2
  361. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +2 -2
  362. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  363. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  364. package/.output/server/chunks/routes/api/workshop/index.put.mjs +41 -0
  365. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -0
  366. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +4 -3
  367. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +27 -0
  369. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -0
  370. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  371. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  372. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  373. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +4 -4
  374. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  375. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +5 -4
  376. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  377. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  378. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +18 -11
  379. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  381. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  382. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  383. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  384. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  385. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +24 -12
  386. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  387. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  388. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +12 -7
  389. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  391. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  392. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  393. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +4 -4
  394. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +4 -4
  396. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  397. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  398. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  399. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  400. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  401. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  402. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  403. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  404. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  405. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  406. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  407. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  408. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  409. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  410. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  411. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  412. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  413. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  414. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  415. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  416. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  417. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  418. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
  419. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  420. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  421. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  422. package/.output/server/chunks/routes/renderer.mjs +3 -3
  423. package/.output/server/chunks/virtual/entry.mjs +303 -37
  424. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  425. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  426. package/.output/server/index.mjs +1 -1
  427. package/.output/server/package.json +1 -1
  428. package/README-zh.md +15 -0
  429. package/README.md +20 -0
  430. package/app/components/AppHeader.vue +1 -1
  431. package/app/components/AppSidebar.vue +7 -1
  432. package/app/components/workshop/A2aRpcDebugger.vue +1 -1
  433. package/app/components/workshop/AgentInspectorDrawer.vue +3 -3
  434. package/app/components/workshop/AgentLanesView.vue +6 -6
  435. package/app/components/workshop/AssetLibrary.vue +2 -2
  436. package/app/components/workshop/ChannelSessionList.vue +5 -5
  437. package/app/components/workshop/Composer.vue +1 -1
  438. package/app/components/workshop/DeviceTwinPanel.vue +2 -2
  439. package/app/components/workshop/TaskBoardView.vue +1 -1
  440. package/app/components/workshop/TaskInspectorDrawer.vue +2 -2
  441. package/app/components/workshop/town/TownView.vue +23 -23
  442. package/app/composables/workshop/apiClient.ts +103 -95
  443. package/app/composables/workshop/useCharacterAssets.ts +1 -1
  444. package/app/composables/workshop/useDaqStream.ts +36 -22
  445. package/app/composables/workshop/useDcwStream.ts +23 -6
  446. package/app/composables/workshop/useDeviceTwins.ts +1 -1
  447. package/app/composables/workshop/useOpsLog.ts +28 -15
  448. package/app/composables/workshop/useSceneLayouts.ts +1 -1
  449. package/app/composables/workshop/useWorkshopWs.ts +11 -2
  450. package/app/pages/daq/[id].vue +1 -1
  451. package/app/pages/daq/index.vue +8 -8
  452. package/app/pages/dcw/[id].vue +13 -13
  453. package/app/pages/dcw/index.vue +7 -7
  454. package/app/pages/logs/index.vue +1 -1
  455. package/app/pages/permissions/index.vue +327 -0
  456. package/app/pages/plugins/index.vue +14 -6
  457. package/app/pages/settings.vue +4 -2
  458. package/app/pages/tokens.vue +3 -3
  459. package/app/pages/workshop/agents.vue +2 -2
  460. package/app/pages/workshop/channel-templates.vue +3 -3
  461. package/app/pages/workshop/index.vue +4 -4
  462. package/app/pages/workshop/teams.vue +3 -3
  463. package/app/plugins/http.ts +18 -2
  464. package/app/plugins/session-restore.client.ts +7 -2
  465. package/app/stores/workshop/user.ts +14 -1
  466. package/app/utils/api-error.ts +75 -0
  467. package/cli/commands/plugin.mjs +2 -2
  468. package/config.yml +1 -1
  469. package/i18n/locales/en.ts +53 -3
  470. package/i18n/locales/zh-CN.ts +53 -3
  471. package/package.json +1 -1
  472. package/scripts/_dbg-acc-1-setup.mjs +57 -0
  473. package/scripts/_dbg-acc-2-diag.mjs +14 -0
  474. package/scripts/_dbg-acc-2-intervals.mjs +81 -0
  475. package/scripts/_dbg-acc-3-daq.mjs +48 -0
  476. package/scripts/_dbg-acc-4-team.mjs +92 -0
  477. package/scripts/_dbg-acc-5-visual.mjs +63 -0
  478. package/scripts/_dbg-acc-5b-ws-town.mjs +18 -0
  479. package/scripts/_dbg-acc-5c-town.mjs +12 -0
  480. package/scripts/_dbg-acc-6-i18n.mjs +19 -0
  481. package/scripts/_dbg-audit-neg-e2e.mjs +64 -0
  482. package/scripts/_dbg-final-features.mjs +155 -0
  483. package/scripts/_dbg-final-fixups.mjs +62 -0
  484. package/scripts/_dbg-final-visual.mjs +29 -0
  485. package/scripts/_dbg-interval-config.mjs +17 -6
  486. package/scripts/_dbg-perms-e2e.mjs +102 -0
  487. package/scripts/_dbg-perms-visual.mjs +36 -0
  488. package/scripts/_dbg-plugins-e2e.mjs +101 -0
  489. package/scripts/_dbg-protocol-matrix.mjs +16 -0
  490. package/scripts/_dbg-repo-setup-verify.mjs +31 -0
  491. package/scripts/_dbg-setup-e2e.mjs +1 -1
  492. package/sdk/api.mjs +117 -101
  493. package/sdk/context.mjs +240 -219
  494. package/sdk/hooks.mjs +105 -103
  495. package/sdk/index.d.mts +142 -135
  496. package/sdk/lifecycle.mjs +26 -25
  497. package/server/api/workshop/agent-tools/bindings/index.post.ts +40 -20
  498. package/server/api/workshop/daq/[id]/bind.post.ts +5 -2
  499. package/server/api/workshop/daq/[id]/frames/content.get.ts +4 -1
  500. package/server/api/workshop/daq/[id]/frames.get.ts +4 -1
  501. package/server/api/workshop/daq/[id]/samples.get.ts +4 -1
  502. package/server/api/workshop/daq/[id].patch.ts +3 -0
  503. package/server/api/workshop/daq/alarms/[id]/ack.post.ts +20 -15
  504. package/server/api/workshop/daq/controller.post.ts +2 -0
  505. package/server/api/workshop/daq/index.get.ts +5 -3
  506. package/server/api/workshop/daq/index.post.ts +2 -2
  507. package/server/api/workshop/dcw/[id]/bind.post.ts +20 -17
  508. package/server/api/workshop/dcw/[id]/test.post.ts +18 -15
  509. package/server/api/workshop/dcw/[id]/write.post.ts +3 -0
  510. package/server/api/workshop/dcw/index.get.ts +22 -9
  511. package/server/api/workshop/dcw/line/query.get.ts +38 -31
  512. package/server/api/workshop/dcw/lines/[id]/start.post.ts +3 -0
  513. package/server/api/workshop/dcw/lines/[id]/stop.post.ts +3 -0
  514. package/server/api/workshop/dcw/lines/index.get.ts +8 -2
  515. package/server/api/workshop/dcw/lines/index.post.ts +2 -2
  516. package/server/api/workshop/dcw/products/index.post.ts +16 -16
  517. package/server/api/workshop/dcw/runs/[id]/data.get.ts +20 -15
  518. package/server/api/workshop/dcw/runs/index.get.ts +13 -11
  519. package/server/api/workshop/permissions/index.get.ts +30 -0
  520. package/server/api/workshop/permissions/index.put.ts +29 -0
  521. package/server/api/workshop/plugins/[name]/disable.post.ts +5 -3
  522. package/server/api/workshop/plugins/[name]/enable.post.ts +5 -3
  523. package/server/api/workshop/ws.ts +18 -6
  524. package/server/data/daqs.json +90 -46
  525. package/server/data/dcw-lines.json +21 -0
  526. package/server/data/dcw-products.json +140 -0
  527. package/server/data/dcw-recipes.json +506 -0
  528. package/server/data/dcw-rollback.json +281 -6
  529. package/server/data/dcw-runs.json +1374 -1257
  530. package/server/data/dcw-writes.json +312 -0
  531. package/server/data/dcws.json +1165 -477
  532. package/server/data/line-runs.json +26 -6
  533. package/server/plugins/backup.ts +119 -116
  534. package/server/repositories/user.repository.ts +86 -6
  535. package/server/services/system-config.ts +5 -0
  536. package/server/services/user.service.ts +5 -3
  537. package/server/services/workshop/daq/bus/index.ts +5 -3
  538. package/server/services/workshop/daq/bus/inproc.adapter.ts +12 -3
  539. package/server/services/workshop/daq/bus/mqtt.adapter.ts +13 -0
  540. package/server/services/workshop/daq/bus/queue-port.ts +2 -0
  541. package/server/services/workshop/daq/daq-controller.ts +18 -1
  542. package/server/services/workshop/daq/storage/sqlite.adapter.ts +10 -5
  543. package/server/services/workshop/db/ops.repo.ts +6 -0
  544. package/server/services/workshop/dcw/dcw-controller.ts +10 -2
  545. package/server/services/workshop/permissions.ts +79 -0
  546. package/server/services/workshop/plugins/host.mjs +40 -2
  547. package/server/services/workshop/scene-events.ts +25 -1
  548. package/server/services/workshop/settings.ts +10 -0
  549. package/shared/config/single-instance.mjs +24 -0
  550. package/shared/daq-protocol.ts +2 -0
  551. package/.output/public/_nuxt/2LwEn9gX.js +0 -2
  552. package/.output/public/_nuxt/3612gD2V.js +0 -32
  553. package/.output/public/_nuxt/8eIQAVlb.js +0 -1
  554. package/.output/public/_nuxt/Ah9qOv1m.js +0 -1
  555. package/.output/public/_nuxt/B4Fia4FB.js +0 -3
  556. package/.output/public/_nuxt/BH0Z05CS.js +0 -1
  557. package/.output/public/_nuxt/BJ-fxrSw.js +0 -1
  558. package/.output/public/_nuxt/BJvGPTpC.js +0 -1
  559. package/.output/public/_nuxt/BVZjSVs2.js +0 -1
  560. package/.output/public/_nuxt/BVzDoF8t.js +0 -1
  561. package/.output/public/_nuxt/BjVLsC3M.js +0 -1
  562. package/.output/public/_nuxt/BnVoQ74r.js +0 -1
  563. package/.output/public/_nuxt/Bnp4vIAf.js +0 -1
  564. package/.output/public/_nuxt/Bt_HDizI.js +0 -5
  565. package/.output/public/_nuxt/Bu-P92Pe.js +0 -18
  566. package/.output/public/_nuxt/ButLXkjo.js +0 -2
  567. package/.output/public/_nuxt/By-LNp3k.js +0 -1
  568. package/.output/public/_nuxt/CGdPdJPP.js +0 -1
  569. package/.output/public/_nuxt/CRGlf1Gb.js +0 -1
  570. package/.output/public/_nuxt/CS8R0_J3.js +0 -1
  571. package/.output/public/_nuxt/CUxV8Bw_.js +0 -1
  572. package/.output/public/_nuxt/Cd15nPnG2.js +0 -1
  573. package/.output/public/_nuxt/CvbHIGQY2.js +0 -1
  574. package/.output/public/_nuxt/DNJSkm3Q.js +0 -1
  575. package/.output/public/_nuxt/DNzaswei.js +0 -1
  576. package/.output/public/_nuxt/DXK1U43I.js +0 -1
  577. package/.output/public/_nuxt/Dc46i75T.js +0 -14
  578. package/.output/public/_nuxt/Dk6pq9JB2.js +0 -1
  579. package/.output/public/_nuxt/Do88WZG2.js +0 -23
  580. package/.output/public/_nuxt/Du-eSpo2.js +0 -1
  581. package/.output/public/_nuxt/GP2wXyuY.js +0 -1
  582. package/.output/public/_nuxt/NIM0Wglj2.js +0 -1
  583. package/.output/public/_nuxt/PQLnLxYe.js +0 -1
  584. package/.output/public/_nuxt/R_Wv_Nd9.js +0 -1
  585. package/.output/public/_nuxt/TownView.Bt33bo1M.css +0 -1
  586. package/.output/public/_nuxt/_id_.BzKMZnLe.css +0 -1
  587. package/.output/public/_nuxt/_id_.CbpDAWRh.css +0 -1
  588. package/.output/public/_nuxt/agents.BlejnOOC.css +0 -1
  589. package/.output/public/_nuxt/builds/meta/e5bb1803-86d9-43b3-85be-dc787dc9a978.json +0 -1
  590. package/.output/public/_nuxt/channel-templates.lkqEYlWY.css +0 -1
  591. package/.output/public/_nuxt/daq.zZ8GR433.css +0 -1
  592. package/.output/public/_nuxt/dcw.C46dGiF_.css +0 -1
  593. package/.output/public/_nuxt/default.V3_hUJq1.css +0 -1
  594. package/.output/public/_nuxt/eHGLpQSg2.js +0 -1
  595. package/.output/public/_nuxt/logs.DaIsHWZE.css +0 -1
  596. package/.output/public/_nuxt/p7wSGMtc.js +0 -1
  597. package/.output/public/_nuxt/plugins.FTm0PcEe.css +0 -1
  598. package/.output/public/_nuxt/settings.DeRNNUcP.css +0 -1
  599. package/.output/public/_nuxt/tRBT-plo.js +0 -1
  600. package/.output/public/_nuxt/teams.B8JNbUZg.css +0 -1
  601. package/.output/public/_nuxt/tokens.CWOTXM-Z.css +0 -1
  602. package/.output/public/_nuxt/ubPfs9mQ.js +0 -1
  603. package/.output/public/_nuxt/workshop.3kAcLB_M.css +0 -1
  604. package/.output/server/chunks/build/OmpTerminalPanel-COphA1br.mjs.map +0 -1
  605. package/.output/server/chunks/build/_id_-C-ewLgfl.mjs.map +0 -1
  606. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +0 -1
  607. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +0 -1
  608. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +0 -1
  609. package/.output/server/chunks/build/daq-D9RA_uze.mjs.map +0 -1
  610. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +0 -1
  611. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +0 -1
  612. package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +0 -1
  613. package/.output/server/chunks/build/plugins-DnOBIWGg.mjs.map +0 -1
  614. package/.output/server/chunks/build/settings-DA8IkGLo.mjs.map +0 -1
  615. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +0 -1
  616. package/.output/server/chunks/build/tokens-D_eyxmcv.mjs.map +0 -1
  617. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs.map +0 -1
  618. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +0 -1
  619. package/.output/server/chunks/build/useDeviceTwins-C6EBg9oN.mjs.map +0 -1
  620. package/.output/server/chunks/build/useOpsLog-DdCqKVVG.mjs.map +0 -1
  621. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs.map +0 -1
  622. package/.output/server/chunks/build/user-Dk-ytEUV.mjs +0 -140
  623. package/.output/server/chunks/build/user-Dk-ytEUV.mjs.map +0 -1
  624. package/.output/server/chunks/build/workshop-D5CQj2A8.mjs.map +0 -1
  625. package/.output/server/chunks/build/workspaces-IfORCDJE.mjs.map +0 -1
  626. /package/.output/public/_nuxt/{CNs_Ozdc2.js → CNs_Ozdc.js} +0 -0
  627. /package/.output/public/_nuxt/{Cno6kYiO2.js → Cno6kYiO.js} +0 -0
@@ -1,12 +1,12 @@
1
1
  [
2
2
  {
3
- "id": "rr-01ae127b",
3
+ "id": "rr-b1ab97b5",
4
4
  "recipeId": "rc-7bf584db",
5
5
  "recipeName": "A-标准工艺",
6
6
  "productId": "pd-6348a595",
7
7
  "lineId": "ln-af002514",
8
- "startedAt": "2026-08-30T12:15:39.662Z",
9
- "endedAt": "2026-08-30T12:16:35.223Z",
8
+ "startedAt": "2026-08-31T05:52:15.607Z",
9
+ "endedAt": "2026-08-31T15:40:26.251Z",
10
10
  "results": [
11
11
  {
12
12
  "templateRef": "dcw-temp-sp",
@@ -25,638 +25,472 @@
25
25
  ]
26
26
  },
27
27
  {
28
- "id": "rr-f3cb33d0",
29
- "recipeId": "rc-7bf584db",
30
- "recipeName": "A-标准工艺",
31
- "productId": "pd-6348a595",
32
- "lineId": "ln-af002514",
33
- "startedAt": "2026-08-30T12:18:36.060Z",
34
- "endedAt": "2026-08-30T12:19:30.722Z",
28
+ "id": "rr-8788a81c",
29
+ "recipeId": "rc-f62239b2",
30
+ "recipeName": "语义验证配方",
31
+ "productId": "pd-2308e253",
32
+ "lineId": "ln-feef6e4d",
33
+ "startedAt": "2026-08-31T14:26:24.122Z",
34
+ "endedAt": null,
35
35
  "results": [
36
36
  {
37
37
  "templateRef": "dcw-temp-sp",
38
- "nodeId": "dw-322b1978",
39
- "ok": true,
40
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
38
+ "nodeId": "dw-b1c4bbb2",
39
+ "ok": false,
40
+ "message": "Modbus 写入失败: connect ECONNREFUSED 127.0.0.1:1502",
41
41
  "value": 182
42
- },
43
- {
44
- "templateRef": "dcw-pressure-sp",
45
- "nodeId": "dw-e92bb0e7",
46
- "ok": true,
47
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
48
- "value": 0.92
49
42
  }
50
43
  ]
51
44
  },
52
45
  {
53
- "id": "rr-94074f6c",
54
- "recipeId": "rc-7bf584db",
55
- "recipeName": "A-标准工艺",
56
- "productId": "pd-6348a595",
57
- "lineId": "ln-af002514",
58
- "startedAt": "2026-08-30T12:24:48.621Z",
59
- "endedAt": "2026-08-30T12:24:56.192Z",
46
+ "id": "rr-d3d7635c",
47
+ "recipeId": "rc-89031e11",
48
+ "recipeName": "全功能配方-m20gm8",
49
+ "productId": "pd-510edc1b",
50
+ "lineId": "ln-3aff4d75",
51
+ "startedAt": "2026-08-31T15:01:17.249Z",
52
+ "endedAt": "2026-08-31T15:05:19.626Z",
60
53
  "results": [
61
54
  {
62
55
  "templateRef": "dcw-temp-sp",
63
- "nodeId": "dw-322b1978",
64
- "ok": true,
65
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
66
- "value": 182
67
- },
68
- {
69
- "templateRef": "dcw-pressure-sp",
70
- "nodeId": "dw-e92bb0e7",
56
+ "nodeId": "dw-aff8c1f5",
71
57
  "ok": true,
72
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
73
- "value": 0.92
58
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
59
+ "value": 180
74
60
  }
75
61
  ]
76
62
  },
77
63
  {
78
- "id": "rr-7a2b1d8e",
79
- "recipeId": "rc-383d5228",
80
- "recipeName": "全功能配方-cmi1rk",
81
- "productId": "pd-f5e16580",
82
- "lineId": "ln-c6398954",
83
- "startedAt": "2026-08-30T15:01:39.119Z",
84
- "endedAt": "2026-08-30T15:11:53.479Z",
64
+ "id": "rr-38f7f364",
65
+ "recipeId": "rc-9326681e",
66
+ "recipeName": "快照配方-prmthfeolm",
67
+ "productId": "pd-a580ad4f",
68
+ "lineId": "ln-35e3626b",
69
+ "startedAt": "2026-08-31T16:01:42.442Z",
70
+ "endedAt": "2026-08-31T16:03:19.310Z",
85
71
  "results": [
86
72
  {
87
73
  "templateRef": "dcw-temp-sp",
88
- "nodeId": "dw-e7d0b794",
74
+ "nodeId": "dw-a4205751",
89
75
  "ok": true,
90
76
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
91
77
  "value": 180
92
78
  }
93
- ]
94
- },
95
- {
96
- "id": "rr-3cfdeade",
97
- "recipeId": "rc-7bf584db",
98
- "recipeName": "A-标准工艺",
99
- "productId": "pd-6348a595",
100
- "lineId": "ln-af002514",
101
- "startedAt": "2026-08-30T15:51:40.543Z",
102
- "endedAt": "2026-08-30T15:52:09.236Z",
103
- "results": [
79
+ ],
80
+ "paramsSnapshot": [
104
81
  {
82
+ "nodeId": "dw-a4205751",
105
83
  "templateRef": "dcw-temp-sp",
106
- "nodeId": "dw-322b1978",
107
- "ok": true,
108
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
109
- "value": 182
110
- },
111
- {
112
- "templateRef": "dcw-pressure-sp",
113
- "nodeId": "dw-e92bb0e7",
114
- "ok": true,
115
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
116
- "value": 0.92
84
+ "value": 180,
85
+ "min": 176,
86
+ "max": 188
117
87
  }
118
88
  ]
119
89
  },
120
90
  {
121
- "id": "rr-046e4328",
122
- "recipeId": "rc-7bf584db",
123
- "recipeName": "A-标准工艺",
124
- "productId": "pd-6348a595",
125
- "lineId": "ln-af002514",
126
- "startedAt": "2026-08-30T15:52:46.613Z",
127
- "endedAt": "2026-08-30T15:53:02.101Z",
91
+ "id": "rr-51ed0c51",
92
+ "recipeId": "rc-d6ce6aca",
93
+ "recipeName": "快照配方-prmthffidc",
94
+ "productId": "pd-7335ba73",
95
+ "lineId": "ln-c31cf75d",
96
+ "startedAt": "2026-08-31T16:02:20.957Z",
97
+ "endedAt": "2026-08-31T16:02:45.415Z",
128
98
  "results": [
129
99
  {
130
100
  "templateRef": "dcw-temp-sp",
131
- "nodeId": "dw-322b1978",
132
- "ok": true,
133
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
134
- "value": 182
135
- },
136
- {
137
- "templateRef": "dcw-pressure-sp",
138
- "nodeId": "dw-e92bb0e7",
101
+ "nodeId": "dw-47a397c1",
139
102
  "ok": true,
140
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
141
- "value": 0.92
103
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
104
+ "value": 180
142
105
  }
143
- ]
144
- },
145
- {
146
- "id": "rr-9ac3a8c5",
147
- "recipeId": "rc-7bf584db",
148
- "recipeName": "A-标准工艺",
149
- "productId": "pd-6348a595",
150
- "lineId": "ln-af002514",
151
- "startedAt": "2026-08-30T15:53:46.748Z",
152
- "endedAt": "2026-08-30T15:53:57.454Z",
153
- "results": [
106
+ ],
107
+ "paramsSnapshot": [
154
108
  {
109
+ "nodeId": "dw-47a397c1",
155
110
  "templateRef": "dcw-temp-sp",
156
- "nodeId": "dw-322b1978",
157
- "ok": true,
158
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
159
- "value": 182
160
- },
161
- {
162
- "templateRef": "dcw-pressure-sp",
163
- "nodeId": "dw-e92bb0e7",
164
- "ok": true,
165
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
166
- "value": 0.92
111
+ "value": 180,
112
+ "min": 176,
113
+ "max": 188
167
114
  }
168
115
  ]
169
116
  },
170
117
  {
171
- "id": "rr-cbfa475a",
172
- "recipeId": "rc-be9f32f1",
173
- "recipeName": "OMPDBG-配方",
174
- "productId": "pd-49a5c9c5",
175
- "lineId": "ln-18f515c7",
176
- "startedAt": "2026-08-30T16:33:09.489Z",
177
- "endedAt": null,
118
+ "id": "rr-dce5ebb4",
119
+ "recipeId": "rc-ccbbbad7",
120
+ "recipeName": "独立性配方-ndmthfmq46",
121
+ "productId": "pd-91ac8f36",
122
+ "lineId": "ln-f4b89912",
123
+ "startedAt": "2026-08-31T16:07:57.515Z",
124
+ "endedAt": "2026-08-31T16:08:38.507Z",
178
125
  "results": [
179
126
  {
180
127
  "templateRef": "dcw-temp-sp",
181
- "nodeId": "dw-446be489",
128
+ "nodeId": "dw-c0743b62",
182
129
  "ok": true,
183
130
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
184
131
  "value": 180
185
132
  }
186
- ]
187
- },
188
- {
189
- "id": "rr-aabedbd7",
190
- "recipeId": "rc-d78ba182",
191
- "recipeName": "OMPDBG-配方",
192
- "productId": "pd-46da28bc",
193
- "lineId": "ln-22fa44a1",
194
- "startedAt": "2026-08-30T16:34:22.155Z",
195
- "endedAt": null,
196
- "results": [
133
+ ],
134
+ "paramsSnapshot": [
197
135
  {
136
+ "nodeId": "dw-c0743b62",
198
137
  "templateRef": "dcw-temp-sp",
199
- "nodeId": "dw-17a41938",
200
- "ok": true,
201
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
202
- "value": 180
138
+ "value": 180,
139
+ "min": 176,
140
+ "max": 188
203
141
  }
204
142
  ]
205
143
  },
206
144
  {
207
- "id": "rr-db6393d4",
208
- "recipeId": "rc-d0a6fa11",
209
- "recipeName": "OMPDBG-配方",
210
- "productId": "pd-7b470ac0",
211
- "lineId": "ln-d7460017",
212
- "startedAt": "2026-08-30T16:36:03.781Z",
213
- "endedAt": null,
145
+ "id": "rr-3166887e",
146
+ "recipeId": "rc-249c45ce",
147
+ "recipeName": "独立性配方-ndmthftb7w",
148
+ "productId": "pd-30c207eb",
149
+ "lineId": "ln-673b1dbb",
150
+ "startedAt": "2026-08-31T16:13:04.789Z",
151
+ "endedAt": "2026-08-31T16:13:41.314Z",
214
152
  "results": [
215
153
  {
216
154
  "templateRef": "dcw-temp-sp",
217
- "nodeId": "dw-abd67572",
155
+ "nodeId": "dw-cf5c6f31",
218
156
  "ok": true,
219
157
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
220
158
  "value": 180
221
159
  }
222
- ]
223
- },
224
- {
225
- "id": "rr-a9d4f5d4",
226
- "recipeId": "rc-1d236ab0",
227
- "recipeName": "TEAMDBG-配方",
228
- "productId": "pd-00a1b95a",
229
- "lineId": "ln-d7bd99eb",
230
- "startedAt": "2026-08-30T16:43:36.670Z",
231
- "endedAt": "2026-08-30T16:54:02.934Z",
232
- "results": [
160
+ ],
161
+ "paramsSnapshot": [
233
162
  {
163
+ "nodeId": "dw-cf5c6f31",
234
164
  "templateRef": "dcw-temp-sp",
235
- "nodeId": "dw-7351ea86",
236
- "ok": true,
237
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
238
- "value": 180
165
+ "value": 180,
166
+ "min": 176,
167
+ "max": 188
239
168
  }
240
169
  ]
241
170
  },
242
171
  {
243
- "id": "rr-7e8b6ffe",
244
- "recipeId": "rc-c0660e33",
245
- "recipeName": "TEAMDBG-配方",
246
- "productId": "pd-50c200be",
247
- "lineId": "ln-7dc463ab",
248
- "startedAt": "2026-08-30T16:44:43.852Z",
249
- "endedAt": "2026-08-30T16:54:02.964Z",
172
+ "id": "rr-a417c5ed",
173
+ "recipeId": "rc-bf794217",
174
+ "recipeName": "独立性配方-ndmthfuytl",
175
+ "productId": "pd-f2bff163",
176
+ "lineId": "ln-486aeda3",
177
+ "startedAt": "2026-08-31T16:14:21.970Z",
178
+ "endedAt": "2026-08-31T16:15:02.586Z",
250
179
  "results": [
251
180
  {
252
181
  "templateRef": "dcw-temp-sp",
253
- "nodeId": "dw-0e09fe42",
182
+ "nodeId": "dw-f48330eb",
254
183
  "ok": true,
255
184
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
256
185
  "value": 180
257
186
  }
258
- ]
259
- },
260
- {
261
- "id": "rr-22eba3d5",
262
- "recipeId": "rc-3abdb942",
263
- "recipeName": "TEAMDBG-配方",
264
- "productId": "pd-d7a00eaf",
265
- "lineId": "ln-2d9ed7a3",
266
- "startedAt": "2026-08-30T16:45:58.393Z",
267
- "endedAt": "2026-08-30T16:54:02.980Z",
268
- "results": [
187
+ ],
188
+ "paramsSnapshot": [
269
189
  {
190
+ "nodeId": "dw-f48330eb",
270
191
  "templateRef": "dcw-temp-sp",
271
- "nodeId": "dw-2d439fe9",
272
- "ok": true,
273
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
274
- "value": 180
192
+ "value": 180,
193
+ "min": 176,
194
+ "max": 188
275
195
  }
276
196
  ]
277
197
  },
278
198
  {
279
- "id": "rr-006cdef3",
280
- "recipeId": "rc-79f78e9b",
281
- "recipeName": "TEAMDBG-配方",
282
- "productId": "pd-a2083b71",
283
- "lineId": "ln-2104ed0e",
284
- "startedAt": "2026-08-30T16:47:00.727Z",
285
- "endedAt": "2026-08-30T16:54:02.996Z",
199
+ "id": "rr-31bd6332",
200
+ "recipeId": "rc-2af34217",
201
+ "recipeName": "独立性配方-ndmthfwq9p",
202
+ "productId": "pd-a424dfd1",
203
+ "lineId": "ln-32736fa4",
204
+ "startedAt": "2026-08-31T16:15:44.244Z",
205
+ "endedAt": "2026-08-31T16:16:24.815Z",
286
206
  "results": [
287
207
  {
288
208
  "templateRef": "dcw-temp-sp",
289
- "nodeId": "dw-15099e27",
209
+ "nodeId": "dw-b952387c",
290
210
  "ok": true,
291
211
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
292
212
  "value": 180
293
213
  }
294
- ]
295
- },
296
- {
297
- "id": "rr-173c33b3",
298
- "recipeId": "rc-af913fcc",
299
- "recipeName": "TEAMDBG-配方",
300
- "productId": "pd-2874ada9",
301
- "lineId": "ln-08e71bc4",
302
- "startedAt": "2026-08-30T16:49:54.137Z",
303
- "endedAt": "2026-08-30T16:54:03.037Z",
304
- "results": [
214
+ ],
215
+ "paramsSnapshot": [
305
216
  {
217
+ "nodeId": "dw-b952387c",
306
218
  "templateRef": "dcw-temp-sp",
307
- "nodeId": "dw-3f1fc785",
308
- "ok": true,
309
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
310
- "value": 180
219
+ "value": 180,
220
+ "min": 176,
221
+ "max": 188
311
222
  }
312
223
  ]
313
224
  },
314
225
  {
315
- "id": "rr-7bad6c2f",
316
- "recipeId": "rc-3cc6b71c",
317
- "recipeName": "全功能配方-5u2sgc",
318
- "productId": "pd-3a2d96f2",
319
- "lineId": "ln-afd73022",
320
- "startedAt": "2026-08-30T16:54:26.216Z",
321
- "endedAt": "2026-08-30T16:56:37.989Z",
226
+ "id": "rr-c645c0fe",
227
+ "recipeId": "rc-96943477",
228
+ "recipeName": "RB审计配方-43dhw",
229
+ "productId": "pd-5ad84699",
230
+ "lineId": "ln-427909b2",
231
+ "startedAt": "2026-08-31T16:15:59.477Z",
232
+ "endedAt": "2026-08-31T16:16:00.297Z",
322
233
  "results": [
323
234
  {
324
235
  "templateRef": "dcw-temp-sp",
325
- "nodeId": "dw-b91bdc6d",
236
+ "nodeId": "dw-7269e65a",
326
237
  "ok": true,
327
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
328
- "value": 180
238
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
239
+ "value": 175
329
240
  }
330
- ]
331
- },
332
- {
333
- "id": "rr-69067357",
334
- "recipeId": "rc-d818cba9",
335
- "recipeName": "全功能配方-rgk2f3",
336
- "productId": "pd-bac0aa38",
337
- "lineId": "ln-9d152c2c",
338
- "startedAt": "2026-08-31T02:07:53.607Z",
339
- "endedAt": "2026-08-31T02:11:01.066Z",
340
- "results": [
241
+ ],
242
+ "paramsSnapshot": [
341
243
  {
244
+ "nodeId": "dw-7269e65a",
342
245
  "templateRef": "dcw-temp-sp",
343
- "nodeId": "dw-0f3224b4",
344
- "ok": true,
345
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
346
- "value": 180
246
+ "value": 175,
247
+ "min": 160,
248
+ "max": 180
347
249
  }
348
250
  ]
349
251
  },
350
252
  {
351
- "id": "rr-dad6d1bf",
352
- "recipeId": "rc-7bf584db",
353
- "recipeName": "A-标准工艺",
354
- "productId": "pd-6348a595",
355
- "lineId": "ln-af002514",
356
- "startedAt": "2026-08-31T03:30:02.163Z",
357
- "endedAt": "2026-08-31T04:07:49.188Z",
253
+ "id": "rr-a1578f1e",
254
+ "recipeId": "rc-7f17a222",
255
+ "recipeName": "BOPP 标准工艺",
256
+ "productId": "pd-3ad54846",
257
+ "lineId": "ln-29c185e7",
258
+ "startedAt": "2026-08-31T16:20:13.707Z",
259
+ "endedAt": "2026-09-02T15:29:50.871Z",
358
260
  "results": [
359
261
  {
360
262
  "templateRef": "dcw-temp-sp",
361
- "nodeId": "dw-322b1978",
263
+ "nodeId": "dw-405438fa",
362
264
  "ok": true,
363
265
  "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
364
266
  "value": 182
365
267
  },
366
268
  {
367
- "templateRef": "dcw-pressure-sp",
368
- "nodeId": "dw-e92bb0e7",
269
+ "templateRef": "dcw-speed-sp",
270
+ "nodeId": "dw-6b558041",
369
271
  "ok": true,
370
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
371
- "value": 0.92
272
+ "message": "Mock PLC 写入成功:320 → raw 320,回读一致(标定后物理值 320)",
273
+ "value": 320
372
274
  }
373
- ]
374
- },
375
- {
376
- "id": "rr-8558edb6",
377
- "recipeId": "rc-7bf584db",
378
- "recipeName": "A-标准工艺",
379
- "productId": "pd-6348a595",
380
- "lineId": "ln-af002514",
381
- "startedAt": "2026-08-31T04:07:54.251Z",
382
- "endedAt": null,
383
- "results": [
275
+ ],
276
+ "paramsSnapshot": [
384
277
  {
278
+ "nodeId": "dw-405438fa",
385
279
  "templateRef": "dcw-temp-sp",
386
- "nodeId": "dw-322b1978",
387
- "ok": true,
388
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
389
- "value": 182
280
+ "value": 182,
281
+ "min": 176,
282
+ "max": 188
390
283
  },
391
284
  {
392
- "templateRef": "dcw-pressure-sp",
393
- "nodeId": "dw-e92bb0e7",
394
- "ok": true,
395
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
396
- "value": 0.92
285
+ "nodeId": "dw-6b558041",
286
+ "templateRef": "dcw-speed-sp",
287
+ "value": 320,
288
+ "min": 300,
289
+ "max": 340
397
290
  }
398
291
  ]
399
292
  },
400
293
  {
401
- "id": "rr-6b180446",
402
- "recipeId": "rc-7bf584db",
403
- "recipeName": "A-标准工艺",
404
- "productId": "pd-6348a595",
405
- "lineId": "ln-af002514",
406
- "startedAt": "2026-08-31T05:39:30.254Z",
294
+ "id": "rr-9ec3a5fc",
295
+ "recipeId": "rc-f1a8764f",
296
+ "recipeName": "RB审计配方-n4iy3",
297
+ "productId": "pd-fc436518",
298
+ "lineId": "ln-d41a0d5e",
299
+ "startedAt": "2026-08-31T16:22:44.701Z",
407
300
  "endedAt": null,
408
301
  "results": [
409
302
  {
410
303
  "templateRef": "dcw-temp-sp",
411
- "nodeId": "dw-322b1978",
304
+ "nodeId": "dw-6d6ccfd9",
412
305
  "ok": true,
413
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
414
- "value": 182
415
- },
306
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
307
+ "value": 175
308
+ }
309
+ ],
310
+ "paramsSnapshot": [
416
311
  {
417
- "templateRef": "dcw-pressure-sp",
418
- "nodeId": "dw-e92bb0e7",
419
- "ok": true,
420
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
421
- "value": 0.92
312
+ "nodeId": "dw-6d6ccfd9",
313
+ "templateRef": "dcw-temp-sp",
314
+ "value": 175,
315
+ "min": 160,
316
+ "max": 180
422
317
  }
423
318
  ]
424
319
  },
425
320
  {
426
- "id": "rr-b1ab97b5",
427
- "recipeId": "rc-7bf584db",
428
- "recipeName": "A-标准工艺",
429
- "productId": "pd-6348a595",
430
- "lineId": "ln-af002514",
431
- "startedAt": "2026-08-31T05:52:15.607Z",
432
- "endedAt": "2026-08-31T15:40:26.251Z",
321
+ "id": "rr-3b5a636e",
322
+ "recipeId": "rc-f1a8764f",
323
+ "recipeName": "RB审计配方-n4iy3",
324
+ "productId": "pd-fc436518",
325
+ "lineId": "ln-d41a0d5e",
326
+ "startedAt": "2026-08-31T16:22:49.141Z",
327
+ "endedAt": "2026-08-31T16:22:49.904Z",
433
328
  "results": [
434
329
  {
435
330
  "templateRef": "dcw-temp-sp",
436
- "nodeId": "dw-322b1978",
437
- "ok": true,
438
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
439
- "value": 182
440
- },
441
- {
442
- "templateRef": "dcw-pressure-sp",
443
- "nodeId": "dw-e92bb0e7",
331
+ "nodeId": "dw-6d6ccfd9",
444
332
  "ok": true,
445
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
446
- "value": 0.92
333
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
334
+ "value": 175
447
335
  }
448
- ]
449
- },
450
- {
451
- "id": "rr-8788a81c",
452
- "recipeId": "rc-f62239b2",
453
- "recipeName": "语义验证配方",
454
- "productId": "pd-2308e253",
455
- "lineId": "ln-feef6e4d",
456
- "startedAt": "2026-08-31T14:26:24.122Z",
457
- "endedAt": null,
458
- "results": [
336
+ ],
337
+ "paramsSnapshot": [
459
338
  {
339
+ "nodeId": "dw-6d6ccfd9",
460
340
  "templateRef": "dcw-temp-sp",
461
- "nodeId": "dw-b1c4bbb2",
462
- "ok": false,
463
- "message": "Modbus 写入失败: connect ECONNREFUSED 127.0.0.1:1502",
464
- "value": 182
341
+ "value": 175,
342
+ "min": 160,
343
+ "max": 180
465
344
  }
466
345
  ]
467
346
  },
468
347
  {
469
- "id": "rr-d3d7635c",
470
- "recipeId": "rc-89031e11",
471
- "recipeName": "全功能配方-m20gm8",
472
- "productId": "pd-510edc1b",
473
- "lineId": "ln-3aff4d75",
474
- "startedAt": "2026-08-31T15:01:17.249Z",
475
- "endedAt": "2026-08-31T15:05:19.626Z",
348
+ "id": "rr-e90f1635",
349
+ "recipeId": "rc-f1a8764f",
350
+ "recipeName": "RB审计配方-n4iy3",
351
+ "productId": "pd-fc436518",
352
+ "lineId": "ln-d41a0d5e",
353
+ "startedAt": "2026-08-31T16:22:49.982Z",
354
+ "endedAt": "2026-08-31T16:22:50.277Z",
476
355
  "results": [
477
356
  {
478
357
  "templateRef": "dcw-temp-sp",
479
- "nodeId": "dw-aff8c1f5",
358
+ "nodeId": "dw-6d6ccfd9",
480
359
  "ok": true,
481
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
482
- "value": 180
360
+ "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
361
+ "value": 176
362
+ }
363
+ ],
364
+ "paramsSnapshot": [
365
+ {
366
+ "nodeId": "dw-6d6ccfd9",
367
+ "templateRef": "dcw-temp-sp",
368
+ "value": 176,
369
+ "min": 160,
370
+ "max": 180
483
371
  }
484
372
  ]
485
373
  },
486
374
  {
487
- "id": "rr-38f7f364",
488
- "recipeId": "rc-9326681e",
489
- "recipeName": "快照配方-prmthfeolm",
490
- "productId": "pd-a580ad4f",
491
- "lineId": "ln-35e3626b",
492
- "startedAt": "2026-08-31T16:01:42.442Z",
493
- "endedAt": "2026-08-31T16:03:19.310Z",
375
+ "id": "rr-2fd3c624",
376
+ "recipeId": "rc-58b3786b",
377
+ "recipeName": "RB审计配方-d5rvg",
378
+ "productId": "pd-4a3566bc",
379
+ "lineId": "ln-2d1adacd",
380
+ "startedAt": "2026-08-31T16:24:24.803Z",
381
+ "endedAt": null,
494
382
  "results": [
495
383
  {
496
384
  "templateRef": "dcw-temp-sp",
497
- "nodeId": "dw-a4205751",
385
+ "nodeId": "dw-224b6936",
498
386
  "ok": true,
499
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
500
- "value": 180
387
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
388
+ "value": 175
501
389
  }
502
390
  ],
503
391
  "paramsSnapshot": [
504
392
  {
505
- "nodeId": "dw-a4205751",
393
+ "nodeId": "dw-224b6936",
506
394
  "templateRef": "dcw-temp-sp",
507
- "value": 180,
508
- "min": 176,
509
- "max": 188
395
+ "value": 175,
396
+ "min": 160,
397
+ "max": 180
510
398
  }
511
399
  ]
512
400
  },
513
401
  {
514
- "id": "rr-51ed0c51",
515
- "recipeId": "rc-d6ce6aca",
516
- "recipeName": "快照配方-prmthffidc",
517
- "productId": "pd-7335ba73",
518
- "lineId": "ln-c31cf75d",
519
- "startedAt": "2026-08-31T16:02:20.957Z",
520
- "endedAt": "2026-08-31T16:02:45.415Z",
402
+ "id": "rr-1f93710c",
403
+ "recipeId": "rc-58b3786b",
404
+ "recipeName": "RB审计配方-d5rvg",
405
+ "productId": "pd-4a3566bc",
406
+ "lineId": "ln-2d1adacd",
407
+ "startedAt": "2026-08-31T16:24:29.388Z",
408
+ "endedAt": "2026-08-31T16:24:30.152Z",
521
409
  "results": [
522
410
  {
523
411
  "templateRef": "dcw-temp-sp",
524
- "nodeId": "dw-47a397c1",
412
+ "nodeId": "dw-224b6936",
525
413
  "ok": true,
526
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
527
- "value": 180
414
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
415
+ "value": 175
528
416
  }
529
417
  ],
530
418
  "paramsSnapshot": [
531
419
  {
532
- "nodeId": "dw-47a397c1",
420
+ "nodeId": "dw-224b6936",
533
421
  "templateRef": "dcw-temp-sp",
534
- "value": 180,
535
- "min": 176,
536
- "max": 188
422
+ "value": 175,
423
+ "min": 160,
424
+ "max": 180
537
425
  }
538
426
  ]
539
427
  },
540
428
  {
541
- "id": "rr-dce5ebb4",
542
- "recipeId": "rc-ccbbbad7",
543
- "recipeName": "独立性配方-ndmthfmq46",
544
- "productId": "pd-91ac8f36",
545
- "lineId": "ln-f4b89912",
546
- "startedAt": "2026-08-31T16:07:57.515Z",
547
- "endedAt": "2026-08-31T16:08:38.507Z",
429
+ "id": "rr-1fb4a044",
430
+ "recipeId": "rc-58b3786b",
431
+ "recipeName": "RB审计配方-d5rvg",
432
+ "productId": "pd-4a3566bc",
433
+ "lineId": "ln-2d1adacd",
434
+ "startedAt": "2026-08-31T16:24:30.230Z",
435
+ "endedAt": "2026-08-31T16:24:30.526Z",
548
436
  "results": [
549
437
  {
550
438
  "templateRef": "dcw-temp-sp",
551
- "nodeId": "dw-c0743b62",
439
+ "nodeId": "dw-224b6936",
552
440
  "ok": true,
553
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
554
- "value": 180
441
+ "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
442
+ "value": 176
555
443
  }
556
444
  ],
557
445
  "paramsSnapshot": [
558
446
  {
559
- "nodeId": "dw-c0743b62",
447
+ "nodeId": "dw-224b6936",
560
448
  "templateRef": "dcw-temp-sp",
561
- "value": 180,
562
- "min": 176,
563
- "max": 188
449
+ "value": 176,
450
+ "min": 160,
451
+ "max": 180
564
452
  }
565
453
  ]
566
454
  },
567
455
  {
568
- "id": "rr-3166887e",
569
- "recipeId": "rc-249c45ce",
570
- "recipeName": "独立性配方-ndmthftb7w",
571
- "productId": "pd-30c207eb",
572
- "lineId": "ln-673b1dbb",
573
- "startedAt": "2026-08-31T16:13:04.789Z",
574
- "endedAt": "2026-08-31T16:13:41.314Z",
456
+ "id": "rr-1575bb34",
457
+ "recipeId": "rc-e63444e8",
458
+ "recipeName": "RB审计配方-2au0i",
459
+ "productId": "pd-e7b18a7a",
460
+ "lineId": "ln-572ac0ff",
461
+ "startedAt": "2026-08-31T16:27:28.087Z",
462
+ "endedAt": null,
575
463
  "results": [
576
464
  {
577
465
  "templateRef": "dcw-temp-sp",
578
- "nodeId": "dw-cf5c6f31",
466
+ "nodeId": "dw-102117d5",
579
467
  "ok": true,
580
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
581
- "value": 180
468
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
469
+ "value": 175
582
470
  }
583
471
  ],
584
472
  "paramsSnapshot": [
585
473
  {
586
- "nodeId": "dw-cf5c6f31",
474
+ "nodeId": "dw-102117d5",
587
475
  "templateRef": "dcw-temp-sp",
588
- "value": 180,
589
- "min": 176,
590
- "max": 188
591
- }
592
- ]
593
- },
594
- {
595
- "id": "rr-a417c5ed",
596
- "recipeId": "rc-bf794217",
597
- "recipeName": "独立性配方-ndmthfuytl",
598
- "productId": "pd-f2bff163",
599
- "lineId": "ln-486aeda3",
600
- "startedAt": "2026-08-31T16:14:21.970Z",
601
- "endedAt": "2026-08-31T16:15:02.586Z",
602
- "results": [
603
- {
604
- "templateRef": "dcw-temp-sp",
605
- "nodeId": "dw-f48330eb",
606
- "ok": true,
607
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
608
- "value": 180
609
- }
610
- ],
611
- "paramsSnapshot": [
612
- {
613
- "nodeId": "dw-f48330eb",
614
- "templateRef": "dcw-temp-sp",
615
- "value": 180,
616
- "min": 176,
617
- "max": 188
618
- }
619
- ]
620
- },
621
- {
622
- "id": "rr-31bd6332",
623
- "recipeId": "rc-2af34217",
624
- "recipeName": "独立性配方-ndmthfwq9p",
625
- "productId": "pd-a424dfd1",
626
- "lineId": "ln-32736fa4",
627
- "startedAt": "2026-08-31T16:15:44.244Z",
628
- "endedAt": "2026-08-31T16:16:24.815Z",
629
- "results": [
630
- {
631
- "templateRef": "dcw-temp-sp",
632
- "nodeId": "dw-b952387c",
633
- "ok": true,
634
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
635
- "value": 180
636
- }
637
- ],
638
- "paramsSnapshot": [
639
- {
640
- "nodeId": "dw-b952387c",
641
- "templateRef": "dcw-temp-sp",
642
- "value": 180,
643
- "min": 176,
644
- "max": 188
476
+ "value": 175,
477
+ "min": 160,
478
+ "max": 180
645
479
  }
646
480
  ]
647
481
  },
648
482
  {
649
- "id": "rr-c645c0fe",
650
- "recipeId": "rc-96943477",
651
- "recipeName": "RB审计配方-43dhw",
652
- "productId": "pd-5ad84699",
653
- "lineId": "ln-427909b2",
654
- "startedAt": "2026-08-31T16:15:59.477Z",
655
- "endedAt": "2026-08-31T16:16:00.297Z",
483
+ "id": "rr-ca12f16a",
484
+ "recipeId": "rc-e63444e8",
485
+ "recipeName": "RB审计配方-2au0i",
486
+ "productId": "pd-e7b18a7a",
487
+ "lineId": "ln-572ac0ff",
488
+ "startedAt": "2026-08-31T16:27:32.605Z",
489
+ "endedAt": "2026-08-31T16:27:33.569Z",
656
490
  "results": [
657
491
  {
658
492
  "templateRef": "dcw-temp-sp",
659
- "nodeId": "dw-7269e65a",
493
+ "nodeId": "dw-102117d5",
660
494
  "ok": true,
661
495
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
662
496
  "value": 175
@@ -664,7 +498,7 @@
664
498
  ],
665
499
  "paramsSnapshot": [
666
500
  {
667
- "nodeId": "dw-7269e65a",
501
+ "nodeId": "dw-102117d5",
668
502
  "templateRef": "dcw-temp-sp",
669
503
  "value": 175,
670
504
  "min": 160,
@@ -673,58 +507,44 @@
673
507
  ]
674
508
  },
675
509
  {
676
- "id": "rr-a1578f1e",
677
- "recipeId": "rc-7f17a222",
678
- "recipeName": "BOPP 标准工艺",
679
- "productId": "pd-3ad54846",
680
- "lineId": "ln-29c185e7",
681
- "startedAt": "2026-08-31T16:20:13.707Z",
682
- "endedAt": "2026-09-02T15:29:50.871Z",
510
+ "id": "rr-80226fa8",
511
+ "recipeId": "rc-e63444e8",
512
+ "recipeName": "RB审计配方-2au0i",
513
+ "productId": "pd-e7b18a7a",
514
+ "lineId": "ln-572ac0ff",
515
+ "startedAt": "2026-08-31T16:27:33.647Z",
516
+ "endedAt": "2026-08-31T16:27:33.973Z",
683
517
  "results": [
684
518
  {
685
519
  "templateRef": "dcw-temp-sp",
686
- "nodeId": "dw-405438fa",
687
- "ok": true,
688
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
689
- "value": 182
690
- },
691
- {
692
- "templateRef": "dcw-speed-sp",
693
- "nodeId": "dw-6b558041",
520
+ "nodeId": "dw-102117d5",
694
521
  "ok": true,
695
- "message": "Mock PLC 写入成功:320 → raw 320,回读一致(标定后物理值 320)",
696
- "value": 320
522
+ "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
523
+ "value": 176
697
524
  }
698
525
  ],
699
526
  "paramsSnapshot": [
700
527
  {
701
- "nodeId": "dw-405438fa",
528
+ "nodeId": "dw-102117d5",
702
529
  "templateRef": "dcw-temp-sp",
703
- "value": 182,
704
- "min": 176,
705
- "max": 188
706
- },
707
- {
708
- "nodeId": "dw-6b558041",
709
- "templateRef": "dcw-speed-sp",
710
- "value": 320,
711
- "min": 300,
712
- "max": 340
530
+ "value": 176,
531
+ "min": 160,
532
+ "max": 180
713
533
  }
714
534
  ]
715
535
  },
716
536
  {
717
- "id": "rr-9ec3a5fc",
718
- "recipeId": "rc-f1a8764f",
719
- "recipeName": "RB审计配方-n4iy3",
720
- "productId": "pd-fc436518",
721
- "lineId": "ln-d41a0d5e",
722
- "startedAt": "2026-08-31T16:22:44.701Z",
537
+ "id": "rr-9dbcdc5a",
538
+ "recipeId": "rc-a252283f",
539
+ "recipeName": "RB审计配方-fs7rd",
540
+ "productId": "pd-35c27e80",
541
+ "lineId": "ln-e132a42f",
542
+ "startedAt": "2026-08-31T16:30:17.092Z",
723
543
  "endedAt": null,
724
544
  "results": [
725
545
  {
726
546
  "templateRef": "dcw-temp-sp",
727
- "nodeId": "dw-6d6ccfd9",
547
+ "nodeId": "dw-73c0b79a",
728
548
  "ok": true,
729
549
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
730
550
  "value": 175
@@ -732,7 +552,7 @@
732
552
  ],
733
553
  "paramsSnapshot": [
734
554
  {
735
- "nodeId": "dw-6d6ccfd9",
555
+ "nodeId": "dw-73c0b79a",
736
556
  "templateRef": "dcw-temp-sp",
737
557
  "value": 175,
738
558
  "min": 160,
@@ -741,17 +561,17 @@
741
561
  ]
742
562
  },
743
563
  {
744
- "id": "rr-3b5a636e",
745
- "recipeId": "rc-f1a8764f",
746
- "recipeName": "RB审计配方-n4iy3",
747
- "productId": "pd-fc436518",
748
- "lineId": "ln-d41a0d5e",
749
- "startedAt": "2026-08-31T16:22:49.141Z",
750
- "endedAt": "2026-08-31T16:22:49.904Z",
564
+ "id": "rr-120df93b",
565
+ "recipeId": "rc-a252283f",
566
+ "recipeName": "RB审计配方-fs7rd",
567
+ "productId": "pd-35c27e80",
568
+ "lineId": "ln-e132a42f",
569
+ "startedAt": "2026-08-31T16:30:21.520Z",
570
+ "endedAt": "2026-08-31T16:30:22.563Z",
751
571
  "results": [
752
572
  {
753
573
  "templateRef": "dcw-temp-sp",
754
- "nodeId": "dw-6d6ccfd9",
574
+ "nodeId": "dw-73c0b79a",
755
575
  "ok": true,
756
576
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
757
577
  "value": 175
@@ -759,7 +579,7 @@
759
579
  ],
760
580
  "paramsSnapshot": [
761
581
  {
762
- "nodeId": "dw-6d6ccfd9",
582
+ "nodeId": "dw-73c0b79a",
763
583
  "templateRef": "dcw-temp-sp",
764
584
  "value": 175,
765
585
  "min": 160,
@@ -768,17 +588,17 @@
768
588
  ]
769
589
  },
770
590
  {
771
- "id": "rr-e90f1635",
772
- "recipeId": "rc-f1a8764f",
773
- "recipeName": "RB审计配方-n4iy3",
774
- "productId": "pd-fc436518",
775
- "lineId": "ln-d41a0d5e",
776
- "startedAt": "2026-08-31T16:22:49.982Z",
777
- "endedAt": "2026-08-31T16:22:50.277Z",
591
+ "id": "rr-76a15eb1",
592
+ "recipeId": "rc-a252283f",
593
+ "recipeName": "RB审计配方-fs7rd",
594
+ "productId": "pd-35c27e80",
595
+ "lineId": "ln-e132a42f",
596
+ "startedAt": "2026-08-31T16:30:22.629Z",
597
+ "endedAt": "2026-08-31T16:30:22.904Z",
778
598
  "results": [
779
599
  {
780
600
  "templateRef": "dcw-temp-sp",
781
- "nodeId": "dw-6d6ccfd9",
601
+ "nodeId": "dw-73c0b79a",
782
602
  "ok": true,
783
603
  "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
784
604
  "value": 176
@@ -786,7 +606,7 @@
786
606
  ],
787
607
  "paramsSnapshot": [
788
608
  {
789
- "nodeId": "dw-6d6ccfd9",
609
+ "nodeId": "dw-73c0b79a",
790
610
  "templateRef": "dcw-temp-sp",
791
611
  "value": 176,
792
612
  "min": 160,
@@ -795,17 +615,17 @@
795
615
  ]
796
616
  },
797
617
  {
798
- "id": "rr-2fd3c624",
799
- "recipeId": "rc-58b3786b",
800
- "recipeName": "RB审计配方-d5rvg",
801
- "productId": "pd-4a3566bc",
802
- "lineId": "ln-2d1adacd",
803
- "startedAt": "2026-08-31T16:24:24.803Z",
618
+ "id": "rr-63a9d6d6",
619
+ "recipeId": "rc-8a659d97",
620
+ "recipeName": "RB审计配方-33hss",
621
+ "productId": "pd-fe39aac8",
622
+ "lineId": "ln-f178ca43",
623
+ "startedAt": "2026-08-31T16:30:40.424Z",
804
624
  "endedAt": null,
805
625
  "results": [
806
626
  {
807
627
  "templateRef": "dcw-temp-sp",
808
- "nodeId": "dw-224b6936",
628
+ "nodeId": "dw-88c0516b",
809
629
  "ok": true,
810
630
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
811
631
  "value": 175
@@ -813,7 +633,7 @@
813
633
  ],
814
634
  "paramsSnapshot": [
815
635
  {
816
- "nodeId": "dw-224b6936",
636
+ "nodeId": "dw-88c0516b",
817
637
  "templateRef": "dcw-temp-sp",
818
638
  "value": 175,
819
639
  "min": 160,
@@ -822,17 +642,17 @@
822
642
  ]
823
643
  },
824
644
  {
825
- "id": "rr-1f93710c",
826
- "recipeId": "rc-58b3786b",
827
- "recipeName": "RB审计配方-d5rvg",
828
- "productId": "pd-4a3566bc",
829
- "lineId": "ln-2d1adacd",
830
- "startedAt": "2026-08-31T16:24:29.388Z",
831
- "endedAt": "2026-08-31T16:24:30.152Z",
645
+ "id": "rr-76ef5c67",
646
+ "recipeId": "rc-8a659d97",
647
+ "recipeName": "RB审计配方-33hss",
648
+ "productId": "pd-fe39aac8",
649
+ "lineId": "ln-f178ca43",
650
+ "startedAt": "2026-08-31T16:30:44.897Z",
651
+ "endedAt": "2026-08-31T16:30:45.793Z",
832
652
  "results": [
833
653
  {
834
654
  "templateRef": "dcw-temp-sp",
835
- "nodeId": "dw-224b6936",
655
+ "nodeId": "dw-88c0516b",
836
656
  "ok": true,
837
657
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
838
658
  "value": 175
@@ -840,7 +660,7 @@
840
660
  ],
841
661
  "paramsSnapshot": [
842
662
  {
843
- "nodeId": "dw-224b6936",
663
+ "nodeId": "dw-88c0516b",
844
664
  "templateRef": "dcw-temp-sp",
845
665
  "value": 175,
846
666
  "min": 160,
@@ -849,17 +669,17 @@
849
669
  ]
850
670
  },
851
671
  {
852
- "id": "rr-1fb4a044",
853
- "recipeId": "rc-58b3786b",
854
- "recipeName": "RB审计配方-d5rvg",
855
- "productId": "pd-4a3566bc",
856
- "lineId": "ln-2d1adacd",
857
- "startedAt": "2026-08-31T16:24:30.230Z",
858
- "endedAt": "2026-08-31T16:24:30.526Z",
672
+ "id": "rr-1b10764f",
673
+ "recipeId": "rc-8a659d97",
674
+ "recipeName": "RB审计配方-33hss",
675
+ "productId": "pd-fe39aac8",
676
+ "lineId": "ln-f178ca43",
677
+ "startedAt": "2026-08-31T16:30:45.847Z",
678
+ "endedAt": "2026-08-31T16:30:46.110Z",
859
679
  "results": [
860
680
  {
861
681
  "templateRef": "dcw-temp-sp",
862
- "nodeId": "dw-224b6936",
682
+ "nodeId": "dw-88c0516b",
863
683
  "ok": true,
864
684
  "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
865
685
  "value": 176
@@ -867,7 +687,7 @@
867
687
  ],
868
688
  "paramsSnapshot": [
869
689
  {
870
- "nodeId": "dw-224b6936",
690
+ "nodeId": "dw-88c0516b",
871
691
  "templateRef": "dcw-temp-sp",
872
692
  "value": 176,
873
693
  "min": 160,
@@ -876,17 +696,17 @@
876
696
  ]
877
697
  },
878
698
  {
879
- "id": "rr-1575bb34",
880
- "recipeId": "rc-e63444e8",
881
- "recipeName": "RB审计配方-2au0i",
882
- "productId": "pd-e7b18a7a",
883
- "lineId": "ln-572ac0ff",
884
- "startedAt": "2026-08-31T16:27:28.087Z",
699
+ "id": "rr-c1fe1e62",
700
+ "recipeId": "rc-3287a8ce",
701
+ "recipeName": "RB审计配方-krll7",
702
+ "productId": "pd-27d1c3b1",
703
+ "lineId": "ln-c9e7ccee",
704
+ "startedAt": "2026-08-31T16:31:33.554Z",
885
705
  "endedAt": null,
886
706
  "results": [
887
707
  {
888
708
  "templateRef": "dcw-temp-sp",
889
- "nodeId": "dw-102117d5",
709
+ "nodeId": "dw-59561510",
890
710
  "ok": true,
891
711
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
892
712
  "value": 175
@@ -894,7 +714,7 @@
894
714
  ],
895
715
  "paramsSnapshot": [
896
716
  {
897
- "nodeId": "dw-102117d5",
717
+ "nodeId": "dw-59561510",
898
718
  "templateRef": "dcw-temp-sp",
899
719
  "value": 175,
900
720
  "min": 160,
@@ -903,17 +723,17 @@
903
723
  ]
904
724
  },
905
725
  {
906
- "id": "rr-ca12f16a",
907
- "recipeId": "rc-e63444e8",
908
- "recipeName": "RB审计配方-2au0i",
909
- "productId": "pd-e7b18a7a",
910
- "lineId": "ln-572ac0ff",
911
- "startedAt": "2026-08-31T16:27:32.605Z",
912
- "endedAt": "2026-08-31T16:27:33.569Z",
726
+ "id": "rr-147e9d0f",
727
+ "recipeId": "rc-3287a8ce",
728
+ "recipeName": "RB审计配方-krll7",
729
+ "productId": "pd-27d1c3b1",
730
+ "lineId": "ln-c9e7ccee",
731
+ "startedAt": "2026-08-31T16:31:38.092Z",
732
+ "endedAt": "2026-08-31T16:31:39.054Z",
913
733
  "results": [
914
734
  {
915
735
  "templateRef": "dcw-temp-sp",
916
- "nodeId": "dw-102117d5",
736
+ "nodeId": "dw-59561510",
917
737
  "ok": true,
918
738
  "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
919
739
  "value": 175
@@ -921,250 +741,7 @@
921
741
  ],
922
742
  "paramsSnapshot": [
923
743
  {
924
- "nodeId": "dw-102117d5",
925
- "templateRef": "dcw-temp-sp",
926
- "value": 175,
927
- "min": 160,
928
- "max": 180
929
- }
930
- ]
931
- },
932
- {
933
- "id": "rr-80226fa8",
934
- "recipeId": "rc-e63444e8",
935
- "recipeName": "RB审计配方-2au0i",
936
- "productId": "pd-e7b18a7a",
937
- "lineId": "ln-572ac0ff",
938
- "startedAt": "2026-08-31T16:27:33.647Z",
939
- "endedAt": "2026-08-31T16:27:33.973Z",
940
- "results": [
941
- {
942
- "templateRef": "dcw-temp-sp",
943
- "nodeId": "dw-102117d5",
944
- "ok": true,
945
- "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
946
- "value": 176
947
- }
948
- ],
949
- "paramsSnapshot": [
950
- {
951
- "nodeId": "dw-102117d5",
952
- "templateRef": "dcw-temp-sp",
953
- "value": 176,
954
- "min": 160,
955
- "max": 180
956
- }
957
- ]
958
- },
959
- {
960
- "id": "rr-9dbcdc5a",
961
- "recipeId": "rc-a252283f",
962
- "recipeName": "RB审计配方-fs7rd",
963
- "productId": "pd-35c27e80",
964
- "lineId": "ln-e132a42f",
965
- "startedAt": "2026-08-31T16:30:17.092Z",
966
- "endedAt": null,
967
- "results": [
968
- {
969
- "templateRef": "dcw-temp-sp",
970
- "nodeId": "dw-73c0b79a",
971
- "ok": true,
972
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
973
- "value": 175
974
- }
975
- ],
976
- "paramsSnapshot": [
977
- {
978
- "nodeId": "dw-73c0b79a",
979
- "templateRef": "dcw-temp-sp",
980
- "value": 175,
981
- "min": 160,
982
- "max": 180
983
- }
984
- ]
985
- },
986
- {
987
- "id": "rr-120df93b",
988
- "recipeId": "rc-a252283f",
989
- "recipeName": "RB审计配方-fs7rd",
990
- "productId": "pd-35c27e80",
991
- "lineId": "ln-e132a42f",
992
- "startedAt": "2026-08-31T16:30:21.520Z",
993
- "endedAt": "2026-08-31T16:30:22.563Z",
994
- "results": [
995
- {
996
- "templateRef": "dcw-temp-sp",
997
- "nodeId": "dw-73c0b79a",
998
- "ok": true,
999
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
1000
- "value": 175
1001
- }
1002
- ],
1003
- "paramsSnapshot": [
1004
- {
1005
- "nodeId": "dw-73c0b79a",
1006
- "templateRef": "dcw-temp-sp",
1007
- "value": 175,
1008
- "min": 160,
1009
- "max": 180
1010
- }
1011
- ]
1012
- },
1013
- {
1014
- "id": "rr-76a15eb1",
1015
- "recipeId": "rc-a252283f",
1016
- "recipeName": "RB审计配方-fs7rd",
1017
- "productId": "pd-35c27e80",
1018
- "lineId": "ln-e132a42f",
1019
- "startedAt": "2026-08-31T16:30:22.629Z",
1020
- "endedAt": "2026-08-31T16:30:22.904Z",
1021
- "results": [
1022
- {
1023
- "templateRef": "dcw-temp-sp",
1024
- "nodeId": "dw-73c0b79a",
1025
- "ok": true,
1026
- "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
1027
- "value": 176
1028
- }
1029
- ],
1030
- "paramsSnapshot": [
1031
- {
1032
- "nodeId": "dw-73c0b79a",
1033
- "templateRef": "dcw-temp-sp",
1034
- "value": 176,
1035
- "min": 160,
1036
- "max": 180
1037
- }
1038
- ]
1039
- },
1040
- {
1041
- "id": "rr-63a9d6d6",
1042
- "recipeId": "rc-8a659d97",
1043
- "recipeName": "RB审计配方-33hss",
1044
- "productId": "pd-fe39aac8",
1045
- "lineId": "ln-f178ca43",
1046
- "startedAt": "2026-08-31T16:30:40.424Z",
1047
- "endedAt": null,
1048
- "results": [
1049
- {
1050
- "templateRef": "dcw-temp-sp",
1051
- "nodeId": "dw-88c0516b",
1052
- "ok": true,
1053
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
1054
- "value": 175
1055
- }
1056
- ],
1057
- "paramsSnapshot": [
1058
- {
1059
- "nodeId": "dw-88c0516b",
1060
- "templateRef": "dcw-temp-sp",
1061
- "value": 175,
1062
- "min": 160,
1063
- "max": 180
1064
- }
1065
- ]
1066
- },
1067
- {
1068
- "id": "rr-76ef5c67",
1069
- "recipeId": "rc-8a659d97",
1070
- "recipeName": "RB审计配方-33hss",
1071
- "productId": "pd-fe39aac8",
1072
- "lineId": "ln-f178ca43",
1073
- "startedAt": "2026-08-31T16:30:44.897Z",
1074
- "endedAt": "2026-08-31T16:30:45.793Z",
1075
- "results": [
1076
- {
1077
- "templateRef": "dcw-temp-sp",
1078
- "nodeId": "dw-88c0516b",
1079
- "ok": true,
1080
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
1081
- "value": 175
1082
- }
1083
- ],
1084
- "paramsSnapshot": [
1085
- {
1086
- "nodeId": "dw-88c0516b",
1087
- "templateRef": "dcw-temp-sp",
1088
- "value": 175,
1089
- "min": 160,
1090
- "max": 180
1091
- }
1092
- ]
1093
- },
1094
- {
1095
- "id": "rr-1b10764f",
1096
- "recipeId": "rc-8a659d97",
1097
- "recipeName": "RB审计配方-33hss",
1098
- "productId": "pd-fe39aac8",
1099
- "lineId": "ln-f178ca43",
1100
- "startedAt": "2026-08-31T16:30:45.847Z",
1101
- "endedAt": "2026-08-31T16:30:46.110Z",
1102
- "results": [
1103
- {
1104
- "templateRef": "dcw-temp-sp",
1105
- "nodeId": "dw-88c0516b",
1106
- "ok": true,
1107
- "message": "Mock PLC 写入成功:176 → raw 176,回读一致(标定后物理值 176)",
1108
- "value": 176
1109
- }
1110
- ],
1111
- "paramsSnapshot": [
1112
- {
1113
- "nodeId": "dw-88c0516b",
1114
- "templateRef": "dcw-temp-sp",
1115
- "value": 176,
1116
- "min": 160,
1117
- "max": 180
1118
- }
1119
- ]
1120
- },
1121
- {
1122
- "id": "rr-c1fe1e62",
1123
- "recipeId": "rc-3287a8ce",
1124
- "recipeName": "RB审计配方-krll7",
1125
- "productId": "pd-27d1c3b1",
1126
- "lineId": "ln-c9e7ccee",
1127
- "startedAt": "2026-08-31T16:31:33.554Z",
1128
- "endedAt": null,
1129
- "results": [
1130
- {
1131
- "templateRef": "dcw-temp-sp",
1132
- "nodeId": "dw-59561510",
1133
- "ok": true,
1134
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
1135
- "value": 175
1136
- }
1137
- ],
1138
- "paramsSnapshot": [
1139
- {
1140
- "nodeId": "dw-59561510",
1141
- "templateRef": "dcw-temp-sp",
1142
- "value": 175,
1143
- "min": 160,
1144
- "max": 180
1145
- }
1146
- ]
1147
- },
1148
- {
1149
- "id": "rr-147e9d0f",
1150
- "recipeId": "rc-3287a8ce",
1151
- "recipeName": "RB审计配方-krll7",
1152
- "productId": "pd-27d1c3b1",
1153
- "lineId": "ln-c9e7ccee",
1154
- "startedAt": "2026-08-31T16:31:38.092Z",
1155
- "endedAt": "2026-08-31T16:31:39.054Z",
1156
- "results": [
1157
- {
1158
- "templateRef": "dcw-temp-sp",
1159
- "nodeId": "dw-59561510",
1160
- "ok": true,
1161
- "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
1162
- "value": 175
1163
- }
1164
- ],
1165
- "paramsSnapshot": [
1166
- {
1167
- "nodeId": "dw-59561510",
744
+ "nodeId": "dw-59561510",
1168
745
  "templateRef": "dcw-temp-sp",
1169
746
  "value": 175,
1170
747
  "min": 160,
@@ -4637,223 +4214,763 @@
4637
4214
  ],
4638
4215
  "paramsSnapshot": [
4639
4216
  {
4640
- "nodeId": "dw-322b1978",
4217
+ "nodeId": "dw-322b1978",
4218
+ "templateRef": "dcw-temp-sp",
4219
+ "value": 182,
4220
+ "min": 176,
4221
+ "max": 188
4222
+ },
4223
+ {
4224
+ "nodeId": "dw-e92bb0e7",
4225
+ "templateRef": "dcw-pressure-sp",
4226
+ "value": 0.92,
4227
+ "min": 0.85,
4228
+ "max": 1
4229
+ }
4230
+ ]
4231
+ },
4232
+ {
4233
+ "id": "rr-b1f6156d",
4234
+ "recipeId": "rc-7bf584db",
4235
+ "recipeName": "A-标准工艺",
4236
+ "productId": "pd-6348a595",
4237
+ "lineId": "ln-af002514",
4238
+ "startedAt": "2026-09-03T10:41:14.527Z",
4239
+ "endedAt": "2026-09-03T10:44:04.580Z",
4240
+ "results": [
4241
+ {
4242
+ "templateRef": "dcw-temp-sp",
4243
+ "nodeId": "dw-322b1978",
4244
+ "ok": true,
4245
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
4246
+ "value": 182
4247
+ },
4248
+ {
4249
+ "templateRef": "dcw-pressure-sp",
4250
+ "nodeId": "dw-e92bb0e7",
4251
+ "ok": true,
4252
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
4253
+ "value": 0.92
4254
+ }
4255
+ ],
4256
+ "paramsSnapshot": [
4257
+ {
4258
+ "nodeId": "dw-322b1978",
4259
+ "templateRef": "dcw-temp-sp",
4260
+ "value": 182,
4261
+ "min": 176,
4262
+ "max": 188
4263
+ },
4264
+ {
4265
+ "nodeId": "dw-e92bb0e7",
4266
+ "templateRef": "dcw-pressure-sp",
4267
+ "value": 0.92,
4268
+ "min": 0.85,
4269
+ "max": 1
4270
+ }
4271
+ ]
4272
+ },
4273
+ {
4274
+ "id": "rr-6da3f412",
4275
+ "recipeId": "rc-7bf584db",
4276
+ "recipeName": "A-标准工艺",
4277
+ "productId": "pd-6348a595",
4278
+ "lineId": "ln-af002514",
4279
+ "startedAt": "2026-09-03T11:18:01.213Z",
4280
+ "endedAt": null,
4281
+ "results": [
4282
+ {
4283
+ "templateRef": "dcw-temp-sp",
4284
+ "nodeId": "dw-322b1978",
4285
+ "ok": true,
4286
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
4287
+ "value": 182
4288
+ },
4289
+ {
4290
+ "templateRef": "dcw-pressure-sp",
4291
+ "nodeId": "dw-e92bb0e7",
4292
+ "ok": true,
4293
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
4294
+ "value": 0.92
4295
+ }
4296
+ ],
4297
+ "paramsSnapshot": [
4298
+ {
4299
+ "nodeId": "dw-322b1978",
4300
+ "templateRef": "dcw-temp-sp",
4301
+ "value": 182,
4302
+ "min": 176,
4303
+ "max": 188
4304
+ },
4305
+ {
4306
+ "nodeId": "dw-e92bb0e7",
4307
+ "templateRef": "dcw-pressure-sp",
4308
+ "value": 0.92,
4309
+ "min": 0.85,
4310
+ "max": 1
4311
+ }
4312
+ ]
4313
+ },
4314
+ {
4315
+ "id": "rr-2238155d",
4316
+ "recipeId": "rc-552c0488",
4317
+ "recipeName": "A-闭环工艺",
4318
+ "productId": "pd-e712875d",
4319
+ "lineId": "ln-9a60a0cd",
4320
+ "startedAt": "2026-09-03T16:03:27.304Z",
4321
+ "endedAt": null,
4322
+ "results": [
4323
+ {
4324
+ "templateRef": "dcw-temp-sp",
4325
+ "nodeId": "dw-f944538c",
4326
+ "ok": true,
4327
+ "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4328
+ "value": 160
4329
+ }
4330
+ ],
4331
+ "paramsSnapshot": [
4332
+ {
4333
+ "nodeId": "dw-f944538c",
4334
+ "templateRef": "dcw-temp-sp",
4335
+ "value": 160,
4336
+ "min": 100,
4337
+ "max": 200
4338
+ }
4339
+ ]
4340
+ },
4341
+ {
4342
+ "id": "rr-9d5070a1",
4343
+ "recipeId": "rc-0d3b58f7",
4344
+ "recipeName": "A-闭环工艺",
4345
+ "productId": "pd-16eecb35",
4346
+ "lineId": "ln-b33a3105",
4347
+ "startedAt": "2026-09-03T16:39:22.962Z",
4348
+ "endedAt": null,
4349
+ "results": [
4350
+ {
4351
+ "templateRef": "dcw-temp-sp",
4352
+ "nodeId": "dw-0188c6c4",
4353
+ "ok": true,
4354
+ "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4355
+ "value": 160
4356
+ }
4357
+ ],
4358
+ "paramsSnapshot": [
4359
+ {
4360
+ "nodeId": "dw-0188c6c4",
4361
+ "templateRef": "dcw-temp-sp",
4362
+ "value": 160,
4363
+ "min": 100,
4364
+ "max": 200
4365
+ }
4366
+ ]
4367
+ },
4368
+ {
4369
+ "id": "rr-a86971ae",
4370
+ "recipeId": "rc-2961fd43",
4371
+ "recipeName": "A-闭环工艺",
4372
+ "productId": "pd-9c755781",
4373
+ "lineId": "ln-1aedc305",
4374
+ "startedAt": "2026-09-03T16:44:33.199Z",
4375
+ "endedAt": null,
4376
+ "results": [
4377
+ {
4378
+ "templateRef": "dcw-temp-sp",
4379
+ "nodeId": "dw-097f1e6a",
4380
+ "ok": true,
4381
+ "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4382
+ "value": 160
4383
+ }
4384
+ ],
4385
+ "paramsSnapshot": [
4386
+ {
4387
+ "nodeId": "dw-097f1e6a",
4388
+ "templateRef": "dcw-temp-sp",
4389
+ "value": 160,
4390
+ "min": 100,
4391
+ "max": 200
4392
+ }
4393
+ ]
4394
+ },
4395
+ {
4396
+ "id": "rr-c66a150f",
4397
+ "recipeId": "rc-6acb6e12",
4398
+ "recipeName": "A-闭环工艺",
4399
+ "productId": "pd-835aed90",
4400
+ "lineId": "ln-758658dc",
4401
+ "startedAt": "2026-09-03T17:12:52.205Z",
4402
+ "endedAt": null,
4403
+ "results": [
4404
+ {
4405
+ "templateRef": "dcw-temp-sp",
4406
+ "nodeId": "dw-8fb89e02",
4407
+ "ok": true,
4408
+ "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4409
+ "value": 160
4410
+ }
4411
+ ],
4412
+ "paramsSnapshot": [
4413
+ {
4414
+ "nodeId": "dw-8fb89e02",
4415
+ "templateRef": "dcw-temp-sp",
4416
+ "value": 160,
4417
+ "min": 100,
4418
+ "max": 200
4419
+ }
4420
+ ]
4421
+ },
4422
+ {
4423
+ "id": "rr-875be24a",
4424
+ "recipeId": "rc-59b8eca0",
4425
+ "recipeName": "配方-mtmhgrsn",
4426
+ "productId": "pd-b06ac7d7",
4427
+ "lineId": "ln-40681e03",
4428
+ "startedAt": "2026-09-04T04:58:09.920Z",
4429
+ "endedAt": "2026-09-04T04:58:51.324Z",
4430
+ "results": [
4431
+ {
4432
+ "templateRef": "dcw-temp-sp",
4433
+ "nodeId": "dw-3a3f7a4c",
4434
+ "ok": true,
4435
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4436
+ "value": 180
4437
+ }
4438
+ ],
4439
+ "paramsSnapshot": [
4440
+ {
4441
+ "nodeId": "dw-3a3f7a4c",
4442
+ "templateRef": "dcw-temp-sp",
4443
+ "value": 180,
4444
+ "min": 176,
4445
+ "max": 188
4446
+ }
4447
+ ]
4448
+ },
4449
+ {
4450
+ "id": "rr-de10d51e",
4451
+ "recipeId": "rc-5667c3cb",
4452
+ "recipeName": "配方-mtmhnz2f",
4453
+ "productId": "pd-a7ccbe70",
4454
+ "lineId": "ln-a284d605",
4455
+ "startedAt": "2026-09-04T05:03:45.894Z",
4456
+ "endedAt": "2026-09-04T05:04:27.237Z",
4457
+ "results": [
4458
+ {
4459
+ "templateRef": "dcw-temp-sp",
4460
+ "nodeId": "dw-42fcd798",
4461
+ "ok": true,
4462
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4463
+ "value": 180
4464
+ }
4465
+ ],
4466
+ "paramsSnapshot": [
4467
+ {
4468
+ "nodeId": "dw-42fcd798",
4469
+ "templateRef": "dcw-temp-sp",
4470
+ "value": 180,
4471
+ "min": 176,
4472
+ "max": 188
4473
+ }
4474
+ ]
4475
+ },
4476
+ {
4477
+ "id": "rr-9e70a9dc",
4478
+ "recipeId": "rc-ccee1b1b",
4479
+ "recipeName": "探针配方",
4480
+ "productId": "pd-db432902",
4481
+ "lineId": "ln-1b318320",
4482
+ "startedAt": "2026-09-04T05:08:10.103Z",
4483
+ "endedAt": null,
4484
+ "results": [
4485
+ {
4486
+ "templateRef": "dcw-temp-sp",
4487
+ "nodeId": "dw-756e3e07",
4488
+ "ok": true,
4489
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4490
+ "value": 180
4491
+ }
4492
+ ],
4493
+ "paramsSnapshot": [
4494
+ {
4495
+ "nodeId": "dw-756e3e07",
4496
+ "templateRef": "dcw-temp-sp",
4497
+ "value": 180,
4498
+ "min": 176,
4499
+ "max": 188
4500
+ }
4501
+ ]
4502
+ },
4503
+ {
4504
+ "id": "rr-dbb44962",
4505
+ "recipeId": "rc-c73f8aed",
4506
+ "recipeName": "探针配方",
4507
+ "productId": "pd-f6296ca1",
4508
+ "lineId": "ln-c50d97f5",
4509
+ "startedAt": "2026-09-04T05:08:56.257Z",
4510
+ "endedAt": "2026-09-04T05:09:02.608Z",
4511
+ "results": [
4512
+ {
4513
+ "templateRef": "dcw-temp-sp",
4514
+ "nodeId": "dw-1ccbe1a8",
4515
+ "ok": true,
4516
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4517
+ "value": 180
4518
+ }
4519
+ ],
4520
+ "paramsSnapshot": [
4521
+ {
4522
+ "nodeId": "dw-1ccbe1a8",
4523
+ "templateRef": "dcw-temp-sp",
4524
+ "value": 180,
4525
+ "min": 176,
4526
+ "max": 188
4527
+ }
4528
+ ]
4529
+ },
4530
+ {
4531
+ "id": "rr-02e1b75d",
4532
+ "recipeId": "rc-839041c6",
4533
+ "recipeName": "配方-mtmhyn1r",
4534
+ "productId": "pd-cfe2e059",
4535
+ "lineId": "ln-826f8518",
4536
+ "startedAt": "2026-09-04T05:12:03.638Z",
4537
+ "endedAt": "2026-09-04T05:12:13.981Z",
4538
+ "results": [
4539
+ {
4540
+ "templateRef": "dcw-temp-sp",
4541
+ "nodeId": "dw-3b6fd688",
4542
+ "ok": true,
4543
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4544
+ "value": 180
4545
+ }
4546
+ ],
4547
+ "paramsSnapshot": [
4548
+ {
4549
+ "nodeId": "dw-3b6fd688",
4550
+ "templateRef": "dcw-temp-sp",
4551
+ "value": 180,
4552
+ "min": 176,
4553
+ "max": 188
4554
+ }
4555
+ ]
4556
+ },
4557
+ {
4558
+ "id": "rr-901d3630",
4559
+ "recipeId": "rc-14eddb92",
4560
+ "recipeName": "全协议配方-mtny0lcv",
4561
+ "productId": "pd-c01bf204",
4562
+ "lineId": "ln-62e215e5",
4563
+ "startedAt": "2026-09-05T05:29:21.550Z",
4564
+ "endedAt": "2026-09-05T05:31:24.035Z",
4565
+ "results": [
4566
+ {
4567
+ "templateRef": "dcw-temp-sp",
4568
+ "nodeId": "dw-34014c7e",
4569
+ "ok": true,
4570
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4571
+ "value": 180
4572
+ }
4573
+ ],
4574
+ "paramsSnapshot": [
4575
+ {
4576
+ "nodeId": "dw-34014c7e",
4577
+ "templateRef": "dcw-temp-sp",
4578
+ "value": 180,
4579
+ "min": 176,
4580
+ "max": 188
4581
+ }
4582
+ ]
4583
+ },
4584
+ {
4585
+ "id": "rr-f0e4d57d",
4586
+ "recipeId": "rc-a2b19319",
4587
+ "recipeName": "全协议配方-mtnyemlz",
4588
+ "productId": "pd-572c23f0",
4589
+ "lineId": "ln-81865050",
4590
+ "startedAt": "2026-09-05T05:40:12.225Z",
4591
+ "endedAt": "2026-09-05T05:40:32.930Z",
4592
+ "results": [
4593
+ {
4594
+ "templateRef": "dcw-temp-sp",
4595
+ "nodeId": "dw-07787cf7",
4596
+ "ok": true,
4597
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4598
+ "value": 180
4599
+ }
4600
+ ],
4601
+ "paramsSnapshot": [
4602
+ {
4603
+ "nodeId": "dw-07787cf7",
4604
+ "templateRef": "dcw-temp-sp",
4605
+ "value": 180,
4606
+ "min": 176,
4607
+ "max": 188
4608
+ }
4609
+ ]
4610
+ },
4611
+ {
4612
+ "id": "rr-6a0c3b60",
4613
+ "recipeId": "rc-15b027a7",
4614
+ "recipeName": "全协议配方-mtnynfph",
4615
+ "productId": "pd-10cfc2b3",
4616
+ "lineId": "ln-6a34fbc7",
4617
+ "startedAt": "2026-09-05T05:47:26.453Z",
4618
+ "endedAt": null,
4619
+ "results": [
4620
+ {
4621
+ "templateRef": "dcw-temp-sp",
4622
+ "nodeId": "dw-8960e2f8",
4623
+ "ok": false,
4624
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
4625
+ "value": 180
4626
+ }
4627
+ ],
4628
+ "paramsSnapshot": [
4629
+ {
4630
+ "nodeId": "dw-8960e2f8",
4631
+ "templateRef": "dcw-temp-sp",
4632
+ "value": 180,
4633
+ "min": 176,
4634
+ "max": 188
4635
+ }
4636
+ ]
4637
+ },
4638
+ {
4639
+ "id": "rr-b7161a8a",
4640
+ "recipeId": "rc-bc73d81d",
4641
+ "recipeName": "全协议配方-mtnyz0bo",
4642
+ "productId": "pd-daaacaea",
4643
+ "lineId": "ln-8f28c295",
4644
+ "startedAt": "2026-09-05T05:56:36.833Z",
4645
+ "endedAt": "2026-09-05T05:58:40.961Z",
4646
+ "results": [
4647
+ {
4648
+ "templateRef": "dcw-temp-sp",
4649
+ "nodeId": "dw-ded0b84a",
4650
+ "ok": false,
4651
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
4652
+ "value": 180
4653
+ }
4654
+ ],
4655
+ "paramsSnapshot": [
4656
+ {
4657
+ "nodeId": "dw-ded0b84a",
4658
+ "templateRef": "dcw-temp-sp",
4659
+ "value": 180,
4660
+ "min": 176,
4661
+ "max": 188
4662
+ }
4663
+ ]
4664
+ },
4665
+ {
4666
+ "id": "rr-08f535dc",
4667
+ "recipeId": "rc-2e7f586c",
4668
+ "recipeName": "全协议配方-mtnzg090",
4669
+ "productId": "pd-b9b15b64",
4670
+ "lineId": "ln-419463e0",
4671
+ "startedAt": "2026-09-05T06:09:36.931Z",
4672
+ "endedAt": null,
4673
+ "results": [
4674
+ {
4675
+ "templateRef": "dcw-temp-sp",
4676
+ "nodeId": "dw-9f172fc2",
4677
+ "ok": false,
4678
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
4679
+ "value": 180
4680
+ }
4681
+ ],
4682
+ "paramsSnapshot": [
4683
+ {
4684
+ "nodeId": "dw-9f172fc2",
4685
+ "templateRef": "dcw-temp-sp",
4686
+ "value": 180,
4687
+ "min": 176,
4688
+ "max": 188
4689
+ }
4690
+ ]
4691
+ },
4692
+ {
4693
+ "id": "rr-09d52cc2",
4694
+ "recipeId": "rc-93d38783",
4695
+ "recipeName": "全协议配方-mtnzli8v",
4696
+ "productId": "pd-5451cd24",
4697
+ "lineId": "ln-2d4ae314",
4698
+ "startedAt": "2026-09-05T06:13:58.602Z",
4699
+ "endedAt": "2026-09-05T06:16:11.383Z",
4700
+ "results": [
4701
+ {
4702
+ "templateRef": "dcw-temp-sp",
4703
+ "nodeId": "dw-c30656ec",
4704
+ "ok": true,
4705
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4706
+ "value": 180
4707
+ }
4708
+ ],
4709
+ "paramsSnapshot": [
4710
+ {
4711
+ "nodeId": "dw-c30656ec",
4712
+ "templateRef": "dcw-temp-sp",
4713
+ "value": 180,
4714
+ "min": 176,
4715
+ "max": 188
4716
+ }
4717
+ ]
4718
+ },
4719
+ {
4720
+ "id": "rr-fd00b56d",
4721
+ "recipeId": "rc-33609df2",
4722
+ "recipeName": "全协议配方-mto01hxw",
4723
+ "productId": "pd-d7d266f4",
4724
+ "lineId": "ln-ab3281cb",
4725
+ "startedAt": "2026-09-05T06:26:18.620Z",
4726
+ "endedAt": "2026-09-05T06:28:31.351Z",
4727
+ "results": [
4728
+ {
4729
+ "templateRef": "dcw-temp-sp",
4730
+ "nodeId": "dw-553bf1fb",
4731
+ "ok": true,
4732
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4733
+ "value": 180
4734
+ }
4735
+ ],
4736
+ "paramsSnapshot": [
4737
+ {
4738
+ "nodeId": "dw-553bf1fb",
4739
+ "templateRef": "dcw-temp-sp",
4740
+ "value": 180,
4741
+ "min": 176,
4742
+ "max": 188
4743
+ }
4744
+ ]
4745
+ },
4746
+ {
4747
+ "id": "rr-1bebca32",
4748
+ "recipeId": "rc-de49bc7e",
4749
+ "recipeName": "全协议配方-mto0h8o5",
4750
+ "productId": "pd-07fbd119",
4751
+ "lineId": "ln-8f14ebfc",
4752
+ "startedAt": "2026-09-05T06:38:33.546Z",
4753
+ "endedAt": "2026-09-05T06:40:46.349Z",
4754
+ "results": [
4755
+ {
4756
+ "templateRef": "dcw-temp-sp",
4757
+ "nodeId": "dw-8e07e4f3",
4758
+ "ok": true,
4759
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4760
+ "value": 180
4761
+ }
4762
+ ],
4763
+ "paramsSnapshot": [
4764
+ {
4765
+ "nodeId": "dw-8e07e4f3",
4766
+ "templateRef": "dcw-temp-sp",
4767
+ "value": 180,
4768
+ "min": 176,
4769
+ "max": 188
4770
+ }
4771
+ ]
4772
+ },
4773
+ {
4774
+ "id": "rr-54b34bb5",
4775
+ "recipeId": "rc-c6fd3e11",
4776
+ "recipeName": "全协议配方-mto0m9es",
4777
+ "productId": "pd-fa8c0b2d",
4778
+ "lineId": "ln-d010bba3",
4779
+ "startedAt": "2026-09-05T06:42:28.622Z",
4780
+ "endedAt": "2026-09-05T06:44:29.232Z",
4781
+ "results": [
4782
+ {
4783
+ "templateRef": "dcw-temp-sp",
4784
+ "nodeId": "dw-96091e58",
4785
+ "ok": true,
4786
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4787
+ "value": 180
4788
+ }
4789
+ ],
4790
+ "paramsSnapshot": [
4791
+ {
4792
+ "nodeId": "dw-96091e58",
4641
4793
  "templateRef": "dcw-temp-sp",
4642
- "value": 182,
4794
+ "value": 180,
4643
4795
  "min": 176,
4644
4796
  "max": 188
4645
- },
4646
- {
4647
- "nodeId": "dw-e92bb0e7",
4648
- "templateRef": "dcw-pressure-sp",
4649
- "value": 0.92,
4650
- "min": 0.85,
4651
- "max": 1
4652
4797
  }
4653
4798
  ]
4654
4799
  },
4655
4800
  {
4656
- "id": "rr-b1f6156d",
4657
- "recipeId": "rc-7bf584db",
4658
- "recipeName": "A-标准工艺",
4659
- "productId": "pd-6348a595",
4660
- "lineId": "ln-af002514",
4661
- "startedAt": "2026-09-03T10:41:14.527Z",
4662
- "endedAt": "2026-09-03T10:44:04.580Z",
4801
+ "id": "rr-4e40cab0",
4802
+ "recipeId": "rc-80195acf",
4803
+ "recipeName": "全协议配方-mto113i2",
4804
+ "productId": "pd-9e290ee1",
4805
+ "lineId": "ln-c7668a8d",
4806
+ "startedAt": "2026-09-05T06:54:01.584Z",
4807
+ "endedAt": "2026-09-05T06:55:54.890Z",
4663
4808
  "results": [
4664
4809
  {
4665
4810
  "templateRef": "dcw-temp-sp",
4666
- "nodeId": "dw-322b1978",
4667
- "ok": true,
4668
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
4669
- "value": 182
4670
- },
4671
- {
4672
- "templateRef": "dcw-pressure-sp",
4673
- "nodeId": "dw-e92bb0e7",
4811
+ "nodeId": "dw-ab89beb3",
4674
4812
  "ok": true,
4675
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
4676
- "value": 0.92
4813
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4814
+ "value": 180
4677
4815
  }
4678
4816
  ],
4679
4817
  "paramsSnapshot": [
4680
4818
  {
4681
- "nodeId": "dw-322b1978",
4819
+ "nodeId": "dw-ab89beb3",
4682
4820
  "templateRef": "dcw-temp-sp",
4683
- "value": 182,
4821
+ "value": 180,
4684
4822
  "min": 176,
4685
4823
  "max": 188
4686
- },
4687
- {
4688
- "nodeId": "dw-e92bb0e7",
4689
- "templateRef": "dcw-pressure-sp",
4690
- "value": 0.92,
4691
- "min": 0.85,
4692
- "max": 1
4693
4824
  }
4694
4825
  ]
4695
4826
  },
4696
4827
  {
4697
- "id": "rr-6da3f412",
4698
- "recipeId": "rc-7bf584db",
4699
- "recipeName": "A-标准工艺",
4700
- "productId": "pd-6348a595",
4701
- "lineId": "ln-af002514",
4702
- "startedAt": "2026-09-03T11:18:01.213Z",
4703
- "endedAt": null,
4828
+ "id": "rr-27719005",
4829
+ "recipeId": "rc-4b542654",
4830
+ "recipeName": "全协议配方-mto1771y",
4831
+ "productId": "pd-9868366c",
4832
+ "lineId": "ln-694c51f4",
4833
+ "startedAt": "2026-09-05T07:14:22.918Z",
4834
+ "endedAt": "2026-09-05T07:16:16.372Z",
4704
4835
  "results": [
4705
4836
  {
4706
4837
  "templateRef": "dcw-temp-sp",
4707
- "nodeId": "dw-322b1978",
4708
- "ok": true,
4709
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
4710
- "value": 182
4711
- },
4712
- {
4713
- "templateRef": "dcw-pressure-sp",
4714
- "nodeId": "dw-e92bb0e7",
4838
+ "nodeId": "dw-4c6c6920",
4715
4839
  "ok": true,
4716
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
4717
- "value": 0.92
4840
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4841
+ "value": 180
4718
4842
  }
4719
4843
  ],
4720
4844
  "paramsSnapshot": [
4721
4845
  {
4722
- "nodeId": "dw-322b1978",
4846
+ "nodeId": "dw-4c6c6920",
4723
4847
  "templateRef": "dcw-temp-sp",
4724
- "value": 182,
4848
+ "value": 180,
4725
4849
  "min": 176,
4726
4850
  "max": 188
4727
- },
4728
- {
4729
- "nodeId": "dw-e92bb0e7",
4730
- "templateRef": "dcw-pressure-sp",
4731
- "value": 0.92,
4732
- "min": 0.85,
4733
- "max": 1
4734
4851
  }
4735
4852
  ]
4736
4853
  },
4737
4854
  {
4738
- "id": "rr-2238155d",
4739
- "recipeId": "rc-552c0488",
4740
- "recipeName": "A-闭环工艺",
4741
- "productId": "pd-e712875d",
4742
- "lineId": "ln-9a60a0cd",
4743
- "startedAt": "2026-09-03T16:03:27.304Z",
4855
+ "id": "rr-d667a896",
4856
+ "recipeId": "rc-814248c6",
4857
+ "recipeName": "runp3-recipe",
4858
+ "productId": "pd-fd822802",
4859
+ "lineId": "ln-3548f325",
4860
+ "startedAt": "2026-09-05T07:23:51.972Z",
4744
4861
  "endedAt": null,
4745
4862
  "results": [
4746
4863
  {
4747
4864
  "templateRef": "dcw-temp-sp",
4748
- "nodeId": "dw-f944538c",
4865
+ "nodeId": "dw-06590507",
4749
4866
  "ok": true,
4750
- "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4751
- "value": 160
4867
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4868
+ "value": 180
4752
4869
  }
4753
4870
  ],
4754
4871
  "paramsSnapshot": [
4755
4872
  {
4756
- "nodeId": "dw-f944538c",
4873
+ "nodeId": "dw-06590507",
4757
4874
  "templateRef": "dcw-temp-sp",
4758
- "value": 160,
4759
- "min": 100,
4760
- "max": 200
4875
+ "value": 180,
4876
+ "min": 176,
4877
+ "max": 188
4761
4878
  }
4762
4879
  ]
4763
4880
  },
4764
4881
  {
4765
- "id": "rr-9d5070a1",
4766
- "recipeId": "rc-0d3b58f7",
4767
- "recipeName": "A-闭环工艺",
4768
- "productId": "pd-16eecb35",
4769
- "lineId": "ln-b33a3105",
4770
- "startedAt": "2026-09-03T16:39:22.962Z",
4771
- "endedAt": null,
4882
+ "id": "rr-3d8e141a",
4883
+ "recipeId": "rc-98300208",
4884
+ "recipeName": "全协议配方-mto2mf6i",
4885
+ "productId": "pd-37e543f1",
4886
+ "lineId": "ln-6502a1f3",
4887
+ "startedAt": "2026-09-05T07:38:47.414Z",
4888
+ "endedAt": "2026-09-05T07:40:41.683Z",
4772
4889
  "results": [
4773
4890
  {
4774
4891
  "templateRef": "dcw-temp-sp",
4775
- "nodeId": "dw-0188c6c4",
4892
+ "nodeId": "dw-ed7f4682",
4776
4893
  "ok": true,
4777
- "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4778
- "value": 160
4894
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4895
+ "value": 180
4779
4896
  }
4780
4897
  ],
4781
4898
  "paramsSnapshot": [
4782
4899
  {
4783
- "nodeId": "dw-0188c6c4",
4900
+ "nodeId": "dw-ed7f4682",
4784
4901
  "templateRef": "dcw-temp-sp",
4785
- "value": 160,
4786
- "min": 100,
4787
- "max": 200
4902
+ "value": 180,
4903
+ "min": 176,
4904
+ "max": 188
4788
4905
  }
4789
4906
  ]
4790
4907
  },
4791
4908
  {
4792
- "id": "rr-a86971ae",
4793
- "recipeId": "rc-2961fd43",
4794
- "recipeName": "A-闭环工艺",
4795
- "productId": "pd-9c755781",
4796
- "lineId": "ln-1aedc305",
4797
- "startedAt": "2026-09-03T16:44:33.199Z",
4909
+ "id": "rr-a41a21fd",
4910
+ "recipeId": "rc-c362b721",
4911
+ "recipeName": "全协议配方-mto2w44t",
4912
+ "productId": "pd-4de49ca3",
4913
+ "lineId": "ln-c3a7ba01",
4914
+ "startedAt": "2026-09-05T07:46:23.423Z",
4798
4915
  "endedAt": null,
4799
4916
  "results": [
4800
4917
  {
4801
4918
  "templateRef": "dcw-temp-sp",
4802
- "nodeId": "dw-097f1e6a",
4919
+ "nodeId": "dw-5fdc7f6f",
4803
4920
  "ok": true,
4804
- "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4805
- "value": 160
4921
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4922
+ "value": 180
4806
4923
  }
4807
4924
  ],
4808
4925
  "paramsSnapshot": [
4809
4926
  {
4810
- "nodeId": "dw-097f1e6a",
4927
+ "nodeId": "dw-5fdc7f6f",
4811
4928
  "templateRef": "dcw-temp-sp",
4812
- "value": 160,
4813
- "min": 100,
4814
- "max": 200
4929
+ "value": 180,
4930
+ "min": 176,
4931
+ "max": 188
4815
4932
  }
4816
4933
  ]
4817
4934
  },
4818
4935
  {
4819
- "id": "rr-c66a150f",
4820
- "recipeId": "rc-6acb6e12",
4821
- "recipeName": "A-闭环工艺",
4822
- "productId": "pd-835aed90",
4823
- "lineId": "ln-758658dc",
4824
- "startedAt": "2026-09-03T17:12:52.205Z",
4825
- "endedAt": null,
4936
+ "id": "rr-f5a55ecb",
4937
+ "recipeId": "rc-6035701d",
4938
+ "recipeName": "全协议配方-mto30yeb",
4939
+ "productId": "pd-689555fc",
4940
+ "lineId": "ln-c570b64e",
4941
+ "startedAt": "2026-09-05T07:50:14.492Z",
4942
+ "endedAt": "2026-09-05T07:52:08.752Z",
4826
4943
  "results": [
4827
4944
  {
4828
4945
  "templateRef": "dcw-temp-sp",
4829
- "nodeId": "dw-8fb89e02",
4946
+ "nodeId": "dw-d324afad",
4830
4947
  "ok": true,
4831
- "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
4832
- "value": 160
4948
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4949
+ "value": 180
4833
4950
  }
4834
4951
  ],
4835
4952
  "paramsSnapshot": [
4836
4953
  {
4837
- "nodeId": "dw-8fb89e02",
4954
+ "nodeId": "dw-d324afad",
4838
4955
  "templateRef": "dcw-temp-sp",
4839
- "value": 160,
4840
- "min": 100,
4841
- "max": 200
4956
+ "value": 180,
4957
+ "min": 176,
4958
+ "max": 188
4842
4959
  }
4843
4960
  ]
4844
4961
  },
4845
4962
  {
4846
- "id": "rr-875be24a",
4847
- "recipeId": "rc-59b8eca0",
4848
- "recipeName": "配方-mtmhgrsn",
4849
- "productId": "pd-b06ac7d7",
4850
- "lineId": "ln-40681e03",
4851
- "startedAt": "2026-09-04T04:58:09.920Z",
4852
- "endedAt": "2026-09-04T04:58:51.324Z",
4963
+ "id": "rr-3da13dd0",
4964
+ "recipeId": "rc-ddc06010",
4965
+ "recipeName": "插件配方-mto3p7ny",
4966
+ "productId": "pd-aa36f7ab",
4967
+ "lineId": "ln-ab4024ff",
4968
+ "startedAt": "2026-09-05T08:08:23.551Z",
4969
+ "endedAt": "2026-09-05T08:08:34.411Z",
4853
4970
  "results": [
4854
4971
  {
4855
4972
  "templateRef": "dcw-temp-sp",
4856
- "nodeId": "dw-3a3f7a4c",
4973
+ "nodeId": "dw-511d0e81",
4857
4974
  "ok": true,
4858
4975
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4859
4976
  "value": 180
@@ -4861,80 +4978,80 @@
4861
4978
  ],
4862
4979
  "paramsSnapshot": [
4863
4980
  {
4864
- "nodeId": "dw-3a3f7a4c",
4981
+ "nodeId": "dw-511d0e81",
4865
4982
  "templateRef": "dcw-temp-sp",
4866
4983
  "value": 180,
4867
- "min": 176,
4868
- "max": 188
4984
+ "min": 150,
4985
+ "max": 200
4869
4986
  }
4870
4987
  ]
4871
4988
  },
4872
4989
  {
4873
- "id": "rr-de10d51e",
4874
- "recipeId": "rc-5667c3cb",
4875
- "recipeName": "配方-mtmhnz2f",
4876
- "productId": "pd-a7ccbe70",
4877
- "lineId": "ln-a284d605",
4878
- "startedAt": "2026-09-04T05:03:45.894Z",
4879
- "endedAt": "2026-09-04T05:04:27.237Z",
4990
+ "id": "rr-ede96923",
4991
+ "recipeId": "rc-137880a8",
4992
+ "recipeName": "多引擎配方-mto47ec9",
4993
+ "productId": "pd-7b6d4e2c",
4994
+ "lineId": "ln-b2c3be6e",
4995
+ "startedAt": "2026-09-05T08:23:06.417Z",
4996
+ "endedAt": "2026-09-05T08:41:26.164Z",
4880
4997
  "results": [
4881
4998
  {
4882
4999
  "templateRef": "dcw-temp-sp",
4883
- "nodeId": "dw-42fcd798",
5000
+ "nodeId": "dw-a470230d",
4884
5001
  "ok": true,
4885
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5002
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4886
5003
  "value": 180
4887
5004
  }
4888
5005
  ],
4889
5006
  "paramsSnapshot": [
4890
5007
  {
4891
- "nodeId": "dw-42fcd798",
5008
+ "nodeId": "dw-a470230d",
4892
5009
  "templateRef": "dcw-temp-sp",
4893
5010
  "value": 180,
4894
- "min": 176,
4895
- "max": 188
5011
+ "min": 150,
5012
+ "max": 200
4896
5013
  }
4897
5014
  ]
4898
5015
  },
4899
5016
  {
4900
- "id": "rr-9e70a9dc",
4901
- "recipeId": "rc-ccee1b1b",
4902
- "recipeName": "探针配方",
4903
- "productId": "pd-db432902",
4904
- "lineId": "ln-1b318320",
4905
- "startedAt": "2026-09-04T05:08:10.103Z",
4906
- "endedAt": null,
5017
+ "id": "rr-8c3cc9f7",
5018
+ "recipeId": "rc-a01ee7c9",
5019
+ "recipeName": "多引擎配方-mto4xd17",
5020
+ "productId": "pd-ef246eba",
5021
+ "lineId": "ln-190e7eef",
5022
+ "startedAt": "2026-09-05T08:42:47.817Z",
5023
+ "endedAt": "2026-09-05T09:02:01.764Z",
4907
5024
  "results": [
4908
5025
  {
4909
5026
  "templateRef": "dcw-temp-sp",
4910
- "nodeId": "dw-756e3e07",
5027
+ "nodeId": "dw-dc216d75",
4911
5028
  "ok": true,
4912
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5029
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
4913
5030
  "value": 180
4914
5031
  }
4915
5032
  ],
4916
5033
  "paramsSnapshot": [
4917
5034
  {
4918
- "nodeId": "dw-756e3e07",
5035
+ "nodeId": "dw-dc216d75",
4919
5036
  "templateRef": "dcw-temp-sp",
4920
5037
  "value": 180,
4921
- "min": 176,
4922
- "max": 188
5038
+ "min": 150,
5039
+ "max": 200
4923
5040
  }
4924
5041
  ]
4925
5042
  },
4926
5043
  {
4927
- "id": "rr-dbb44962",
4928
- "recipeId": "rc-c73f8aed",
4929
- "recipeName": "探针配方",
4930
- "productId": "pd-f6296ca1",
4931
- "lineId": "ln-c50d97f5",
4932
- "startedAt": "2026-09-04T05:08:56.257Z",
4933
- "endedAt": "2026-09-04T05:09:02.608Z",
5044
+ "id": "rr-5ba7bd5b",
5045
+ "recipeId": "rc-9b2255dc",
5046
+ "recipeName": "间隔配方-mto6rqqa",
5047
+ "productId": "pd-0e64bd2f",
5048
+ "lineId": "ln-51fcb8ac",
5049
+ "startedAt": "2026-09-05T09:34:20.925Z",
5050
+ "endedAt": "2026-09-05T09:35:29.245Z",
4934
5051
  "results": [
4935
5052
  {
4936
5053
  "templateRef": "dcw-temp-sp",
4937
- "nodeId": "dw-1ccbe1a8",
5054
+ "nodeId": "dw-0ed9deab",
4938
5055
  "ok": true,
4939
5056
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4940
5057
  "value": 180
@@ -4942,26 +5059,26 @@
4942
5059
  ],
4943
5060
  "paramsSnapshot": [
4944
5061
  {
4945
- "nodeId": "dw-1ccbe1a8",
5062
+ "nodeId": "dw-0ed9deab",
4946
5063
  "templateRef": "dcw-temp-sp",
4947
5064
  "value": 180,
4948
- "min": 176,
4949
- "max": 188
5065
+ "min": 150,
5066
+ "max": 200
4950
5067
  }
4951
5068
  ]
4952
5069
  },
4953
5070
  {
4954
- "id": "rr-02e1b75d",
4955
- "recipeId": "rc-839041c6",
4956
- "recipeName": "配方-mtmhyn1r",
4957
- "productId": "pd-cfe2e059",
4958
- "lineId": "ln-826f8518",
4959
- "startedAt": "2026-09-04T05:12:03.638Z",
4960
- "endedAt": "2026-09-04T05:12:13.981Z",
5071
+ "id": "rr-7d24224e",
5072
+ "recipeId": "rc-2e349c80",
5073
+ "recipeName": "插件配方-mto6ysj1",
5074
+ "productId": "pd-64a9d0b7",
5075
+ "lineId": "ln-2e9272f7",
5076
+ "startedAt": "2026-09-05T09:39:59.370Z",
5077
+ "endedAt": "2026-09-05T09:40:10.153Z",
4961
5078
  "results": [
4962
5079
  {
4963
5080
  "templateRef": "dcw-temp-sp",
4964
- "nodeId": "dw-3b6fd688",
5081
+ "nodeId": "dw-37f5153e",
4965
5082
  "ok": true,
4966
5083
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4967
5084
  "value": 180
@@ -4969,431 +5086,431 @@
4969
5086
  ],
4970
5087
  "paramsSnapshot": [
4971
5088
  {
4972
- "nodeId": "dw-3b6fd688",
5089
+ "nodeId": "dw-37f5153e",
4973
5090
  "templateRef": "dcw-temp-sp",
4974
5091
  "value": 180,
4975
- "min": 176,
4976
- "max": 188
5092
+ "min": 150,
5093
+ "max": 200
4977
5094
  }
4978
5095
  ]
4979
5096
  },
4980
5097
  {
4981
- "id": "rr-901d3630",
4982
- "recipeId": "rc-14eddb92",
4983
- "recipeName": "全协议配方-mtny0lcv",
4984
- "productId": "pd-c01bf204",
4985
- "lineId": "ln-62e215e5",
4986
- "startedAt": "2026-09-05T05:29:21.550Z",
4987
- "endedAt": "2026-09-05T05:31:24.035Z",
5098
+ "id": "rr-55e35132",
5099
+ "recipeId": "rc-4f3f66b1",
5100
+ "recipeName": "插件配方-mto73j6f",
5101
+ "productId": "pd-981b720a",
5102
+ "lineId": "ln-98ac4967",
5103
+ "startedAt": "2026-09-05T09:43:40.421Z",
5104
+ "endedAt": "2026-09-05T09:43:51.246Z",
4988
5105
  "results": [
4989
5106
  {
4990
5107
  "templateRef": "dcw-temp-sp",
4991
- "nodeId": "dw-34014c7e",
5108
+ "nodeId": "dw-f9a5e01e",
4992
5109
  "ok": true,
4993
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5110
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
4994
5111
  "value": 180
4995
5112
  }
4996
5113
  ],
4997
5114
  "paramsSnapshot": [
4998
5115
  {
4999
- "nodeId": "dw-34014c7e",
5116
+ "nodeId": "dw-f9a5e01e",
5000
5117
  "templateRef": "dcw-temp-sp",
5001
5118
  "value": 180,
5002
- "min": 176,
5003
- "max": 188
5119
+ "min": 150,
5120
+ "max": 200
5004
5121
  }
5005
5122
  ]
5006
5123
  },
5007
5124
  {
5008
- "id": "rr-f0e4d57d",
5009
- "recipeId": "rc-a2b19319",
5010
- "recipeName": "全协议配方-mtnyemlz",
5011
- "productId": "pd-572c23f0",
5012
- "lineId": "ln-81865050",
5013
- "startedAt": "2026-09-05T05:40:12.225Z",
5014
- "endedAt": "2026-09-05T05:40:32.930Z",
5125
+ "id": "rr-cb2a9c2f",
5126
+ "recipeId": "rc-e82b9389",
5127
+ "recipeName": "插件配方-mto75hw0",
5128
+ "productId": "pd-b7c69be7",
5129
+ "lineId": "ln-68d3dc2d",
5130
+ "startedAt": "2026-09-05T09:45:11.763Z",
5131
+ "endedAt": "2026-09-05T09:45:22.566Z",
5015
5132
  "results": [
5016
5133
  {
5017
5134
  "templateRef": "dcw-temp-sp",
5018
- "nodeId": "dw-07787cf7",
5135
+ "nodeId": "dw-1a99b8ea",
5019
5136
  "ok": true,
5020
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5137
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5021
5138
  "value": 180
5022
5139
  }
5023
5140
  ],
5024
5141
  "paramsSnapshot": [
5025
5142
  {
5026
- "nodeId": "dw-07787cf7",
5143
+ "nodeId": "dw-1a99b8ea",
5027
5144
  "templateRef": "dcw-temp-sp",
5028
5145
  "value": 180,
5029
- "min": 176,
5030
- "max": 188
5146
+ "min": 150,
5147
+ "max": 200
5031
5148
  }
5032
5149
  ]
5033
5150
  },
5034
5151
  {
5035
- "id": "rr-6a0c3b60",
5036
- "recipeId": "rc-15b027a7",
5037
- "recipeName": "全协议配方-mtnynfph",
5038
- "productId": "pd-10cfc2b3",
5039
- "lineId": "ln-6a34fbc7",
5040
- "startedAt": "2026-09-05T05:47:26.453Z",
5152
+ "id": "rr-ecf1b5fb",
5153
+ "recipeId": "rc-57a42339",
5154
+ "recipeName": "pp-recipe",
5155
+ "productId": "pd-d547a376",
5156
+ "lineId": "ln-871ac52d",
5157
+ "startedAt": "2026-09-05T09:47:55.526Z",
5041
5158
  "endedAt": null,
5042
5159
  "results": [
5043
5160
  {
5044
5161
  "templateRef": "dcw-temp-sp",
5045
- "nodeId": "dw-8960e2f8",
5046
- "ok": false,
5047
- "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
5162
+ "nodeId": "dw-edbf2b95",
5163
+ "ok": true,
5164
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5048
5165
  "value": 180
5049
5166
  }
5050
5167
  ],
5051
5168
  "paramsSnapshot": [
5052
5169
  {
5053
- "nodeId": "dw-8960e2f8",
5170
+ "nodeId": "dw-edbf2b95",
5054
5171
  "templateRef": "dcw-temp-sp",
5055
5172
  "value": 180,
5056
- "min": 176,
5057
- "max": 188
5173
+ "min": 150,
5174
+ "max": 200
5058
5175
  }
5059
5176
  ]
5060
5177
  },
5061
5178
  {
5062
- "id": "rr-b7161a8a",
5063
- "recipeId": "rc-bc73d81d",
5064
- "recipeName": "全协议配方-mtnyz0bo",
5065
- "productId": "pd-daaacaea",
5066
- "lineId": "ln-8f28c295",
5067
- "startedAt": "2026-09-05T05:56:36.833Z",
5068
- "endedAt": "2026-09-05T05:58:40.961Z",
5179
+ "id": "rr-44976926",
5180
+ "recipeId": "rc-5ef215b3",
5181
+ "recipeName": "pp2-recipe",
5182
+ "productId": "pd-60668493",
5183
+ "lineId": "ln-fe3512a7",
5184
+ "startedAt": "2026-09-05T09:53:24.690Z",
5185
+ "endedAt": "2026-09-05T09:53:33.853Z",
5069
5186
  "results": [
5070
5187
  {
5071
5188
  "templateRef": "dcw-temp-sp",
5072
- "nodeId": "dw-ded0b84a",
5073
- "ok": false,
5074
- "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
5189
+ "nodeId": "dw-fb6b0f5a",
5190
+ "ok": true,
5191
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5075
5192
  "value": 180
5076
5193
  }
5077
5194
  ],
5078
5195
  "paramsSnapshot": [
5079
5196
  {
5080
- "nodeId": "dw-ded0b84a",
5197
+ "nodeId": "dw-fb6b0f5a",
5081
5198
  "templateRef": "dcw-temp-sp",
5082
5199
  "value": 180,
5083
- "min": 176,
5084
- "max": 188
5200
+ "min": 150,
5201
+ "max": 200
5085
5202
  }
5086
5203
  ]
5087
5204
  },
5088
5205
  {
5089
- "id": "rr-08f535dc",
5090
- "recipeId": "rc-2e7f586c",
5091
- "recipeName": "全协议配方-mtnzg090",
5092
- "productId": "pd-b9b15b64",
5093
- "lineId": "ln-419463e0",
5094
- "startedAt": "2026-09-05T06:09:36.931Z",
5095
- "endedAt": null,
5206
+ "id": "rr-bb6abea5",
5207
+ "recipeId": "rc-62231c1c",
5208
+ "recipeName": "插件配方-mto7gthj",
5209
+ "productId": "pd-ce27a82c",
5210
+ "lineId": "ln-96b92c18",
5211
+ "startedAt": "2026-09-05T09:53:58.816Z",
5212
+ "endedAt": "2026-09-05T09:54:09.729Z",
5096
5213
  "results": [
5097
5214
  {
5098
5215
  "templateRef": "dcw-temp-sp",
5099
- "nodeId": "dw-9f172fc2",
5100
- "ok": false,
5101
- "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
5216
+ "nodeId": "dw-e5fcf0a3",
5217
+ "ok": true,
5218
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5102
5219
  "value": 180
5103
5220
  }
5104
5221
  ],
5105
5222
  "paramsSnapshot": [
5106
5223
  {
5107
- "nodeId": "dw-9f172fc2",
5224
+ "nodeId": "dw-e5fcf0a3",
5108
5225
  "templateRef": "dcw-temp-sp",
5109
5226
  "value": 180,
5110
- "min": 176,
5111
- "max": 188
5227
+ "min": 150,
5228
+ "max": 200
5112
5229
  }
5113
5230
  ]
5114
5231
  },
5115
5232
  {
5116
- "id": "rr-09d52cc2",
5117
- "recipeId": "rc-93d38783",
5118
- "recipeName": "全协议配方-mtnzli8v",
5119
- "productId": "pd-5451cd24",
5120
- "lineId": "ln-2d4ae314",
5121
- "startedAt": "2026-09-05T06:13:58.602Z",
5122
- "endedAt": "2026-09-05T06:16:11.383Z",
5233
+ "id": "rr-c0498edd",
5234
+ "recipeId": "rc-299d17de",
5235
+ "recipeName": "tzc-recipe",
5236
+ "productId": "pd-e7a6099a",
5237
+ "lineId": "ln-bd67b10b",
5238
+ "startedAt": "2026-09-05T19:05:14.654+08:00",
5239
+ "endedAt": "2026-09-05T19:05:22.851+08:00",
5123
5240
  "results": [
5124
5241
  {
5125
5242
  "templateRef": "dcw-temp-sp",
5126
- "nodeId": "dw-c30656ec",
5243
+ "nodeId": "dw-db743eb4",
5127
5244
  "ok": true,
5128
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5245
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5129
5246
  "value": 180
5130
5247
  }
5131
5248
  ],
5132
5249
  "paramsSnapshot": [
5133
5250
  {
5134
- "nodeId": "dw-c30656ec",
5251
+ "nodeId": "dw-db743eb4",
5135
5252
  "templateRef": "dcw-temp-sp",
5136
5253
  "value": 180,
5137
- "min": 176,
5138
- "max": 188
5254
+ "min": 150,
5255
+ "max": 200
5139
5256
  }
5140
5257
  ]
5141
5258
  },
5142
5259
  {
5143
- "id": "rr-fd00b56d",
5144
- "recipeId": "rc-33609df2",
5145
- "recipeName": "全协议配方-mto01hxw",
5146
- "productId": "pd-d7d266f4",
5147
- "lineId": "ln-ab3281cb",
5148
- "startedAt": "2026-09-05T06:26:18.620Z",
5149
- "endedAt": "2026-09-05T06:28:31.351Z",
5260
+ "id": "rr-046c380b",
5261
+ "recipeId": "rc-3799921d",
5262
+ "recipeName": "cfg-recipe",
5263
+ "productId": "pd-3ffc5e11",
5264
+ "lineId": "ln-5318b12b",
5265
+ "startedAt": "2026-09-05T19:59:44.418+08:00",
5266
+ "endedAt": "2026-09-05T20:00:05.731+08:00",
5150
5267
  "results": [
5151
5268
  {
5152
5269
  "templateRef": "dcw-temp-sp",
5153
- "nodeId": "dw-553bf1fb",
5270
+ "nodeId": "dw-204b00c4",
5154
5271
  "ok": true,
5155
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5272
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5156
5273
  "value": 180
5157
5274
  }
5158
5275
  ],
5159
5276
  "paramsSnapshot": [
5160
5277
  {
5161
- "nodeId": "dw-553bf1fb",
5278
+ "nodeId": "dw-204b00c4",
5162
5279
  "templateRef": "dcw-temp-sp",
5163
5280
  "value": 180,
5164
- "min": 176,
5165
- "max": 188
5281
+ "min": 150,
5282
+ "max": 200
5166
5283
  }
5167
5284
  ]
5168
5285
  },
5169
5286
  {
5170
- "id": "rr-1bebca32",
5171
- "recipeId": "rc-de49bc7e",
5172
- "recipeName": "全协议配方-mto0h8o5",
5173
- "productId": "pd-07fbd119",
5174
- "lineId": "ln-8f14ebfc",
5175
- "startedAt": "2026-09-05T06:38:33.546Z",
5176
- "endedAt": "2026-09-05T06:40:46.349Z",
5287
+ "id": "rr-ae1a2022",
5288
+ "recipeId": "rc-7756484b",
5289
+ "recipeName": "cfg-recipe",
5290
+ "productId": "pd-36b00ed3",
5291
+ "lineId": "ln-07768b17",
5292
+ "startedAt": "2026-09-05T20:04:40.532+08:00",
5293
+ "endedAt": "2026-09-05T20:05:01.635+08:00",
5177
5294
  "results": [
5178
5295
  {
5179
5296
  "templateRef": "dcw-temp-sp",
5180
- "nodeId": "dw-8e07e4f3",
5297
+ "nodeId": "dw-2dcce3c7",
5181
5298
  "ok": true,
5182
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5299
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5183
5300
  "value": 180
5184
5301
  }
5185
5302
  ],
5186
5303
  "paramsSnapshot": [
5187
5304
  {
5188
- "nodeId": "dw-8e07e4f3",
5305
+ "nodeId": "dw-2dcce3c7",
5189
5306
  "templateRef": "dcw-temp-sp",
5190
5307
  "value": 180,
5191
- "min": 176,
5192
- "max": 188
5308
+ "min": 150,
5309
+ "max": 200
5193
5310
  }
5194
5311
  ]
5195
5312
  },
5196
5313
  {
5197
- "id": "rr-54b34bb5",
5198
- "recipeId": "rc-c6fd3e11",
5199
- "recipeName": "全协议配方-mto0m9es",
5200
- "productId": "pd-fa8c0b2d",
5201
- "lineId": "ln-d010bba3",
5202
- "startedAt": "2026-09-05T06:42:28.622Z",
5203
- "endedAt": "2026-09-05T06:44:29.232Z",
5314
+ "id": "rr-1809a3fb",
5315
+ "recipeId": "rc-69bd3ed5",
5316
+ "recipeName": "cfg-recipe",
5317
+ "productId": "pd-28fc247a",
5318
+ "lineId": "ln-f4bdf701",
5319
+ "startedAt": "2026-09-05T20:08:42.285+08:00",
5320
+ "endedAt": "2026-09-05T20:09:03.613+08:00",
5204
5321
  "results": [
5205
5322
  {
5206
5323
  "templateRef": "dcw-temp-sp",
5207
- "nodeId": "dw-96091e58",
5324
+ "nodeId": "dw-07cca4c7",
5208
5325
  "ok": true,
5209
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5326
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5210
5327
  "value": 180
5211
5328
  }
5212
5329
  ],
5213
5330
  "paramsSnapshot": [
5214
5331
  {
5215
- "nodeId": "dw-96091e58",
5332
+ "nodeId": "dw-07cca4c7",
5216
5333
  "templateRef": "dcw-temp-sp",
5217
5334
  "value": 180,
5218
- "min": 176,
5219
- "max": 188
5335
+ "min": 150,
5336
+ "max": 200
5220
5337
  }
5221
5338
  ]
5222
5339
  },
5223
5340
  {
5224
- "id": "rr-4e40cab0",
5225
- "recipeId": "rc-80195acf",
5226
- "recipeName": "全协议配方-mto113i2",
5227
- "productId": "pd-9e290ee1",
5228
- "lineId": "ln-c7668a8d",
5229
- "startedAt": "2026-09-05T06:54:01.584Z",
5230
- "endedAt": "2026-09-05T06:55:54.890Z",
5341
+ "id": "rr-548beb06",
5342
+ "recipeId": "rc-faba4567",
5343
+ "recipeName": "cfg-recipe",
5344
+ "productId": "pd-a136dbbf",
5345
+ "lineId": "ln-64931cf4",
5346
+ "startedAt": "2026-09-06T01:31:30.568+08:00",
5347
+ "endedAt": "2026-09-06T01:31:53.974+08:00",
5231
5348
  "results": [
5232
5349
  {
5233
5350
  "templateRef": "dcw-temp-sp",
5234
- "nodeId": "dw-ab89beb3",
5351
+ "nodeId": "dw-d1473c36",
5235
5352
  "ok": true,
5236
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5353
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5237
5354
  "value": 180
5238
5355
  }
5239
5356
  ],
5240
5357
  "paramsSnapshot": [
5241
5358
  {
5242
- "nodeId": "dw-ab89beb3",
5359
+ "nodeId": "dw-d1473c36",
5243
5360
  "templateRef": "dcw-temp-sp",
5244
5361
  "value": 180,
5245
- "min": 176,
5246
- "max": 188
5362
+ "min": 150,
5363
+ "max": 200
5247
5364
  }
5248
5365
  ]
5249
5366
  },
5250
5367
  {
5251
- "id": "rr-27719005",
5252
- "recipeId": "rc-4b542654",
5253
- "recipeName": "全协议配方-mto1771y",
5254
- "productId": "pd-9868366c",
5255
- "lineId": "ln-694c51f4",
5256
- "startedAt": "2026-09-05T07:14:22.918Z",
5257
- "endedAt": "2026-09-05T07:16:16.372Z",
5368
+ "id": "rr-d56d9e03",
5369
+ "recipeId": "rc-ded44765",
5370
+ "recipeName": "cfg-recipe",
5371
+ "productId": "pd-52746c22",
5372
+ "lineId": "ln-a0421b57",
5373
+ "startedAt": "2026-09-06T01:34:34.956+08:00",
5374
+ "endedAt": "2026-09-06T01:34:56.055+08:00",
5258
5375
  "results": [
5259
5376
  {
5260
5377
  "templateRef": "dcw-temp-sp",
5261
- "nodeId": "dw-4c6c6920",
5378
+ "nodeId": "dw-282271fd",
5262
5379
  "ok": true,
5263
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5380
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5264
5381
  "value": 180
5265
5382
  }
5266
5383
  ],
5267
5384
  "paramsSnapshot": [
5268
5385
  {
5269
- "nodeId": "dw-4c6c6920",
5386
+ "nodeId": "dw-282271fd",
5270
5387
  "templateRef": "dcw-temp-sp",
5271
5388
  "value": 180,
5272
- "min": 176,
5273
- "max": 188
5389
+ "min": 150,
5390
+ "max": 200
5274
5391
  }
5275
5392
  ]
5276
5393
  },
5277
5394
  {
5278
- "id": "rr-d667a896",
5279
- "recipeId": "rc-814248c6",
5280
- "recipeName": "runp3-recipe",
5281
- "productId": "pd-fd822802",
5282
- "lineId": "ln-3548f325",
5283
- "startedAt": "2026-09-05T07:23:51.972Z",
5284
- "endedAt": null,
5395
+ "id": "rr-284c0dbb",
5396
+ "recipeId": "rc-776dcb1e",
5397
+ "recipeName": "cfg-recipe",
5398
+ "productId": "pd-11d4b14d",
5399
+ "lineId": "ln-14bb98f1",
5400
+ "startedAt": "2026-09-06T01:36:55.763+08:00",
5401
+ "endedAt": "2026-09-06T01:37:16.885+08:00",
5285
5402
  "results": [
5286
5403
  {
5287
5404
  "templateRef": "dcw-temp-sp",
5288
- "nodeId": "dw-06590507",
5405
+ "nodeId": "dw-cd0ba7e6",
5289
5406
  "ok": true,
5290
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5407
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5291
5408
  "value": 180
5292
5409
  }
5293
5410
  ],
5294
5411
  "paramsSnapshot": [
5295
5412
  {
5296
- "nodeId": "dw-06590507",
5413
+ "nodeId": "dw-cd0ba7e6",
5297
5414
  "templateRef": "dcw-temp-sp",
5298
5415
  "value": 180,
5299
- "min": 176,
5300
- "max": 188
5416
+ "min": 150,
5417
+ "max": 200
5301
5418
  }
5302
5419
  ]
5303
5420
  },
5304
5421
  {
5305
- "id": "rr-3d8e141a",
5306
- "recipeId": "rc-98300208",
5307
- "recipeName": "全协议配方-mto2mf6i",
5308
- "productId": "pd-37e543f1",
5309
- "lineId": "ln-6502a1f3",
5310
- "startedAt": "2026-09-05T07:38:47.414Z",
5311
- "endedAt": "2026-09-05T07:40:41.683Z",
5422
+ "id": "rr-3552060e",
5423
+ "recipeId": "rc-4f9019f2",
5424
+ "recipeName": "cfg-recipe",
5425
+ "productId": "pd-fd48e9df",
5426
+ "lineId": "ln-a0ac0224",
5427
+ "startedAt": "2026-09-06T01:38:22.259+08:00",
5428
+ "endedAt": "2026-09-06T01:38:43.359+08:00",
5312
5429
  "results": [
5313
5430
  {
5314
5431
  "templateRef": "dcw-temp-sp",
5315
- "nodeId": "dw-ed7f4682",
5432
+ "nodeId": "dw-140e12fa",
5316
5433
  "ok": true,
5317
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5434
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5318
5435
  "value": 180
5319
5436
  }
5320
5437
  ],
5321
5438
  "paramsSnapshot": [
5322
5439
  {
5323
- "nodeId": "dw-ed7f4682",
5440
+ "nodeId": "dw-140e12fa",
5324
5441
  "templateRef": "dcw-temp-sp",
5325
5442
  "value": 180,
5326
- "min": 176,
5327
- "max": 188
5443
+ "min": 150,
5444
+ "max": 200
5328
5445
  }
5329
5446
  ]
5330
5447
  },
5331
5448
  {
5332
- "id": "rr-a41a21fd",
5333
- "recipeId": "rc-c362b721",
5334
- "recipeName": "全协议配方-mto2w44t",
5335
- "productId": "pd-4de49ca3",
5336
- "lineId": "ln-c3a7ba01",
5337
- "startedAt": "2026-09-05T07:46:23.423Z",
5338
- "endedAt": null,
5449
+ "id": "rr-a611ea91",
5450
+ "recipeId": "rc-023a55aa",
5451
+ "recipeName": "cfg-recipe",
5452
+ "productId": "pd-74361ea8",
5453
+ "lineId": "ln-cfb12b03",
5454
+ "startedAt": "2026-09-06T01:40:55.374+08:00",
5455
+ "endedAt": "2026-09-06T01:41:16.464+08:00",
5339
5456
  "results": [
5340
5457
  {
5341
5458
  "templateRef": "dcw-temp-sp",
5342
- "nodeId": "dw-5fdc7f6f",
5459
+ "nodeId": "dw-5316721a",
5343
5460
  "ok": true,
5344
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5461
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5345
5462
  "value": 180
5346
5463
  }
5347
5464
  ],
5348
5465
  "paramsSnapshot": [
5349
5466
  {
5350
- "nodeId": "dw-5fdc7f6f",
5467
+ "nodeId": "dw-5316721a",
5351
5468
  "templateRef": "dcw-temp-sp",
5352
5469
  "value": 180,
5353
- "min": 176,
5354
- "max": 188
5470
+ "min": 150,
5471
+ "max": 200
5355
5472
  }
5356
5473
  ]
5357
5474
  },
5358
5475
  {
5359
- "id": "rr-f5a55ecb",
5360
- "recipeId": "rc-6035701d",
5361
- "recipeName": "全协议配方-mto30yeb",
5362
- "productId": "pd-689555fc",
5363
- "lineId": "ln-c570b64e",
5364
- "startedAt": "2026-09-05T07:50:14.492Z",
5365
- "endedAt": "2026-09-05T07:52:08.752Z",
5476
+ "id": "rr-22845fb4",
5477
+ "recipeId": "rc-290402b0",
5478
+ "recipeName": "lx-recipe",
5479
+ "productId": "pd-b220f792",
5480
+ "lineId": "ln-f7f729e5",
5481
+ "startedAt": "2026-09-06T01:42:23.533+08:00",
5482
+ "endedAt": "2026-09-06T01:42:48.656+08:00",
5366
5483
  "results": [
5367
5484
  {
5368
5485
  "templateRef": "dcw-temp-sp",
5369
- "nodeId": "dw-d324afad",
5486
+ "nodeId": "dw-cb7b120b",
5370
5487
  "ok": true,
5371
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5488
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5372
5489
  "value": 180
5373
5490
  }
5374
5491
  ],
5375
5492
  "paramsSnapshot": [
5376
5493
  {
5377
- "nodeId": "dw-d324afad",
5494
+ "nodeId": "dw-cb7b120b",
5378
5495
  "templateRef": "dcw-temp-sp",
5379
5496
  "value": 180,
5380
- "min": 176,
5381
- "max": 188
5497
+ "min": 150,
5498
+ "max": 200
5382
5499
  }
5383
5500
  ]
5384
5501
  },
5385
5502
  {
5386
- "id": "rr-3da13dd0",
5387
- "recipeId": "rc-ddc06010",
5388
- "recipeName": "插件配方-mto3p7ny",
5389
- "productId": "pd-aa36f7ab",
5390
- "lineId": "ln-ab4024ff",
5391
- "startedAt": "2026-09-05T08:08:23.551Z",
5392
- "endedAt": "2026-09-05T08:08:34.411Z",
5503
+ "id": "rr-c1ce0809",
5504
+ "recipeId": "rc-6afdcfa0",
5505
+ "recipeName": "lx2-recipe",
5506
+ "productId": "pd-7c48a733",
5507
+ "lineId": "ln-49dcdd09",
5508
+ "startedAt": "2026-09-06T01:50:15.700+08:00",
5509
+ "endedAt": "2026-09-06T01:50:35.881+08:00",
5393
5510
  "results": [
5394
5511
  {
5395
5512
  "templateRef": "dcw-temp-sp",
5396
- "nodeId": "dw-511d0e81",
5513
+ "nodeId": "dw-588c9a0d",
5397
5514
  "ok": true,
5398
5515
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5399
5516
  "value": 180
@@ -5401,7 +5518,7 @@
5401
5518
  ],
5402
5519
  "paramsSnapshot": [
5403
5520
  {
5404
- "nodeId": "dw-511d0e81",
5521
+ "nodeId": "dw-588c9a0d",
5405
5522
  "templateRef": "dcw-temp-sp",
5406
5523
  "value": 180,
5407
5524
  "min": 150,
@@ -5410,25 +5527,25 @@
5410
5527
  ]
5411
5528
  },
5412
5529
  {
5413
- "id": "rr-ede96923",
5414
- "recipeId": "rc-137880a8",
5415
- "recipeName": "多引擎配方-mto47ec9",
5416
- "productId": "pd-7b6d4e2c",
5417
- "lineId": "ln-b2c3be6e",
5418
- "startedAt": "2026-09-05T08:23:06.417Z",
5419
- "endedAt": "2026-09-05T08:41:26.164Z",
5530
+ "id": "rr-d21c9e25",
5531
+ "recipeId": "rc-b9bd4d27",
5532
+ "recipeName": "lx3-recipe",
5533
+ "productId": "pd-dd794a60",
5534
+ "lineId": "ln-b3b799ac",
5535
+ "startedAt": "2026-09-06T01:54:41.085+08:00",
5536
+ "endedAt": "2026-09-06T01:55:01.211+08:00",
5420
5537
  "results": [
5421
5538
  {
5422
5539
  "templateRef": "dcw-temp-sp",
5423
- "nodeId": "dw-a470230d",
5540
+ "nodeId": "dw-0b88f9ed",
5424
5541
  "ok": true,
5425
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5542
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5426
5543
  "value": 180
5427
5544
  }
5428
5545
  ],
5429
5546
  "paramsSnapshot": [
5430
5547
  {
5431
- "nodeId": "dw-a470230d",
5548
+ "nodeId": "dw-0b88f9ed",
5432
5549
  "templateRef": "dcw-temp-sp",
5433
5550
  "value": 180,
5434
5551
  "min": 150,
@@ -5437,25 +5554,25 @@
5437
5554
  ]
5438
5555
  },
5439
5556
  {
5440
- "id": "rr-8c3cc9f7",
5441
- "recipeId": "rc-a01ee7c9",
5442
- "recipeName": "多引擎配方-mto4xd17",
5443
- "productId": "pd-ef246eba",
5444
- "lineId": "ln-190e7eef",
5445
- "startedAt": "2026-09-05T08:42:47.817Z",
5446
- "endedAt": "2026-09-05T09:02:01.764Z",
5557
+ "id": "rr-5ef4939d",
5558
+ "recipeId": "rc-b416314e",
5559
+ "recipeName": "lx4-recipe",
5560
+ "productId": "pd-b4d2819f",
5561
+ "lineId": "ln-ad49e7bb",
5562
+ "startedAt": "2026-09-06T02:00:59.114+08:00",
5563
+ "endedAt": "2026-09-06T02:01:17.256+08:00",
5447
5564
  "results": [
5448
5565
  {
5449
5566
  "templateRef": "dcw-temp-sp",
5450
- "nodeId": "dw-dc216d75",
5567
+ "nodeId": "dw-84ebc256",
5451
5568
  "ok": true,
5452
- "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5569
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5453
5570
  "value": 180
5454
5571
  }
5455
5572
  ],
5456
5573
  "paramsSnapshot": [
5457
5574
  {
5458
- "nodeId": "dw-dc216d75",
5575
+ "nodeId": "dw-84ebc256",
5459
5576
  "templateRef": "dcw-temp-sp",
5460
5577
  "value": 180,
5461
5578
  "min": 150,
@@ -5464,17 +5581,17 @@
5464
5581
  ]
5465
5582
  },
5466
5583
  {
5467
- "id": "rr-5ba7bd5b",
5468
- "recipeId": "rc-9b2255dc",
5469
- "recipeName": "间隔配方-mto6rqqa",
5470
- "productId": "pd-0e64bd2f",
5471
- "lineId": "ln-51fcb8ac",
5472
- "startedAt": "2026-09-05T09:34:20.925Z",
5473
- "endedAt": "2026-09-05T09:35:29.245Z",
5584
+ "id": "rr-8160355b",
5585
+ "recipeId": "rc-35dfc23d",
5586
+ "recipeName": "lx5-recipe",
5587
+ "productId": "pd-c787b400",
5588
+ "lineId": "ln-d285dce8",
5589
+ "startedAt": "2026-09-06T02:05:17.297+08:00",
5590
+ "endedAt": "2026-09-06T02:05:35.471+08:00",
5474
5591
  "results": [
5475
5592
  {
5476
5593
  "templateRef": "dcw-temp-sp",
5477
- "nodeId": "dw-0ed9deab",
5594
+ "nodeId": "dw-f87c592c",
5478
5595
  "ok": true,
5479
5596
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5480
5597
  "value": 180
@@ -5482,7 +5599,7 @@
5482
5599
  ],
5483
5600
  "paramsSnapshot": [
5484
5601
  {
5485
- "nodeId": "dw-0ed9deab",
5602
+ "nodeId": "dw-f87c592c",
5486
5603
  "templateRef": "dcw-temp-sp",
5487
5604
  "value": 180,
5488
5605
  "min": 150,
@@ -5491,17 +5608,17 @@
5491
5608
  ]
5492
5609
  },
5493
5610
  {
5494
- "id": "rr-7d24224e",
5495
- "recipeId": "rc-2e349c80",
5496
- "recipeName": "插件配方-mto6ysj1",
5497
- "productId": "pd-64a9d0b7",
5498
- "lineId": "ln-2e9272f7",
5499
- "startedAt": "2026-09-05T09:39:59.370Z",
5500
- "endedAt": "2026-09-05T09:40:10.153Z",
5611
+ "id": "rr-8da3aa3f",
5612
+ "recipeId": "rc-5508d345",
5613
+ "recipeName": "lx6-recipe",
5614
+ "productId": "pd-b265d280",
5615
+ "lineId": "ln-fd80849a",
5616
+ "startedAt": "2026-09-06T02:06:14.629+08:00",
5617
+ "endedAt": "2026-09-06T02:06:29.799+08:00",
5501
5618
  "results": [
5502
5619
  {
5503
5620
  "templateRef": "dcw-temp-sp",
5504
- "nodeId": "dw-37f5153e",
5621
+ "nodeId": "dw-ab1897d8",
5505
5622
  "ok": true,
5506
5623
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5507
5624
  "value": 180
@@ -5509,7 +5626,7 @@
5509
5626
  ],
5510
5627
  "paramsSnapshot": [
5511
5628
  {
5512
- "nodeId": "dw-37f5153e",
5629
+ "nodeId": "dw-ab1897d8",
5513
5630
  "templateRef": "dcw-temp-sp",
5514
5631
  "value": 180,
5515
5632
  "min": 150,
@@ -5518,17 +5635,17 @@
5518
5635
  ]
5519
5636
  },
5520
5637
  {
5521
- "id": "rr-55e35132",
5522
- "recipeId": "rc-4f3f66b1",
5523
- "recipeName": "插件配方-mto73j6f",
5524
- "productId": "pd-981b720a",
5525
- "lineId": "ln-98ac4967",
5526
- "startedAt": "2026-09-05T09:43:40.421Z",
5527
- "endedAt": "2026-09-05T09:43:51.246Z",
5638
+ "id": "rr-2fd40cd5",
5639
+ "recipeId": "rc-f0aa06cc",
5640
+ "recipeName": "dbg2-recipe",
5641
+ "productId": "pd-71604a52",
5642
+ "lineId": "ln-612648d3",
5643
+ "startedAt": "2026-09-06T02:19:22.194+08:00",
5644
+ "endedAt": "2026-09-06T02:19:34.352+08:00",
5528
5645
  "results": [
5529
5646
  {
5530
5647
  "templateRef": "dcw-temp-sp",
5531
- "nodeId": "dw-f9a5e01e",
5648
+ "nodeId": "dw-bb330d90",
5532
5649
  "ok": true,
5533
5650
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5534
5651
  "value": 180
@@ -5536,7 +5653,7 @@
5536
5653
  ],
5537
5654
  "paramsSnapshot": [
5538
5655
  {
5539
- "nodeId": "dw-f9a5e01e",
5656
+ "nodeId": "dw-bb330d90",
5540
5657
  "templateRef": "dcw-temp-sp",
5541
5658
  "value": 180,
5542
5659
  "min": 150,
@@ -5545,17 +5662,17 @@
5545
5662
  ]
5546
5663
  },
5547
5664
  {
5548
- "id": "rr-cb2a9c2f",
5549
- "recipeId": "rc-e82b9389",
5550
- "recipeName": "插件配方-mto75hw0",
5551
- "productId": "pd-b7c69be7",
5552
- "lineId": "ln-68d3dc2d",
5553
- "startedAt": "2026-09-05T09:45:11.763Z",
5554
- "endedAt": "2026-09-05T09:45:22.566Z",
5665
+ "id": "rr-d3ac8878",
5666
+ "recipeId": "rc-2a7b0def",
5667
+ "recipeName": "lx8-recipe",
5668
+ "productId": "pd-3adf854f",
5669
+ "lineId": "ln-1acc1a0c",
5670
+ "startedAt": "2026-09-06T02:22:23.209+08:00",
5671
+ "endedAt": null,
5555
5672
  "results": [
5556
5673
  {
5557
5674
  "templateRef": "dcw-temp-sp",
5558
- "nodeId": "dw-1a99b8ea",
5675
+ "nodeId": "dw-82b6f604",
5559
5676
  "ok": true,
5560
5677
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5561
5678
  "value": 180
@@ -5563,7 +5680,7 @@
5563
5680
  ],
5564
5681
  "paramsSnapshot": [
5565
5682
  {
5566
- "nodeId": "dw-1a99b8ea",
5683
+ "nodeId": "dw-82b6f604",
5567
5684
  "templateRef": "dcw-temp-sp",
5568
5685
  "value": 180,
5569
5686
  "min": 150,
@@ -5572,17 +5689,17 @@
5572
5689
  ]
5573
5690
  },
5574
5691
  {
5575
- "id": "rr-ecf1b5fb",
5576
- "recipeId": "rc-57a42339",
5577
- "recipeName": "pp-recipe",
5578
- "productId": "pd-d547a376",
5579
- "lineId": "ln-871ac52d",
5580
- "startedAt": "2026-09-05T09:47:55.526Z",
5692
+ "id": "rr-04594711",
5693
+ "recipeId": "rc-4c9d5135",
5694
+ "recipeName": "lx8-recipe",
5695
+ "productId": "pd-75752beb",
5696
+ "lineId": "ln-917490c1",
5697
+ "startedAt": "2026-09-06T02:24:50.582+08:00",
5581
5698
  "endedAt": null,
5582
5699
  "results": [
5583
5700
  {
5584
5701
  "templateRef": "dcw-temp-sp",
5585
- "nodeId": "dw-edbf2b95",
5702
+ "nodeId": "dw-64d896c9",
5586
5703
  "ok": true,
5587
5704
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5588
5705
  "value": 180
@@ -5590,7 +5707,7 @@
5590
5707
  ],
5591
5708
  "paramsSnapshot": [
5592
5709
  {
5593
- "nodeId": "dw-edbf2b95",
5710
+ "nodeId": "dw-64d896c9",
5594
5711
  "templateRef": "dcw-temp-sp",
5595
5712
  "value": 180,
5596
5713
  "min": 150,
@@ -5599,17 +5716,17 @@
5599
5716
  ]
5600
5717
  },
5601
5718
  {
5602
- "id": "rr-44976926",
5603
- "recipeId": "rc-5ef215b3",
5604
- "recipeName": "pp2-recipe",
5605
- "productId": "pd-60668493",
5606
- "lineId": "ln-fe3512a7",
5607
- "startedAt": "2026-09-05T09:53:24.690Z",
5608
- "endedAt": "2026-09-05T09:53:33.853Z",
5719
+ "id": "rr-817ccaa3",
5720
+ "recipeId": "rc-ad1ee82f",
5721
+ "recipeName": "cfg-recipe",
5722
+ "productId": "pd-1f9917a5",
5723
+ "lineId": "ln-12d153a2",
5724
+ "startedAt": "2026-09-06T02:26:09.240+08:00",
5725
+ "endedAt": "2026-09-06T02:26:30.492+08:00",
5609
5726
  "results": [
5610
5727
  {
5611
5728
  "templateRef": "dcw-temp-sp",
5612
- "nodeId": "dw-fb6b0f5a",
5729
+ "nodeId": "dw-4416bdb1",
5613
5730
  "ok": true,
5614
5731
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5615
5732
  "value": 180
@@ -5617,7 +5734,7 @@
5617
5734
  ],
5618
5735
  "paramsSnapshot": [
5619
5736
  {
5620
- "nodeId": "dw-fb6b0f5a",
5737
+ "nodeId": "dw-4416bdb1",
5621
5738
  "templateRef": "dcw-temp-sp",
5622
5739
  "value": 180,
5623
5740
  "min": 150,
@@ -5626,17 +5743,17 @@
5626
5743
  ]
5627
5744
  },
5628
5745
  {
5629
- "id": "rr-bb6abea5",
5630
- "recipeId": "rc-62231c1c",
5631
- "recipeName": "插件配方-mto7gthj",
5632
- "productId": "pd-ce27a82c",
5633
- "lineId": "ln-96b92c18",
5634
- "startedAt": "2026-09-05T09:53:58.816Z",
5635
- "endedAt": "2026-09-05T09:54:09.729Z",
5746
+ "id": "rr-0580799c",
5747
+ "recipeId": "rc-910b9a3d",
5748
+ "recipeName": "cfg-recipe",
5749
+ "productId": "pd-16138f8b",
5750
+ "lineId": "ln-3d621ecf",
5751
+ "startedAt": "2026-09-06T02:29:04.474+08:00",
5752
+ "endedAt": "2026-09-06T02:29:25.790+08:00",
5636
5753
  "results": [
5637
5754
  {
5638
5755
  "templateRef": "dcw-temp-sp",
5639
- "nodeId": "dw-e5fcf0a3",
5756
+ "nodeId": "dw-f1b8aa79",
5640
5757
  "ok": true,
5641
5758
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5642
5759
  "value": 180
@@ -5644,7 +5761,7 @@
5644
5761
  ],
5645
5762
  "paramsSnapshot": [
5646
5763
  {
5647
- "nodeId": "dw-e5fcf0a3",
5764
+ "nodeId": "dw-f1b8aa79",
5648
5765
  "templateRef": "dcw-temp-sp",
5649
5766
  "value": 180,
5650
5767
  "min": 150,
@@ -5653,17 +5770,17 @@
5653
5770
  ]
5654
5771
  },
5655
5772
  {
5656
- "id": "rr-c0498edd",
5657
- "recipeId": "rc-299d17de",
5658
- "recipeName": "tzc-recipe",
5659
- "productId": "pd-e7a6099a",
5660
- "lineId": "ln-bd67b10b",
5661
- "startedAt": "2026-09-05T19:05:14.654+08:00",
5662
- "endedAt": "2026-09-05T19:05:22.851+08:00",
5773
+ "id": "rr-428a0178",
5774
+ "recipeId": "rc-bdc5f21e",
5775
+ "recipeName": "cfg-recipe",
5776
+ "productId": "pd-15ba9244",
5777
+ "lineId": "ln-139f04d6",
5778
+ "startedAt": "2026-09-06T02:40:12.876+08:00",
5779
+ "endedAt": "2026-09-06T02:40:34.157+08:00",
5663
5780
  "results": [
5664
5781
  {
5665
5782
  "templateRef": "dcw-temp-sp",
5666
- "nodeId": "dw-db743eb4",
5783
+ "nodeId": "dw-91f1cac6",
5667
5784
  "ok": true,
5668
5785
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5669
5786
  "value": 180
@@ -5671,7 +5788,7 @@
5671
5788
  ],
5672
5789
  "paramsSnapshot": [
5673
5790
  {
5674
- "nodeId": "dw-db743eb4",
5791
+ "nodeId": "dw-91f1cac6",
5675
5792
  "templateRef": "dcw-temp-sp",
5676
5793
  "value": 180,
5677
5794
  "min": 150,
@@ -5680,17 +5797,17 @@
5680
5797
  ]
5681
5798
  },
5682
5799
  {
5683
- "id": "rr-046c380b",
5684
- "recipeId": "rc-3799921d",
5800
+ "id": "rr-5a232c33",
5801
+ "recipeId": "rc-82ef3729",
5685
5802
  "recipeName": "cfg-recipe",
5686
- "productId": "pd-3ffc5e11",
5687
- "lineId": "ln-5318b12b",
5688
- "startedAt": "2026-09-05T19:59:44.418+08:00",
5689
- "endedAt": "2026-09-05T20:00:05.731+08:00",
5803
+ "productId": "pd-44a14b9d",
5804
+ "lineId": "ln-e9e17df2",
5805
+ "startedAt": "2026-09-06T02:53:10.789+08:00",
5806
+ "endedAt": "2026-09-06T02:53:32.080+08:00",
5690
5807
  "results": [
5691
5808
  {
5692
5809
  "templateRef": "dcw-temp-sp",
5693
- "nodeId": "dw-204b00c4",
5810
+ "nodeId": "dw-a4ac3308",
5694
5811
  "ok": true,
5695
5812
  "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5696
5813
  "value": 180
@@ -5698,7 +5815,7 @@
5698
5815
  ],
5699
5816
  "paramsSnapshot": [
5700
5817
  {
5701
- "nodeId": "dw-204b00c4",
5818
+ "nodeId": "dw-a4ac3308",
5702
5819
  "templateRef": "dcw-temp-sp",
5703
5820
  "value": 180,
5704
5821
  "min": 150,
@@ -5707,56 +5824,56 @@
5707
5824
  ]
5708
5825
  },
5709
5826
  {
5710
- "id": "rr-ae1a2022",
5711
- "recipeId": "rc-7756484b",
5712
- "recipeName": "cfg-recipe",
5713
- "productId": "pd-36b00ed3",
5714
- "lineId": "ln-07768b17",
5715
- "startedAt": "2026-09-05T20:04:40.532+08:00",
5716
- "endedAt": "2026-09-05T20:05:01.635+08:00",
5827
+ "id": "rr-3e459205",
5828
+ "recipeId": "rc-7ff865b1",
5829
+ "recipeName": "全协议配方-mtpbat7b",
5830
+ "productId": "pd-13d7d912",
5831
+ "lineId": "ln-c371bc70",
5832
+ "startedAt": "2026-09-06T12:44:52.291+08:00",
5833
+ "endedAt": "2026-09-06T12:47:03.278+08:00",
5717
5834
  "results": [
5718
5835
  {
5719
5836
  "templateRef": "dcw-temp-sp",
5720
- "nodeId": "dw-2dcce3c7",
5837
+ "nodeId": "dw-e7b38428",
5721
5838
  "ok": true,
5722
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5839
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5723
5840
  "value": 180
5724
5841
  }
5725
5842
  ],
5726
5843
  "paramsSnapshot": [
5727
5844
  {
5728
- "nodeId": "dw-2dcce3c7",
5845
+ "nodeId": "dw-e7b38428",
5729
5846
  "templateRef": "dcw-temp-sp",
5730
5847
  "value": 180,
5731
- "min": 150,
5732
- "max": 200
5848
+ "min": 176,
5849
+ "max": 188
5733
5850
  }
5734
5851
  ]
5735
5852
  },
5736
5853
  {
5737
- "id": "rr-1809a3fb",
5738
- "recipeId": "rc-69bd3ed5",
5739
- "recipeName": "cfg-recipe",
5740
- "productId": "pd-28fc247a",
5741
- "lineId": "ln-f4bdf701",
5742
- "startedAt": "2026-09-05T20:08:42.285+08:00",
5743
- "endedAt": "2026-09-05T20:09:03.613+08:00",
5854
+ "id": "rr-4ec227dd",
5855
+ "recipeId": "rc-cbf9faee",
5856
+ "recipeName": "全协议配方-mtpd7kfb",
5857
+ "productId": "pd-d20c4164",
5858
+ "lineId": "ln-ec0592b7",
5859
+ "startedAt": "2026-09-06T13:33:16.792+08:00",
5860
+ "endedAt": "2026-09-06T13:35:10.900+08:00",
5744
5861
  "results": [
5745
5862
  {
5746
5863
  "templateRef": "dcw-temp-sp",
5747
- "nodeId": "dw-07cca4c7",
5864
+ "nodeId": "dw-55d2256a",
5748
5865
  "ok": true,
5749
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5866
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
5750
5867
  "value": 180
5751
5868
  }
5752
5869
  ],
5753
5870
  "paramsSnapshot": [
5754
5871
  {
5755
- "nodeId": "dw-07cca4c7",
5872
+ "nodeId": "dw-55d2256a",
5756
5873
  "templateRef": "dcw-temp-sp",
5757
5874
  "value": 180,
5758
- "min": 150,
5759
- "max": 200
5875
+ "min": 176,
5876
+ "max": 188
5760
5877
  }
5761
5878
  ]
5762
5879
  }