S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

一、書接上回,先解決遺留問題

上回我們留下了一段LAD程序,供做思考。如圖1.1所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖1.1 複雜"混聯"邏輯(LAD)

通過"化繁為簡"的辦法,給出其解題思路:

1、如圖1.1所示,I6.0、I6.1和I6.3構成一個簡單的串、並聯邏輯,假設其邏輯運算結果寫入M0.0,則有:

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

2、M0.0、I6.2和I6.4同樣構成一個簡單的串、並聯邏輯,運算結果寫入M0.1,則有:

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

3、M0.1和I6.5構成串聯邏輯單元,因此有:

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

4、因此,與圖1.1相對應的STL邏輯如圖1.2所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖1.2 複雜"混聯"邏輯(STL)

對比圖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所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖2.1 中線輸出元件

· 中線輸出是一種中間賦值元件,用於保存它左邊電路的RLO。

· 顧名思義,中線輸出只能放在梯形圖的中間,不能直接連接到左、右側的母線上。

· STL中,沒有專門的指令對應梯形圖中的中線輸出元件,它一般由一個輸出指令"="和"與"邏輯指令"A"組合而成。如圖2.2所示,在STL中,中線輸出相當於先將當前的RLO輸出到給定的地址(#temp1),再讀出該狀態,進行後續邏輯運算。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖2.2 中線輸出元件的等效STL指令

· 顯然,中線輸出元件不會改變RLO的狀態。


三、中線輸出元件的常見用法

1、暫存當前邏輯運算結果,方便後續使用

以圖2.1為例,假設程序中,除了Q1.0的結果與"#temp1"之前的RLO有關外,還有其他位與其有關,比如:q1.1、q1.2等,均與其有關。如果不用"中線輸出元件",我們的程序可能如圖3.1所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖3.1 相同的邏輯單元

圖中的紅、藍框中的邏輯完全一致,除了會帶來額外的編程勞動外,沒有任何意義。恰當、合理的運用"中線輸出元件",可大大節約編程的勞動成本,如圖3.2所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖3.2 "中線輸出元件"的應用

2、中線輸出另一種常見的用法是做電路邏輯等效,方便理解程序。如圖3.3所示。

S7-300/400進階筆記7:淺談STL和LAD的異同以及中線輸出元件簡介

圖3.3 中線輸出的等效作用


分享到:


相關文章: