我們在以PLC爲核心的實際控制項目中,絕大多數情況都離不開觸摸屏或上位機的配合,因爲我們使用PLC做控制,主要的是處理一些模擬量,這些模擬量就是我們要監控的,設備上的壓力,溫度,流量等這些數值,然後通過這些檢測到的數值,再根據一些條件控制設備上的電動閥,風機,水泵等。但這些數值我們直接從PLC上是看不到的,想要看到這些數值,就要使用觸摸屏或工控機(其實就是電腦)。
首先需要說明一點,這篇文章只是闡述觸摸屏的大致的工作原理和流程,不是一步一步教你怎麼使用觸摸屏,我認爲在使用和操作觸摸屏以前,明白它的原理和工作流程更重要。
如下面的圖1,當我們把觸摸屏和PLC連接起來以後,在觸摸屏上就能看到我們想看的數據了。除了數據還能通過觸摸屏控制現場設備上的各種被控對象。比如我們在觸摸屏上組態一個開關,只要觸摸屏上點擊一下這個開關,就可以讓現場設備上的一個電機啓動。
那觸摸屏和PLC通訊的原理是什麼樣的呢?看下面的圖2,這是一個真實的觸摸屏的正面和背面,正面不用說了,就是顯示面。
主要看一下背面,有3個接口:
1、電源接口:給觸摸屏供電的,電壓多數都是DC24V。觸摸屏的參數標籤上都有標明。
2、組態下載接口:就是我們通過觸摸屏廠家提供的組態軟件,在電腦上把我們想要的畫面和功能都設計完成後,通過此接口下載到觸摸屏上。各個觸摸屏廠家都有各自的軟件,是不通用的,但沒關係,原理都是一樣的,只要學會一種,其他的只要熟悉一下軟件界面就可以了。
3、通訊接口:這個接口就是和PLC通訊用的,接口的形式主要分爲RS232 ,RS485 ,以太網這3種(不明白什麼是232和485的可以看看我前面的文章,有專門介紹),這裏需要注意的是,這個接口的形式必須和PLC的接口形式是一樣的。圖2中的觸摸屏品牌是崑崙通泰的,它的這個接口是RS485的,所以當和PLC連接時,PLC的接口也必須是RS485的。
看完了觸摸屏的外部,接下來我們看一下觸摸屏的內部,看下面的圖3,是我自己製作的觸摸屏內部的一個內部示意圖,可能不太全面嚴謹,但重要的部分已經畫出來了,只要你能理解就OK了。
觸摸屏的內部大致可以分爲:
通訊接口單元,驅動單元,內存變量單元,顯示單元。除了顯示單元,其他3個單元在觸摸屏的內部我們是看不見的。
1、通訊接口單元:這個單元主要負責把驅動單元打包好的數據包,發送到觸摸屏背面的通訊接口,再由通訊接口發送給PLC,這些過程我們是不用幹預的,觸摸屏會自己完成。我們要做的就是,選擇一個驅動單元裏的驅動,說白了就是告訴觸摸屏它要發送哪個驅動數據包。
2、驅動單元:這一單元裏存放了許多和PLC連接的通訊文件,一個文件對應一種通訊協議(對通訊協議不懂的也看我以前文章),我們把這些文件叫做驅動。也就是說一個驅動對應一種通訊協議,比如說西門子S7-200PLC使用PPI通訊協議,那麼觸摸屏廠家就會編寫一個能和西門子S7-200PLC PPI通訊協議,通訊的文件,然後放在驅動單元。
舉例,比如當我們的觸摸屏想要和西門子200的PLC連接時,我們就在觸摸屏裏選擇PPI驅動。想要和西門子300的PLC連接,選擇MPI(MPI是西門子300PLC的通訊協議)驅動就可以了。這些驅動文件都是觸摸屏廠家提前寫好的,我們只能選擇不能更改。可見觸摸屏裏面的驅動越多,我們可以選擇的PLC品牌或通訊協議的範圍就越廣。現在成熟的觸摸屏廠家內置的驅動,基本都能覆蓋市面上常用的PLC和通訊協議。
所以當我們手上有一款觸摸屏,想要選擇一個PLC做通訊時,一定要看看你的觸摸屏裏有沒有,可以和這個PLC通訊的驅動。
3、內存變量單元:這一單元也是觸摸屏廠家內置的,它實際上就是一塊存儲區,它裏面可以存放各種各樣的數據,存放的數據類型大致可以分爲數值型,開關型,字符型,特殊型。
比如我們想要在觸摸屏上顯示一個鍋爐的水溫,那麼我們就在觸摸屏的內存變量單元,新建一個變量,這個變量的名字叫"鍋爐水溫"(名字隨便取),數據類型選擇數值型。那麼觸摸屏就會自動在內存單元,分配一小塊區域給"鍋爐水溫"這個變量。當觸摸屏和PLC通訊時,就會把從PLC讀到水溫數據存放到這一小塊區域,也就是"鍋爐水溫"這個變量。當我們需要顯示多個數據時,只要新建多個變量就可以了。看到這裏你可能還是有點不太理解,沒關係,等一會我按照下面的圖4系統的說一下你就明白了。
4、顯示單元:這個單元就好理解了,只要是我們在觸摸屏畫面上能看到的東西都是在顯示單元。就依上面的"鍋爐水溫"爲例,我們想要顯示鍋爐的水的溫度,只要在觸摸屏的顯示單元上,畫一個顯示框的部件(這個部件每個觸摸屏都有,直接拖到畫面就行),然後把這個部件和上面新建的"鍋爐水溫"這個變量連接起來就行了。
上面分別把各個單元講完了,最難理解就是驅動單元和內存變量單元。大家可能還不太明白,下面我就按照圖4,系統的再說一下你就能理解了。
圖4要實現的功能是,觸摸屏和西門子S7-200PLC連接,1,在觸摸屏上可以顯示PLC裏的一個壓力數值,。2,可以通過觸摸屏上的一個開關部件,控制PLC裏的一個開關量。
第一步,我們先在觸摸屏裏選擇驅動,因爲是和西門子S7-200PLC連接,所以我們在驅動單元裏就要選擇"西門子S7-200 PPI通訊驅動"。驅動選擇完成後,觸摸屏就會把所選擇的驅動和通訊接口單元,還有內存變量單元自動連接起來。我們再來看一下這個驅動的內部(圖4中桔色的部分),裏面有許多地址V0.0 VB10 VW10等,這些地址是和PLC裏的地址一一對應的,裏面的數據和狀態也是和PLC裏相同的。比如PLC裏的VD10裏的數據是123.5的話,那麼觸摸屏驅動裏的VD10裏的數據也是123.5。這樣觸摸屏裏就有數據了,但是這些數據現在還是不能顯示出來,因爲這些數據還沒有傳到顯示單元。要怎麼做才行呢?
第二步,我們在內存變量單元,新建一個變量叫"儲罐壓力",這個變量我們把它和驅動單元裏的VD10連接起來,這樣"儲罐壓力"這個變量裏就會有數據123.5了。但現在數據還是不能顯示出來,因爲還沒有傳到顯示單元。
最後一步,我們在顯示單元,放置一個具有顯示功能的顯示部件,然後把這個顯示部件和內存變量單元中的"儲罐壓力"這個變量,連接起來就可以。這樣我們就能看到123.5這個數據了。看起來挺複雜,其實這中間我們要做的就是,通過一個新建的變量,把這幾個單元連接起來就行了,其他的事情都是觸摸屏自動完成的。
理解了觸摸屏數值顯示的工作流程,開關量的也就簡單了,在顯示單元放一個開關部件,然後新建一個變量,把這個變量和驅動單元還有顯示單元連接起來就行了。至於觸摸屏是怎麼把這些數據傳給PLC的,那就不用管了,這些事通訊接口單元會幫你完成。
圖5就是整體的連接示意圖,這是最基本的組合方式,通過這種PLC+觸摸屏的組合方式,實現了真正的人機對話,PLC內部的數據我們可以一目瞭然,通過在觸摸屏上增加幾個開關部件,就可以減少實際開關的使用,從而降低實際開關觸點接觸不良,對控制系統造成的影響,也提高了系統的穩定性。