跳轉語句 西門子PLC語句表程式設計 跳轉指令

2021-10-25 12:38:34 字數 2155 閱讀 8775

跳轉指令根據"跳轉"的機理,首先可分為"無條件跳轉"和"條件跳轉",除此之外,還有乙個特殊的跳轉指令,可實現分支跳轉。

程式在執行時,遇到ju指令,無條件的跳轉到其"標籤"所指示的**行繼續執行。跳轉指令和跳轉目標必須在同乙個塊內。

需要注意的是:理論上,ju指令允許向前跳,也允許向後跳。向後跳屬於常規用法,一般沒什麼問題。但向前跳,容易形成死迴圈,因此,一般不建議使用ju命令向前跳。

顧名思義,與無條件跳轉不同,有條件跳轉指令中斷原程式邏輯流,發生跳轉是需要條件的,根據跳轉條件的不同,它們又有不同的分類。

(1) 由rlo的狀態決定是否跳轉

對於"jc"指令,當邏輯運算結果(rlo)為"1"時,"跳轉"生效,中斷當前的線性掃瞄,跳轉到"跳轉標籤"所標識的行繼續執行。同樣,可以選擇向前跳,也可以向後跳。

"jcn"指令與"jc"指令相反,當"rlo"為"1"的時候,"跳轉"生效。

另外:當條件不滿足,不執行跳轉的時候,該指令會將rlo置"1",然後繼續執行下面的指令。

(2) 帶br位,由rlo狀態決定是否跳轉

對於"jcb"指令,其與"jc"指令一樣,當rlo為1時,"跳轉"生效,中斷當前的線性掃瞄,跳轉到"跳轉標籤"所標識的指令行繼續執行。而與"jc"指令不同的是,"jcb"指令會"額外"的做一項工作:將rlo的狀態複製到br(二進位制結果位)中。

同樣,"jnb"指令,其觸發跳轉的條件為rlo=0,且也會將rlo狀態複製到br中。

(3) 由"狀態暫存器"的"br"位決定跳轉與否

(4) 由"狀態暫存器"的"ov"、"os"位決定跳轉與否

狀態字的第4位和第5位分別為"溢位位ov"和"溢位狀態保持位os"。當算術運算或浮點數比較指令執行時出現錯誤(如溢位、非法操作和不規範的格式等)時,ov位會被置1,同時os位也被置1。而如果後面同類指令執行結果正確,則ov位會被清0,但os位仍然保持為1。只有jos指令、塊呼叫指令和塊結束指令才能復位os位。

一般用於檢查算術運算指令結果是否有溢位,若有溢位,可用jo、jos指令進行跳轉,以做相應的錯誤處理。

(5) 由條件碼1(cc1)和條件碼0(cc0)決定是否跳轉

狀態字的第7位(cc1)和第6位(cc0)分別為條件碼1和條件碼0。這兩位綜合起來用於表示在累加器1(accu1)中產生的算術運算或邏輯運算的結果與"0"的大小關係、比較指令的執行結果或移位指令的移出位的結果。

cc1和cc0的狀態與"算術運算"的結果的關係如下:

在"跳轉指令"中,有一類指令根據算術運算的結果來決定邏輯流是否跳轉,本質上,是在執行完算術運算後,根據cc1和cc0的不同狀態,來決定相應的跳轉指令是否具備跳轉條件,如下表所示:

在語句表的指令集中,還有一條特殊的跳轉指令,它能夠實現向多路分支跳轉的功能,它就是分支跳轉指令jl,其執行流程如下圖所示。

jl指令根據累加器1(accu1)的低位元組中的數值大小來決定程式"沿著"哪一條分支執行。由於乙個位元組的數值範圍為0~255,因此,jl指令最多可管理多達256條分支的程式。

jl指令一般要與無條件跳轉指令ju配合使用,其指令的格式如下:

詳見《plc語句表程式設計:「跳轉指令」特輯》

西門子atch指令詳解 西門子plc指令詳解

1 ld load 裝載 動合觸點 2 ldn load not 不裝載 動斷觸點 3 a and 與 動合 用於動合觸點串聯 4 an and not 與 動斷 用於動斷觸點串聯 5 o or 或 動合 用於動合觸點併聯 6 on or not 或 動斷 用於動斷觸點併聯 7 out 輸出 用於線...

跳轉語句 Apache 跳轉語句

apache伺服器 備註 上面內容,做整站跳轉,一般在下面標籤上配置,例如在標籤內新增 allowoverride none require all denied 2 如果對某個目錄做https強制跳轉,則複製以下 rewriteengine on rewritebase yourfolder 的根...

遠端訪問西門子PLC方案

原帖鏈結 要求 路由器能夠上網,而且必須有公網 internet ip位址,在國內可以諮詢運營服務商,或者檢視路由器wan口的ip位址,如果是私網ip範圍,那肯定不是直接上到internet,那就不行了 什麼是私網ip?問問某度 哪些協議使用哪些tcp埠?在使用路由器和防火牆時應該注意些什麼?如何通...