劉云
(四川信息職業(yè)技術(shù)學(xué)院,四川廣元628017)
基于PC與PLC的測控系統(tǒng)通信設(shè)計(jì)與實(shí)現(xiàn)
劉云
(四川信息職業(yè)技術(shù)學(xué)院,四川廣元628017)
近年來,隨著微型計(jì)算機(jī)的迅猛發(fā)展與普及,人們對(duì)測控系統(tǒng)的自動(dòng)化程度提出了更高的要求。而作為測控系統(tǒng)的核心,保證數(shù)據(jù)傳送的準(zhǔn)確性至關(guān)重要。針對(duì)在工業(yè)控制領(lǐng)域應(yīng)用廣泛的上下位機(jī)集散測控系統(tǒng),設(shè)計(jì)采用串行通信的通訊方式,實(shí)現(xiàn)上位機(jī)發(fā)送指令、檢測PLC狀態(tài)、接收PLC發(fā)送的信息等功能。該文對(duì)通信的基本單元“幀”設(shè)計(jì)了協(xié)議格式,使用異步傳送的方式,提出并實(shí)現(xiàn)了一種基于PLC與PC的測控系統(tǒng)的通信協(xié)議。
集散測控系統(tǒng);串行通信;幀;異步傳送
I/O、CPU設(shè)備之間有并行和串行兩種通信方式。并行通信方式一般發(fā)生在PLC的內(nèi)部各元件之間、主機(jī)與擴(kuò)展模塊或者近距離智能模板的處理器之間,因此,并行通信方式比較適合于近距離傳送的場合。串行通信多用于PLC與計(jì)算機(jī)之間,因此在實(shí)時(shí)控制方面一般選用串行的通信方式。本文以基于PC與PLC的測控系統(tǒng)為背景,以數(shù)據(jù)幀協(xié)議為模型,采用異步傳送方式,結(jié)合西門子s7-200PLC的特點(diǎn),提出一種規(guī)范的串行通信協(xié)議,實(shí)現(xiàn)PC與下位機(jī)傳送數(shù)據(jù)的準(zhǔn)確性及安全性。
PLC的用戶程序通過串行通信接口實(shí)現(xiàn)數(shù)據(jù)通信。在PLC的通信模塊上不僅集成了PLC的串行接口,還包含了系統(tǒng)程序以及硬件資源,作用是在PLC和PC間建立數(shù)據(jù)通信的通道,并且能夠控制工程方式以及改變I/O狀態(tài)等。PLC與PC的串行通信原理如圖1所示。
圖1 PLC通信原理圖
本文使用S7-200系列PLC,CPU為224XP型,通信端口為RS-485接口。由于計(jì)算機(jī)的通信端口為RS-232接口,因此要實(shí)現(xiàn)PLC與計(jì)算機(jī)的通信,就必須通過RS-232/RS-485轉(zhuǎn)換器,計(jì)算機(jī)的RS-232接口經(jīng)過轉(zhuǎn)換后才能與PLC的通信端口連接,這種通信方式可以實(shí)現(xiàn)遠(yuǎn)程通信,最遠(yuǎn)距離可達(dá)1.2KM,具體硬件連接圖如圖2所示。
本文采用自由口通信模式,該模式對(duì)用戶是完全開放的,用戶自行定義通信協(xié)議的格式,由梯形圖程序進(jìn)行控制,計(jì)算機(jī)與PLC通信的基本單元是“幀”。
圖2 硬件連接圖
進(jìn)行通信之前需要先初始化通信端口,S7-200PLC主要通過對(duì)SMB30等特殊寄存器的設(shè)置來實(shí)現(xiàn)初始化。SMB30各個(gè)位如表1所示,當(dāng)mm=0時(shí)即PLC為自由口通信模式。
表1 SMB30各個(gè)位
其中,pp表示奇偶位的選擇;d表示字符的數(shù)據(jù)位;bbb表示自由口波特率;mm表示協(xié)議的選擇。
PLC接收指令的格式如表2所示:
表2 PLC接收指令的格式
1)起始字符:指令開始的標(biāo)志。
2)指令類型:讀命令或?qū)懨睢?/p>
3)目標(biāo)寄存器地址:用4個(gè)字節(jié)來表示,前兩個(gè)字節(jié)表示寄存器類型,后兩個(gè)字節(jié)表示寄存器號(hào)。
4)讀、寫字節(jié)數(shù)[1]:執(zhí)行讀命令時(shí),讀入從目標(biāo)寄存器開始的連續(xù)7個(gè)字節(jié)的數(shù)據(jù)信息;執(zhí)行寫命令時(shí),寫入的數(shù)據(jù)以十六進(jìn)制的ASCII碼表示,此時(shí)的寫字節(jié)數(shù)即ASCII碼所占用的字節(jié)數(shù)。
5)數(shù)據(jù)區(qū)[1]:在指令數(shù)據(jù)幀中,同樣,將寫入的數(shù)據(jù)以十六進(jìn)制ASCII碼的格式表示,本系統(tǒng)中約定的字節(jié)長度為7個(gè)字節(jié)。
6)結(jié)束字符:指令的結(jié)束標(biāo)志為結(jié)束字符。PLC返回?cái)?shù)據(jù)的指令格式如表3所示:
表3 PLC返回?cái)?shù)據(jù)的指令格式
1)起始字符同上部分。
2)狀態(tài)信息:反饋PLC對(duì)PC發(fā)送的指令的執(zhí)行狀態(tài)。
3)BCC校驗(yàn)碼同上部分。
本文主要系統(tǒng)組成:西門子S7-200PLC、R485/R232接口轉(zhuǎn)換器、編程電纜、通訊界面。
PC機(jī)與PLC的通訊程序流程圖如圖3所示:
圖3 PC與PLC的通訊流程圖
系統(tǒng)通信控制程序使用的控件是MSComm控件。該控件提供了兩種通信方法:①事件驅(qū)動(dòng)。通過MSComm控件的On?Comm文件進(jìn)行通信事件的捕獲,并且對(duì)發(fā)生的錯(cuò)誤進(jìn)行處理,commevent值返回關(guān)于通信事件或者錯(cuò)誤信息的數(shù)字代碼,是非常有效的處理串行端口交互的方式;②查詢方式。查詢串口的屬性來獲取事件,本質(zhì)屬于事件驅(qū)動(dòng)。
MSComm控件只有一個(gè)Oncomm事件。當(dāng)通信發(fā)送錯(cuò)誤或者產(chǎn)生某些事件時(shí)會(huì)引發(fā)Oncomm事件,并引起Oncomm屬性值的改變。在與PLC進(jìn)行通信的過程中,利用MSComm控件自動(dòng)接收由收計(jì)算機(jī)發(fā)送給PLC的信息。
PLC與PC的通信需要完成初始化、數(shù)據(jù)接收、數(shù)據(jù)傳送等。
1)PLC通信執(zhí)行
PLC的通信執(zhí)行程序流程圖如圖4所示。
一般情況下,PLC接收到PC發(fā)出的指令后,應(yīng)該實(shí)時(shí)將反饋信息返回給PC,PC依據(jù)PLC的反饋信息采取適當(dāng)?shù)拇胧@?,?dāng)PLC發(fā)生指令接收錯(cuò)誤時(shí),PC要重新發(fā)送指令。完成反饋信息的發(fā)送后,產(chǎn)生發(fā)送完成中斷,中斷事件調(diào)用程序XMTcomplete來進(jìn)行后續(xù)處理,包括復(fù)位標(biāo)志位、寄存器清零等。
2)數(shù)據(jù)傳送
上位機(jī)向下位機(jī)PLC發(fā)送的指令或參數(shù)。通信協(xié)議格式在表2中已給出。根據(jù)已定義好的通信協(xié)議格式,需要先把協(xié)議轉(zhuǎn)換為byte字節(jié)型數(shù)據(jù),在本文協(xié)議中定義發(fā)送7個(gè)字節(jié)的數(shù)據(jù),通過MSComm控件中的Output屬性將這些字節(jié)數(shù)據(jù)寫入發(fā)送緩沖區(qū)中,PLC通過字符中斷控制從緩沖區(qū)中讀取這些字節(jié)數(shù)據(jù),讀取完成后進(jìn)行譯碼,然后執(zhí)行相應(yīng)的指令操作。
3)數(shù)據(jù)接收
在下位機(jī)接收到上位機(jī)發(fā)送的數(shù)據(jù)后,將傳感器采集到的模擬量通過A/D轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字量信號(hào)傳送給上位機(jī)PC,上位機(jī)PC通過通信串口接收的數(shù)據(jù)暫時(shí)存儲(chǔ)在緩沖區(qū)中,然后從緩沖區(qū)中根據(jù)定義的通信協(xié)議格式讀取數(shù)據(jù),舍棄不符合協(xié)議的數(shù)據(jù)。讀取完成后經(jīng)過數(shù)據(jù)轉(zhuǎn)換處理將數(shù)據(jù)顯示在界面上。上位機(jī)PC的數(shù)據(jù)接收流程圖如圖5所示。
圖5 數(shù)據(jù)接收流程圖
本文設(shè)計(jì)并實(shí)現(xiàn)了上位機(jī)(PC)與下位機(jī)(PLC)之間的通信協(xié)議。實(shí)現(xiàn)兩者之間的通信需要解決的系統(tǒng)架構(gòu)及通信機(jī)制等問題,并將該協(xié)議應(yīng)用到測控系統(tǒng)中。經(jīng)過大量試驗(yàn)表明,該串行通信協(xié)議能有效保證傳輸數(shù)據(jù)的準(zhǔn)確性和安全性,因此可廣泛應(yīng)用于測控系統(tǒng)中。
[1]翟紅程,俞寧.西門子S7-200PLC應(yīng)用教程[M].北京:機(jī)械工業(yè)出版社,2007.
TP311
A
1009-3044(2017)24-0208-02
2017-07-06
四川省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201613815088);四川省教育廳科研項(xiàng)目(17ZB0388)
劉云(1989—),女,碩士,研究方向?yàn)檐浖夹g(shù)。