先說外部中斷,在外部輸入狀態變化時,立即跳出當前循環掃描執行程序,轉而執行中斷服務子程序,執行完中斷服務子程序后,再跳回到之前跳出的循環掃描程序位置繼續執行順序程序。所以你只需要在中斷服務子程序中寫入你的停止程序即可。外部中斷輸入點不受掃描周期影響。另外基于以上特性不是所有的輸入點都可以執行中斷,只有硬件支持的才能中斷(具體那幾個點支持中斷,需要你自行根據PLC的型號查手冊)。 再回到樓主的工作模型,其實你停止的位置精度除了受你的程序執行周期影響外,還受你當前運行速度影響,例如你以1MM/S的速度立即停止和以100MM/S的速度立即停止是相差蠻遠的(其實速度差異遠遠大于PLC掃描周期帶來的差異)。。。。。。。由于在運行之前你并不知道目標地址在哪里,是檢測到停止,都存在一個滯后性,不管你運用什么馬達這個滯后性肯定是不能消除的,所以只要馬達響應性還可以,不管是類型的馬達沒有什么大的區別。。。。。感應到停止最好例子是就PLC自帶的馬達歸原點指令。我們可以去查看下各種PLC手冊,對于馬達歸原點指令:有近原點開關 有原點開關 有原點回歸高速 有原點回歸爬行速度。你可以留意一下對系統歸原點指令的原點開關,都是系統已經指定的一個輸入點,為什么指定呢,就是因為這個輸入點需要具有高響應性,換句話說需要具有中斷能力。馬達歸原點的過程是這樣的:先高速運行,檢測到近原點開關后,切換到爬行速度,以爬行速度檢測到原點開關后立即停止(當然回歸方式很多,大概都是這個模式)。即使是這樣,你的爬行速度不一樣,找的原點位置也不一樣。純手打,希望樓主有所啟發