From 951a216adddb09d7c352850990bfdc4efbcd186d Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 13 三月 2026 12:00:38 +0800
Subject: [PATCH] docs: add S7 PLC simulator system design document

---
 Code/WCS/WIDESEAWCS_Server/docs/superpowers/specs/2026-03-13-s7-plc-simulator-design.md |  450 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 450 insertions(+), 0 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/docs/superpowers/specs/2026-03-13-s7-plc-simulator-design.md b/Code/WCS/WIDESEAWCS_Server/docs/superpowers/specs/2026-03-13-s7-plc-simulator-design.md
new file mode 100644
index 0000000..7fc0a41
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/docs/superpowers/specs/2026-03-13-s7-plc-simulator-design.md
@@ -0,0 +1,450 @@
+# S7 PLC妯℃嫙鍣ㄧ郴缁熻璁℃枃妗�
+
+**鏃ユ湡**: 2026-03-13
+**浣滆��**: Claude + 鐢ㄦ埛鍗忎綔
+**鐘舵��**: 宸叉壒鍑�
+
+---
+
+## 1. 闇�姹傛杩�
+
+### 1.1 鐩爣
+鍒涘缓涓�涓熀浜嶩SL Communication搴撶殑瑗块棬瀛怱7 PLC妯℃嫙鍣ㄧ郴缁燂紝鐢ㄤ簬WCS绯荤粺鐨勫紑鍙戞祴璇曘��
+
+### 1.2 鏍稿績闇�姹�
+- 鏀寔澶氬疄渚嬪悓鏃惰繍琛岋紝姣忎釜瀹炰緥鐙珛閰嶇疆
+- 鏀寔澶氱PLC鍨嬪彿锛圫7-200 Smart, S7-1200, S7-1500绛夛級
+- 鍙厤缃洃鍚鍙�
+- Web绠$悊鐣岄潰
+- 鍐呭瓨鏁版嵁鎸佷箙鍖栧埌鏈湴鏂囦欢
+- 鏀寔M/DB/I/Q/T/C鎵�鏈夊父鐢ㄥ湴鍧�鍖哄煙
+
+---
+
+## 2. 鏁翠綋鏋舵瀯
+
+```
+鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+鈹�                     WIDESEAWCS_S7Simulator                                  鈹�
+鈹溾攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+鈹�                                                                            鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�         Web绠$悊鐣岄潰 (Razor Pages/Blazor)                            鈹�  鈹�
+鈹�  鈹�  - 鏈嶅姟鍣ㄥ疄渚嬪垪琛紙鍗$墖瑙嗗浘锛�                                         鈹�  鈹�
+鈹�  鈹�  - 瀹炰緥鍒涘缓/缂栬緫琛ㄥ崟                                                  鈹�  鈹�
+鈹�  鈹�  - 瀹炰緥璇︽儏椤碉紙鐘舵�併�佸唴瀛樸�佸鎴风锛�                                   鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                    鈫� HTTP API + SignalR                   鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�                    Web API 鎺у埗鍣�                                    鈹�  鈹�
+鈹�  鈹�  - SimulatorInstancesController (CRUD)                              鈹�  鈹�
+鈹�  鈹�  - SimulatorInstanceController (鍚仠鎺у埗)                            鈹�  鈹�
+鈹�  鈹�  - MemoryController (鍐呭瓨璇诲啓)                                       鈹�  鈹�
+鈹�  鈹�  - ClientsController (瀹㈡埛绔鐞�)                                    鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                    鈫�                                       鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�                      瀹炰緥绠$悊鍣�                                      鈹�  鈹�
+鈹�  鈹�  Dictionary<string, IS7ServerInstance> 绠$悊鎵�鏈夊疄渚�                   鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                    鈫�                                       鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�  姣忎釜瀹炰緥鍖呭惈: IS7ServerInstance + IMemoryStore                      鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                    鈫�                                       鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�         澶氫釜HSL S7鏈嶅姟鍣ㄥ疄渚� (涓嶅悓绔彛)                              鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                    鈫�                                       鈹�
+鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�  鈹�              S7瀹㈡埛绔繛鎺� (WCS/娴嬭瘯宸ュ叿绛�)                           鈹�  鈹�
+鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹�
+鈹�                                                                            鈹�
+鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+```
+
+---
+
+## 3. 椤圭洰缁撴瀯
+
+```
+WIDESEAWCS_S7Simulator/
+鈹溾攢鈹� WIDESEAWCS_S7Simulator.sln
+鈹�
+鈹溾攢鈹� src/
+鈹�   鈹溾攢鈹� WIDESEAWCS_S7Simulator.Core/              # 鏍稿績棰嗗煙灞�
+鈹�   鈹�   鈹溾攢鈹� Entities/                             # 瀹炰綋
+鈹�   鈹�   鈹�   鈹溾攢鈹� SimulatorInstance.cs              # 瀹炰緥瀹炰綋
+鈹�   鈹�   鈹�   鈹溾攢鈹� InstanceConfig.cs                 # 瀹炰緥閰嶇疆
+鈹�   鈹�   鈹�   鈹溾攢鈹� InstanceState.cs                  # 瀹炰緥鐘舵��
+鈹�   鈹�   鈹�   鈹斺攢鈹� S7ClientConnection.cs             # 瀹㈡埛绔繛鎺�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Interfaces/                           # 鎺ュ彛
+鈹�   鈹�   鈹�   鈹溾攢鈹� IS7ServerInstance.cs              # 鏈嶅姟鍣ㄥ疄渚嬫帴鍙�
+鈹�   鈹�   鈹�   鈹溾攢鈹� IMemoryStore.cs                   # 鍐呭瓨瀛樺偍鎺ュ彛
+鈹�   鈹�   鈹�   鈹溾攢鈹� IPersistenceService.cs            # 鎸佷箙鍖栨湇鍔℃帴鍙�
+鈹�   鈹�   鈹�   鈹斺攢鈹� ISimulatorInstanceManager.cs      # 瀹炰緥绠$悊鍣ㄦ帴鍙�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Memory/                               # 鍐呭瓨妯℃嫙
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryStore.cs                    # 鍐呭瓨瀛樺偍瀹炵幇
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryRegion.cs                   # 鍐呭瓨鍖哄煙鍩虹被
+鈹�   鈹�   鈹�   鈹溾攢鈹� MRegion.cs                        # M鍖哄疄鐜�
+鈹�   鈹�   鈹�   鈹溾攢鈹� DBRegion.cs                       # DB鍖哄疄鐜�
+鈹�   鈹�   鈹�   鈹溾攢鈹� IRegion.cs                        # I鍖哄疄鐜�
+鈹�   鈹�   鈹�   鈹溾攢鈹� QRegion.cs                        # Q鍖哄疄鐜�
+鈹�   鈹�   鈹�   鈹溾攢鈹� TRegion.cs                        # T鍖哄疄鐜�
+鈹�   鈹�   鈹�   鈹斺攢鈹� CRegion.cs                        # C鍖哄疄鐜�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Server/                               # S7鏈嶅姟鍣�
+鈹�   鈹�   鈹�   鈹斺攢鈹� S7ServerInstance.cs               # 鏈嶅姟鍣ㄥ疄渚嬪疄鐜�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Persistence/                          # 鏁版嵁鎸佷箙鍖�
+鈹�   鈹�   鈹�   鈹溾攢鈹� FilePersistenceService.cs         # 鏂囦欢鎸佷箙鍖栧疄鐜�
+鈹�   鈹�   鈹�   鈹斺攢鈹� Models/
+鈹�   鈹�   鈹�       鈹斺攢鈹� InstanceDataModel.cs          # 鏁版嵁妯″瀷
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Manager/                              # 绠$悊鍣�
+鈹�   鈹�   鈹�   鈹斺攢鈹� SimulatorInstanceManager.cs       # 瀹炰緥绠$悊鍣ㄥ疄鐜�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹斺攢鈹� Enums/                                # 鏋氫妇
+鈹�   鈹�       鈹溾攢鈹� SiemensPLCType.cs                 # PLC鍨嬪彿
+鈹�   鈹�       鈹斺攢鈹� InstanceStatus.cs                 # 瀹炰緥鐘舵��
+鈹�   鈹�
+鈹�   鈹溾攢鈹� WIDESEAWCS_S7Simulator.Application/       # 搴旂敤鏈嶅姟灞�
+鈹�   鈹�   鈹溾攢鈹� DTOs/                                 # 鏁版嵁浼犺緭瀵硅薄
+鈹�   鈹�   鈹�   鈹溾攢鈹� InstanceDTO.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� CreateInstanceDTO.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� UpdateInstanceDTO.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryReadDTO.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryWriteDTO.cs
+鈹�   鈹�   鈹�   鈹斺攢鈹� ClientConnectionDTO.cs
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Services/                             # 搴旂敤鏈嶅姟
+鈹�   鈹�   鈹�   鈹溾攢鈹� SimulatorInstanceAppService.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryAppService.cs
+鈹�   鈹�   鈹�   鈹斺攢鈹� ClientAppService.cs
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹斺攢鈹� Profiles/                             # AutoMapper閰嶇疆
+鈹�   鈹�       鈹斺攢鈹� MappingProfile.cs
+鈹�   鈹�
+鈹�   鈹溾攢鈹� WIDESEAWCS_S7Simulator.Server/           # Web API Host
+鈹�   鈹�   鈹溾攢鈹� Controllers/
+鈹�   鈹�   鈹�   鈹溾攢鈹� SimulatorInstancesController.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� SimulatorInstanceController.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� MemoryController.cs
+鈹�   鈹�   鈹�   鈹斺攢鈹� ClientsController.cs
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Infrastructure/
+鈹�   鈹�   鈹�   鈹溾攢鈹� DependencyInjection.cs
+鈹�   鈹�   鈹�   鈹斺攢鈹� Middleware/
+鈹�   鈹�   鈹�       鈹斺攢鈹� ExceptionMiddleware.cs
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Hubs/                                 # SignalR Hub
+鈹�   鈹�   鈹�   鈹斺攢鈹� SimulatorHub.cs                   # 瀹炴椂鐘舵�佹帹閫�
+鈹�   鈹�   鈹�
+鈹�   鈹�   鈹溾攢鈹� Program.cs
+鈹�   鈹�   鈹溾攢鈹� appsettings.json
+鈹�   鈹�   鈹斺攢鈹� WIDESEAWCS_S7Simulator.Server.csproj
+鈹�   鈹�
+鈹�   鈹斺攢鈹� WIDESEAWCS_S7Simulator.Web/              # Web绠$悊鐣岄潰
+鈹�       鈹溾攢鈹� Pages/                                # Razor Pages
+鈹�       鈹�   鈹溾攢鈹� Index.cshtml                      # 瀹炰緥鍒楄〃椤�
+鈹�       鈹�   鈹溾攢鈹� Create.cshtml                     # 鍒涘缓瀹炰緥椤�
+鈹�       鈹�   鈹溾攢鈹� Edit.cshtml                       # 缂栬緫瀹炰緥椤�
+鈹�       鈹�   鈹溾攢鈹� Details.cshtml                    # 瀹炰緥璇︽儏椤�
+鈹�       鈹�   鈹斺攢鈹� Shared/
+鈹�       鈹�       鈹溾攢鈹� _Layout.cshtml
+鈹�       鈹�       鈹斺攢鈹� _Components/
+鈹�       鈹�
+鈹�       鈹溾攢鈹� wwwroot/
+鈹�       鈹�   鈹溾攢鈹� css/site.css
+鈹�       鈹�   鈹溾攢鈹� js/site.js
+鈹�       鈹�   鈹斺攢鈹� lib/                              # 鍓嶇搴�
+鈹�       鈹�
+鈹�       鈹斺攢鈹� WIDESEAWCS_S7Simulator.Web.csproj
+鈹�
+鈹溾攢鈹� tests/
+鈹�   鈹溾攢鈹� WIDESEAWCS_S7Simulator.UnitTests/
+鈹�   鈹�   鈹溾攢鈹� Memory/
+鈹�   鈹�   鈹�   鈹溾攢鈹� MRegionTests.cs
+鈹�   鈹�   鈹�   鈹溾攢鈹� DBRegionTests.cs
+鈹�   鈹�   鈹�   鈹斺攢鈹� MemoryStoreTests.cs
+鈹�   鈹�   鈹溾攢鈹� Server/
+鈹�   鈹�   鈹�   鈹斺攢鈹� S7ServerInstanceTests.cs
+鈹�   鈹�   鈹斺攢鈹� Persistence/
+鈹�   鈹�       鈹斺攢鈹� FilePersistenceServiceTests.cs
+鈹�   鈹�
+鈹�   鈹斺攢鈹� WIDESEAWCS_S7Simulator.IntegrationTests/
+鈹�       鈹溾攢鈹� S7ClientConnectionTests.cs
+鈹�       鈹斺攢鈹� APIEndpointTests.cs
+鈹�
+鈹斺攢鈹� docs/
+    鈹斺攢鈹� API.md
+```
+
+---
+
+## 4. 鏍稿績缁勪欢璁捐
+
+### 4.1 瀹炰緥閰嶇疆 (InstanceConfig)
+
+```csharp
+public class InstanceConfig
+{
+    public string Id { get; set; }
+    public string Name { get; set; }
+    public SiemensPLCType PLCType { get; set; }
+    public int Port { get; set; }
+    public string ActivationKey { get; set; }
+    public bool AutoStart { get; set; }
+    public MemoryRegionConfig MemoryConfig { get; set; }
+}
+
+public class MemoryRegionConfig
+{
+    public int MRegionSize { get; set; } = 1024;
+    public int DBBlockCount { get; set; } = 100;
+    public int DBBlockSize { get; set; } = 1024;
+    public int IRegionSize { get; set; } = 256;
+    public int QRegionSize { get; set; } = 256;
+    public int TRegionCount { get; set; } = 64;
+    public int CRegionCount { get; set; } = 64;
+}
+```
+
+### 4.2 瀹炰緥鐘舵�� (InstanceState)
+
+```csharp
+public class InstanceState
+{
+    public string InstanceId { get; set; }
+    public InstanceStatus Status { get; set; }
+    public int ClientCount { get; set; }
+    public long TotalRequests { get; set; }
+    public DateTime? StartTime { get; set; }
+    public DateTime? LastActivityTime { get; set; }
+    public List<S7ClientConnection> Clients { get; set; } = new();
+}
+
+public enum InstanceStatus
+{
+    Stopped = 0,
+    Starting = 1,
+    Running = 2,
+    Stopping = 3,
+    Error = 4
+}
+```
+
+### 4.3 S7鏈嶅姟鍣ㄥ疄渚嬫帴鍙� (IS7ServerInstance)
+
+```csharp
+public interface IS7ServerInstance : IDisposable
+{
+    InstanceConfig Config { get; }
+    InstanceState State { get; }
+    IMemoryStore MemoryStore { get; }
+
+    Task<OperateResult> StartAsync();
+    Task<OperateResult> StopAsync();
+    Task<OperateResult> RestartAsync();
+
+    event EventHandler<InstanceStateEventArgs> StatusChanged;
+    event EventHandler<ClientConnectionEventArgs> ClientConnected;
+    event EventHandler<ClientConnectionEventArgs> ClientDisconnected;
+}
+```
+
+---
+
+## 5. 鍐呭瓨瀛樺偍璁捐
+
+### 5.1 鍐呭瓨瀛樺偍鎺ュ彛 (IMemoryStore)
+
+```csharp
+public interface IMemoryStore
+{
+    byte[] ReadBytes(string address, ushort length);
+    T Read<T>(string address) where T : struct;
+    void WriteBytes(string address, byte[] data);
+    void Write<T>(string address, T value) where T : struct;
+    IMemoryRegion GetRegion(string regionType);
+    void Clear();
+    Dictionary<string, byte[]> Export();
+    void Import(Dictionary<string, byte[]> data);
+}
+```
+
+### 5.2 鍐呭瓨鍖哄煙鎺ュ彛 (IMemoryRegion)
+
+```csharp
+public interface IMemoryRegion
+{
+    string RegionType { get; }
+    int Size { get; }
+    byte[] Read(ushort offset, ushort length);
+    void Write(ushort offset, byte[] data);
+    void Clear();
+}
+```
+
+---
+
+## 6. 鏁版嵁鎸佷箙鍖栬璁�
+
+### 6.1 鎸佷箙鍖栨湇鍔℃帴鍙�
+
+```csharp
+public interface IPersistenceService
+{
+    Task SaveInstanceConfigAsync(InstanceConfig config);
+    Task<InstanceConfig> LoadInstanceConfigAsync(string instanceId);
+    Task<List<InstanceConfig>> LoadAllInstanceConfigsAsync();
+    Task DeleteInstanceConfigAsync(string instanceId);
+    Task SaveMemoryDataAsync(string instanceId, IMemoryStore memoryStore);
+    Task LoadMemoryDataAsync(string instanceId, IMemoryStore memoryStore);
+}
+```
+
+### 6.2 鏁版嵁鐩綍缁撴瀯
+
+```
+Data/
+鈹溾攢鈹� instance-1/
+鈹�   鈹溾攢鈹� config.json
+鈹�   鈹斺攢鈹� memory.json
+鈹溾攢鈹� instance-2/
+鈹�   鈹溾攢鈹� config.json
+鈹�   鈹斺攢鈹� memory.json
+```
+
+---
+
+## 7. 瀹炰緥绠$悊鍣ㄨ璁�
+
+```csharp
+public interface ISimulatorInstanceManager
+{
+    IReadOnlyList<IS7ServerInstance> GetAllInstances();
+    IS7ServerInstance GetInstance(string instanceId);
+    Task<IS7ServerInstance> CreateInstanceAsync(CreateInstanceDTO createDto);
+    Task UpdateInstanceAsync(string instanceId, UpdateInstanceDTO updateDto);
+    Task DeleteInstanceAsync(string instanceId);
+    Task<OperateResult> StartInstanceAsync(string instanceId);
+    Task<OperateResult> StopInstanceAsync(string instanceId);
+    Task<OperateResult> RestartInstanceAsync(string instanceId);
+    Task StartAutoStartInstancesAsync();
+    Task StopAllInstancesAsync();
+
+    event EventHandler<InstanceStateEventArgs> InstanceStatusChanged;
+}
+```
+
+---
+
+## 8. Web API璁捐
+
+| 鏂规硶 | 璺緞 | 鎻忚堪 |
+|------|------|------|
+| GET | /api/instances | 鑾峰彇鎵�鏈夊疄渚嬪垪琛� |
+| POST | /api/instances | 鍒涘缓鏂板疄渚� |
+| GET | /api/instances/{id} | 鑾峰彇鎸囧畾瀹炰緥璇︽儏 |
+| PUT | /api/instances/{id} | 鏇存柊瀹炰緥閰嶇疆 |
+| DELETE | /api/instances/{id} | 鍒犻櫎瀹炰緥 |
+| POST | /api/instances/{id}/start | 鍚姩瀹炰緥 |
+| POST | /api/instances/{id}/stop | 鍋滄瀹炰緥 |
+| POST | /api/instances/{id}/restart | 閲嶅惎瀹炰緥 |
+| GET | /api/instances/{id}/memory | 璇诲彇鍐呭瓨鏁版嵁 |
+| POST | /api/instances/{id}/memory | 鍐欏叆鍐呭瓨鏁版嵁 |
+| DELETE | /api/instances/{id}/memory | 娓呯┖鍐呭瓨鏁版嵁 |
+| POST | /api/instances/{id}/memory/save | 淇濆瓨鍐呭瓨蹇収 |
+| POST | /api/instances/{id}/memory/load | 鍔犺浇鍐呭瓨蹇収 |
+| GET | /api/instances/{id}/clients | 鑾峰彇杩炴帴鐨勫鎴风鍒楄〃 |
+| DELETE | /api/instances/{id}/clients/{clientId} | 鏂紑鎸囧畾瀹㈡埛绔� |
+| POST | /api/instances/start-all | 鍚姩鎵�鏈夎嚜鍔ㄥ惎鍔ㄥ疄渚� |
+| POST | /api/instances/stop-all | 鍋滄鎵�鏈夊疄渚� |
+
+---
+
+## 9. Web鐣岄潰璁捐
+
+### 9.1 鎶�鏈爤
+- ASP.NET Core Razor Pages
+- Bootstrap 5 + Bootstrap Icons
+- Alpine.js (杞婚噺绾т氦浜�)
+- SignalR (瀹炴椂鐘舵�佹帹閫�)
+
+### 9.2 涓昏椤甸潰
+
+| 椤甸潰 | 鍔熻兘 |
+|------|------|
+| Index | 瀹炰緥鍒楄〃鍗$墖瑙嗗浘锛屾樉绀烘墍鏈夊疄渚嬬姸鎬� |
+| Create | 鍒涘缓鏂板疄渚嬭〃鍗� |
+| Edit | 缂栬緫瀹炰緥閰嶇疆 |
+| Details | 瀹炰緥璇︽儏锛氱姸鎬佷俊鎭�佸鎴风鍒楄〃銆佸唴瀛樻煡鐪�/缂栬緫 |
+
+---
+
+## 10. 閰嶇疆鏂囦欢
+
+```json
+{
+  "urls": "http://*:5000",
+  "S7Simulator": {
+    "DataPath": "Data",
+    "DefaultActivationKey": "4b86f3fc-f650-3b08-5924-b0f8278d6ed2",
+    "EnableAutoLoad": true,
+    "AutoStartInstances": true
+  },
+  "MemoryDefaults": {
+    "MRegionSize": 1024,
+    "DBBlockCount": 100,
+    "DBBlockSize": 1024,
+    "IRegionSize": 256,
+    "QRegionSize": 256,
+    "TRegionCount": 64,
+    "CRegionCount": 64
+  }
+}
+```
+
+---
+
+## 11. 娴嬭瘯绛栫暐
+
+### 11.1 鍗曞厓娴嬭瘯
+- `MemoryStoreTests` - 鍐呭瓨璇诲啓銆佽竟鐣屾鏌ャ�佸苟鍙戣闂�
+- `MRegionTests` - M鍖轰綅鎿嶄綔銆佸瓧鑺傛搷浣�
+- `DBRegionTests` - DB鍧楄鍐欍�佸鍧楃鐞�
+- `InstanceManagerTests` - 瀹炰緥鍒涘缓銆佸惎鍔ㄣ�佸仠姝€�佸垹闄�
+- `PersistenceServiceTests` - 閰嶇疆淇濆瓨/鍔犺浇銆佸唴瀛樺揩鐓�
+
+### 11.2 闆嗘垚娴嬭瘯
+- `S7ServerIntegrationTests` - 鐪熷疄S7瀹㈡埛绔繛鎺ユ祴璇�
+- `APIIntegrationTests` - Web API绔埌绔祴璇�
+- `MultiInstanceTests` - 澶氬疄渚嬪苟鍙戣繍琛屾祴璇�
+
+---
+
+## 12. 渚濊禆鍖�
+
+| 鍖呭悕 | 鐗堟湰 | 鐢ㄩ�� |
+|------|------|------|
+| HslCommunication | 12.6.3 | S7鍗忚閫氫俊 |
+| Microsoft.AspNetCore.SignalR | 鏈�鏂� | 瀹炴椂鐘舵�佹帹閫� |
+| Serilog.AspNetCore | 鏈�鏂� | 鏃ュ織璁板綍 |
+| AutoMapper | 鏈�鏂� | 瀵硅薄鏄犲皠 |
+| xUnit | 鏈�鏂� | 鍗曞厓娴嬭瘯 |
+
+---
+
+## 13. 鎬荤粨
+
+鏈璁″疄鐜颁簡涓�涓姛鑳藉畬鏁寸殑S7 PLC妯℃嫙鍣ㄧ郴缁燂細
+
+1. **澶氬疄渚嬬鐞�** - 鏀寔鍒涘缓鍜岀鐞嗗涓嫭绔嬬殑S7鏈嶅姟鍣ㄥ疄渚�
+2. **鐏垫椿閰嶇疆** - 姣忎釜瀹炰緥鍙嫭绔嬮厤缃甈LC鍨嬪彿銆佺鍙c�佸唴瀛樺ぇ灏忕瓑
+3. **鏁版嵁鎸佷箙鍖�** - 閰嶇疆鍜屽唴瀛樻暟鎹嚜鍔ㄤ繚瀛樺埌鏈湴鏂囦欢
+4. **Web绠$悊鐣岄潰** - 鎻愪緵鐩磋鐨刉eb UI杩涜瀹炰緥绠$悊
+5. **瀹屾暣鍐呭瓨妯℃嫙** - 鏀寔M/DB/I/Q/T/C鎵�鏈夊父鐢ㄥ尯鍩�
+6. **瀹炴椂鐩戞帶** - 鏄剧ず杩炴帴鐘舵�併�佽姹傛暟銆佸鎴风淇℃伅绛�

--
Gitblit v1.9.3