From 34ad8ad8e238d54d9695da9e8d101579c42516bb Mon Sep 17 00:00:00 2001 From: wanshenmean <cathay_xy@163.com> Date: 星期六, 18 四月 2026 22:40:02 +0800 Subject: [PATCH] fix(RobotJob): 修正机器人任务处理逻辑和注释错误 --- Code/WCS/WIDESEAWCS_Server/docs/换盘任务流程图.md | 291 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 291 insertions(+), 0 deletions(-) diff --git "a/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md" "b/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md" new file mode 100644 index 0000000..2defd1b --- /dev/null +++ "b/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md" @@ -0,0 +1,291 @@ +# 鎹㈢洏浠诲姟瀹屾暣娴佺▼鍒嗘瀽 + +## 浠诲姟鍙傛暟 + +| 鍙傛暟 | 鍊� | +|------|-----| +| 娴佸悜 | **Flow A** (isFlowA = true, 婧愬湴鍧� LineCode = "11001") | +| 婧愬湴鍧� | 11001 | +| 鐩爣鍦板潃 | 2101 | +| 姝e父鐢佃姱鏁伴噺 | **33** | +| 鍋囩數鑺暟閲� | 48 - 33 = **15** | +| 鐩爣鎬绘暟 | 48 | + +--- + +## 闃舵鐘舵�佸畾涔� + +| Phase | 鍚箟 | +|-------|------| +| 0 | 鏈紑濮� | +| 1 | 鍙栨甯哥數鑺� | +| 2 | 鏀炬甯哥數鑺� | +| 3 | 鍙栧亣鐢佃姱锛團low A: 浠�5鍙蜂綅鍙栵級 | +| 4 | 鏀惧亣鐢佃姱锛團low A: 鏀惧埌鐩爣鎵樼洏锛� | +| 5 | 绛夊緟鍏ュ簱瀹屾垚 | + +--- + +## 瀹屾暣浠g爜鎵ц娴佺▼锛�33 姝e父 + 15 鍋� = 48 鎬昏锛� + +### 鍒濆鐘舵�� + +``` +ChangePalletPhase = 0 +currentCompletedCount = 0 +targetNormalCount = 33 +``` + +--- + +### 绗�1杞細Pick 1-4 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 1 | HandlePutFinishedStateAsync | 1 | 0 | 33 - 0 = **33** | PickBatch(1, 4) 鈫� Phase=2 | +| 2 | (鏈烘鎵嬫墽琛屽彇璐�) | - | - | - | - | +| 3 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished, task鐘舵��=RobotPickFinish | +| 4 | HandlePickFinishedStateAsync | 2 | 0 | 33 - 0 = **33** | PutBatch(1, 4) 鈫� Phase=1 | +| 5 | (鏈烘鎵嬫墽琛屾斁璐�) | - | - | - | - | +| 6 | HandlePutFinishedAsync | - | **4** | - | currentCompletedCount+=4, task.RobotTaskTotalNum-=4 | + +--- + +### 绗�2杞細Pick 5-8 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 7 | HandlePutFinishedStateAsync | 1 | 4 | 33 - 4 = **29** | PickBatch(5, 8) 鈫� Phase=2 | +| 8 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 9 | HandlePickFinishedStateAsync | 2 | 4 | 33 - 4 = **29** | PutBatch(1, 4) 鈫� Phase=1 | +| 10 | HandlePutFinishedAsync | - | **8** | - | currentCompletedCount+=4 | + +--- + +### 绗�3杞細Pick 9-12 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 11 | HandlePutFinishedStateAsync | 1 | 8 | 33 - 8 = **25** | PickBatch(9, 12) 鈫� Phase=2 | +| 12 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 13 | HandlePickFinishedStateAsync | 2 | 8 | 33 - 8 = **25** | PutBatch(1, 4) 鈫� Phase=1 | +| 14 | HandlePutFinishedAsync | - | **12** | - | currentCompletedCount+=4 | + +--- + +### 绗�4杞細Pick 13-16 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 15 | HandlePutFinishedStateAsync | 1 | 12 | 33 - 12 = **21** | PickBatch(13, 16) 鈫� Phase=2 | +| 16 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 17 | HandlePickFinishedStateAsync | 2 | 12 | 33 - 12 = **21** | PutBatch(1, 4) 鈫� Phase=1 | +| 18 | HandlePutFinishedAsync | - | **16** | - | currentCompletedCount+=4 | + +--- + +### 绗�5杞細Pick 17-20 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 19 | HandlePutFinishedStateAsync | 1 | 16 | 33 - 16 = **17** | PickBatch(17, 20) 鈫� Phase=2 | +| 20 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 21 | HandlePickFinishedStateAsync | 2 | 16 | 33 - 16 = **17** | PutBatch(1, 4) 鈫� Phase=1 | +| 22 | HandlePutFinishedAsync | - | **20** | - | currentCompletedCount+=4 | + +--- + +### 绗�6杞細Pick 21-24 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 23 | HandlePutFinishedStateAsync | 1 | 20 | 33 - 20 = **13** | PickBatch(21, 24) 鈫� Phase=2 | +| 24 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 25 | HandlePickFinishedStateAsync | 2 | 20 | 33 - 20 = **13** | PutBatch(1, 4) 鈫� Phase=1 | +| 26 | HandlePutFinishedAsync | - | **24** | - | currentCompletedCount+=4 | + +--- + +### 绗�7杞細Pick 25-28 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 27 | HandlePutFinishedStateAsync | 1 | 24 | 33 - 24 = **9** | PickBatch(25, 28) 鈫� Phase=2 | +| 28 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 29 | HandlePickFinishedStateAsync | 2 | 24 | 33 - 24 = **9** | PutBatch(1, 4) 鈫� Phase=1 | +| 30 | HandlePutFinishedAsync | - | **28** | - | currentCompletedCount+=4 | + +--- + +### 绗�8杞細Pick 29-32 姝e父鐢佃姱 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 31 | HandlePutFinishedStateAsync | 1 | 28 | 33 - 28 = **5** | PickBatch(29, 32) 鈫� Phase=2 | +| 32 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 33 | HandlePickFinishedStateAsync | 2 | 28 | 33 - 28 = **5** | PutBatch(1, 4) 鈫� Phase=1 | +| 34 | HandlePutFinishedAsync | - | **32** | - | currentCompletedCount+=4 | + +--- + +### 绗�9杞細Pick 33 姝e父鐢佃姱锛堟渶鍚�1涓級 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 35 | HandlePutFinishedStateAsync | 1 | 32 | 33 - 32 = **1** | PickBatch(33, 33) 鈫� Phase=2 | +| 36 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 37 | HandlePickFinishedStateAsync | 2 | 32 | 33 - 32 = **1** | PutBatch(33, 33) 鈫� Phase=1 | +| 38 | HandlePutFinishedAsync | - | **33** | - | currentCompletedCount+=1 | + +--- + +### 绗�10杞細姝e父鐢佃姱鍏ㄩ儴瀹屾垚 鈫� 鍒囨崲 Phase 3 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 | +|------|------|-------|---------------------|----------------|------| +| 39 | HandlePutFinishedStateAsync | 1 | **33** | 33 - 33 = **0** 鈫� 鈮�0 | **鍒囨崲 Phase=3**, Pick fake from 5鍙蜂綅 | + +> **Flow A 鐗规��**锛氭甯哥數鑺彇瀹屽悗锛屾簮鎵樼洏锛�11001锛夊凡绌恒�傛鏃舵満姊版墜鎼哄甫鏈�鍚庝竴鎵规甯哥數鑺斁鍒扮洰鏍囨墭鐩樺悗锛屾簮鎵樼洏鑷姩绌哄嚭鍥炲簱銆備唬鐮佷腑涓嶉渶瑕佹樉寮忓鐞嗚繖涓洖搴撳姩浣溾�斺�旂敱杈撻�佺嚎鑷姩瀹屾垚銆� + +--- + +### 绗�11杞細Pick 1-4 鍋囩數鑺紙浠�5鍙蜂綅锛� + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 | +|------|------|-------|---------------------|--------------|------| +| 40 | HandlePutFinishedStateAsync | 3 | 33 | 15 - 0 = **15** | Pick fake from 5鍙蜂綅(1,4) 鈫� Phase=4 | +| 41 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 42 | HandlePickFinishedStateAsync | 4 | 33 | 15 - 0 = **15** | Put fake to target(BatchStart=34, 4涓�) 鈫� Phase=3 | +| 43 | HandlePutFinishedAsync | - | **37** | - | currentCompletedCount+=4 | + +--- + +### 绗�12杞細Pick 5-8 鍋囩數鑺� + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 | +|------|------|-------|---------------------|--------------|------| +| 44 | HandlePutFinishedStateAsync | 3 | 37 | 15 - 4 = **11** | Pick fake from 5鍙蜂綅(5,8) 鈫� Phase=4 | +| 45 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 46 | HandlePickFinishedStateAsync | 4 | 37 | 15 - 4 = **11** | Put fake to target(BatchStart=38, 4涓�) 鈫� Phase=3 | +| 47 | HandlePutFinishedAsync | - | **41** | - | currentCompletedCount+=4 | + +--- + +### 绗�13杞細Pick 9-12 鍋囩數鑺� + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 | +|------|------|-------|---------------------|--------------|------| +| 48 | HandlePutFinishedStateAsync | 3 | 41 | 15 - 8 = **7** | Pick fake from 5鍙蜂綅(9,12) 鈫� Phase=4 | +| 49 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 50 | HandlePickFinishedStateAsync | 4 | 41 | 15 - 8 = **7** | Put fake to target(BatchStart=42, 4涓�) 鈫� Phase=3 | +| 51 | HandlePutFinishedAsync | - | **45** | - | currentCompletedCount+=4 | + +--- + +### 绗�14杞細Pick 13-15 鍋囩數鑺紙鏈�鍚�3涓級 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 | +|------|------|-------|---------------------|--------------|------| +| 52 | HandlePutFinishedStateAsync | 3 | 45 | 15 - 12 = **3** | Pick fake from 5鍙蜂綅(13,15) 鈫� Phase=4 | +| 53 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished | +| 54 | HandlePickFinishedStateAsync | 4 | 45 | 15 - 12 = **3** | Put fake to target(BatchStart=46, 3涓�) 鈫� Phase=3 | +| 55 | HandlePutFinishedAsync | - | **48** | - | currentCompletedCount+=3 | + +--- + +### 绗�15杞細鍋囩數鑺叏閮ㄥ畬鎴� 鈫� 鍒囨崲 Phase 5 + +| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 | +|------|------|-------|---------------------|--------------|------| +| 56 | HandlePutFinishedStateAsync | 3 | **48** | 15 - 15 = **0** 鈫� 鈮�0 | **鍒囨崲 Phase=5**, 绛夊緟鍏ュ簱 | + +--- + +### 绗�16杞細鍏ㄩ儴鏀捐揣瀹屾垚 鈫� 鍏ュ簱 + +| 姝ラ | 鏂规硶 | Phase | 鎿嶄綔 | +|------|------|-------|------| +| 57 | HandlePutFinishedAsync | - | PutFinished 鈫� allputfinished | +| 58 | ExecuteAsync | - | 妫�娴� allputfinished 鈫� RobotSimpleCommandHandler 澶勭悊 | +| 59 | RobotSimpleCommandHandler | **5** | Phase=5 鈫� 璋冪敤 HandleInboundTaskAsync(useSourceAddress=false) 鍏ュ簱鍒� **HCSC1** | +| 60 | - | - | 鍒犻櫎浠诲姟璁板綍锛岄噸缃姸鎬侊紝鍙戦�� "Group,diskFinished" | + +--- + +## 鏁版嵁娴佹眹鎬� + +### currentCompletedCount 鍙樺寲 + +``` +0 鈫� 4 鈫� 8 鈫� 12 鈫� 16 鈫� 20 鈫� 24 鈫� 28 鈫� 32 鈫� 33 鈫� 37 鈫� 41 鈫� 45 鈫� 48 + | | | | | | | | | | | | | | + 姝e父鐢佃姱鎵规 姝e父瀹屾垚 鍋囩數鑺壒娆� 鎬诲畬鎴� + (姣忔壒4涓�) +0 (姣忔壒4涓�) +3 +``` + +### Phase 鍒囨崲鍥� + +``` +Phase=0 鈹�鈹�(鍒濆鍖�)鈹�鈹�鈻� Phase=1 鈹�鈹�鈻� Phase=2 鈹�鈹�鈻� Phase=1 鈹�鈹�鈻� ... 鈹�鈹�鈻� Phase=1 + (Pick 1-4) (Put 1-4) (Pick 5-8) (Pick 33) + 鈫� + Phase=2 鈹�鈹�鈻� ... 鈹�鈹�鈻� Phase=2 + (Put 5-8) (Put 33) + 鈫� + 鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹� + 鈹� Phase=1 (remainingNormal=0) 鈹� + 鈹� 鈫� 鈹� + 鈹� Phase=3 (鍙栧亣鐢佃姱) 鈹� + 鈹� Pick fake 鈫� Phase=4 鈫� Put fake 鈹� + 鈹� 鈫� 鈹� + 鈹� 鐩村埌 remainingFake=0 鈹� + 鈹� 鈫� 鈹� + 鈹� Phase=5 (鍏ュ簱) 鈹� + 鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹� +``` + +### 鍏抽敭鏁版嵁瀵圭収琛� + +| 杞 | Phase | 鎿嶄綔 | currentCompletedCount | remainingNormal | remainingFake | 鍙戦�佹寚浠� | +|------|-------|------|---------------------|----------------|--------------|---------| +| 1 | 1鈫�2 | Pick 1-4 | 0 | 33 | - | PickBatch(1,4) | +| 1 | 2鈫�1 | Put 1-4 | 4 | 33 | - | PutBatch(1,4) | +| 2 | 1鈫�2 | Pick 5-8 | 4 | 29 | - | PickBatch(5,8) | +| 2 | 2鈫�1 | Put 5-8 | 8 | 29 | - | PutBatch(1,4) | +| 3 | 1鈫�2 | Pick 9-12 | 8 | 25 | - | PickBatch(9,12) | +| 3 | 2鈫�1 | Put 9-12 | 12 | 25 | - | PutBatch(1,4) | +| 4 | 1鈫�2 | Pick 13-16 | 12 | 21 | - | PickBatch(13,16) | +| 4 | 2鈫�1 | Put 13-16 | 16 | 21 | - | PutBatch(1,4) | +| 5 | 1鈫�2 | Pick 17-20 | 16 | 17 | - | PickBatch(17,20) | +| 5 | 2鈫�1 | Put 17-20 | 20 | 17 | - | PutBatch(1,4) | +| 6 | 1鈫�2 | Pick 21-24 | 20 | 13 | - | PickBatch(21,24) | +| 6 | 2鈫�1 | Put 21-24 | 24 | 13 | - | PutBatch(1,4) | +| 7 | 1鈫�2 | Pick 25-28 | 24 | 9 | - | PickBatch(25,28) | +| 7 | 2鈫�1 | Put 25-28 | 28 | 9 | - | PutBatch(1,4) | +| 8 | 1鈫�2 | Pick 29-32 | 28 | 5 | - | PickBatch(29,32) | +| 8 | 2鈫�1 | Put 29-32 | 32 | 5 | - | PutBatch(1,4) | +| 9 | 1鈫�2 | Pick 33 | 32 | 1 | - | PickBatch(33,33) | +| 9 | 2鈫�1 | Put 33 | 33 | 0 | - | PutBatch(33,33) | +| 10 | 1鈫�**3** | **鍒囨崲** | 33 | **0** | 15 | Pick fake(5鍙蜂綅 1-4) | +| 11 | 3鈫�4 | Pick fake 1-4 | 33 | 0 | 15 | PickBattery,5,1-4 | +| 11 | 4鈫�3 | Put fake 34-37 | 37 | 0 | 11 | PutBatch(34,37) | +| 12 | 3鈫�4 | Pick fake 5-8 | 37 | 0 | 11 | PickBattery,5,5-8 | +| 12 | 4鈫�3 | Put fake 38-41 | 41 | 0 | 7 | PutBatch(38,41) | +| 13 | 3鈫�4 | Pick fake 9-12 | 41 | 0 | 7 | PickBattery,5,9-12 | +| 13 | 4鈫�3 | Put fake 42-45 | 45 | 0 | 3 | PutBatch(42,45) | +| 14 | 3鈫�4 | Pick fake 13-15 | 45 | 0 | 3 | PickBattery,5,13-15 | +| 14 | 4鈫�3 | Put fake 46-48 | 48 | 0 | 0 | PutBatch(46,48) | +| 15 | 3鈫�**5** | **鍒囨崲** | 48 | 0 | **0** | 绛夊緟鍏ュ簱 | +| 16 | 5 | **鍏ュ簱** | - | - | - | allputfinished 鈫� HandleInboundTaskAsync 鈫� HCSC1 | + +--- + +## 浠g爜鑱岃矗瀵圭収 + +| 鏂规硶 | 浣曟椂璋冪敤 | 鑱岃矗 | +|------|---------|------| +| HandlePutFinishedStateAsync | `ExecuteAsync` 妫�娴� PutFinished | 鍙戦�� **Pick** 鎸囦护锛屾洿鏂� Phase | +| HandlePickFinishedStateAsync | `ExecuteAsync` 妫�娴� PickFinished | 鍙戦�� **Put** 鎸囦护 | +| HandlePickFinishedAsync | prefix command `pickfinished` | 鏇存柊鐘舵�� CurrentAction | +| HandlePutFinishedAsync | prefix command `putfinished` | 鏇存柊 currentCompletedCount 璁℃暟 | +| RobotSimpleCommandHandler | 鍛戒护 `allpickfinished` / `allputfinished` | 瑙﹀彂鍏ュ簱锛屾竻鐞嗙姸鎬� | -- Gitblit v1.9.3