富士觸摸屏和西門子PLC通訊中的問題及解決方案
0 引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)及現(xiàn)場總線技術(shù)技術(shù)的發(fā)展,PLC及觸摸屏在工業(yè)控制和樓宇自動化中的應(yīng)用非常廣泛?,F(xiàn)場總線技術(shù)及其總線接口模塊、智能儀表、控制設(shè)備等組成的綜合監(jiān)控系統(tǒng)已成為當(dāng)前自動化技術(shù)發(fā)展的一個(gè)重要方向。在工控領(lǐng)域,PLC與觸摸屏結(jié)合運(yùn)用的技術(shù)已越來越為工程人員所了解與熟悉 ,由于觸摸屏具有操作簡便、界面美觀直接、編程容易掌握、與PLC通訊良好、抗干擾能力強(qiáng)等等特點(diǎn) ,它正迅速地滲入各個(gè)行業(yè) ,發(fā)揮自動化控制的最大優(yōu)勢。
PROFIBUS提供了兩種通信協(xié)議:DP、FMS,富士UG系列的觸摸屏支持其中的DP協(xié)議。富士觸摸屏具有很強(qiáng)的兼容性,可以與近30個(gè)廠家的PLC通訊,兼容性極強(qiáng),而且還可以和計(jì)算機(jī)通訊(開放式通訊協(xié)議)。
通過接口單元、UG031-P通訊卡及總線的連接,UG觸摸屏可以作為從站和作為主站的西門子的S7-300或S7-400系列的PLC通信(網(wǎng)絡(luò)結(jié)構(gòu)示意見圖一)。
圖一:PROFIBUS-DP的網(wǎng)絡(luò)結(jié)構(gòu)
1 系統(tǒng)結(jié)構(gòu)
本文的背景為某食品加工廠某控制系統(tǒng)包括原料混料線、薯餅生產(chǎn)線、包裝線等構(gòu)成的主線系統(tǒng),以及蒸汽鍋爐系統(tǒng)、水系統(tǒng)、壓縮空氣系統(tǒng)、照明系統(tǒng)、通風(fēng)系統(tǒng)和消防系統(tǒng)等構(gòu)成的輔助系統(tǒng)。各系統(tǒng)位置比較分散,控制點(diǎn)較多,其中包括140多臺電機(jī),29臺變頻器,15個(gè)溫濕度控制點(diǎn)。
由于系統(tǒng)比較復(fù)雜,控制采取分層控制策略,由兩臺上位機(jī)完成工廠級的監(jiān)控及數(shù)據(jù)管理功能,觸摸屏和PLC完成現(xiàn)場級的控制,采用Profibus現(xiàn)場總線的方式進(jìn)行通訊。上位機(jī)留有接口,可連接局域網(wǎng)和廣域網(wǎng),以利于進(jìn)一步的開發(fā)。其中數(shù)字輸入點(diǎn)有900多點(diǎn),數(shù)字輸出有400多點(diǎn),模擬量輸入20 個(gè)。
下面以這個(gè)食品加工廠為例,組成一個(gè)集中控制系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖二所示。
其中PLC(1)用于主系統(tǒng),PLC(2)用于輔助系統(tǒng)。輔助系統(tǒng)的組成與主系統(tǒng)相似,因此圖中省略了其構(gòu)成。PLC選用S7-300系列的 CPU315-2DP和S7-200系列的CPU226,PID模塊為FM355C,通訊模塊為CP342-5,擴(kuò)展模塊為IM153-1,I/O模塊則使用到:數(shù)字輸入模塊選SM321、數(shù)字輸出為SM322、模擬量輸入為SM331。上位機(jī)選用西門子的工控機(jī),它內(nèi)置了PCI接口的CP5611卡用于與PLC通訊。
選用S7-300系列的CPU315-2DP是為了能進(jìn)行擴(kuò)展I/O模塊以滿足控制點(diǎn)數(shù)的要求,而用于擴(kuò)展的IM模塊的選型則是依據(jù)IM模塊與中央控制器CPU315-2DP的距離。
由于所有的I/O模塊均放在同一組控制柜里,因此選用了通訊距離在5米范圍內(nèi)的IM153-1[1]。當(dāng)IM模塊與中央控制器的距離較遠(yuǎn)時(shí)可以選擇通訊范圍為100米的型號的IM模塊。
觸摸屏選用富士UG420H-SC1,10.4英寸、128色STN顯示,基于Windows95/98/NT操作平臺下的專用組態(tài)軟件,界面友好直觀,易學(xué)易用,大大節(jié)省產(chǎn)品開發(fā)周期。編程軟件中備有大量的圖形庫(開關(guān)、燈、棒圖等)供選擇,還可以根據(jù)用戶需求編輯所需要的工藝圖形,能夠轉(zhuǎn)換BMP 文件和AUTOCAD中的DXF文件。
圖二: 控系統(tǒng)硬件組成及結(jié)構(gòu)
2 觸摸屏的通訊設(shè)置及界面設(shè)計(jì)
在硬件連接完成后,需要在組態(tài)軟件中指定系統(tǒng)的硬件配置以及設(shè)置一些通信參數(shù)等等。首先制定所使用的觸摸屏的類型,這里選擇默認(rèn)的 UG420(640*480 10.4inches);下一步指定和觸摸屏通訊的PLC類型及型號,這里選SIEMENS S7-PROFIBUS;最后一步指定系統(tǒng)參數(shù),首先是讀區(qū)和寫區(qū),讀區(qū)是指作為從PLC讀入數(shù)據(jù)的緩沖,如果系統(tǒng)中需要顯示趨勢圖的話那么讀區(qū)應(yīng)當(dāng)設(shè)大一些,一般設(shè)1000個(gè)字就可以了,寫區(qū)用于顯示存儲屏幕的狀態(tài)、頁碼、畫面層疊以及報(bào)警狀態(tài)等等。另外在對話框No.of Word Setting for I/O中需要指出觸摸屏的MPI地址,以及傳輸?shù)膸L度,MPI地址在PLC的硬件組態(tài)里已經(jīng)定義好了,兩者必須一致,否則會出現(xiàn)通信錯(cuò)誤。另外幀長度為32字節(jié);奇偶校驗(yàn)為奇校驗(yàn);數(shù)據(jù)長度8位;停止位1位;通訊方式RS-485。
UG00S-CW具有非常完善而強(qiáng)大的組態(tài)功能,在開發(fā)組態(tài)的時(shí)候,開發(fā)者可以不去考慮通信協(xié)議的問題,因?yàn)楦皇抗疽呀?jīng)將這一切的技術(shù)細(xì)節(jié)都屏蔽掉了,它具有智能的尋址功能。在建立一個(gè)按鈕時(shí),這個(gè)按鈕在PLC中的預(yù)先有定義(在西門子PLC中,無論是數(shù)字量還是模擬量的定義都是在DB塊中)。假設(shè)這個(gè)按鈕的地址是DB2.DBX2.0(它的含義是第2個(gè)DB塊中第2個(gè)字節(jié)的第0位),觸摸屏中按鈕的地址應(yīng)表示為DB2:2-0。我們可以看到,除了地址的書寫方式有所不同以外,你幾乎無需作其他的工作,你無需去定義變量、更無需去理會通信的幀結(jié)構(gòu)等等。
對于模擬量同樣如此,只不過在模擬量中你需要指出模擬量所占的字節(jié)個(gè)數(shù),其他的同數(shù)字量一樣簡單。
可以說,UG00S-CW在處理基本的模擬數(shù)字量的時(shí)候非常簡單、方便,但是在處理一些較為復(fù)雜的情況時(shí)卻遇到了意想不到的問題。在這個(gè)食品生產(chǎn)線的集中控制系統(tǒng),其中就涉及到富士觸摸屏和西門子PLC中的通信格式的兼容問題。
系統(tǒng)中有些PID控制的模擬量需要用趨勢圖來顯示,UG00S-CW中顯示趨勢圖并不復(fù)雜,首先點(diǎn)一下趨勢圖的圖標(biāo),在彈出的對話框中選擇趨勢圖的類型,然后選擇每條曲線對應(yīng)的地址即可。但是在聯(lián)機(jī)調(diào)試時(shí)卻總是出現(xiàn)comunication error(通信錯(cuò)誤)信息,經(jīng)過排查發(fā)現(xiàn)問題出在趨勢圖上,如果將趨勢圖從程序中去掉,則一切正常,后來我就嘗試先將西門子PLC中的對應(yīng)的模擬量數(shù)據(jù)讀入觸摸屏的緩沖(即內(nèi)部存儲區(qū)),然后將趨勢圖每條曲線的地址改為對應(yīng)的內(nèi)部地址。經(jīng)過聯(lián)機(jī)調(diào)試,發(fā)現(xiàn)不再出現(xiàn)comunication error信息,但是趨勢圖的曲線的顯示卻極不正常。經(jīng)過觀察,發(fā)現(xiàn)除了當(dāng)模擬量的值為零時(shí)曲線顯示正常,而為非零時(shí)曲線則指向無窮大。這個(gè)問題曾讓筆者百思不得其解,后來終于想到有可能是西門子PLC和富士觸摸屏在存儲格式上可能會不兼容。原來富士觸摸屏中趨勢圖中的模擬量一般都是雙字(4字節(jié)),它從西門子PLC讀取的順序是將第一字讀為高字,第二個(gè)字讀為低字,而西門子PLC中模擬量的存儲為先存低字再存高字,這樣富士觸摸屏從西門子PLC中讀入的數(shù)據(jù)剛好都是高低字顛倒的。因?yàn)橐话隳M量的值都比較小,所以高字都為零,這樣相當(dāng)于將原來的值乘了一個(gè)2的16次方的數(shù),遠(yuǎn)遠(yuǎn)超過了模擬量的上限,所以才出現(xiàn)了以上情況。
為了解決以上問題,需要將PLC中的數(shù)據(jù)讀入,然后依次高低字顛倒,然后再將趨勢圖的曲線地址指向存儲修正數(shù)據(jù)的內(nèi)部地址即可。為了完成這個(gè)功能,需要用到UG00S-CW的宏指令,富士UG00S-CW平臺提供了豐富的宏命令集,
主要有以下幾類:
屏幕類,當(dāng)打開一個(gè)界面時(shí)可執(zhí)行的OPEN macro,當(dāng)關(guān)閉一個(gè)界面時(shí)可執(zhí)行的 CLOSE macro,當(dāng)打開一個(gè)界面后不斷循環(huán)執(zhí)行直到這個(gè)界面關(guān)閉為止時(shí)停止的 CYCLE macro。
按鈕類,當(dāng)按下一個(gè)按鈕時(shí)可執(zhí)行的 ON macro和當(dāng)松開一個(gè)按鈕時(shí)可執(zhí)行的 OFF macro。
宏模式,即宏指令程序段受某一個(gè)比特位的控制,當(dāng)這一位為1時(shí)執(zhí)行,為0時(shí)停止,這個(gè)比特位可以是PLC中的地址,也可以是觸摸屏的內(nèi)部地址。
富士UG00S-CW的宏命令集和匯編語言非常相似,不過此外還增加了許多系統(tǒng)命令功能和輔助功能,使得開發(fā)程序更加方便快捷。觸摸屏中的存儲格式是字,地址用$u來表示,例如$u1000就表示第1000個(gè)字,$u1000-14就表示第1000個(gè)字的第14位,觸摸屏中沒有用來表示字節(jié)的地址表示方式。在這個(gè)食品生產(chǎn)線上有多個(gè)PID控制回路,每個(gè)回路對應(yīng)一個(gè)趨勢圖,以第一個(gè)回路為例,它占用Buffer1(最多有12個(gè)Buffer可供使用)趨勢圖有三條曲線PV、SP、OP,它們所對應(yīng)的PLC地址分別為DB10:DBD0,DB10:DBD4, DB10:DBD8,然后將調(diào)整后的地址存入定為$u500~$u505,程序段如下:
/*首先將模擬量讀入觸摸屏內(nèi)部,使用塊賦值BMOV指令,即將DB10:DBD0~ DB10: DBD8賦值到$u500~$u505*/
$u500=DB0010:0000 C:12(BMOV)
//下面將各個(gè)量的高字和低字顛倒
$u600=$u500 (W)
$u500=$u501 (W)
$u501=$u600 (W)
$u602=$u502 (W)
$u502=$u503 (W)
$u503=$u602 (W)
$u604=$u504 (W)
$u500=$u505 (W)
$u505=$u604 (W)
然后將此程序段拷貝到每一屏幕的CYCLE macro中,然后將buffer地址初始地址指向$500,抽樣模式定為:Constant Sample,曲線條數(shù)(即No. of Word)定為3條,存儲長度為500,其他的設(shè)置為默認(rèn)值,趨勢圖中對應(yīng)三條曲線的地址改為$u500,$u502,$u504,這樣才能保證觸摸屏中的數(shù)據(jù)和PLC中的數(shù)據(jù)同步更新。將程序下載到觸摸屏,經(jīng)過聯(lián)機(jī)測試,一切正常。
3 結(jié)束語
富士觸摸屏以及西門子PLC由于其產(chǎn)品具有很高的穩(wěn)定性,而且在軟件開發(fā)上非常高效快捷,因此在工控方面,兩者相結(jié)合是一個(gè)很不錯(cuò)的選擇,能夠充分發(fā)揮兩者的優(yōu)點(diǎn)。但是由于兩者畢竟不是同一廠商,所以難免會在某些細(xì)節(jié)的兼容性上會有紕漏,這是我們在設(shè)計(jì)工控系統(tǒng)時(shí)特別要注意的地方,硬件漏洞軟件補(bǔ)是 IT界永恒不變的方法,在開發(fā)商還沒有使他們的產(chǎn)品盡善盡美之前,我們應(yīng)當(dāng)運(yùn)用我們自己的智慧來完善我們的系統(tǒng)。
pid控制相關(guān)文章:pid控制原理
adc相關(guān)文章:adc是什么
西門子plc相關(guān)文章:西門子plc視頻教程
通信相關(guān)文章:通信原理
評論