一、書接上回,先解決遺留問題
上回我們留下了一段LAD程序,供做思考。如圖1.1所示。
通過"化繁為簡"的辦法,給出其解題思路:
1、如圖1.1所示,I6.0、I6.1和I6.3構成一個簡單的串、並聯邏輯,假設其邏輯運算結果寫入M0.0,則有:
2、M0.0、I6.2和I6.4同樣構成一個簡單的串、並聯邏輯,運算結果寫入M0.1,則有:
3、M0.1和I6.5構成串聯邏輯單元,因此有:
4、因此,與圖1.1相對應的STL邏輯如圖1.2所示。
對比圖1.1和圖1.2,有如下感想:
1、僅從感官上而言,圖1.2的STL比圖1.1的LAD要"晦澀難讀"一些。實際上,用STL來編寫此類邏輯運算程序,編程效率上比LAD或FBD要差一些;
2、STL能直接訪問CPU的累加器、寄存器及各種存儲空間,其更加接近機器語言,因此,一段"優秀"的STL程序一定比LAD佔據內存小,運行效率高;
3、實際應用中,LAD和STL可以根據需要,穿插使用。處理一些邏輯運算或者有現成的功能單元可以使用時,一般可用LAD進行編程;而若要實現一些條件轉移、或者編寫硬件接口程序時,則要選用STL,或者其它高級編程語言。
二、中線輸出元件
本文僅介紹梯形圖中一種經常使用的指令元件——中線輸出元件,如圖2.1所示。
· 中線輸出是一種中間賦值元件,用於保存它左邊電路的RLO。
· 顧名思義,中線輸出只能放在梯形圖的中間,不能直接連接到左、右側的母線上。
· STL中,沒有專門的指令對應梯形圖中的中線輸出元件,它一般由一個輸出指令"="和"與"邏輯指令"A"組合而成。如圖2.2所示,在STL中,中線輸出相當於先將當前的RLO輸出到給定的地址(#temp1),再讀出該狀態,進行後續邏輯運算。
· 顯然,中線輸出元件不會改變RLO的狀態。
三、中線輸出元件的常見用法
1、暫存當前邏輯運算結果,方便後續使用
以圖2.1為例,假設程序中,除了Q1.0的結果與"#temp1"之前的RLO有關外,還有其他位與其有關,比如:q1.1、q1.2等,均與其有關。如果不用"中線輸出元件",我們的程序可能如圖3.1所示。
圖中的紅、藍框中的邏輯完全一致,除了會帶來額外的編程勞動外,沒有任何意義。恰當、合理的運用"中線輸出元件",可大大節約編程的勞動成本,如圖3.2所示。
2、中線輸出另一種常見的用法是做電路邏輯等效,方便理解程序。如圖3.3所示。
閱讀更多 塞北名駝 的文章