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

表1 簡易DGUS屏串口通信幀數據結構

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

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

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

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

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

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

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

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

圖6 中斷服務程序“接收長度”流程圖

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

圖8 生物質鍋爐PLC控制系統監控界面之一
根據簡易版DGUS屏給定的通信協議和串口指令,基于S7-200PLC自由口通信的特性,設計的通信程序實現了簡易版DGUS屏和PLC的串行通信。將該設計應用于生物質鍋爐PLC控制系統中,能夠實現實時監測和控制,為簡易版DGUS屏應用于PLC自動控制系統中提供了一個有效的方案,具有一定的參考價值。