agentworkshop 0.7.3 → 0.7.4

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 (127) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B9Yie5HN.js +2 -0
  3. package/.output/public/_nuxt/CN7Zh8GQ.js +1 -0
  4. package/.output/public/_nuxt/CdSgfcYR.js +1 -0
  5. package/.output/public/_nuxt/CdfAP_IH2.js +1 -0
  6. package/.output/public/_nuxt/ChnfyQHz.js +1 -0
  7. package/.output/public/_nuxt/{BkKYf8xY.js → CyygA0q4.js} +4 -4
  8. package/.output/public/_nuxt/{Bz40vyZS.js → DFnGFEav.js} +7 -7
  9. package/.output/public/_nuxt/Xaf_HIR3.js +1 -0
  10. package/.output/public/_nuxt/ZugRk0CM2.js +4 -0
  11. package/.output/public/_nuxt/builds/latest.json +1 -1
  12. package/.output/public/_nuxt/builds/meta/55c10854-ee0e-4be4-924b-a1b0e100fe11.json +1 -0
  13. package/.output/public/_nuxt/{default.iGJy9dP-.css → default.D17kXlD6.css} +1 -1
  14. package/.output/public/_nuxt/monitor.CmwpEUCI.css +1 -0
  15. package/.output/public/_nuxt/yIKY_V1P.js +1 -0
  16. package/.output/server/chunks/_/nitro.mjs +1131 -920
  17. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  18. package/.output/server/chunks/build/{TownView-BkHxMiwZ.mjs → TownView-Bl8Gkcxi.mjs} +3 -3
  19. package/.output/server/chunks/build/{TownView-BkHxMiwZ.mjs.map → TownView-Bl8Gkcxi.mjs.map} +1 -1
  20. package/.output/server/chunks/build/{_id_-Bna1_JuB.mjs → _id_-CWLFGZjV.mjs} +2 -2
  21. package/.output/server/chunks/build/{_id_-Bna1_JuB.mjs.map → _id_-CWLFGZjV.mjs.map} +1 -1
  22. package/.output/server/chunks/build/_id_-GnRJPykX.mjs +1 -1
  23. package/.output/server/chunks/build/{_wsId_-CzLDGT_V.mjs → _wsId_-BhQMjyHG.mjs} +3 -4
  24. package/.output/server/chunks/build/{_wsId_-CzLDGT_V.mjs.map → _wsId_-BhQMjyHG.mjs.map} +1 -1
  25. package/.output/server/chunks/build/{daq-CmeM4u5u.mjs → daq-BOgpn9sl.mjs} +4 -5
  26. package/.output/server/chunks/build/daq-BOgpn9sl.mjs.map +1 -0
  27. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs +1 -1
  28. package/.output/server/chunks/build/{default-Dt6xLdpd.mjs → default-CKJWhkot.mjs} +60 -17
  29. package/.output/server/chunks/build/{default-Dt6xLdpd.mjs.map → default-CKJWhkot.mjs.map} +1 -1
  30. package/.output/server/chunks/build/{logs-CUQt1z7D.mjs → logs-Dyk0I2I9.mjs} +3 -4
  31. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs.map +1 -0
  32. package/.output/server/chunks/build/{monitor-yNoV98rf.mjs → monitor-KW8WLOJd.mjs} +34 -33
  33. package/.output/server/chunks/build/{monitor-yNoV98rf.mjs.map → monitor-KW8WLOJd.mjs.map} +1 -1
  34. package/.output/server/chunks/build/{town-BN4vQPb8.mjs → town-_4tEEEVW.mjs} +3 -4
  35. package/.output/server/chunks/build/town-_4tEEEVW.mjs.map +1 -0
  36. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs +1 -1
  37. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs +1 -1
  38. package/.output/server/chunks/build/{useWorkshopWs-xcdeiSmJ.mjs → useWorkshopWs-B3j5wIAK.mjs} +177 -3
  39. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs.map +1 -0
  40. package/.output/server/chunks/build/{workshop-CLhwe5eo.mjs → workshop-k0XZTFKg.mjs} +2 -3
  41. package/.output/server/chunks/build/workshop-k0XZTFKg.mjs.map +1 -0
  42. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  43. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  44. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +32 -0
  45. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -0
  46. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +56 -0
  47. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -0
  48. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  49. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  50. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  51. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  52. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  53. package/.output/server/chunks/routes/renderer.mjs +2 -2
  54. package/.output/server/chunks/virtual/entry.mjs +17 -11
  55. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  56. package/.output/server/package.json +1 -1
  57. package/README.md +435 -434
  58. package/app/components/AppHeader.vue +138 -0
  59. package/app/composables/workshop/useWorkshopWs.ts +4 -0
  60. package/app/pages/monitor.vue +17 -1
  61. package/app/stores/workshop/hitl.ts +80 -0
  62. package/bin/aw.mjs +0 -0
  63. package/cli/commands/tui.mjs +19 -0
  64. package/config.yml +134 -134
  65. package/docs/tui.md +43 -0
  66. package/i18n/locales/en.ts +3 -0
  67. package/i18n/locales/zh-CN.ts +3 -0
  68. package/package.json +140 -144
  69. package/scripts/_spike-pitui.mjs +116 -0
  70. package/scripts/e2e-hitl-live.mjs +323 -0
  71. package/scripts/e2e-line-live.mjs +144 -0
  72. package/scripts/test-hitl-registry.ts +112 -0
  73. package/scripts/test-tui-commands.mjs +131 -0
  74. package/scripts/test-tui-reducers.mjs +72 -0
  75. package/scripts/tsconfig.json +14 -0
  76. package/scripts/tui-smoke.mjs +91 -0
  77. package/server/api/workshop/hitl/pending.get.ts +28 -0
  78. package/server/api/workshop/hitl/respond.post.ts +67 -0
  79. package/server/api/workshop/ws.ts +30 -1
  80. package/server/data/daqs.json +39 -17
  81. package/server/data/dcw-lines.json +14 -0
  82. package/server/data/dcw-products.json +35 -0
  83. package/server/data/dcw-recipes.json +140 -0
  84. package/server/data/dcw-rollback.json +111 -1
  85. package/server/data/dcw-runs.json +135 -90
  86. package/server/data/dcw-writes.json +120 -0
  87. package/server/data/dcws.json +400 -275
  88. package/server/data/line-runs.json +11 -1
  89. package/server/plugins/workshop.ts +7 -0
  90. package/server/services/workshop/agents/harness-terminal.ts +92 -25
  91. package/server/services/workshop/agents/hitl-registry.ts +181 -0
  92. package/server/services/workshop/agents/tool-approvals.ts +15 -0
  93. package/server/services/workshop/scene-events.ts +19 -9
  94. package/shared/workshop-protocol.ts +37 -0
  95. package/tui/README.md +65 -0
  96. package/tui/aw-tui.mjs +356 -0
  97. package/tui/commands/index.mjs +250 -0
  98. package/tui/components/chat-log.mjs +42 -0
  99. package/tui/components/hitl-card.mjs +36 -0
  100. package/tui/components/monitor-pane.mjs +39 -0
  101. package/tui/components/root.mjs +53 -0
  102. package/tui/components/status-bar.mjs +29 -0
  103. package/tui/lib/api.mjs +82 -0
  104. package/tui/lib/config.mjs +58 -0
  105. package/tui/lib/reducers.mjs +218 -0
  106. package/tui/lib/state.mjs +80 -0
  107. package/tui/lib/virtual-terminal.mjs +48 -0
  108. package/tui/lib/ws.mjs +124 -0
  109. package/tui/theme.mjs +38 -0
  110. package/.output/public/_nuxt/B7V9IfTL.js +0 -1
  111. package/.output/public/_nuxt/BE5QyG5J2.js +0 -1
  112. package/.output/public/_nuxt/BuKI8z-5.js +0 -1
  113. package/.output/public/_nuxt/D0C5Q0di.js +0 -1
  114. package/.output/public/_nuxt/DC-QMEk1.js +0 -2
  115. package/.output/public/_nuxt/DEkQ0qQ02.js +0 -1
  116. package/.output/public/_nuxt/builds/meta/c6c01cdd-762e-4fb8-86e7-753c5185b856.json +0 -1
  117. package/.output/public/_nuxt/dt2tKE95.js +0 -4
  118. package/.output/public/_nuxt/i_MKObHo.js +0 -1
  119. package/.output/public/_nuxt/monitor.41fCD6TB.css +0 -1
  120. package/.output/public/_nuxt/tpDMVY5w.js +0 -1
  121. package/.output/server/chunks/build/connection-Dc0fn6yd.mjs +0 -120
  122. package/.output/server/chunks/build/connection-Dc0fn6yd.mjs.map +0 -1
  123. package/.output/server/chunks/build/daq-CmeM4u5u.mjs.map +0 -1
  124. package/.output/server/chunks/build/logs-CUQt1z7D.mjs.map +0 -1
  125. package/.output/server/chunks/build/town-BN4vQPb8.mjs.map +0 -1
  126. package/.output/server/chunks/build/useWorkshopWs-xcdeiSmJ.mjs.map +0 -1
  127. package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +0 -1
@@ -17,9 +17,9 @@
17
17
  "posZ": 1360,
18
18
  "lineId": "ln-af002514",
19
19
  "value": 182,
20
- "readValue": null,
21
- "lastReadAt": "2026-09-03T17:17:23.490Z",
22
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
20
+ "readValue": 182,
21
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
22
+ "lastReadError": null,
23
23
  "lastAckAt": "2026-09-03T11:18:01.215Z",
24
24
  "lastWriteAt": "2026-09-03T11:18:01.215Z",
25
25
  "state": "ok",
@@ -42,9 +42,9 @@
42
42
  "driverConfig": {},
43
43
  "lineId": "ln-17b2d0ae",
44
44
  "value": 162,
45
- "readValue": null,
46
- "lastReadAt": "2026-09-03T17:17:23.490Z",
47
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
45
+ "readValue": 182,
46
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
47
+ "lastReadError": null,
48
48
  "lastAckAt": "2026-08-30T10:04:50.179Z",
49
49
  "lastWriteAt": "2026-08-30T10:04:50.179Z",
50
50
  "state": "idle",
@@ -69,9 +69,9 @@
69
69
  "posZ": 1360,
70
70
  "lineId": "ln-af002514",
71
71
  "value": 0.92,
72
- "readValue": null,
73
- "lastReadAt": "2026-09-03T17:17:23.490Z",
74
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
72
+ "readValue": 182,
73
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
74
+ "lastReadError": null,
75
75
  "lastAckAt": "2026-09-03T11:18:01.287Z",
76
76
  "lastWriteAt": "2026-09-03T11:18:01.287Z",
77
77
  "state": "ok",
@@ -94,9 +94,9 @@
94
94
  "driverConfig": {},
95
95
  "lineId": "ln-9569b340",
96
96
  "value": 182,
97
- "readValue": null,
98
- "lastReadAt": "2026-09-03T17:17:23.490Z",
99
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
97
+ "readValue": 182,
98
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
99
+ "lastReadError": null,
100
100
  "lastAckAt": "2026-08-29T04:36:21.159Z",
101
101
  "lastWriteAt": "2026-08-29T04:36:21.159Z",
102
102
  "state": "idle",
@@ -119,9 +119,9 @@
119
119
  "driverConfig": {},
120
120
  "lineId": "ln-52abf49b",
121
121
  "value": 182,
122
- "readValue": null,
123
- "lastReadAt": "2026-09-03T17:17:23.490Z",
124
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
122
+ "readValue": 182,
123
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
124
+ "lastReadError": null,
125
125
  "lastAckAt": "2026-08-29T04:37:32.352Z",
126
126
  "lastWriteAt": "2026-08-29T04:37:32.352Z",
127
127
  "state": "idle",
@@ -156,7 +156,7 @@
156
156
  "lineId": "ln-6a48c16d",
157
157
  "value": 182,
158
158
  "readValue": 150.1,
159
- "lastReadAt": "2026-09-03T17:17:23.490Z",
159
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
160
160
  "lastReadError": null,
161
161
  "lastAckAt": "2026-08-29T13:16:25.564Z",
162
162
  "lastWriteAt": "2026-08-29T13:16:25.564Z",
@@ -192,7 +192,7 @@
192
192
  "lineId": "ln-feef6e4d",
193
193
  "value": 182,
194
194
  "readValue": 150.1,
195
- "lastReadAt": "2026-09-03T17:17:23.490Z",
195
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
196
196
  "lastReadError": null,
197
197
  "lastAckAt": "2026-08-29T14:12:02.609Z",
198
198
  "lastWriteAt": "2026-08-31T14:26:24.124Z",
@@ -229,7 +229,7 @@
229
229
  "semantics": "PROBE-SEM-7741:熔体温度决定塑化均化质量,波动超过4℃将导致制品内应力超标",
230
230
  "value": 180,
231
231
  "readValue": 150.1,
232
- "lastReadAt": "2026-09-03T17:17:23.490Z",
232
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
233
233
  "lastReadError": null,
234
234
  "lastAckAt": "2026-08-29T16:55:05.852Z",
235
235
  "lastWriteAt": "2026-08-29T16:55:05.852Z",
@@ -253,9 +253,9 @@
253
253
  "driverConfig": {},
254
254
  "lineId": "",
255
255
  "value": 180,
256
- "readValue": null,
257
- "lastReadAt": "2026-09-03T17:17:23.490Z",
258
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
256
+ "readValue": 182,
257
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
258
+ "lastReadError": null,
259
259
  "lastAckAt": "2026-08-30T08:35:56.489Z",
260
260
  "lastWriteAt": "2026-08-30T08:35:56.489Z",
261
261
  "state": "idle",
@@ -290,7 +290,7 @@
290
290
  "lineId": "",
291
291
  "value": 175,
292
292
  "readValue": 150.1,
293
- "lastReadAt": "2026-09-03T17:17:23.490Z",
293
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
294
294
  "lastReadError": null,
295
295
  "lastAckAt": "2026-08-30T08:35:56.720Z",
296
296
  "lastWriteAt": "2026-08-30T08:35:56.720Z",
@@ -314,9 +314,9 @@
314
314
  "driverConfig": {},
315
315
  "lineId": "",
316
316
  "value": null,
317
- "readValue": null,
318
- "lastReadAt": "2026-09-03T17:17:23.490Z",
319
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
317
+ "readValue": 182,
318
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
319
+ "lastReadError": null,
320
320
  "lastAckAt": null,
321
321
  "lastWriteAt": null,
322
322
  "state": "idle",
@@ -339,9 +339,9 @@
339
339
  "driverConfig": {},
340
340
  "lineId": "",
341
341
  "value": 180,
342
- "readValue": null,
343
- "lastReadAt": "2026-09-03T17:17:23.490Z",
344
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
342
+ "readValue": 182,
343
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
344
+ "lastReadError": null,
345
345
  "lastAckAt": "2026-08-30T08:40:09.061Z",
346
346
  "lastWriteAt": "2026-08-30T08:40:09.061Z",
347
347
  "state": "idle",
@@ -376,7 +376,7 @@
376
376
  "lineId": "",
377
377
  "value": 175,
378
378
  "readValue": 150.1,
379
- "lastReadAt": "2026-09-03T17:17:23.490Z",
379
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
380
380
  "lastReadError": null,
381
381
  "lastAckAt": "2026-08-30T08:40:09.232Z",
382
382
  "lastWriteAt": "2026-08-30T08:40:09.232Z",
@@ -400,9 +400,9 @@
400
400
  "driverConfig": {},
401
401
  "lineId": "",
402
402
  "value": null,
403
- "readValue": null,
404
- "lastReadAt": "2026-09-03T17:17:23.490Z",
405
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
403
+ "readValue": 182,
404
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
405
+ "lastReadError": null,
406
406
  "lastAckAt": null,
407
407
  "lastWriteAt": null,
408
408
  "state": "idle",
@@ -437,7 +437,7 @@
437
437
  "lineId": "ln-af002514",
438
438
  "value": 180,
439
439
  "readValue": 150.1,
440
- "lastReadAt": "2026-09-03T17:17:23.490Z",
440
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
441
441
  "lastReadError": null,
442
442
  "lastAckAt": "2026-08-31T04:09:38.997Z",
443
443
  "lastWriteAt": "2026-08-31T04:09:38.997Z",
@@ -461,9 +461,9 @@
461
461
  "driverConfig": {},
462
462
  "lineId": "ln-3aff4d75",
463
463
  "value": 182,
464
- "readValue": null,
465
- "lastReadAt": "2026-09-03T17:17:23.490Z",
466
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
464
+ "readValue": 182,
465
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
466
+ "lastReadError": null,
467
467
  "lastAckAt": "2026-08-31T15:03:29.913Z",
468
468
  "lastWriteAt": "2026-08-31T15:03:29.913Z",
469
469
  "state": "ok",
@@ -486,9 +486,9 @@
486
486
  "driverConfig": {},
487
487
  "lineId": "ln-427909b2",
488
488
  "value": 179,
489
- "readValue": null,
490
- "lastReadAt": "2026-09-03T17:17:23.490Z",
491
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
489
+ "readValue": 182,
490
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
491
+ "lastReadError": null,
492
492
  "lastAckAt": "2026-08-31T16:15:59.857Z",
493
493
  "lastWriteAt": "2026-08-31T16:15:59.857Z",
494
494
  "state": "ok",
@@ -511,9 +511,9 @@
511
511
  "driverConfig": {},
512
512
  "lineId": "ln-427909b2",
513
513
  "value": 173,
514
- "readValue": null,
515
- "lastReadAt": "2026-09-03T17:17:23.490Z",
516
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
514
+ "readValue": 182,
515
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
516
+ "lastReadError": null,
517
517
  "lastAckAt": "2026-08-31T16:16:00.128Z",
518
518
  "lastWriteAt": "2026-08-31T16:16:00.128Z",
519
519
  "state": "ok",
@@ -536,9 +536,9 @@
536
536
  "driverConfig": {},
537
537
  "lineId": "ln-29c185e7",
538
538
  "value": 182,
539
- "readValue": null,
540
- "lastReadAt": "2026-09-03T17:17:23.490Z",
541
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
539
+ "readValue": 182,
540
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
541
+ "lastReadError": null,
542
542
  "lastAckAt": "2026-08-31T16:20:13.708Z",
543
543
  "lastWriteAt": "2026-08-31T16:20:13.708Z",
544
544
  "state": "ok",
@@ -561,9 +561,9 @@
561
561
  "driverConfig": {},
562
562
  "lineId": "ln-29c185e7",
563
563
  "value": 320,
564
- "readValue": null,
565
- "lastReadAt": "2026-09-03T17:17:23.490Z",
566
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
564
+ "readValue": 182,
565
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
566
+ "lastReadError": null,
567
567
  "lastAckAt": "2026-08-31T16:20:13.858Z",
568
568
  "lastWriteAt": "2026-08-31T16:20:13.858Z",
569
569
  "state": "ok",
@@ -586,9 +586,9 @@
586
586
  "driverConfig": {},
587
587
  "lineId": "ln-d41a0d5e",
588
588
  "value": 175,
589
- "readValue": null,
590
- "lastReadAt": "2026-09-03T17:17:23.490Z",
591
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
589
+ "readValue": 182,
590
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
591
+ "lastReadError": null,
592
592
  "lastAckAt": "2026-08-31T16:22:50.138Z",
593
593
  "lastWriteAt": "2026-08-31T16:22:50.138Z",
594
594
  "state": "ok",
@@ -611,9 +611,9 @@
611
611
  "driverConfig": {},
612
612
  "lineId": "ln-d41a0d5e",
613
613
  "value": 173,
614
- "readValue": null,
615
- "lastReadAt": "2026-09-03T17:17:23.490Z",
616
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
614
+ "readValue": 182,
615
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
616
+ "lastReadError": null,
617
617
  "lastAckAt": "2026-08-31T16:22:49.717Z",
618
618
  "lastWriteAt": "2026-08-31T16:22:49.717Z",
619
619
  "state": "ok",
@@ -636,9 +636,9 @@
636
636
  "driverConfig": {},
637
637
  "lineId": "ln-4d38b02c",
638
638
  "value": 176,
639
- "readValue": null,
640
- "lastReadAt": "2026-09-03T17:17:23.490Z",
641
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
639
+ "readValue": 182,
640
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
641
+ "lastReadError": null,
642
642
  "lastAckAt": "2026-08-31T16:23:16.771Z",
643
643
  "lastWriteAt": "2026-08-31T16:23:16.771Z",
644
644
  "state": "ok",
@@ -661,9 +661,9 @@
661
661
  "driverConfig": {},
662
662
  "lineId": "ln-2d1adacd",
663
663
  "value": 175,
664
- "readValue": null,
665
- "lastReadAt": "2026-09-03T17:17:23.490Z",
666
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
664
+ "readValue": 182,
665
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
666
+ "lastReadError": null,
667
667
  "lastAckAt": "2026-08-31T16:24:30.386Z",
668
668
  "lastWriteAt": "2026-08-31T16:24:30.386Z",
669
669
  "state": "ok",
@@ -686,9 +686,9 @@
686
686
  "driverConfig": {},
687
687
  "lineId": "ln-2d1adacd",
688
688
  "value": 173,
689
- "readValue": null,
690
- "lastReadAt": "2026-09-03T17:17:23.490Z",
691
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
689
+ "readValue": 182,
690
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
691
+ "lastReadError": null,
692
692
  "lastAckAt": "2026-08-31T16:24:29.934Z",
693
693
  "lastWriteAt": "2026-08-31T16:24:29.934Z",
694
694
  "state": "ok",
@@ -711,9 +711,9 @@
711
711
  "driverConfig": {},
712
712
  "lineId": "ln-572ac0ff",
713
713
  "value": 175,
714
- "readValue": null,
715
- "lastReadAt": "2026-09-03T17:17:23.490Z",
716
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
714
+ "readValue": 182,
715
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
716
+ "lastReadError": null,
717
717
  "lastAckAt": "2026-08-31T16:27:33.818Z",
718
718
  "lastWriteAt": "2026-08-31T16:27:33.818Z",
719
719
  "state": "ok",
@@ -736,9 +736,9 @@
736
736
  "driverConfig": {},
737
737
  "lineId": "ln-572ac0ff",
738
738
  "value": 173,
739
- "readValue": null,
740
- "lastReadAt": "2026-09-03T17:17:23.490Z",
741
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
739
+ "readValue": 182,
740
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
741
+ "lastReadError": null,
742
742
  "lastAckAt": "2026-08-31T16:27:33.415Z",
743
743
  "lastWriteAt": "2026-08-31T16:27:33.415Z",
744
744
  "state": "ok",
@@ -761,9 +761,9 @@
761
761
  "driverConfig": {},
762
762
  "lineId": "ln-f8fee4c7",
763
763
  "value": null,
764
- "readValue": null,
765
- "lastReadAt": "2026-09-03T17:17:23.490Z",
766
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
764
+ "readValue": 182,
765
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
766
+ "lastReadError": null,
767
767
  "lastAckAt": null,
768
768
  "lastWriteAt": null,
769
769
  "state": "idle",
@@ -786,9 +786,9 @@
786
786
  "driverConfig": {},
787
787
  "lineId": "ln-f8fee4c7",
788
788
  "value": null,
789
- "readValue": null,
790
- "lastReadAt": "2026-09-03T17:17:23.490Z",
791
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
789
+ "readValue": 182,
790
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
791
+ "lastReadError": null,
792
792
  "lastAckAt": null,
793
793
  "lastWriteAt": null,
794
794
  "state": "idle",
@@ -811,9 +811,9 @@
811
811
  "driverConfig": {},
812
812
  "lineId": "ln-e132a42f",
813
813
  "value": 175,
814
- "readValue": null,
815
- "lastReadAt": "2026-09-03T17:17:23.490Z",
816
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
814
+ "readValue": 182,
815
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
816
+ "lastReadError": null,
817
817
  "lastAckAt": "2026-08-31T16:30:22.764Z",
818
818
  "lastWriteAt": "2026-08-31T16:30:22.764Z",
819
819
  "state": "ok",
@@ -836,9 +836,9 @@
836
836
  "driverConfig": {},
837
837
  "lineId": "ln-e132a42f",
838
838
  "value": 173,
839
- "readValue": null,
840
- "lastReadAt": "2026-09-03T17:17:23.490Z",
841
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
839
+ "readValue": 182,
840
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
841
+ "lastReadError": null,
842
842
  "lastAckAt": "2026-08-31T16:30:22.362Z",
843
843
  "lastWriteAt": "2026-08-31T16:30:22.362Z",
844
844
  "state": "ok",
@@ -861,9 +861,9 @@
861
861
  "driverConfig": {},
862
862
  "lineId": "ln-f178ca43",
863
863
  "value": 175,
864
- "readValue": null,
865
- "lastReadAt": "2026-09-03T17:17:23.490Z",
866
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
864
+ "readValue": 182,
865
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
866
+ "lastReadError": null,
867
867
  "lastAckAt": "2026-08-31T16:30:46.020Z",
868
868
  "lastWriteAt": "2026-08-31T16:30:46.020Z",
869
869
  "state": "ok",
@@ -886,9 +886,9 @@
886
886
  "driverConfig": {},
887
887
  "lineId": "ln-f178ca43",
888
888
  "value": 173,
889
- "readValue": null,
890
- "lastReadAt": "2026-09-03T17:17:23.490Z",
891
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
889
+ "readValue": 182,
890
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
891
+ "lastReadError": null,
892
892
  "lastAckAt": "2026-08-31T16:30:45.644Z",
893
893
  "lastWriteAt": "2026-08-31T16:30:45.644Z",
894
894
  "state": "ok",
@@ -911,9 +911,9 @@
911
911
  "driverConfig": {},
912
912
  "lineId": "ln-c9e7ccee",
913
913
  "value": 175,
914
- "readValue": null,
915
- "lastReadAt": "2026-09-03T17:17:23.490Z",
916
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
914
+ "readValue": 182,
915
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
916
+ "lastReadError": null,
917
917
  "lastAckAt": "2026-08-31T16:31:39.256Z",
918
918
  "lastWriteAt": "2026-08-31T16:31:39.256Z",
919
919
  "state": "ok",
@@ -936,9 +936,9 @@
936
936
  "driverConfig": {},
937
937
  "lineId": "ln-c9e7ccee",
938
938
  "value": 173,
939
- "readValue": null,
940
- "lastReadAt": "2026-09-03T17:17:23.490Z",
941
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
939
+ "readValue": 182,
940
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
941
+ "lastReadError": null,
942
942
  "lastAckAt": "2026-08-31T16:31:38.883Z",
943
943
  "lastWriteAt": "2026-08-31T16:31:38.883Z",
944
944
  "state": "ok",
@@ -963,9 +963,9 @@
963
963
  "posZ": 1070,
964
964
  "lineId": "ln-2398a086",
965
965
  "value": 174,
966
- "readValue": null,
967
- "lastReadAt": "2026-09-03T17:17:23.490Z",
968
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
966
+ "readValue": 182,
967
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
968
+ "lastReadError": null,
969
969
  "lastAckAt": "2026-08-31T16:50:16.266Z",
970
970
  "lastWriteAt": "2026-08-31T16:50:16.266Z",
971
971
  "state": "ok",
@@ -988,9 +988,9 @@
988
988
  "driverConfig": {},
989
989
  "lineId": "ln-1b52b78a",
990
990
  "value": 175,
991
- "readValue": null,
992
- "lastReadAt": "2026-09-03T17:17:23.490Z",
993
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
991
+ "readValue": 182,
992
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
993
+ "lastReadError": null,
994
994
  "lastAckAt": "2026-09-01T01:32:13.199Z",
995
995
  "lastWriteAt": "2026-09-01T01:32:13.199Z",
996
996
  "state": "ok",
@@ -1013,9 +1013,9 @@
1013
1013
  "driverConfig": {},
1014
1014
  "lineId": "ln-1b52b78a",
1015
1015
  "value": 173,
1016
- "readValue": null,
1017
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1018
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1016
+ "readValue": 182,
1017
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1018
+ "lastReadError": null,
1019
1019
  "lastAckAt": "2026-09-01T01:32:12.684Z",
1020
1020
  "lastWriteAt": "2026-09-01T01:32:12.684Z",
1021
1021
  "state": "ok",
@@ -1038,9 +1038,9 @@
1038
1038
  "driverConfig": {},
1039
1039
  "lineId": "ln-b689deb1",
1040
1040
  "value": 175,
1041
- "readValue": null,
1042
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1043
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1041
+ "readValue": 182,
1042
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1043
+ "lastReadError": null,
1044
1044
  "lastAckAt": "2026-09-01T02:24:40.946Z",
1045
1045
  "lastWriteAt": "2026-09-01T02:24:40.946Z",
1046
1046
  "state": "ok",
@@ -1063,9 +1063,9 @@
1063
1063
  "driverConfig": {},
1064
1064
  "lineId": "ln-b689deb1",
1065
1065
  "value": 173,
1066
- "readValue": null,
1067
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1068
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1066
+ "readValue": 182,
1067
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1068
+ "lastReadError": null,
1069
1069
  "lastAckAt": "2026-09-01T02:24:40.527Z",
1070
1070
  "lastWriteAt": "2026-09-01T02:24:40.527Z",
1071
1071
  "state": "ok",
@@ -1088,9 +1088,9 @@
1088
1088
  "driverConfig": {},
1089
1089
  "lineId": "ln-c377a6bf",
1090
1090
  "value": 175,
1091
- "readValue": null,
1092
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1093
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1091
+ "readValue": 182,
1092
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1093
+ "lastReadError": null,
1094
1094
  "lastAckAt": "2026-09-01T03:23:18.235Z",
1095
1095
  "lastWriteAt": "2026-09-01T03:23:18.235Z",
1096
1096
  "state": "ok",
@@ -1113,9 +1113,9 @@
1113
1113
  "driverConfig": {},
1114
1114
  "lineId": "ln-9224d3d7",
1115
1115
  "value": 175,
1116
- "readValue": null,
1117
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1118
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1116
+ "readValue": 182,
1117
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1118
+ "lastReadError": null,
1119
1119
  "lastAckAt": "2026-09-01T05:59:24.065Z",
1120
1120
  "lastWriteAt": "2026-09-01T05:59:24.065Z",
1121
1121
  "state": "ok",
@@ -1138,9 +1138,9 @@
1138
1138
  "driverConfig": {},
1139
1139
  "lineId": "ln-386c53ed",
1140
1140
  "value": 175,
1141
- "readValue": null,
1142
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1143
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1141
+ "readValue": 182,
1142
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1143
+ "lastReadError": null,
1144
1144
  "lastAckAt": "2026-09-01T06:05:53.065Z",
1145
1145
  "lastWriteAt": "2026-09-01T06:05:53.065Z",
1146
1146
  "state": "ok",
@@ -1163,9 +1163,9 @@
1163
1163
  "driverConfig": {},
1164
1164
  "lineId": "ln-5957f6db",
1165
1165
  "value": 175,
1166
- "readValue": null,
1167
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1168
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1166
+ "readValue": 182,
1167
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1168
+ "lastReadError": null,
1169
1169
  "lastAckAt": "2026-09-01T06:09:02.150Z",
1170
1170
  "lastWriteAt": "2026-09-01T06:09:02.150Z",
1171
1171
  "state": "ok",
@@ -1188,9 +1188,9 @@
1188
1188
  "driverConfig": {},
1189
1189
  "lineId": "ln-9ec42f08",
1190
1190
  "value": 175,
1191
- "readValue": null,
1192
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1193
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1191
+ "readValue": 182,
1192
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1193
+ "lastReadError": null,
1194
1194
  "lastAckAt": "2026-09-01T06:13:44.316Z",
1195
1195
  "lastWriteAt": "2026-09-01T06:13:44.316Z",
1196
1196
  "state": "ok",
@@ -1213,9 +1213,9 @@
1213
1213
  "driverConfig": {},
1214
1214
  "lineId": "ln-69e37924",
1215
1215
  "value": 175,
1216
- "readValue": null,
1217
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1218
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1216
+ "readValue": 182,
1217
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1218
+ "lastReadError": null,
1219
1219
  "lastAckAt": "2026-09-01T06:16:47.470Z",
1220
1220
  "lastWriteAt": "2026-09-01T06:16:47.470Z",
1221
1221
  "state": "ok",
@@ -1238,9 +1238,9 @@
1238
1238
  "driverConfig": {},
1239
1239
  "lineId": "ln-c269e692",
1240
1240
  "value": 175,
1241
- "readValue": null,
1242
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1243
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1241
+ "readValue": 182,
1242
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1243
+ "lastReadError": null,
1244
1244
  "lastAckAt": "2026-09-01T06:56:05.895Z",
1245
1245
  "lastWriteAt": "2026-09-01T06:56:05.895Z",
1246
1246
  "state": "ok",
@@ -1263,9 +1263,9 @@
1263
1263
  "driverConfig": {},
1264
1264
  "lineId": "ln-229d1637",
1265
1265
  "value": 175,
1266
- "readValue": null,
1267
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1268
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1266
+ "readValue": 182,
1267
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1268
+ "lastReadError": null,
1269
1269
  "lastAckAt": "2026-09-01T06:57:29.289Z",
1270
1270
  "lastWriteAt": "2026-09-01T06:57:29.289Z",
1271
1271
  "state": "ok",
@@ -1288,9 +1288,9 @@
1288
1288
  "driverConfig": {},
1289
1289
  "lineId": "ln-9546f91f",
1290
1290
  "value": 175,
1291
- "readValue": null,
1292
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1293
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1291
+ "readValue": 182,
1292
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1293
+ "lastReadError": null,
1294
1294
  "lastAckAt": "2026-09-01T07:00:25.060Z",
1295
1295
  "lastWriteAt": "2026-09-01T07:00:25.060Z",
1296
1296
  "state": "ok",
@@ -1313,9 +1313,9 @@
1313
1313
  "driverConfig": {},
1314
1314
  "lineId": "ln-087aad5b",
1315
1315
  "value": 175,
1316
- "readValue": null,
1317
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1318
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1316
+ "readValue": 182,
1317
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1318
+ "lastReadError": null,
1319
1319
  "lastAckAt": "2026-09-01T07:09:07.308Z",
1320
1320
  "lastWriteAt": "2026-09-01T07:09:07.308Z",
1321
1321
  "state": "ok",
@@ -1338,9 +1338,9 @@
1338
1338
  "driverConfig": {},
1339
1339
  "lineId": "ln-c1be3295",
1340
1340
  "value": null,
1341
- "readValue": null,
1342
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1343
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1341
+ "readValue": 182,
1342
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1343
+ "lastReadError": null,
1344
1344
  "lastAckAt": null,
1345
1345
  "lastWriteAt": null,
1346
1346
  "state": "idle",
@@ -1363,9 +1363,9 @@
1363
1363
  "driverConfig": {},
1364
1364
  "lineId": "ln-97d44f8a",
1365
1365
  "value": 175,
1366
- "readValue": null,
1367
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1368
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1366
+ "readValue": 182,
1367
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1368
+ "lastReadError": null,
1369
1369
  "lastAckAt": "2026-09-01T07:13:44.913Z",
1370
1370
  "lastWriteAt": "2026-09-01T07:13:44.913Z",
1371
1371
  "state": "ok",
@@ -1388,9 +1388,9 @@
1388
1388
  "driverConfig": {},
1389
1389
  "lineId": "ln-a9551770",
1390
1390
  "value": 175,
1391
- "readValue": null,
1392
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1393
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1391
+ "readValue": 182,
1392
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1393
+ "lastReadError": null,
1394
1394
  "lastAckAt": "2026-09-01T07:15:40.114Z",
1395
1395
  "lastWriteAt": "2026-09-01T07:15:40.114Z",
1396
1396
  "state": "ok",
@@ -1415,9 +1415,9 @@
1415
1415
  "posZ": 1704,
1416
1416
  "lineId": "ln-635c2cfa",
1417
1417
  "value": 174,
1418
- "readValue": null,
1419
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1420
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1418
+ "readValue": 182,
1419
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1420
+ "lastReadError": null,
1421
1421
  "lastAckAt": "2026-09-01T07:16:43.827Z",
1422
1422
  "lastWriteAt": "2026-09-01T07:16:43.827Z",
1423
1423
  "state": "ok",
@@ -1442,9 +1442,9 @@
1442
1442
  "posZ": 1704,
1443
1443
  "lineId": "ln-6f95b193",
1444
1444
  "value": 174,
1445
- "readValue": null,
1446
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1447
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1445
+ "readValue": 182,
1446
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1447
+ "lastReadError": null,
1448
1448
  "lastAckAt": "2026-09-01T07:17:39.977Z",
1449
1449
  "lastWriteAt": "2026-09-01T07:17:39.977Z",
1450
1450
  "state": "ok",
@@ -1469,9 +1469,9 @@
1469
1469
  "posZ": 1704,
1470
1470
  "lineId": "ln-b8caafb9",
1471
1471
  "value": 174,
1472
- "readValue": null,
1473
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1474
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1472
+ "readValue": 182,
1473
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1474
+ "lastReadError": null,
1475
1475
  "lastAckAt": "2026-09-01T07:21:29.346Z",
1476
1476
  "lastWriteAt": "2026-09-01T07:21:29.346Z",
1477
1477
  "state": "ok",
@@ -1496,9 +1496,9 @@
1496
1496
  "posZ": 1704,
1497
1497
  "lineId": "ln-cff04274",
1498
1498
  "value": 174,
1499
- "readValue": null,
1500
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1501
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1499
+ "readValue": 182,
1500
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1501
+ "lastReadError": null,
1502
1502
  "lastAckAt": "2026-09-01T07:23:03.311Z",
1503
1503
  "lastWriteAt": "2026-09-01T07:23:03.311Z",
1504
1504
  "state": "ok",
@@ -1523,9 +1523,9 @@
1523
1523
  "posZ": 1704,
1524
1524
  "lineId": "ln-4746929d",
1525
1525
  "value": 174,
1526
- "readValue": null,
1527
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1528
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1526
+ "readValue": 182,
1527
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1528
+ "lastReadError": null,
1529
1529
  "lastAckAt": "2026-09-01T07:28:13.909Z",
1530
1530
  "lastWriteAt": "2026-09-01T07:28:13.909Z",
1531
1531
  "state": "ok",
@@ -1548,9 +1548,9 @@
1548
1548
  "driverConfig": {},
1549
1549
  "lineId": "ln-fd22576a",
1550
1550
  "value": 175,
1551
- "readValue": null,
1552
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1553
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1551
+ "readValue": 182,
1552
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1553
+ "lastReadError": null,
1554
1554
  "lastAckAt": "2026-09-01T07:28:30.328Z",
1555
1555
  "lastWriteAt": "2026-09-01T07:28:30.328Z",
1556
1556
  "state": "ok",
@@ -1573,9 +1573,9 @@
1573
1573
  "driverConfig": {},
1574
1574
  "lineId": "ln-fd22576a",
1575
1575
  "value": 173,
1576
- "readValue": null,
1577
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1578
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1576
+ "readValue": 182,
1577
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1578
+ "lastReadError": null,
1579
1579
  "lastAckAt": "2026-09-01T07:28:29.957Z",
1580
1580
  "lastWriteAt": "2026-09-01T07:28:29.957Z",
1581
1581
  "state": "ok",
@@ -1598,9 +1598,9 @@
1598
1598
  "driverConfig": {},
1599
1599
  "lineId": "ln-4b84a228",
1600
1600
  "value": 180,
1601
- "readValue": null,
1602
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1603
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1601
+ "readValue": 182,
1602
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1603
+ "lastReadError": null,
1604
1604
  "lastAckAt": "2026-09-01T07:28:35.451Z",
1605
1605
  "lastWriteAt": "2026-09-01T07:28:35.451Z",
1606
1606
  "state": "ok",
@@ -1635,7 +1635,7 @@
1635
1635
  "lineId": "",
1636
1636
  "value": 175,
1637
1637
  "readValue": 150.1,
1638
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1638
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1639
1639
  "lastReadError": null,
1640
1640
  "lastAckAt": "2026-09-01T07:28:35.685Z",
1641
1641
  "lastWriteAt": "2026-09-01T07:28:35.685Z",
@@ -1659,9 +1659,9 @@
1659
1659
  "driverConfig": {},
1660
1660
  "lineId": "ln-4b84a228",
1661
1661
  "value": null,
1662
- "readValue": null,
1663
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1664
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1662
+ "readValue": 182,
1663
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1664
+ "lastReadError": null,
1665
1665
  "lastAckAt": null,
1666
1666
  "lastWriteAt": null,
1667
1667
  "state": "idle",
@@ -1684,9 +1684,9 @@
1684
1684
  "driverConfig": {},
1685
1685
  "lineId": "ln-2d785bd8",
1686
1686
  "value": 176,
1687
- "readValue": null,
1688
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1689
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1687
+ "readValue": 182,
1688
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1689
+ "lastReadError": null,
1690
1690
  "lastAckAt": "2026-09-01T08:52:41.707Z",
1691
1691
  "lastWriteAt": "2026-09-01T08:52:41.707Z",
1692
1692
  "state": "ok",
@@ -1709,9 +1709,9 @@
1709
1709
  "driverConfig": {},
1710
1710
  "lineId": "ln-ec406cd4",
1711
1711
  "value": 176,
1712
- "readValue": null,
1713
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1714
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1712
+ "readValue": 182,
1713
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1714
+ "lastReadError": null,
1715
1715
  "lastAckAt": "2026-09-01T08:54:00.988Z",
1716
1716
  "lastWriteAt": "2026-09-01T08:54:00.988Z",
1717
1717
  "state": "ok",
@@ -1734,9 +1734,9 @@
1734
1734
  "driverConfig": {},
1735
1735
  "lineId": "ln-844ad82f",
1736
1736
  "value": 175,
1737
- "readValue": null,
1738
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1739
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1737
+ "readValue": 182,
1738
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1739
+ "lastReadError": null,
1740
1740
  "lastAckAt": "2026-09-01T09:06:55.731Z",
1741
1741
  "lastWriteAt": "2026-09-01T09:06:55.731Z",
1742
1742
  "state": "ok",
@@ -1761,9 +1761,9 @@
1761
1761
  "posZ": 1704,
1762
1762
  "lineId": "ln-fcd8023a",
1763
1763
  "value": 174,
1764
- "readValue": null,
1765
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1766
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1764
+ "readValue": 182,
1765
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1766
+ "lastReadError": null,
1767
1767
  "lastAckAt": "2026-09-01T09:08:10.909Z",
1768
1768
  "lastWriteAt": "2026-09-01T09:08:10.909Z",
1769
1769
  "state": "ok",
@@ -1786,9 +1786,9 @@
1786
1786
  "driverConfig": {},
1787
1787
  "lineId": "ln-dd871047",
1788
1788
  "value": 175,
1789
- "readValue": null,
1790
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1791
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1789
+ "readValue": 182,
1790
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1791
+ "lastReadError": null,
1792
1792
  "lastAckAt": "2026-09-01T09:08:17.743Z",
1793
1793
  "lastWriteAt": "2026-09-01T09:08:17.743Z",
1794
1794
  "state": "ok",
@@ -1811,9 +1811,9 @@
1811
1811
  "driverConfig": {},
1812
1812
  "lineId": "ln-dd871047",
1813
1813
  "value": 173,
1814
- "readValue": null,
1815
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1816
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1814
+ "readValue": 182,
1815
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1816
+ "lastReadError": null,
1817
1817
  "lastAckAt": "2026-09-01T09:08:17.345Z",
1818
1818
  "lastWriteAt": "2026-09-01T09:08:17.345Z",
1819
1819
  "state": "ok",
@@ -1836,9 +1836,9 @@
1836
1836
  "driverConfig": {},
1837
1837
  "lineId": "ln-6dc23d6d",
1838
1838
  "value": 175,
1839
- "readValue": null,
1840
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1841
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1839
+ "readValue": 182,
1840
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1841
+ "lastReadError": null,
1842
1842
  "lastAckAt": "2026-09-01T09:08:44.710Z",
1843
1843
  "lastWriteAt": "2026-09-01T09:08:44.710Z",
1844
1844
  "state": "ok",
@@ -1861,9 +1861,9 @@
1861
1861
  "driverConfig": {},
1862
1862
  "lineId": "ln-6dc23d6d",
1863
1863
  "value": 173,
1864
- "readValue": null,
1865
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1866
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1864
+ "readValue": 182,
1865
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1866
+ "lastReadError": null,
1867
1867
  "lastAckAt": "2026-09-01T09:08:44.377Z",
1868
1868
  "lastWriteAt": "2026-09-01T09:08:44.377Z",
1869
1869
  "state": "ok",
@@ -1886,9 +1886,9 @@
1886
1886
  "driverConfig": {},
1887
1887
  "lineId": "ln-2a2ae15e",
1888
1888
  "value": 175,
1889
- "readValue": null,
1890
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1891
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1889
+ "readValue": 182,
1890
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1891
+ "lastReadError": null,
1892
1892
  "lastAckAt": "2026-09-01T09:16:35.330Z",
1893
1893
  "lastWriteAt": "2026-09-01T09:16:35.330Z",
1894
1894
  "state": "ok",
@@ -1911,9 +1911,9 @@
1911
1911
  "driverConfig": {},
1912
1912
  "lineId": "ln-2a2ae15e",
1913
1913
  "value": 173,
1914
- "readValue": null,
1915
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1916
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1914
+ "readValue": 182,
1915
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1916
+ "lastReadError": null,
1917
1917
  "lastAckAt": "2026-09-01T09:16:34.947Z",
1918
1918
  "lastWriteAt": "2026-09-01T09:16:34.947Z",
1919
1919
  "state": "ok",
@@ -1936,9 +1936,9 @@
1936
1936
  "driverConfig": {},
1937
1937
  "lineId": "ln-9b54577f",
1938
1938
  "value": 176,
1939
- "readValue": null,
1940
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1941
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1939
+ "readValue": 182,
1940
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1941
+ "lastReadError": null,
1942
1942
  "lastAckAt": "2026-09-01T09:16:39.619Z",
1943
1943
  "lastWriteAt": "2026-09-01T09:16:39.619Z",
1944
1944
  "state": "ok",
@@ -1961,9 +1961,9 @@
1961
1961
  "driverConfig": {},
1962
1962
  "lineId": "ln-7b9f19d9",
1963
1963
  "value": 180,
1964
- "readValue": null,
1965
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1966
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1964
+ "readValue": 182,
1965
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1966
+ "lastReadError": null,
1967
1967
  "lastAckAt": "2026-09-01T11:03:23.453Z",
1968
1968
  "lastWriteAt": "2026-09-01T11:03:23.453Z",
1969
1969
  "state": "ok",
@@ -1986,9 +1986,9 @@
1986
1986
  "driverConfig": {},
1987
1987
  "lineId": "ln-5a7d0d1f",
1988
1988
  "value": null,
1989
- "readValue": null,
1990
- "lastReadAt": "2026-09-03T17:17:23.490Z",
1991
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1989
+ "readValue": 182,
1990
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
1991
+ "lastReadError": null,
1992
1992
  "lastAckAt": null,
1993
1993
  "lastWriteAt": null,
1994
1994
  "state": "idle",
@@ -2011,9 +2011,9 @@
2011
2011
  "driverConfig": {},
2012
2012
  "lineId": "ln-847bee7f",
2013
2013
  "value": 180,
2014
- "readValue": null,
2015
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2016
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2014
+ "readValue": 182,
2015
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2016
+ "lastReadError": null,
2017
2017
  "lastAckAt": "2026-09-01T12:25:43.183Z",
2018
2018
  "lastWriteAt": "2026-09-01T12:25:43.183Z",
2019
2019
  "state": "ok",
@@ -2036,9 +2036,9 @@
2036
2036
  "driverConfig": {},
2037
2037
  "lineId": "ln-d32ca422",
2038
2038
  "value": 180,
2039
- "readValue": null,
2040
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2041
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2039
+ "readValue": 182,
2040
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2041
+ "lastReadError": null,
2042
2042
  "lastAckAt": "2026-09-01T12:27:14.395Z",
2043
2043
  "lastWriteAt": "2026-09-01T12:27:14.395Z",
2044
2044
  "state": "ok",
@@ -2061,9 +2061,9 @@
2061
2061
  "driverConfig": {},
2062
2062
  "lineId": "ln-6e75316a",
2063
2063
  "value": null,
2064
- "readValue": null,
2065
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2066
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2064
+ "readValue": 182,
2065
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2066
+ "lastReadError": null,
2067
2067
  "lastAckAt": null,
2068
2068
  "lastWriteAt": null,
2069
2069
  "state": "idle",
@@ -2086,9 +2086,9 @@
2086
2086
  "driverConfig": {},
2087
2087
  "lineId": "ln-e2d8aebc",
2088
2088
  "value": null,
2089
- "readValue": null,
2090
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2091
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2089
+ "readValue": 182,
2090
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2091
+ "lastReadError": null,
2092
2092
  "lastAckAt": null,
2093
2093
  "lastWriteAt": null,
2094
2094
  "state": "idle",
@@ -2111,9 +2111,9 @@
2111
2111
  "driverConfig": {},
2112
2112
  "lineId": "ln-4849768e",
2113
2113
  "value": null,
2114
- "readValue": null,
2115
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2116
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2114
+ "readValue": 182,
2115
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2116
+ "lastReadError": null,
2117
2117
  "lastAckAt": null,
2118
2118
  "lastWriteAt": null,
2119
2119
  "state": "idle",
@@ -2136,9 +2136,9 @@
2136
2136
  "driverConfig": {},
2137
2137
  "lineId": "ln-e0769d5b",
2138
2138
  "value": null,
2139
- "readValue": null,
2140
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2141
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2139
+ "readValue": 182,
2140
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2141
+ "lastReadError": null,
2142
2142
  "lastAckAt": null,
2143
2143
  "lastWriteAt": null,
2144
2144
  "state": "idle",
@@ -2161,9 +2161,9 @@
2161
2161
  "driverConfig": {},
2162
2162
  "lineId": "ln-8c17f4e7",
2163
2163
  "value": null,
2164
- "readValue": null,
2165
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2166
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2164
+ "readValue": 182,
2165
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2166
+ "lastReadError": null,
2167
2167
  "lastAckAt": null,
2168
2168
  "lastWriteAt": null,
2169
2169
  "state": "idle",
@@ -2186,9 +2186,9 @@
2186
2186
  "driverConfig": {},
2187
2187
  "lineId": "ln-0eccf6ba",
2188
2188
  "value": null,
2189
- "readValue": null,
2190
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2191
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2189
+ "readValue": 182,
2190
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2191
+ "lastReadError": null,
2192
2192
  "lastAckAt": null,
2193
2193
  "lastWriteAt": null,
2194
2194
  "state": "idle",
@@ -2211,9 +2211,9 @@
2211
2211
  "driverConfig": {},
2212
2212
  "lineId": "ln-e984246e",
2213
2213
  "value": null,
2214
- "readValue": null,
2215
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2216
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2214
+ "readValue": 182,
2215
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2216
+ "lastReadError": null,
2217
2217
  "lastAckAt": null,
2218
2218
  "lastWriteAt": null,
2219
2219
  "state": "idle",
@@ -2236,9 +2236,9 @@
2236
2236
  "driverConfig": {},
2237
2237
  "lineId": "ln-1fe0b5bc",
2238
2238
  "value": null,
2239
- "readValue": null,
2240
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2241
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2239
+ "readValue": 182,
2240
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2241
+ "lastReadError": null,
2242
2242
  "lastAckAt": null,
2243
2243
  "lastWriteAt": null,
2244
2244
  "state": "idle",
@@ -2261,9 +2261,9 @@
2261
2261
  "driverConfig": {},
2262
2262
  "lineId": "ln-d826473e",
2263
2263
  "value": null,
2264
- "readValue": null,
2265
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2266
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2264
+ "readValue": 182,
2265
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2266
+ "lastReadError": null,
2267
2267
  "lastAckAt": null,
2268
2268
  "lastWriteAt": null,
2269
2269
  "state": "idle",
@@ -2286,9 +2286,9 @@
2286
2286
  "driverConfig": {},
2287
2287
  "lineId": "ln-156abb71",
2288
2288
  "value": null,
2289
- "readValue": null,
2290
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2291
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2289
+ "readValue": 182,
2290
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2291
+ "lastReadError": null,
2292
2292
  "lastAckAt": null,
2293
2293
  "lastWriteAt": null,
2294
2294
  "state": "idle",
@@ -2311,9 +2311,9 @@
2311
2311
  "driverConfig": {},
2312
2312
  "lineId": "ln-bac43927",
2313
2313
  "value": null,
2314
- "readValue": null,
2315
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2316
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2314
+ "readValue": 182,
2315
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2316
+ "lastReadError": null,
2317
2317
  "lastAckAt": null,
2318
2318
  "lastWriteAt": null,
2319
2319
  "state": "idle",
@@ -2336,9 +2336,9 @@
2336
2336
  "driverConfig": {},
2337
2337
  "lineId": "ln-f223008a",
2338
2338
  "value": null,
2339
- "readValue": null,
2340
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2341
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2339
+ "readValue": 182,
2340
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2341
+ "lastReadError": null,
2342
2342
  "lastAckAt": null,
2343
2343
  "lastWriteAt": null,
2344
2344
  "state": "idle",
@@ -2361,9 +2361,9 @@
2361
2361
  "driverConfig": {},
2362
2362
  "lineId": "ln-fb06f10b",
2363
2363
  "value": 182,
2364
- "readValue": null,
2365
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2366
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2364
+ "readValue": 182,
2365
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2366
+ "lastReadError": null,
2367
2367
  "lastAckAt": "2026-09-02T08:39:25.301Z",
2368
2368
  "lastWriteAt": "2026-09-02T08:39:25.301Z",
2369
2369
  "state": "ok",
@@ -2386,9 +2386,9 @@
2386
2386
  "driverConfig": {},
2387
2387
  "lineId": "ln-9f15af4e",
2388
2388
  "value": 182,
2389
- "readValue": null,
2390
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2391
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2389
+ "readValue": 182,
2390
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2391
+ "lastReadError": null,
2392
2392
  "lastAckAt": "2026-09-02T08:46:51.079Z",
2393
2393
  "lastWriteAt": "2026-09-02T08:46:51.079Z",
2394
2394
  "state": "ok",
@@ -2411,9 +2411,9 @@
2411
2411
  "driverConfig": {},
2412
2412
  "lineId": "ln-69eaecb9",
2413
2413
  "value": 182,
2414
- "readValue": null,
2415
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2416
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2414
+ "readValue": 182,
2415
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2416
+ "lastReadError": null,
2417
2417
  "lastAckAt": "2026-09-02T10:39:20.083Z",
2418
2418
  "lastWriteAt": "2026-09-02T10:39:20.083Z",
2419
2419
  "state": "ok",
@@ -2436,9 +2436,9 @@
2436
2436
  "driverConfig": {},
2437
2437
  "lineId": "ln-af1e04a3",
2438
2438
  "value": 182,
2439
- "readValue": null,
2440
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2441
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2439
+ "readValue": 182,
2440
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2441
+ "lastReadError": null,
2442
2442
  "lastAckAt": "2026-09-02T11:42:48.318Z",
2443
2443
  "lastWriteAt": "2026-09-02T11:42:48.318Z",
2444
2444
  "state": "ok",
@@ -2461,9 +2461,9 @@
2461
2461
  "driverConfig": {},
2462
2462
  "lineId": "ln-c1ef6c0d",
2463
2463
  "value": 180,
2464
- "readValue": null,
2465
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2466
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2464
+ "readValue": 182,
2465
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2466
+ "lastReadError": null,
2467
2467
  "lastAckAt": "2026-09-02T11:55:28.777Z",
2468
2468
  "lastWriteAt": "2026-09-02T11:55:28.777Z",
2469
2469
  "state": "ok",
@@ -2486,9 +2486,9 @@
2486
2486
  "driverConfig": {},
2487
2487
  "lineId": "ln-b587c5ec",
2488
2488
  "value": 182,
2489
- "readValue": null,
2490
- "lastReadAt": "2026-09-03T17:17:23.490Z",
2491
- "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2489
+ "readValue": 182,
2490
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2491
+ "lastReadError": null,
2492
2492
  "lastAckAt": "2026-09-02T13:05:36.771Z",
2493
2493
  "lastWriteAt": "2026-09-02T13:05:36.771Z",
2494
2494
  "state": "ok",
@@ -2713,7 +2713,7 @@
2713
2713
  "lineId": "",
2714
2714
  "value": 155,
2715
2715
  "readValue": 155,
2716
- "lastReadAt": "2026-09-03T17:17:24.512Z",
2716
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2717
2717
  "lastReadError": "Mock PLC 无设定记录(rw-e2e-3-mtlkgr9s;从未写入)",
2718
2718
  "lastAckAt": "2026-09-03T13:34:22.239Z",
2719
2719
  "lastWriteAt": "2026-09-03T13:34:22.239Z",
@@ -2779,5 +2779,130 @@
2779
2779
  "state": "idle",
2780
2780
  "lastError": null,
2781
2781
  "createdAt": "2026-09-03T17:10:29.148Z"
2782
+ },
2783
+ {
2784
+ "id": "dw-3a3f7a4c",
2785
+ "templateRef": "dcw-temp-sp",
2786
+ "name": "温度设定-mtmhgrsn",
2787
+ "driver": "mock",
2788
+ "enabled": true,
2789
+ "holdIntervalMs": null,
2790
+ "readIntervalMs": null,
2791
+ "unit": "℃",
2792
+ "decimals": 1,
2793
+ "min": 150,
2794
+ "max": 200,
2795
+ "deviceBindingId": null,
2796
+ "driverConfig": {},
2797
+ "lineId": "",
2798
+ "value": 182,
2799
+ "readValue": 182,
2800
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2801
+ "lastReadError": null,
2802
+ "lastAckAt": "2026-09-04T04:58:20.275Z",
2803
+ "lastWriteAt": "2026-09-04T04:58:20.275Z",
2804
+ "state": "ok",
2805
+ "lastError": null,
2806
+ "createdAt": "2026-09-04T04:58:09.856Z"
2807
+ },
2808
+ {
2809
+ "id": "dw-42fcd798",
2810
+ "templateRef": "dcw-temp-sp",
2811
+ "name": "温度设定-mtmhnz2f",
2812
+ "driver": "mock",
2813
+ "enabled": true,
2814
+ "holdIntervalMs": null,
2815
+ "readIntervalMs": null,
2816
+ "unit": "℃",
2817
+ "decimals": 1,
2818
+ "min": 150,
2819
+ "max": 200,
2820
+ "deviceBindingId": null,
2821
+ "driverConfig": {},
2822
+ "lineId": "",
2823
+ "value": 182,
2824
+ "readValue": 182,
2825
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2826
+ "lastReadError": null,
2827
+ "lastAckAt": "2026-09-04T05:03:56.066Z",
2828
+ "lastWriteAt": "2026-09-04T05:03:56.066Z",
2829
+ "state": "ok",
2830
+ "lastError": null,
2831
+ "createdAt": "2026-09-04T05:03:45.847Z"
2832
+ },
2833
+ {
2834
+ "id": "dw-756e3e07",
2835
+ "templateRef": "dcw-temp-sp",
2836
+ "name": "探针设定",
2837
+ "driver": "mock",
2838
+ "enabled": true,
2839
+ "holdIntervalMs": null,
2840
+ "readIntervalMs": null,
2841
+ "unit": "℃",
2842
+ "decimals": 1,
2843
+ "min": 150,
2844
+ "max": 200,
2845
+ "deviceBindingId": null,
2846
+ "driverConfig": {},
2847
+ "lineId": "ln-1b318320",
2848
+ "value": 182,
2849
+ "readValue": 182,
2850
+ "lastReadAt": "2026-09-04T05:35:29.356Z",
2851
+ "lastReadError": null,
2852
+ "lastAckAt": "2026-09-04T05:08:10.216Z",
2853
+ "lastWriteAt": "2026-09-04T05:08:10.216Z",
2854
+ "state": "ok",
2855
+ "lastError": null,
2856
+ "createdAt": "2026-09-04T05:08:10.077Z"
2857
+ },
2858
+ {
2859
+ "id": "dw-1ccbe1a8",
2860
+ "templateRef": "dcw-temp-sp",
2861
+ "name": "探针设定",
2862
+ "driver": "mock",
2863
+ "enabled": true,
2864
+ "holdIntervalMs": null,
2865
+ "readIntervalMs": null,
2866
+ "unit": "℃",
2867
+ "decimals": 1,
2868
+ "min": 150,
2869
+ "max": 200,
2870
+ "deviceBindingId": null,
2871
+ "driverConfig": {},
2872
+ "lineId": "",
2873
+ "value": 182,
2874
+ "readValue": 182,
2875
+ "lastReadAt": "2026-09-04T05:35:29.869Z",
2876
+ "lastReadError": null,
2877
+ "lastAckAt": "2026-09-04T05:08:56.411Z",
2878
+ "lastWriteAt": "2026-09-04T05:08:56.411Z",
2879
+ "state": "ok",
2880
+ "lastError": null,
2881
+ "createdAt": "2026-09-04T05:08:56.210Z"
2882
+ },
2883
+ {
2884
+ "id": "dw-3b6fd688",
2885
+ "templateRef": "dcw-temp-sp",
2886
+ "name": "温度设定-mtmhyn1r",
2887
+ "driver": "mock",
2888
+ "enabled": true,
2889
+ "holdIntervalMs": null,
2890
+ "readIntervalMs": null,
2891
+ "unit": "℃",
2892
+ "decimals": 1,
2893
+ "min": 150,
2894
+ "max": 200,
2895
+ "deviceBindingId": null,
2896
+ "driverConfig": {},
2897
+ "lineId": "",
2898
+ "value": 182,
2899
+ "readValue": 182,
2900
+ "lastReadAt": "2026-09-04T05:35:29.356Z",
2901
+ "lastReadError": null,
2902
+ "lastAckAt": "2026-09-04T05:12:13.804Z",
2903
+ "lastWriteAt": "2026-09-04T05:12:13.804Z",
2904
+ "state": "ok",
2905
+ "lastError": null,
2906
+ "createdAt": "2026-09-04T05:12:03.588Z"
2782
2907
  }
2783
2908
  ]