文俊杰,張潔,張毅寧
(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧鞍山,114007)
隨著科學(xué)技術(shù)的飛速發(fā)展,自動化技術(shù)在各行各業(yè)得到了廣泛應(yīng)用。可編程邏輯控制器(簡稱PLC)由于具有豐富的功能和極強的可靠性,以PLC為控制核心的自動控制系統(tǒng)發(fā)揮著極其重要的作用。
觸摸屏是一種連接人和機器的人機界面, 它代替了原始的控制臺和顯示器[1],極大地方便了用戶的操作,提升了用戶的體驗感。由于控制成本的需要,低配置串口觸摸屏往往成為小型低成本控制系統(tǒng)的首選,而這類觸摸屏的通信接口往往很簡單,需要用戶根據(jù)現(xiàn)有條件自己設(shè)計通信協(xié)議。本文基于PLC的自由口模式,設(shè)計了與簡易版DGUS屏的數(shù)據(jù)通信方式,實現(xiàn)了低配置串口觸摸屏對PLC控制系統(tǒng)的實時監(jiān)控。
DGUS(DWIN Graphic Utilized Software)是北京迪文科技有限公司設(shè)計的圖形界面人機系統(tǒng)軟件,預(yù)裝DGUS軟件的觸摸屏稱為DGUS屏[2]。本文采用的DMT800_480L0715WT屏是一種基于 T5 CPU 運行的簡易版 DGUS屏,執(zhí)行RS-232串口通信接口標(biāo)準(zhǔn),通信接口如圖1所示,用戶串口模式固定為8N1,波特率可以設(shè)置,數(shù)據(jù)幀由5個數(shù)據(jù)塊組成(參見表1),設(shè)有4個串口指令,其中0x80/0x81 指令寫/讀 256 個 DGUS 寄存器變量,0x82/0x83 指令寫/讀 32K字節(jié) DGUS 變量空間[3]。

表1 簡易DGUS屏串口通信幀數(shù)據(jù)結(jié)構(gòu)

?
PLC需通過串口發(fā)送0x80/0x81/0x82/0x83指令,訪問DGUS屏;而簡易版DGUS屏是通過選擇“數(shù)據(jù)自動上傳”的方式,將相關(guān)按鈕命令和錄入的參數(shù)以0x81/0x83指令應(yīng)答形式上傳到串口,進而傳送到PLC控制系統(tǒng)中。
本文選用德國西門子公司生產(chǎn)的小型 S7-200PLC CPU224XP,其串行通信口在電氣上執(zhí)行RS-485標(biāo)準(zhǔn),是半雙工通信[4],所以必須采用分時方式進行發(fā)送與接收。根據(jù)實時監(jiān)控通信的需求,設(shè)計了3種PLC與簡易版DGUS屏進行通信的形式[5]:
(1)PLC“寫”:PLC向簡易版DGUS屏發(fā)出寫信息,其串口指令通信幀數(shù)據(jù)組成如表2所示,從而將PLC控制系統(tǒng)的控制參數(shù)及狀態(tài)寫入觸摸屏指定的變量單元,以使觸摸屏能及時以圖形方式展示控制狀態(tài)及信息。

表2 PLC“寫”指令通信幀數(shù)據(jù)組成
(2)PLC“讀”:PLC向簡易版DGUS屏指定變量單元發(fā)出讀命令,其發(fā)送的指令通信幀數(shù)據(jù)組成參見表3,而后等待觸摸屏做出應(yīng)答,進而使PLC能及時掌握與觸摸屏通信的狀態(tài)。

表3 PLC“讀”指令通信幀數(shù)據(jù)組成
(3)PLC“接收”:PLC接收簡易版DGUS屏上傳過來的數(shù)據(jù)如表4所示,其內(nèi)容有二種,一種是PLC被動接收簡易版DGUS屏上傳的命令和數(shù)據(jù),PLC需及時做出相應(yīng)響應(yīng),從而完成用戶通過觸摸屏發(fā)出的指令;另一種是由PLC發(fā)出的PLC“讀”命令產(chǎn)生,簡易DGUS屏做出的應(yīng)答信息。

表4 簡易版DGUS屏上傳到串口數(shù)據(jù)的組成
上述3種形式中,PLC主動“寫”和PLC主動“讀”是由PLC主動發(fā)出,采用定時方式進行;而PLC“接收”是被動的,特別是簡易版DGUS屏主動傳送的數(shù)據(jù)(例如用戶下達的命令或修改的參數(shù)等)是隨機的,所以采取中斷響應(yīng)方式接收。
簡易版DGUS屏(DMT80480L070_15WT屏)和S7-200PLC(CPU224XP)通信接口線路如圖2所示,這里采用常用的PC/PPI電纜實現(xiàn)RS232至RS485的轉(zhuǎn)換,PC/PPI電纜 的RS485端 口 與CPU224XP的PROT1相 連,而PC/PPI電纜的另一端RS232端口的接收腳RxD(引腳2)與簡易版DGUS屏的DOUT引腳相連,RS232端口的發(fā)送腳TxD(引腳3)與簡易版DGUS屏的DIN引腳相連接,同時其RS232端口的GND腳(引腳5)與簡易版DGUS屏的GND引腳相連實現(xiàn)共地。

圖2 通信接口連線圖
PLC與簡易版DGUS屏通信軟件設(shè)計主要是PLC軟件設(shè)計。本文將 CPU224XP的Port 0口設(shè)為 PPI 格式,方便PLC 程序的下載,而將Port 1口用于與簡易版DGUS屏的通信。將Port 1設(shè)置為自由口協(xié)議,波特率為115200bps/s,每個字符8位,無奇偶校驗。
3.2.1 串口發(fā)送
PLC“寫”和PLC“讀”通信形式分別采取不同定時周期發(fā)送。
PLC“寫”是將被控系統(tǒng)的當(dāng)前數(shù)據(jù)和狀態(tài)及時發(fā)送給簡易版DGUS屏,發(fā)送周期(T寫)要短;同時,為避免一次發(fā)送所占用的串口時間過長,所以將寫入簡易DGUS屏的內(nèi)容分割成幾段,分時按序進行,本文分成2段,PLC“寫”的發(fā)送周期(T寫)設(shè)為200ms。
PLC“讀”一般用于與簡易版DGUS屏通信狀態(tài)的測試,因此PLC“讀”的發(fā)送周期(T讀)以用戶體驗為準(zhǔn),本文設(shè)為30s。
每當(dāng)定時發(fā)送時間到時,首先將當(dāng)次發(fā)送的數(shù)據(jù)及相關(guān)信息(參考表2和表3)送到發(fā)送緩沖區(qū),而后用XMT指令發(fā)送,然后立即連接“發(fā)送完成”事件(中斷事件號為26)中斷,在“發(fā)送完成”中斷服務(wù)程序中將串口即刻切換到接收狀態(tài)。其自由口通信發(fā)送程序流程如圖3所示。

圖3 自由口通信PLC發(fā)送流程
3.2.2 串口接收
本文采用S7-200PLC的“接收字符”中斷(中斷事件號為25)完成PLC“接收”。“接收字符”中斷進行數(shù)據(jù)接收,也就是PLC每接收到一個“字符”(一個字節(jié)數(shù)據(jù))時都會產(chǎn)生中斷。根據(jù)簡易版DGUS屏上傳一幀數(shù)據(jù)的組成(參見表4),分別用“接收首幀頭”、“接收次幀頭”、“接收長度”以及“接收數(shù)據(jù)塊”4個中斷服務(wù)程序按序與“接收字符”中斷事件連接,對接收到的“字符”進行判斷并將接收的“字符”逐一存放在接收緩沖區(qū),最終完成一幀數(shù)據(jù)的接收。
中斷服務(wù)程序“接收首幀頭”(參見圖4)和“接收次幀頭”(參見圖5)用于PLC與簡易版DGUS屏雙方約定幀頭的判斷;中斷服務(wù)程序“接收長度”(參見圖6)獲取一幀數(shù)據(jù)中還需接收的字節(jié)數(shù)(設(shè)為L,是指令、操作數(shù)、CRC字節(jié)數(shù)的總和),用于確定一幀數(shù)據(jù)的長度;中斷服務(wù)程序“接收數(shù)據(jù)塊”(參見圖7)根據(jù)接收的字節(jié)數(shù)(L),完成一幀完整數(shù)據(jù)的接收與處理。

圖4 中斷服務(wù)程序“接收首幀頭”流程圖

圖5 中斷服務(wù)程序“接收次幀頭”流程圖

圖6 中斷服務(wù)程序“接收長度”流程圖

圖7 中斷服務(wù)程序“接收數(shù)據(jù)塊”流程圖
簡易版DGUS屏和S7-200PLC的通信方法已應(yīng)用于鞍山師范學(xué)院設(shè)計的生物質(zhì)鍋爐PLC控制系統(tǒng)中,圖8是簡易版DGUS屏對控制系統(tǒng)實時監(jiān)控多幅界面中的一個。在圖8這幅手動監(jiān)控界面上,能實時顯示控制環(huán)節(jié)狀態(tài)和運行參數(shù),例如進料狀態(tài)、煙道溫度等;同時用戶可通過界面上的按鍵將命令傳達到PLC控制系統(tǒng)中,例如,按動“進/停”按鍵”即刻啟動或停止控制系統(tǒng)的“進料”動作,等等,方便了用戶操作,對生物質(zhì)鍋爐的應(yīng)用和推廣具有重要意義。

圖8 生物質(zhì)鍋爐PLC控制系統(tǒng)監(jiān)控界面之一
根據(jù)簡易版DGUS屏給定的通信協(xié)議和串口指令,基于S7-200PLC自由口通信的特性,設(shè)計的通信程序?qū)崿F(xiàn)了簡易版DGUS屏和PLC的串行通信。將該設(shè)計應(yīng)用于生物質(zhì)鍋爐PLC控制系統(tǒng)中,能夠?qū)崿F(xiàn)實時監(jiān)測和控制,為簡易版DGUS屏應(yīng)用于PLC自動控制系統(tǒng)中提供了一個有效的方案,具有一定的參考價值。