Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

180 Zeilen
11 KiB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <svg xmlns="http://www.w3.org/2000/svg" width="1800" height="1100" viewBox="0 0 1800 1100" role="img" aria-labelledby="title desc">
  3. <title id="title">PLSR 4.2.1 数据流关系图</title>
  4. <desc id="desc">展示PLSR逻辑软元件、参数快照、路径和速度处理、轴状态机、硬件与软件计数、状态发布及持久化之间的数据关系。</desc>
  5. <defs>
  6. <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
  7. <stop offset="0" stop-color="#F8FBFF"/>
  8. <stop offset="1" stop-color="#EEF3F9"/>
  9. </linearGradient>
  10. <filter id="shadow" x="-12%" y="-12%" width="124%" height="135%">
  11. <feDropShadow dx="0" dy="5" stdDeviation="7" flood-color="#183A61" flood-opacity="0.14"/>
  12. </filter>
  13. <marker id="blueArrow" markerWidth="11" markerHeight="11" refX="9" refY="5.5" orient="auto">
  14. <path d="M0,0 L11,5.5 L0,11 z" fill="#3478B9"/>
  15. </marker>
  16. <marker id="orangeArrow" markerWidth="11" markerHeight="11" refX="9" refY="5.5" orient="auto">
  17. <path d="M0,0 L11,5.5 L0,11 z" fill="#D96F1E"/>
  18. </marker>
  19. <marker id="greenArrow" markerWidth="11" markerHeight="11" refX="9" refY="5.5" orient="auto">
  20. <path d="M0,0 L11,5.5 L0,11 z" fill="#398760"/>
  21. </marker>
  22. <marker id="purpleArrow" markerWidth="11" markerHeight="11" refX="9" refY="5.5" orient="auto">
  23. <path d="M0,0 L11,5.5 L0,11 z" fill="#7759A7"/>
  24. </marker>
  25. <style>
  26. .title { font: 700 34px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #17385F; }
  27. .subtitle { font: 400 16px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #5E7187; }
  28. .layer { font: 700 21px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #17385F; }
  29. .box-title { font: 700 18px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #17385F; }
  30. .box-text { font: 400 14px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #445C75; }
  31. .small { font: 400 13px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #5A6E83; }
  32. .white-title { font: 700 19px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #FFFFFF; }
  33. .white-text { font: 400 14px "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; fill: #F4F8FD; }
  34. .blue { fill: none; stroke: #3478B9; stroke-width: 3; marker-end: url(#blueArrow); }
  35. .orange { fill: none; stroke: #D96F1E; stroke-width: 3; marker-end: url(#orangeArrow); }
  36. .green { fill: none; stroke: #398760; stroke-width: 3; marker-end: url(#greenArrow); }
  37. .purple { fill: none; stroke: #7759A7; stroke-width: 3; marker-end: url(#purpleArrow); }
  38. .dash { stroke-dasharray: 8 7; }
  39. </style>
  40. </defs>
  41. <rect width="1800" height="1100" fill="url(#bg)"/>
  42. <text x="900" y="50" text-anchor="middle" class="title">PLSR 数据流关系图</text>
  43. <text x="900" y="78" text-anchor="middle" class="subtitle">参数数据、运行快照、运动计算、实时计数、状态发布与持久化</text>
  44. <!-- 输入数据层 -->
  45. <g filter="url(#shadow)">
  46. <rect x="70" y="105" width="1660" height="145" rx="20" fill="#FFFFFF" stroke="#A9C5E2" stroke-width="2"/>
  47. </g>
  48. <text x="105" y="140" class="layer">输入数据层</text>
  49. <rect x="260" y="135" width="310" height="83" rx="14" fill="#EDF5FE" stroke="#9CBFE1"/>
  50. <text x="415" y="167" text-anchor="middle" class="box-title">S0 / S1 动态数据</text>
  51. <text x="415" y="194" text-anchor="middle" class="box-text">路径段 · 定位模式 · 起始段</text>
  52. <rect x="600" y="135" width="310" height="83" rx="14" fill="#EDF5FE" stroke="#9CBFE1"/>
  53. <text x="755" y="167" text-anchor="middle" class="box-title">S2 与固定配置</text>
  54. <text x="755" y="194" text-anchor="middle" class="box-text">HSD460~539 · SFD900~1419</text>
  55. <rect x="940" y="135" width="310" height="83" rx="14" fill="#EDF5FE" stroke="#9CBFE1"/>
  56. <text x="1095" y="167" text-anchor="middle" class="box-title">D 与输出配置</text>
  57. <text x="1095" y="194" text-anchor="middle" class="box-text">模式 · 高速点 · DIR点 · 极性</text>
  58. <rect x="1280" y="135" width="310" height="83" rx="14" fill="#EDF5FE" stroke="#9CBFE1"/>
  59. <text x="1435" y="167" text-anchor="middle" class="box-title">命令与运行变量</text>
  60. <text x="1435" y="194" text-anchor="middle" class="box-text">START/STOP · Wait/EXT · 动态频率</text>
  61. <!-- 参数提交 -->
  62. <path d="M415 218 L415 276 L675 276" class="blue"/>
  63. <path d="M755 218 L755 276" class="blue"/>
  64. <path d="M1095 218 L1095 276 L825 276" class="blue"/>
  65. <g filter="url(#shadow)">
  66. <rect x="610" y="285" width="580" height="96" rx="17" fill="#FFFFFF" stroke="#6E9FD0" stroke-width="2"/>
  67. </g>
  68. <text x="900" y="320" text-anchor="middle" class="box-title">PlsrParser_BuildSnapshot</text>
  69. <text x="900" y="349" text-anchor="middle" class="box-text">边界与组合校验 · 原子申请资源 · 生成不可变执行副本</text>
  70. <path d="M900 381 L900 409" class="blue"/>
  71. <g filter="url(#shadow)">
  72. <rect x="650" y="418" width="500" height="84" rx="16" fill="#2F70AF"/>
  73. </g>
  74. <text x="900" y="451" text-anchor="middle" class="white-title">PlsrJobSnapshot</text>
  75. <text x="900" y="479" text-anchor="middle" class="white-text">S0段快照 · S1模式 · S2参数 · D绑定 · 计数器租约</text>
  76. <!-- 运动处理层 -->
  77. <text x="80" y="548" class="layer">运动处理层</text>
  78. <path d="M900 502 L900 530 L320 530 L320 565" class="blue"/>
  79. <path d="M900 502 L900 565" class="blue"/>
  80. <path d="M900 502 L900 530 L1480 530 L1480 565" class="blue"/>
  81. <rect x="140" y="575" width="360" height="112" rx="16" fill="#FFFFFF" stroke="#86AFD6" stroke-width="2"/>
  82. <text x="320" y="610" text-anchor="middle" class="box-title">PlsrPath 路径解释</text>
  83. <text x="320" y="638" text-anchor="middle" class="box-text">段进入 · Wait/ACT/EXT · 动态跳转</text>
  84. <text x="320" y="663" text-anchor="middle" class="box-text">输出:段目标、方向、结束与事件</text>
  85. <rect x="720" y="575" width="360" height="112" rx="16" fill="#FFFFFF" stroke="#86AFD6" stroke-width="2"/>
  86. <text x="900" y="610" text-anchor="middle" class="box-title">PlsrProfile 速度规划</text>
  87. <text x="900" y="638" text-anchor="middle" class="box-text">直线/S形/正弦 · 短距离 · 动态调频</text>
  88. <text x="900" y="663" text-anchor="middle" class="box-text">输出:命令频率与PSC/ARR/CCR</text>
  89. <rect x="1300" y="575" width="360" height="112" rx="16" fill="#FFFFFF" stroke="#86AFD6" stroke-width="2"/>
  90. <text x="1480" y="610" text-anchor="middle" class="box-title">PlsrResource 资源管理</text>
  91. <text x="1480" y="638" text-anchor="middle" class="box-text">Q0~Q3 · DIR · TIM9/TIM12</text>
  92. <text x="1480" y="663" text-anchor="middle" class="box-text">输出:输出租约与计数模式</text>
  93. <!-- 轴运行对象 -->
  94. <path d="M320 687 L320 702 L575 702 L575 760 L597 760" class="blue"/>
  95. <path d="M900 687 L900 710" class="blue"/>
  96. <path d="M1480 687 L1480 700 L1215 700 L1215 760 L1203 760" class="blue"/>
  97. <g filter="url(#shadow)">
  98. <rect x="605" y="718" width="590" height="132" rx="20" fill="#173F69"/>
  99. </g>
  100. <text x="900" y="757" text-anchor="middle" class="white-title">PlsrAxis 四轴运行对象</text>
  101. <text x="900" y="787" text-anchor="middle" class="white-text">状态机 · 当前段 · 运行快照 · 计数模式 · 停止原因</text>
  102. <text x="900" y="815" text-anchor="middle" class="white-text">64位逻辑位置 · 任务累计 · 总累计 · 事件序号</text>
  103. <!-- 实时硬件数据路径 -->
  104. <path d="M1080 650 L1120 650 L1120 690 L1210 690 L1210 762 L1217 762" class="orange"/>
  105. <rect x="1225" y="718" width="245" height="88" rx="14" fill="#FFF2E8" stroke="#E29A65" stroke-width="2"/>
  106. <text x="1347" y="750" text-anchor="middle" class="box-title">TIM6 控制刷新</text>
  107. <text x="1347" y="777" text-anchor="middle" class="box-text">0.1 ms / 1 ms</text>
  108. <path d="M1347 718 L1347 704 L1575 704 L1575 718" class="orange"/>
  109. <rect x="1480" y="718" width="250" height="88" rx="14" fill="#FFF2E8" stroke="#E29A65" stroke-width="2"/>
  110. <text x="1605" y="750" text-anchor="middle" class="box-title">PWM输出定时器</text>
  111. <text x="1605" y="777" text-anchor="middle" class="box-text">TIM10/13/11/14</text>
  112. <path d="M1605 806 L1605 821" class="orange"/>
  113. <rect x="1435" y="830" width="295" height="90" rx="14" fill="#FFF2E8" stroke="#E29A65" stroke-width="2"/>
  114. <text x="1582" y="859" text-anchor="middle" class="box-title">脉冲累计与ISR事件</text>
  115. <text x="1582" y="885" text-anchor="middle" class="box-text">TIM9/TIM12硬件计数优先</text>
  116. <text x="1582" y="908" text-anchor="middle" class="box-text">输出定时器软件计数兜底</text>
  117. <path d="M1435 875 L1220 875 L1220 784 L1203 784" class="orange"/>
  118. <text x="1260" y="864" class="small">块累计 / 最终比较 / 故障事件</text>
  119. <!-- 状态与持久化 -->
  120. <path d="M780 850 L780 927" class="green"/>
  121. <rect x="80" y="936" width="390" height="105" rx="16" fill="#F0FAF4" stroke="#7DB899" stroke-width="2"/>
  122. <text x="275" y="970" text-anchor="middle" class="box-title">Flash / Backup SRAM</text>
  123. <text x="275" y="998" text-anchor="middle" class="box-text">固定配置 · K0 · 位置与累计检查点</text>
  124. <text x="275" y="1023" text-anchor="middle" class="box-text">复位后不自动恢复运动</text>
  125. <path d="M650 850 L650 900 L275 900 L275 927" class="green"/>
  126. <rect x="600" y="936" width="360" height="105" rx="16" fill="#F0FAF4" stroke="#7DB899" stroke-width="2"/>
  127. <text x="780" y="970" text-anchor="middle" class="box-title">PlsrStatusPublish</text>
  128. <text x="780" y="998" text-anchor="middle" class="box-text">版本化一致快照</text>
  129. <text x="780" y="1023" text-anchor="middle" class="box-text">状态 · 频率 · 位置 · 计数 · 错误</text>
  130. <path d="M960 988 L1000 988" class="purple"/>
  131. <rect x="1010" y="936" width="350" height="105" rx="16" fill="#F5F0FC" stroke="#A995C7" stroke-width="2"/>
  132. <text x="1185" y="970" text-anchor="middle" class="box-title">固定运行状态</text>
  133. <text x="1185" y="998" text-anchor="middle" class="box-text">HSD0~15 · SM · SD</text>
  134. <text x="1185" y="1023" text-anchor="middle" class="box-text">I6000~6399段事件</text>
  135. <path d="M1360 988 L1400 988" class="purple"/>
  136. <rect x="1410" y="936" width="320" height="105" rx="16" fill="#F5F0FC" stroke="#A995C7" stroke-width="2"/>
  137. <text x="1570" y="970" text-anchor="middle" class="box-title">外部读取</text>
  138. <text x="1570" y="998" text-anchor="middle" class="box-text">Modbus RTU · 内部API</text>
  139. <text x="1570" y="1023" text-anchor="middle" class="box-text">读取一致状态,不直接写运行对象</text>
  140. <!-- 动态命令到状态机 -->
  141. <path d="M1435 218 L1435 270 L1240 270 L1240 755 L1203 755" class="purple dash"/>
  142. <text x="1255" y="293" class="small">运行命令与条件变量</text>
  143. <!-- 图例 -->
  144. <circle cx="90" cy="1073" r="6" fill="#3478B9"/>
  145. <text x="105" y="1078" class="small">配置与运动数据</text>
  146. <circle cx="265" cy="1073" r="6" fill="#D96F1E"/>
  147. <text x="280" y="1078" class="small">硬实时数据与事件</text>
  148. <circle cx="470" cy="1073" r="6" fill="#398760"/>
  149. <text x="485" y="1078" class="small">持久化数据</text>
  150. <circle cx="615" cy="1073" r="6" fill="#7759A7"/>
  151. <text x="630" y="1078" class="small">状态/命令接口</text>
  152. </svg>