B7 bench leg: IEC104 setpoint persistence + global soft plate (YK12) round-trip
fw: HEAD dafcf80 (B7 1fe163b + B6 gating fix), device 192.168.1.100:2404
tool: test/host/iec104_master.py --b7-pre / --b7-post / --b7-mark / --b7-check
sequence: pre(reset 前) -> ST-LINK reset -> post; mark(7.5) -> reset -> check
date: 2026-10-12 16:42~16:45 +08:00

==== phase 1: --b7-pre (21/21 PASS) ====
[    0.006s] iec104 master client -> 192.168.1.100:2404  mode=pre
[    0.010s] TX  U  STARTDT act  68 04 07 00 00 00
[    0.179s] RX  U  STARTDT con
[    1.190s] CHECK startdt_con                  PASS
[    1.190s] TX  I  C_IC act (pre)  68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14
[    1.281s] RX  I  type=100 cot=7 body=00 00 00 14
[    1.281s] TX  S  N(R)=1  68 04 01 00 02 00
[    1.282s] TX  S  N(R)=2  68 04 01 00 04 00
[    1.283s] RX  I  M_SP ioa=15 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] RX  I  M_SP ioa=16 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] RX  I  M_SP ioa=17 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] RX  I  M_SP ioa=18 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] RX  I  M_SP ioa=23 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] RX  I  M_SP ioa=31 val=0 iv=0 cot=4  [N(R)=1]
[    1.283s] TX  S  N(R)=3  68 04 01 00 06 00
[    1.285s] TX  S  N(R)=5  68 04 01 00 0A 00
[    1.385s] RX  I  type=100 cot=8 body=00 00 00 14
[    1.385s] TX  S  N(R)=6  68 04 01 00 0C 00
[    2.400s] CHECK gi_actterm_pre               PASS
[    2.400s] CHECK baseline_yx16_off            PASS yx16=(0, False)
[    2.400s] TX  I  C_SE select 0x8858 = 7.500 (mark)  68 12 02 00 0C 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 80
[    2.487s] RX  I  type=50 cot=7 body=58 88 00 00 00 F0 40 80
[    2.487s] TX  S  N(R)=7  68 04 01 00 0E 00
[    3.497s] CHECK se_sel_mark                  PASS
[    3.497s] TX  I  C_SE exec 0x8858 = 7.500 (mark)  68 12 04 00 0E 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 00
[    3.497s] CHECK se_exe_mark                  PASS
[    3.497s] TX  I  C_RD 0x8858  68 0D 06 00 0E 00 66 01 05 00 01 00 58 88 00
[    3.588s] RX  I  type=50 cot=7 body=58 88 00 00 00 F0 40 00
[    3.588s] TX  S  N(R)=8  68 04 01 00 10 00
[    3.689s] RX  I  M_ME_NC ioa=0x8858 val=7.500 qds=0x00 cot=5
[    3.689s] TX  S  N(R)=9  68 04 01 00 12 00
[    4.702s] CHECK rd_mark_7.5                  PASS read=7.500 want=7.500
[    4.702s] TX  I  C_DC 0x600B select QDC=81  68 0E 08 00 12 00 34 01 06 00 01 00 0B 60 00 81
[    4.790s] RX  I  type=52 cot=7 body=0B 60 00 81
[    4.790s] TX  S  N(R)=10  68 04 01 00 14 00
[    5.805s] CHECK yk12_off_sel                 PASS
[    5.805s] TX  I  C_DC 0x600B execute QDC=01  68 0E 0A 00 14 00 34 01 06 00 01 00 0B 60 00 01
[    5.805s] CHECK yk12_off_exe                 PASS
[    5.805s] TX  I  C_SE select 0x8858 = 0.050 (low)  68 12 0C 00 14 00 32 01 06 00 01 00 58 88 00 CD CC 4C 3D 80
[    5.805s] CHECK se_sel_low                   PASS
[    5.805s] TX  I  C_SE exec 0x8858 = 0.050 (low)  68 12 0E 00 14 00 32 01 06 00 01 00 58 88 00 CD CC 4C 3D 00
[    5.805s] CHECK se_exe_low                   PASS
[    5.891s] RX  I  type=52 cot=7 body=0B 60 00 01
[    5.891s] TX  S  N(R)=11  68 04 01 00 16 00
[    5.993s] RX  I  type=50 cot=7 body=58 88 00 CD CC 4C 3D 80
[    5.993s] TX  S  N(R)=12  68 04 01 00 18 00
[    6.036s] RX  I  type=50 cot=7 body=58 88 00 CD CC 4C 3D 00
[    6.036s] RX  S  N(R)=8
[    6.036s] TX  S  N(R)=13  68 04 01 00 1A 00
[    9.071s] CHECK plate_out_no_trip            PASS YX16 must stay OFF while plate OUT (protection disabled)
[    9.071s] TX  I  C_RD 0x8858  68 0D 10 00 1A 00 66 01 05 00 01 00 58 88 00
[    9.101s] RX  I  M_ME_NC ioa=0x8858 val=0.050 qds=0x00 cot=5
[    9.101s] TX  S  N(R)=14  68 04 01 00 1C 00
[   10.113s] CHECK rd_low_0.05                  PASS read=0.050 want=0.050
[   10.113s] TX  I  C_DC 0x600B select QDC=82  68 0E 12 00 1C 00 34 01 06 00 01 00 0B 60 00 82
[   10.113s] CHECK yk12_on_sel                  PASS
[   10.113s] TX  I  C_DC 0x600B execute QDC=02  68 0E 14 00 1C 00 34 01 06 00 01 00 0B 60 00 02
[   10.113s] CHECK yk12_on_exe                  PASS
[   10.201s] RX  I  type=52 cot=7 body=0B 60 00 82
[   10.201s] TX  S  N(R)=15  68 04 01 00 1E 00
[   10.303s] RX  I  type=52 cot=7 body=0B 60 00 02
[   10.303s] TX  S  N(R)=16  68 04 01 00 20 00
[   10.504s] RX  I  M_SP ioa=15 val=1 iv=0 cot=3  [N(R)=11]
[   10.504s] TX  S  N(R)=17  68 04 01 00 22 00
[   10.505s] RX  I  M_SP ioa=16 val=1 iv=0 cot=3  [N(R)=11]
[   10.505s] TX  S  N(R)=18  68 04 01 00 24 00
[   11.512s] CHECK spont_yx16_ON                PASS
[   11.512s] CHECK spont_yx15_ON                PASS
[   11.512s] TX  I  C_SE select 0x8858 = 10.000 (restore)  68 12 16 00 24 00 32 01 06 00 01 00 58 88 00 00 00 20 41 80
[   11.607s] RX  I  type=50 cot=7 body=58 88 00 00 00 20 41 80
[   11.607s] TX  S  N(R)=19  68 04 01 00 26 00
[   12.614s] CHECK se_sel_restore               PASS
[   12.614s] TX  I  C_SE exec 0x8858 = 10.000 (restore)  68 12 18 00 26 00 32 01 06 00 01 00 58 88 00 00 00 20 41 00
[   12.614s] CHECK se_exe_restore               PASS
[   12.707s] RX  I  type=50 cot=7 body=58 88 00 00 00 20 41 00
[   12.707s] TX  S  N(R)=20  68 04 01 00 28 00
[   12.708s] RX  I  M_SP ioa=15 val=0 iv=0 cot=3  [N(R)=13]
[   12.709s] TX  S  N(R)=21  68 04 01 00 2A 00
[   12.710s] RX  I  M_SP ioa=16 val=0 iv=0 cot=3  [N(R)=13]
[   12.710s] TX  S  N(R)=22  68 04 01 00 2C 00
[   13.720s] CHECK yx16_off_after_restore       PASS via spontaneous COT=3
[   13.720s] TX  I  C_DC 0x600B select QDC=81  68 0E 1A 00 2C 00 34 01 06 00 01 00 0B 60 00 81
[   13.811s] RX  I  type=52 cot=7 body=0B 60 00 81
[   13.811s] TX  S  N(R)=23  68 04 01 00 2E 00
[   14.813s] CHECK yk12_off_final_sel           PASS
[   14.813s] TX  I  C_DC 0x600B execute QDC=01  68 0E 1C 00 2E 00 34 01 06 00 01 00 0B 60 00 01
[   14.813s] CHECK yk12_off_final_exe           PASS
[   14.813s] wait 2s: dirty -> SYS_EVT_PROT_SET_SAVE -> /prot_set.bin
[   16.813s] SUMMARY: 21/21 checks PASS -> PASS

==== phase 2: --b7-post (13/13 PASS) ====
[    0.007s] iec104 master client -> 192.168.1.100:2404  mode=post
[    0.024s] TX  U  STARTDT act  68 04 07 00 00 00
[    0.120s] RX  U  STARTDT con
[    1.126s] CHECK startdt_con                  PASS
[    1.126s] TX  I  C_IC act (post)  68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14
[    1.221s] RX  I  type=100 cot=7 body=00 00 00 14
[    1.221s] TX  S  N(R)=1  68 04 01 00 02 00
[    1.223s] TX  S  N(R)=2  68 04 01 00 04 00
[    1.224s] RX  I  M_SP ioa=15 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] RX  I  M_SP ioa=16 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] RX  I  M_SP ioa=17 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] RX  I  M_SP ioa=18 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] RX  I  M_SP ioa=23 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] RX  I  M_SP ioa=31 val=0 iv=0 cot=4  [N(R)=1]
[    1.224s] TX  S  N(R)=4  68 04 01 00 08 00
[    1.225s] TX  S  N(R)=5  68 04 01 00 0A 00
[    1.325s] RX  I  type=100 cot=8 body=00 00 00 14
[    1.327s] TX  S  N(R)=6  68 04 01 00 0C 00
[    2.337s] CHECK gi_actterm_post              PASS
[    2.337s] CHECK baseline_yx16_off            PASS yx16=(0, False) (plate OUT after reboot -> protection disabled)
[    2.337s] TX  I  C_RD 0x8858  68 0D 02 00 0C 00 66 01 05 00 01 00 58 88 00
[    2.428s] RX  I  M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
[    2.428s] TX  S  N(R)=7  68 04 01 00 0E 00
[    3.429s] CHECK persist_rd_10.0              PASS read=10.000 want=10.000
[    3.429s] TX  I  C_SE select 0x8858 = 0.050 (low)  68 12 04 00 0E 00 32 01 06 00 01 00 58 88 00 CD CC 4C 3D 80
[    3.528s] RX  I  type=50 cot=7 body=58 88 00 CD CC 4C 3D 80
[    3.528s] TX  S  N(R)=8  68 04 01 00 10 00
[    4.539s] CHECK se_sel_low                   PASS
[    4.539s] TX  I  C_SE exec 0x8858 = 0.050 (low)  68 12 06 00 10 00 32 01 06 00 01 00 58 88 00 CD CC 4C 3D 00
[    4.539s] CHECK se_exe_low                   PASS
[    4.628s] RX  I  type=50 cot=7 body=58 88 00 CD CC 4C 3D 00
[    4.628s] TX  S  N(R)=9  68 04 01 00 12 00
[    7.649s] CHECK plate_out_persisted_no_trip  PASS plate OUT state survived the reset
[    7.649s] TX  I  C_DC 0x600B select QDC=82  68 0E 08 00 12 00 34 01 06 00 01 00 0B 60 00 82
[    7.731s] RX  I  type=52 cot=7 body=0B 60 00 82
[    7.731s] TX  S  N(R)=10  68 04 01 00 14 00
[    8.734s] CHECK yk12_on_sel                  PASS
[    8.734s] TX  I  C_DC 0x600B execute QDC=02  68 0E 0A 00 14 00 34 01 06 00 01 00 0B 60 00 02
[    8.734s] CHECK yk12_on_exe                  PASS
[    8.831s] RX  I  type=52 cot=7 body=0B 60 00 02
[    8.831s] TX  S  N(R)=11  68 04 01 00 16 00
[    8.934s] RX  I  M_SP ioa=15 val=1 iv=0 cot=3  [N(R)=6]
[    8.934s] TX  S  N(R)=12  68 04 01 00 18 00
[    8.936s] RX  I  M_SP ioa=16 val=1 iv=0 cot=3  [N(R)=6]
[    8.936s] TX  S  N(R)=13  68 04 01 00 1A 00
[    9.946s] CHECK spont_yx16_ON_after_reboot   PASS
[    9.946s] TX  I  C_SE select 0x8858 = 10.000 (restore)  68 12 0C 00 1A 00 32 01 06 00 01 00 58 88 00 00 00 20 41 80
[   10.039s] RX  I  type=50 cot=7 body=58 88 00 00 00 20 41 80
[   10.040s] TX  S  N(R)=14  68 04 01 00 1C 00
[   10.539s] RX  I  M_SP ioa=15 val=0 iv=0 cot=3  [N(R)=7]
[   10.539s] TX  S  N(R)=15  68 04 01 00 1E 00
[   10.541s] RX  I  M_SP ioa=16 val=0 iv=0 cot=3  [N(R)=7]
[   10.541s] TX  S  N(R)=16  68 04 01 00 20 00
[   10.643s] RX  I  M_SP ioa=15 val=1 iv=0 cot=3  [N(R)=7]
[   10.643s] TX  S  N(R)=17  68 04 01 00 22 00
[   10.644s] RX  I  M_SP ioa=16 val=1 iv=0 cot=3  [N(R)=7]
[   10.644s] TX  S  N(R)=18  68 04 01 00 24 00
[   10.745s] RX  I  M_SP ioa=15 val=0 iv=0 cot=3  [N(R)=7]
[   10.745s] TX  S  N(R)=19  68 04 01 00 26 00
[   10.746s] RX  I  M_SP ioa=16 val=0 iv=0 cot=3  [N(R)=7]
[   10.746s] TX  S  N(R)=20  68 04 01 00 28 00
[   10.848s] RX  I  M_SP ioa=15 val=1 iv=0 cot=3  [N(R)=7]
[   10.848s] TX  S  N(R)=21  68 04 01 00 2A 00
[   10.849s] RX  I  M_SP ioa=16 val=1 iv=0 cot=3  [N(R)=7]
[   10.849s] TX  S  N(R)=22  68 04 01 00 2C 00
[   11.250s] RX  S  N(R)=7
[   11.251s] CHECK se_sel_restore               PASS
[   11.251s] TX  I  C_SE exec 0x8858 = 10.000 (restore)  68 12 0E 00 2C 00 32 01 06 00 01 00 58 88 00 00 00 20 41 00
[   11.251s] CHECK se_exe_restore               PASS
[   11.351s] RX  I  type=50 cot=7 body=58 88 00 00 00 20 41 00
[   11.351s] TX  S  N(R)=23  68 04 01 00 2E 00
[   11.351s] RX  I  M_SP ioa=15 val=0 iv=0 cot=3  [N(R)=8]
[   11.352s] TX  S  N(R)=24  68 04 01 00 30 00
[   11.352s] RX  I  M_SP ioa=16 val=0 iv=0 cot=3  [N(R)=8]
[   11.352s] TX  S  N(R)=25  68 04 01 00 32 00
[   12.360s] CHECK yx16_off_final               PASS via spontaneous COT=3
[   12.360s] wait 1s: final dirty -> save, leave plate IN
[   13.360s] SUMMARY: 13/13 checks PASS -> PASS

==== phase 3: --b7-mark (4/4 PASS) ====
[    0.007s] iec104 master client -> 192.168.1.100:2404  mode=mark
[    0.036s] TX  U  STARTDT act  68 04 07 00 00 00
[    0.166s] RX  U  STARTDT con
[    1.172s] CHECK startdt_con                  PASS
[    1.172s] TX  I  C_SE select 0x8858 = 7.500 (distinct)  68 12 00 00 00 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 80
[    1.268s] RX  I  type=50 cot=7 body=58 88 00 00 00 F0 40 80
[    1.268s] TX  S  N(R)=1  68 04 01 00 02 00
[    2.273s] CHECK se_sel_distinct              PASS
[    2.273s] TX  I  C_SE exec 0x8858 = 7.500 (distinct)  68 12 02 00 02 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 00
[    2.273s] CHECK se_exe_distinct              PASS
[    2.273s] TX  I  C_RD 0x8858  68 0D 04 00 02 00 66 01 05 00 01 00 58 88 00
[    2.368s] RX  I  type=50 cot=7 body=58 88 00 00 00 F0 40 00
[    2.368s] TX  S  N(R)=2  68 04 01 00 04 00
[    2.469s] RX  I  M_ME_NC ioa=0x8858 val=7.500 qds=0x00 cot=5
[    2.469s] TX  S  N(R)=3  68 04 01 00 06 00
[    3.473s] CHECK rd_distinct                  PASS read=7.500 want=7.500
[    3.473s] wait 1.5s: dirty -> save (/prot_set.bin)
[    4.973s] SUMMARY: 4/4 checks PASS -> PASS

==== phase 4: --b7-check (4/4 PASS, non-default 7.5 survived reset) ====
[    0.006s] iec104 master client -> 192.168.1.100:2404  mode=check
[    0.029s] TX  U  STARTDT act  68 04 07 00 00 00
[    0.186s] RX  U  STARTDT con
[    1.198s] CHECK startdt_con                  PASS
[    1.198s] TX  I  C_RD 0x8858  68 0D 00 00 00 00 66 01 05 00 01 00 58 88 00
[    1.293s] RX  I  M_ME_NC ioa=0x8858 val=7.500 qds=0x00 cot=5
[    1.293s] TX  S  N(R)=1  68 04 01 00 02 00
[    2.297s] CHECK persist_distinct_after_reset PASS read=7.500 want=7.500
[    2.297s] TX  I  C_SE select 0x8858 = 10.000 (restore)  68 12 02 00 02 00 32 01 06 00 01 00 58 88 00 00 00 20 41 80
[    2.387s] RX  I  type=50 cot=7 body=58 88 00 00 00 20 41 80
[    2.387s] TX  S  N(R)=2  68 04 01 00 04 00
[    3.391s] CHECK se_sel_restore               PASS
[    3.391s] TX  I  C_SE exec 0x8858 = 10.000 (restore)  68 12 04 00 04 00 32 01 06 00 01 00 58 88 00 00 00 20 41 00
[    3.391s] CHECK se_exe_restore               PASS
[    3.391s] wait 1s: restore saved, bench left at defaults
[    4.392s] SUMMARY: 4/4 checks PASS -> PASS
