<mxfile host="Electron" modified="2026-09-10T00:00:00.000Z" agent="Codex" version="24.7.17" type="device">
|
<diagram id="tap-overview" name="01-总体分层结构">
|
<mxGraphModel dx="1680" dy="1188" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1680" pageHeight="1188" math="0" shadow="0" background="#FFFFFF">
|
<root>
|
<mxCell id="0"/>
|
<mxCell id="1" parent="0"/>
|
<mxCell id="p1_title" value="TapProject 代码总体分层结构" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=1;fontColor=#17365D;" vertex="1" parent="1"><mxGeometry x="60" y="20" width="1180" height="36" as="geometry"/></mxCell>
|
<mxCell id="p1_subtitle" value="静态源码快照:45 个内部工程|.NET Framework 4.7.2|实线=运行/承载链路,灰色虚线=编译或框架依赖" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#666666;" vertex="1" parent="1"><mxGeometry x="60" y="56" width="1500" height="24" as="geometry"/></mxCell>
|
<mxCell id="p1_host_layer" value="WPF 宿主与启动层" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#F4F8FC;strokeColor=#7EA6D8;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#17365D;" vertex="1" parent="1"><mxGeometry x="60" y="95" width="1560" height="185" as="geometry"/></mxCell>
|
<mxCell id="p1_app" value="<b>App / TestPlatform</b><br>单实例、日志、语言、资源<br>程序集解析与启动" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#17365D;spacing=8;" vertex="1" parent="1"><mxGeometry x="95" y="145" width="285" height="95" as="geometry"/></mxCell>
|
<mxCell id="p1_login" value="<b>Login + UserInfo</b><br>SQLite 用户/角色/菜单<br>生成权限上下文" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#17365D;spacing=8;" vertex="1" parent="1"><mxGeometry x="425" y="145" width="285" height="95" as="geometry"/></mxCell>
|
<mxCell id="p1_loader" value="<b>LoadingWindow + PluginLoader</b><br>权限菜单树、反射装载 DLL<br>注入日志/配置并初始化" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#17365D;spacing=8;" vertex="1" parent="1"><mxGeometry x="755" y="145" width="320" height="95" as="geometry"/></mxCell>
|
<mxCell id="p1_host" value="<b>PanuonWindow + MainTabControl</b><br>IPluginContainer、菜单与页签承载<br>Active / DeActive / Close 生命周期" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#17365D;spacing=8;" vertex="1" parent="1"><mxGeometry x="1120" y="145" width="450" height="95" as="geometry"/></mxCell>
|
<mxCell id="p1_plugin_layer" value="业务与功能插件层" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9F0;strokeColor=#E6A23C;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#7F6000;" vertex="1" parent="1"><mxGeometry x="60" y="315" width="1560" height="300" as="geometry"/></mxCell>
|
<mxCell id="p1_burnin" value="<b>老化主业务(核心)</b><br><br>Plugin.BurnIn<br>炉体/穴位、扫码、PLC、MES<br>测试状态、曲线、SQLite/CSV<br><br>Plugin.CurrentSensorControl<br>Plugin.DOControl / DODriverControl" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FCE4D6;strokeColor=#ED7D31;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#843C0C;spacing=10;" vertex="1" parent="1"><mxGeometry x="95" y="365" width="340" height="205" as="geometry"/></mxCell>
|
<mxCell id="p1_test_plugins" value="<b>测试执行与编辑</b><br><br>Plugin.TsExecution<br>Plugin.StandardTest<br>Plugin.TestPlanEditor<br>Plugin.SeqEditor<br>Util.ManualDebug" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#7F6000;spacing=10;" vertex="1" parent="1"><mxGeometry x="470" y="365" width="340" height="205" as="geometry"/></mxCell>
|
<mxCell id="p1_data_plugins" value="<b>数据、结果与报告</b><br><br>Plugin.TestResult<br>Plugin.DataViewer / DataBoard<br>Plugin.QualityReport<br>HMI.DataViewer<br>HMI.LogViewer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E2F0D9;strokeColor=#70AD47;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#375623;spacing=10;" vertex="1" parent="1"><mxGeometry x="845" y="365" width="340" height="205" as="geometry"/></mxCell>
|
<mxCell id="p1_manage_plugins" value="<b>系统管理与其他插件</b><br><br>Menu / Setting / Parameter<br>AlarmInfo / ModelManage<br>JarUI / UICollection<br><br>菜单与用户权限决定实际装载集合" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E4DFEC;strokeColor=#8064A2;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#4C3768;spacing=10;" vertex="1" parent="1"><mxGeometry x="1220" y="365" width="350" height="205" as="geometry"/></mxCell>
|
<mxCell id="p1_framework_layer" value="平台框架与公共能力层" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#F5F5F5;strokeColor=#7F8C8D;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#37474F;" vertex="1" parent="1"><mxGeometry x="60" y="650" width="1560" height="200" as="geometry"/></mxCell>
|
<mxCell id="p1_core" value="<b>HMI.Core</b><br>IPlugin 契约、实体、设置<br>Manager、SQLite、路径/语言" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#37474F;spacing=8;" vertex="1" parent="1"><mxGeometry x="95" y="700" width="280" height="105" as="geometry"/></mxCell>
|
<mxCell id="p1_base" value="<b>HMI.Base</b><br>PluginLoader<br>PluginControl / MaskControl" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#37474F;spacing=8;" vertex="1" parent="1"><mxGeometry x="405" y="700" width="260" height="105" as="geometry"/></mxCell>
|
<mxCell id="p1_ui" value="<b>HMI.UI / StdControl</b><br>公共控件、样式、转换器<br>WPF/WinForms 承载" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#37474F;spacing=8;" vertex="1" parent="1"><mxGeometry x="695" y="700" width="280" height="105" as="geometry"/></mxCell>
|
<mxCell id="p1_util" value="<b>HMI.Util + SimpleUtil</b><br>配置、日志、串口、MSMQ<br>序列化与通用数据访问" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#37474F;spacing=8;" vertex="1" parent="1"><mxGeometry x="1005" y="700" width="280" height="105" as="geometry"/></mxCell>
|
<mxCell id="p1_ts_support" value="<b>TsSupport / TapApi</b><br>ITestExecutionWrapper<br>TestStand / OpenTAP 适配" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#37474F;spacing=8;" vertex="1" parent="1"><mxGeometry x="1315" y="700" width="255" height="105" as="geometry"/></mxCell>
|
<mxCell id="p1_infra_layer" value="设备、通信、数据与外部系统" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#F2F8F8;strokeColor=#4F9DA6;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#1F4E5F;" vertex="1" parent="1"><mxGeometry x="60" y="890" width="1560" height="250" as="geometry"/></mxCell>
|
<mxCell id="p1_plc_adapter" value="<b>PLC 适配</b><br>PLCHelper / S7Driver" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="100" y="945" width="300" height="65" as="geometry"/></mxCell>
|
<mxCell id="p1_plc_ext" value="西门子 S7 PLC / 老化炉控制器" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B9BD5;dashed=1;fontFamily=Microsoft YaHei;fontSize=11;" vertex="1" parent="1"><mxGeometry x="100" y="1045" width="300" height="55" as="geometry"/></mxCell>
|
<mxCell id="p1_comm_adapter" value="<b>通信与 I/O</b><br>OPC / Modbus TCP / DIO / TCP / Serial" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="480" y="945" width="300" height="65" as="geometry"/></mxCell>
|
<mxCell id="p1_comm_ext" value="扫码器、传感器、板卡与网络设备" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B9BD5;dashed=1;fontFamily=Microsoft YaHei;fontSize=11;" vertex="1" parent="1"><mxGeometry x="480" y="1045" width="300" height="55" as="geometry"/></mxCell>
|
<mxCell id="p1_exec_adapter" value="<b>测试执行适配</b><br>TapWrapper / TeststandWrapper" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="860" y="945" width="300" height="65" as="geometry"/></mxCell>
|
<mxCell id="p1_exec_ext" value="NI TestStand / OpenTAP(外部源工程当前缺失)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#C9A227;dashed=1;fontFamily=Microsoft YaHei;fontSize=11;" vertex="1" parent="1"><mxGeometry x="860" y="1045" width="300" height="55" as="geometry"/></mxCell>
|
<mxCell id="p1_data_adapter" value="<b>数据与企业集成</b><br>SQLite / CSV / Config / Log / HTTP" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="1240" y="945" width="300" height="65" as="geometry"/></mxCell>
|
<mxCell id="p1_data_ext" value="本地文件与数据库 / MES 服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B9BD5;dashed=1;fontFamily=Microsoft YaHei;fontSize=11;" vertex="1" parent="1"><mxGeometry x="1240" y="1045" width="300" height="55" as="geometry"/></mxCell>
|
<mxCell id="p1_e1" value="启动" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p1_app" target="p1_login"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e2" value="登录成功" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p1_login" target="p1_loader"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e3" value="装载完成" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p1_loader" target="p1_host"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e4" value="承载与切换" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p1_host" target="p1_plugin_layer"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e5" value="插件契约与公共能力" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;strokeColor=#808080;strokeWidth=1.5;dashed=1;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p1_plugin_layer" target="p1_framework_layer"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e6" value="适配与持久化" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;strokeColor=#808080;strokeWidth=1.5;dashed=1;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p1_framework_layer" target="p1_infra_layer"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#4F9DA6;strokeWidth=1.5;" edge="1" parent="1" source="p1_plc_adapter" target="p1_plc_ext"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#4F9DA6;strokeWidth=1.5;" edge="1" parent="1" source="p1_comm_adapter" target="p1_comm_ext"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#4F9DA6;strokeWidth=1.5;" edge="1" parent="1" source="p1_exec_adapter" target="p1_exec_ext"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p1_e10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#4F9DA6;strokeWidth=1.5;" edge="1" parent="1" source="p1_data_adapter" target="p1_data_ext"><mxGeometry relative="1" as="geometry"/></mxCell>
|
</root>
|
</mxGraphModel>
|
</diagram>
|
<diagram id="tap-runtime" name="02-运行时与老化主链路">
|
<mxGraphModel dx="1680" dy="1188" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1680" pageHeight="1188" math="0" shadow="0" background="#FFFFFF">
|
<root>
|
<mxCell id="0"/>
|
<mxCell id="1" parent="0"/>
|
<mxCell id="p2_title" value="TapProject 运行时装载与老化测试主链路" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=1;fontColor=#17365D;" vertex="1" parent="1"><mxGeometry x="60" y="20" width="1300" height="36" as="geometry"/></mxCell>
|
<mxCell id="p2_subtitle" value="关系来自 App/Login/PluginLoader/MainTabControl 与 Plugin.BurnIn、Plugin.TsSupport 的静态代码;部署配置和设备参数未联机验证" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#666666;" vertex="1" parent="1"><mxGeometry x="60" y="56" width="1500" height="24" as="geometry"/></mxCell>
|
<mxCell id="p2_start_layer" value="A. 启动、认证与插件装载(从左到右)" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#F4F8FC;strokeColor=#7EA6D8;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#17365D;" vertex="1" parent="1"><mxGeometry x="60" y="100" width="1560" height="335" as="geometry"/></mxCell>
|
<mxCell id="p2_app" value="<b>App</b><br>单实例保护<br>日志/语言/资源初始化" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="90" y="175" width="215" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_login" value="<b>Login</b><br>校验用户<br>查询角色与菜单权限" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="345" y="175" width="215" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_user" value="<b>UserInfo</b><br>Permissions<br>AllPermissions" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="600" y="175" width="200" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_loading" value="<b>LoadingWindow</b><br>AlarmUtil.Init<br>PluginLoader.LoadMenuAndPlugin" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="840" y="175" width="250" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_reflect" value="<b>反射装载</b><br>Assembly.LoadFrom<br>Activator.CreateInstance" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="1130" y="175" width="220" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_host" value="<b>PanuonWindow</b><br>MainTabControl<br>Active / DeActive / Close" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D9EAF7;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="1390" y="175" width="195" height="105" as="geometry"/></mxCell>
|
<mxCell id="p2_sqlite" value="<b>SQLite database.db</b><br>user / role / menu / permission 关系" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E2F0D9;strokeColor=#70AD47;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="345" y="330" width="455" height="70" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;" edge="1" parent="1" source="p2_app" target="p2_login"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;" edge="1" parent="1" source="p2_login" target="p2_user"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;" edge="1" parent="1" source="p2_user" target="p2_loading"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;" edge="1" parent="1" source="p2_loading" target="p2_reflect"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#1F4E79;strokeWidth=2;" edge="1" parent="1" source="p2_reflect" target="p2_host"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_start_e6" value="读取" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#70AD47;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" edge="1" parent="1" source="p2_sqlite" target="p2_login"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_burn_layer" value="B. Plugin.BurnIn 老化测试主链路" style="swimlane;horizontal=1;startSize=36;rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9F0;strokeColor=#E6A23C;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;fontColor=#7F6000;" vertex="1" parent="1"><mxGeometry x="60" y="470" width="1560" height="655" as="geometry"/></mxCell>
|
<mxCell id="p2_burnin" value="<b>BurnInUI</b><br>老化炉/穴位编排<br>启动、停止、状态与告警" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FCE4D6;strokeColor=#ED7D31;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#843C0C;spacing=8;" vertex="1" parent="1"><mxGeometry x="90" y="545" width="260" height="115" as="geometry"/></mxCell>
|
<mxCell id="p2_engine" value="<b>ITestExecutionWrapper</b><br>按序列扩展名选择引擎<br>.tapplan → OpenTAP" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#7F6000;spacing=8;" vertex="1" parent="1"><mxGeometry x="420" y="545" width="255" height="115" as="geometry"/></mxCell>
|
<mxCell id="p2_tap" value="<b>TapWrapper</b><br>TestPlanReader / Plan.Execute<br>StationGlobalsManager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="725" y="505" width="230" height="95" as="geometry"/></mxCell>
|
<mxCell id="p2_ts" value="<b>TeststandWrapper</b><br>NI AxApplicationMgr<br>Sequence / StationGlobals" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="725" y="625" width="230" height="95" as="geometry"/></mxCell>
|
<mxCell id="p2_msg" value="<b>UIMessage 事件总线</b><br>EventCode 10014<br>方法码更新状态/计数/曲线/提示" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E4DFEC;strokeColor=#8064A2;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#4C3768;spacing=8;" vertex="1" parent="1"><mxGeometry x="1005" y="545" width="250" height="115" as="geometry"/></mxCell>
|
<mxCell id="p2_cells" value="<b>DataTable / SingleCell</b><br>炉体与穴位模型<br>状态、条码、测量值、图表数据" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E2F0D9;strokeColor=#70AD47;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#375623;spacing=8;" vertex="1" parent="1"><mxGeometry x="1310" y="545" width="260" height="115" as="geometry"/></mxCell>
|
<mxCell id="p2_config" value="<b>产品与运行配置</b><br>ParameterManager / ProductManager<br>Scanner.ini / Count.ini / 主序列" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E7E6E6;strokeColor=#7F8C8D;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="90" y="760" width="260" height="100" as="geometry"/></mxCell>
|
<mxCell id="p2_plc" value="<b>PLCHelper.S7Context</b><br>BurnInControler<br>炉体、穴位与冷却状态读写" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="405" y="760" width="260" height="100" as="geometry"/></mxCell>
|
<mxCell id="p2_scan" value="<b>扫码与 MES</b><br>SerialPort + 条码解析<br>HTTP 获取 PN / 过站校验" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDEBF7;strokeColor=#5B9BD5;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="720" y="790" width="260" height="100" as="geometry"/></mxCell>
|
<mxCell id="p2_output" value="<b>结果与可视化</b><br>SQLite / CSV / Count.ini<br>LiveCharts 曲线、测试结果与报警" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E2F0D9;strokeColor=#70AD47;fontFamily=Microsoft YaHei;fontSize=11;spacing=8;" vertex="1" parent="1"><mxGeometry x="1310" y="760" width="260" height="100" as="geometry"/></mxCell>
|
<mxCell id="p2_ext_boundary" value="外部运行依赖:西门子 PLC|串口扫码器|MES HTTP 服务|NI TestStand 或 OpenTAP 运行时。当前源码快照未包含 OpenTAP/UILib/UtilLib 外部源工程,且未做设备联机验证。" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#C9A227;dashed=1;fontFamily=Microsoft YaHei;fontSize=11;fontColor=#7F6000;spacing=10;align=left;" vertex="1" parent="1"><mxGeometry x="90" y="985" width="1480" height="80" as="geometry"/></mxCell>
|
<mxCell id="p2_e1" value="初始化执行视图" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#C65911;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_burnin" target="p2_engine"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e2" value="OpenTAP" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#C65911;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_engine" target="p2_tap"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e3" value="其他序列" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#C65911;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_engine" target="p2_ts"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e4" value="统一事件" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#8064A2;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_tap" target="p2_msg"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e5" value="统一事件" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#8064A2;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_ts" target="p2_msg"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e6" value="更新模型" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#8064A2;strokeWidth=2;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="p2_msg" target="p2_cells"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e7" value="落库/导出" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#70AD47;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p2_cells" target="p2_output"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e8" value="读取" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;strokeWidth=1.5;dashed=1;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" edge="1" parent="1" source="p2_config" target="p2_burnin"><mxGeometry relative="1" as="geometry"/></mxCell>
|
<mxCell id="p2_e9" value="控制/采集" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p2_burnin" target="p2_plc"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="220" y="720"/><mxPoint x="535" y="720"/></Array></mxGeometry></mxCell>
|
<mxCell id="p2_e10" value="条码/过站" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#5B9BD5;strokeWidth=1.5;fontFamily=Microsoft YaHei;fontSize=10;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="p2_burnin" target="p2_scan"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="220" y="735"/><mxPoint x="850" y="735"/></Array></mxGeometry></mxCell>
|
</root>
|
</mxGraphModel>
|
</diagram>
|
</mxfile>
|