黃誠(chéng)
(廣東水利電力職業(yè)技術(shù)學(xué)院,廣東 廣州 510635)
由于PLC的穩(wěn)定性及極強(qiáng)的抗干擾性,在工業(yè)生產(chǎn)及應(yīng)用中幾乎無所不及,但在這個(gè)信息時(shí)代,工廠管理智能化的管理愈發(fā)顯得重要,實(shí)時(shí)監(jiān)控企業(yè)的生產(chǎn)狀況,了解生產(chǎn)進(jìn)度對(duì)企業(yè)的客戶的獲取,資金的流通等有著決定性的因素。作為生產(chǎn)的大腦核心,PLC連接入網(wǎng)絡(luò),向外部智能設(shè)備及時(shí)發(fā)送關(guān)鍵數(shù)據(jù)或及時(shí)接受指令控制生產(chǎn)現(xiàn)場(chǎng)也變得越來越重要,GPRS無線網(wǎng)絡(luò)作為2.5/2.75G 移動(dòng)通信網(wǎng)絡(luò),已經(jīng)在我國(guó)已經(jīng)被廣泛使用,人們幾乎無時(shí)不刻在應(yīng)用到它,如手機(jī)瀏覽網(wǎng)頁(yè)、彩信、飛信、qq、微信等,將PLC控制系統(tǒng)與現(xiàn)有GPRS無線通信網(wǎng)絡(luò)技術(shù)集成,通過GPRS網(wǎng)絡(luò)通信技術(shù),可以實(shí)現(xiàn)全國(guó),甚至全球范圍內(nèi)的數(shù)據(jù)超遠(yuǎn)程可靠傳輸,進(jìn)而達(dá)到數(shù)據(jù)遠(yuǎn)程分析處理,遠(yuǎn)程控制的目的。
相對(duì)于GSM 業(yè)務(wù)而言,PLC基于GPRS的數(shù)據(jù)傳送效率更高,速度更快,報(bào)文結(jié)構(gòu)簡(jiǎn)單明了,PLC控制程序編制更方便,而通信的費(fèi)用也更低,故GPRS與PLC通信方式將成為一種最新的趨勢(shì)為更多的企業(yè)單位所接受。在本文中,GPRS DTU 選用了SIMCOM 公司的SIM300 模塊,此模塊具有標(biāo)準(zhǔn)AT 指令接口,可以提供GSM 語(yǔ)音、短消息、彩信及GPRS上網(wǎng)等業(yè)務(wù)。
基于GPRS網(wǎng)絡(luò)三菱FX 系列PLC遠(yuǎn)程控制系統(tǒng)的結(jié)構(gòu)如圖1 所示。
由于工業(yè)生產(chǎn)數(shù)據(jù)信息的重要性,故數(shù)據(jù)的可靠性相當(dāng)重要,因此在基于GPRS網(wǎng)絡(luò)三菱FX 系列PLC遠(yuǎn)程控制系統(tǒng)結(jié)構(gòu)圖中,我們選用了TCP 協(xié)議,正是因?yàn)門CP 是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,比UDP(User Datagram Protocol)這種無連接協(xié)議更適合工業(yè)生產(chǎn)數(shù)據(jù)采集。遠(yuǎn)程監(jiān)控端如PC 等可以公網(wǎng)IP 智能設(shè)備作為服務(wù)器,而連接工業(yè)生產(chǎn)現(xiàn)場(chǎng)的GPRS DTU 則作為客戶端,雙方通過GPRS網(wǎng)絡(luò)建立起TCP 鏈接,進(jìn)而進(jìn)行雙方數(shù)據(jù)的互換。
在圖1中,PLC模塊與SIM300模塊的通信采用的異步串行通信接口總線標(biāo)準(zhǔn),由于SIM300模塊上的采用的是DP9的RS232 接口,但三菱FX系列PLC沒有自帶的232接口,需在擴(kuò)展口上增加FX2N-232-BD通信模塊,如果還需要使用MODBUS此類總線通信,則應(yīng)該配置三菱的FX2N-232IF,否則將出現(xiàn)通信端口不足的情況。圖2是三菱FX系列PLC通信模塊FX2N-232-BD與SIM300-DP9的接線圖。
在圖1中,三菱FX2N系列PLC在設(shè)備開始運(yùn)行時(shí)應(yīng)發(fā)送AT 指令給GPRS DTU(SIM300 模塊),模塊才能獲得IP 地址,連接服務(wù)器和進(jìn)行數(shù)據(jù)包的傳送。PLC控制SIM300工作的流程如圖3 所示。
在圖3中,SIM300模塊上電以后,會(huì)通過單片機(jī)對(duì)POWERKEY引腳輸出一個(gè)大于1500ms的低脈沖,用以對(duì)SIM300模塊進(jìn)行初始化,而PLC的初始化由內(nèi)部機(jī)制完成,不需要編程實(shí)現(xiàn)。
PLC欲向遠(yuǎn)程智能設(shè)備發(fā)送數(shù)據(jù),須通過GPRS DTU(SIM300 模塊)與遠(yuǎn)程智能設(shè)備建立TCP 連接,而該遠(yuǎn)程智能設(shè)備必須具備公網(wǎng)IP,如果遠(yuǎn)程端處于在局域網(wǎng)內(nèi)部,則要做IP 地址的映射。故PLC在與遠(yuǎn)程設(shè)備交換數(shù)據(jù)前,須向SIM300 模塊發(fā)送一系列的AT指令,模塊接收到指令后做相應(yīng)的操作,涉及的指令如下所示:
5.1 建立TCP連接(指令代碼為:AT+CIPSTART);關(guān)閉TCP 連接(指令代碼為:AT+CIPCLOSE)
在建立TCP 連接之前,或者移動(dòng)場(chǎng)景關(guān)閉后要建立連接,有一個(gè)初始化的過程,這個(gè)過程分為啟動(dòng)任務(wù)、激活移動(dòng)場(chǎng)景、獲取本地IP 地址三個(gè)步驟。這三個(gè)步驟可以由AT+CIPSTART一次完成,也可以通過AT+CSTT(啟動(dòng)任務(wù)并設(shè)置 APN、USER ID、PASSWORD)、AT+CIICR(激活移動(dòng)場(chǎng)景)、AT+CIFSR(獲取本地IP地址)分步完成。在這些步驟執(zhí)行完成后,AT+CIPSTART只進(jìn)行連接操作。
其格式為:AT+CIPSTART=“TCP”,(“SERVERIPADDRESS”,“DOMAIN NAME”),“SERVER PORT”如果命令正確則返回“OK”,連接成功則繼續(xù)返回“CONNECT OK”,連接失敗則先返回狀態(tài)碼,再返回“CONNECT FAIL”;命令錯(cuò)誤則發(fā)回“ERROR”。
若要關(guān)閉TCP連接,則PLC應(yīng)當(dāng)向SIM300發(fā)送AT+CIPCLOSE(ASCII 碼),如果命令正確則返回“OK”,命令錯(cuò)誤則發(fā)回“ERROR”。
5.2 設(shè)置本地端口(指令代碼:AT+CLPORT)
SIM300作為客戶端,其端口號(hào)應(yīng)該設(shè)置與服務(wù)器端一致,可用該指令進(jìn)行設(shè)置。
格式為:AT+CLPORT=(“TCP”,“UDP”),“PORT”
5.3 發(fā)送數(shù)據(jù)(指令代碼:AT+CIPSEND返回“>”后寫入需發(fā)送的數(shù)據(jù),按CTRL+Z(16 進(jìn)制為1A)開始發(fā)送)所有發(fā)送的數(shù)據(jù)均以ASCII碼的形式進(jìn)行,每次傳送的數(shù)據(jù)小于等于1024BYTES,且可以通過AT+CIPSEND=<數(shù)據(jù)長(zhǎng)度>來發(fā)送固定長(zhǎng)度的數(shù)據(jù)串,通過AT+CIPATS=1,
本系統(tǒng)的全部程序很長(zhǎng),而且不同的控制系統(tǒng)邏輯控制程序可能完全不同,對(duì)于控制工業(yè)生產(chǎn)的程序便不做描述,而PLC通信控制程序的編制需遵循FX2N 系列PLC的編程規(guī)則其通信的編程方法比較固定,圖4為本系統(tǒng)采用的通信程序框架。
遠(yuǎn)程智能設(shè)備要求能與GPRS DTU 進(jìn)行數(shù)據(jù)交換,可以根據(jù)實(shí)際情況用高級(jí)語(yǔ)言編寫程序做成可視化界面,點(diǎn)擊相應(yīng)操作后實(shí)現(xiàn)系統(tǒng)功能要求,在本系統(tǒng)中,采用了Visual Basic 編程語(yǔ)言進(jìn)行上位機(jī)軟件的開發(fā),為了實(shí)現(xiàn)TCP/IP 協(xié)議的實(shí)現(xiàn),選用了Windows Sockets 控件,它是一套開放的、支持多種協(xié)議的Window 下的網(wǎng)絡(luò)編程接口,通過它我們可以調(diào)用多種協(xié)議功能,最常使用的就是調(diào)用TCP/IP 協(xié)議,在利用Socket 進(jìn)行網(wǎng)絡(luò)編程時(shí),需要涉及到的內(nèi)容有:協(xié)議、本地地址、本地端口、遠(yuǎn)程地址和遠(yuǎn)程端口號(hào)。
由于遠(yuǎn)程智能設(shè)備端是作為服務(wù)器,本文只對(duì)通信連接做程序的描述,服務(wù)器端程序編寫過程如下:
(1)設(shè)置服務(wù)器端的winsock 控件的協(xié)議及設(shè)置偵聽端口,用于監(jiān)聽客戶端的連接請(qǐng)求
SockServer.Protocol=SckTCPProtocol'設(shè)置為tcp 協(xié)議
SockServer.LocalPort=PortNumber'設(shè)置偵聽端口
(2)調(diào)用服務(wù)器端的Winsock 控件的偵聽方法,使服務(wù)器進(jìn)入偵聽狀態(tài)。
SockServer.Listen'開始進(jìn)行偵聽
(3)服務(wù)器接收到客戶端發(fā)來的連接請(qǐng)求后,用Accept 方法接收請(qǐng)求,于是服務(wù)器便與客戶端正式連接起來。
SockServer.Accept requestID
(4)當(dāng)服務(wù)器接收到數(shù)據(jù)時(shí),會(huì)發(fā)生DataArrival 事件,參數(shù)BytesTotal 包含接收到的數(shù)據(jù)字節(jié)數(shù),在該事件中,可用GetData 方法進(jìn)行接收。
SockServer.GetData StrTemp
txtReceice.Text=StrTemp
利用GPRS網(wǎng)絡(luò)把工業(yè)生產(chǎn)實(shí)況與遠(yuǎn)程服務(wù)器端連接在一起,幾乎不用花費(fèi)硬件布線成本,造價(jià)低廉,隨著GPRS的在手機(jī)間的廣泛應(yīng)用,其通信質(zhì)量穩(wěn)定,技術(shù)日益成熟,將其應(yīng)用在PLC的數(shù)據(jù)采集及傳輸上有著鮮明的優(yōu)勢(shì),是未來PLC發(fā)展的一個(gè)新趨勢(shì)。
[1] 仲維俊.Visual Basic6.0 完全自學(xué)手冊(cè).機(jī)械工程出版社,2007.3.
[2] 鄧紅軍,王清.GPRS網(wǎng)絡(luò)無線數(shù)據(jù)通信設(shè)備應(yīng)用研究[J].科技創(chuàng)新導(dǎo)報(bào),2010.21.17.
[3] SIMCOM Ltd,SIM300 HARDWARE SPECIFICATION.2005.12.27.
[4] 郭昌榮.FX 系列PLC的鏈接通信及VB 圖形監(jiān)控[M].北京:北京航空航天大學(xué)出版社,2008.
[5] 長(zhǎng)林.Visual Basic 串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社,2006.