當(dāng)順控程序被abort時,順控程序先執(zhí)行當(dāng)前激活步,之后再執(zhí)行end步。然后sfc chart處理滿足啟動條件的順控程序。
如果觸發(fā)abort命令時當(dāng)前sfc chart中有處于“held”狀態(tài)的順控程序,則sfc chart會先處理正在運行的順控程序(先執(zhí)行當(dāng)前步,再執(zhí)行end步),之后處理處于“held”的順控程序(先執(zhí)行held步,再執(zhí)行end步)。然后才處理滿足啟動條件的順控程序。
如下圖1所示的sfc chart包含三個順控程序run_km,abort_km,hold_km,啟動條件分別為sfc chart處于“run”,“aborting”,“holding”狀態(tài)。在sfc chart處于“run”狀態(tài)時,順控程序run_km會執(zhí)行,hold命令將sfc chart轉(zhuǎn)入“holding”狀態(tài)(runhold=hold),此時順控程序run_km會暫停而去執(zhí)行hold_km的順控程序。
圖1 sfc chart被holding
如果此時通過abort命令將sfc chart轉(zhuǎn)入“aborting”狀態(tài)。在這個過程中會先執(zhí)行hold_km順控程序的abort過程,然后再執(zhí)行run_km順控程序的abort過程,之后才會執(zhí)行abort_km的順控程序,如下圖2所示:
圖2 sfc chart被aborting