當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:根據(jù)當(dāng)前基于Web遠(yuǎn)程工業(yè)監(jiān)控方案的不足,利用Flash的交互性強(qiáng),本身導(dǎo)出的文件小,適合網(wǎng)絡(luò)傳輸、利用AS(Action Script)提高了與其他語言的交互性等特點(diǎn),提出了基于Flash的遠(yuǎn)程工業(yè)監(jiān)控系統(tǒng)設(shè)計思路。提出了

摘要:根據(jù)當(dāng)前基于Web遠(yuǎn)程工業(yè)監(jiān)控方案的不足,利用Flash的交互性強(qiáng),本身導(dǎo)出的文件小,適合網(wǎng)絡(luò)傳輸、利用AS(Action Script)提高了與其他語言的交互性等特點(diǎn),提出了基于Flash的遠(yuǎn)程工業(yè)監(jiān)控系統(tǒng)設(shè)計思路。提出了本系統(tǒng)的4層體系結(jié)構(gòu),并基于這4層的體系結(jié)構(gòu),對本系統(tǒng)進(jìn)行了詳細(xì)的硬件連接設(shè)計和系統(tǒng)軟件設(shè)計。該系統(tǒng)的核心思想是利用Socket實(shí)現(xiàn)了Flash客戶端和服務(wù)器端的數(shù)據(jù)通信,利用RemoteObiect實(shí)現(xiàn)歷史數(shù)據(jù)的存儲。本系統(tǒng)的設(shè)計對基于Web遠(yuǎn)程工業(yè)監(jiān)控提供了新的思路,具有實(shí)際的應(yīng)用價值。
關(guān)鍵詞:遠(yuǎn)程工業(yè)監(jiān)控;PAC;Flash;Socket

    目前,監(jiān)控領(lǐng)域的產(chǎn)品普遍關(guān)注現(xiàn)場級別,即采用客戶端/服務(wù)器(C/S)模式,其目的是保證監(jiān)控系統(tǒng)的穩(wěn)定性和可靠性。但隨著計算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)的不斷發(fā)展,同時為了使現(xiàn)場總線、企業(yè)信息網(wǎng)、外部互聯(lián)網(wǎng)能夠充分的融合,提高企業(yè)自動化水平和設(shè)備的維護(hù)管理水平,基于網(wǎng)絡(luò)化的Web遠(yuǎn)程監(jiān)控將會在以后的監(jiān)控系統(tǒng)中得到廣泛的應(yīng)用。

1 現(xiàn)狀分析
    當(dāng)前,基于Web的遠(yuǎn)程工業(yè)監(jiān)控方案一般有3種:1)將OPC或其他通信方式采集的數(shù)據(jù)通過中間軟件存入到數(shù)據(jù)庫中,然后通過Web頁面與數(shù)據(jù)庫進(jìn)行交互,以達(dá)到設(shè)備監(jiān)控的目的:2)通過做插件嵌入到web瀏覽器中,實(shí)現(xiàn)與控制器的交互;3)通過Web service實(shí)現(xiàn)與控制器的交互,即將設(shè)備的控制接口以及數(shù)據(jù)信息通過部署Web service的方式發(fā)送出去,監(jiān)控中心通過網(wǎng)絡(luò)發(fā)現(xiàn)并調(diào)用這些web service方法,完成現(xiàn)場設(shè)備的控制和數(shù)據(jù)采集。第一種方案,中間過程過于復(fù)雜,違背了監(jiān)控系統(tǒng)的穩(wěn)定性和可靠性的原則,中間環(huán)節(jié)的限制因素較多,并且不便于控制,監(jiān)控的延時也非常明顯,時效性不足;第二種方案,在網(wǎng)頁中插入開發(fā)的監(jiān)控設(shè)備的控件,則需要降低瀏覽器的安全性,同時針對每一臺監(jiān)控的主機(jī)都要提前下載控件后才能使用,并且此類控件與Web瀏覽器的其他Web頁面的功能融合性以及監(jiān)控頁面顯示效果等方面較差,較難實(shí)現(xiàn)B/S模式下豐富的顯示效果;第三種方案,通過Web service建立非實(shí)時連接的傳輸,就必須通過循環(huán)體來不斷的刷新數(shù)據(jù),不僅會增加設(shè)備的負(fù)擔(dān),同時將會存在固定的延時問題。因此文中基于以上監(jiān)控方案的不足,提出了基于Flash的遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)方案。該方案利用Flash的交互性強(qiáng),本身導(dǎo)出的文件小,適合網(wǎng)絡(luò)傳輸,利用AS提高了與其他語言的交互性等特點(diǎn),將會大大改進(jìn)以上3種方案各自的不足,使基于Web的遠(yuǎn)程監(jiān)控系統(tǒng)在可靠性、穩(wěn)定性、時效性、與Web的兼容性、頁面顯示效果和用戶交互的體驗(yàn)效果大大改善。

2 基于Flash遠(yuǎn)程工業(yè)監(jiān)控系統(tǒng)體系結(jié)構(gòu)
    基于Flash遠(yuǎn)程監(jiān)控系統(tǒng)的體系結(jié)構(gòu)可以分為4層:現(xiàn)場設(shè)備的檢測與控制、Web發(fā)布系統(tǒng)、客戶端數(shù)據(jù)的接收與命令的發(fā)送和數(shù)據(jù)存儲與轉(zhuǎn)發(fā)。現(xiàn)場設(shè)備檢測與控制一方面負(fù)責(zé)采集現(xiàn)場各個控制節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),經(jīng)過匯總、預(yù)處理后傳遞給中間層子系統(tǒng);另一方面接收中間層子系統(tǒng)轉(zhuǎn)發(fā)來的控制命令,對命令進(jìn)行解析、驗(yàn)證,然后指導(dǎo)現(xiàn)場的各個控制節(jié)點(diǎn)采取相應(yīng)的動作。Web發(fā)布系統(tǒng)主要是由Web服務(wù)器提供Web服務(wù),實(shí)現(xiàn)客戶端的發(fā)布,Web服務(wù)器為中間環(huán)節(jié),完成與客戶子系統(tǒng)以及現(xiàn)場子系統(tǒng)的交互??蛻糇酉到y(tǒng)是與用戶直接交互的部分,它接收用戶的輸入,從現(xiàn)場設(shè)備的檢測與控制子系統(tǒng)中獲取監(jiān)測數(shù)據(jù)或向其發(fā)送命令。數(shù)據(jù)存儲與轉(zhuǎn)發(fā)系統(tǒng)主要由數(shù)據(jù)庫服務(wù)器和提供Web ser vice的服務(wù)組成,數(shù)據(jù)庫服務(wù)器則完成采集數(shù)據(jù)的存儲功能。通過這4個過程的作用來實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控。其體系結(jié)構(gòu)如圖1所示。



3 基于Flash遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計
3.1 系統(tǒng)硬件連接設(shè)計
    現(xiàn)場設(shè)備通過串口與數(shù)據(jù)采集模塊通訊,數(shù)據(jù)采集模塊通過工業(yè)以太網(wǎng)與Web服務(wù)器連接,Web服務(wù)器通過以太網(wǎng)與數(shù)據(jù)庫服務(wù)器連接。數(shù)據(jù)采集模塊采用PAC(可編程自動化控制器),支持Modbus/TEP通信協(xié)議。Web服務(wù)器和數(shù)據(jù)庫服務(wù)器采用HP服務(wù)器,安裝操作系統(tǒng)為Windo ws Server 2008 Enterprise。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用星型拓?fù)浣Y(jié)構(gòu),是為了能夠與現(xiàn)場采集設(shè)備建立更有效的連接。Web服務(wù)器存儲數(shù)據(jù)直接面向數(shù)據(jù)庫服務(wù)器,便于減輕整個網(wǎng)絡(luò)負(fù)擔(dān),防止由于數(shù)據(jù)量過大而引起網(wǎng)絡(luò)阻塞。同時數(shù)據(jù)庫服務(wù)器實(shí)現(xiàn)雙機(jī)熱備,來提高系統(tǒng)的可靠性。將數(shù)據(jù)庫分為兩部分:中心數(shù)據(jù)庫和企業(yè)級數(shù)據(jù)庫,中心數(shù)據(jù)庫主要存放當(dāng)前數(shù)據(jù),企業(yè)級數(shù)據(jù)庫則存放歷史數(shù)據(jù)以及設(shè)備和用戶的管理數(shù)據(jù),實(shí)現(xiàn)動態(tài)數(shù)據(jù)與靜態(tài)數(shù)據(jù)的隔離。網(wǎng)絡(luò)拓?fù)鋱D如圖2所示。


3.2 系統(tǒng)軟件設(shè)計
    軟件設(shè)計的核心內(nèi)容為PAC編程和客戶端Flash編程。PAC編程語言為C語言,編輯環(huán)境為BC編譯器,F(xiàn)lash編程語言為Action Script,編輯環(huán)境為Flash builder4.5。
    本系統(tǒng)通過創(chuàng)建一個以TCP數(shù)據(jù)流方式建立的Socket從而實(shí)現(xiàn)PAC服務(wù)端與基于Web的Flash客戶端的數(shù)據(jù)傳輸。建立通信的過程為:首先PAC服務(wù)端通過Socket監(jiān)聽自身的Modbus/TCP專用端口502,客戶端程序則通過此端口及PAC服務(wù)端的IP地址作為連接Socket參數(shù),創(chuàng)建一個Socket與PAC服務(wù)端建立連接。網(wǎng)絡(luò)無故障,則連接建立。客戶端通過Flash中Socket的SendMessage()和ReadBytes()方法來發(fā)送和接收信息。
    利用Flash創(chuàng)建的基于Modbus/TCP套接字模型為如圖3所示。


3.2.1 1PAC服務(wù)端程序?qū)崿F(xiàn)
    PAC服務(wù)端的實(shí)現(xiàn)主要分為通過Socket與上位機(jī)的通信和通過串口服務(wù)與外圍設(shè)備的通信兩大部分。
    通過Socket與上位機(jī)的通信主要分為監(jiān)聽和連接。在監(jiān)聽狀態(tài)下負(fù)責(zé)監(jiān)聽客戶端的請求連接,并負(fù)責(zé)接受此連接。本系統(tǒng)PAC端設(shè)計監(jiān)聽類為ServerListen,監(jiān)聽類首先通過int bind(int sockfd,struct sockaddr*my_addr,int addrten)綁定了本地的502端口,然后通過函數(shù)int listen (int sockfd,intbacklog)將客戶端的連接請求放入隊(duì)列中等待,直到函數(shù)intaccept(int sockfd,void*addr,int*addrlen)處理它,然后返回一個全新的套接字文件來描述此單個連接。這樣,對于同一個連接就有兩個文件描述符,原先的一個文件描述符正在監(jiān)聽你指定的端口,新的文件描述符可以用來調(diào)用send()和recv()。在連接狀態(tài)下負(fù)責(zé)與客戶端進(jìn)行數(shù)據(jù)的接收和發(fā)送,通過數(shù)據(jù)傳輸類Server Custom來實(shí)現(xiàn)。在此類中利用int send(SOCKETs,const char FAR*buf,int len,int flags)函數(shù)將PAC服務(wù)端的數(shù)據(jù)發(fā)送到客戶端,如果網(wǎng)絡(luò)發(fā)生故障或待發(fā)送數(shù)據(jù)的長度len小于當(dāng)前程序要發(fā)送數(shù)據(jù)的緩沖區(qū)的長度,則返回SOCKET_ERROR,利用int recv(SOCKETs,char FAR* buf,int len,int flags)從客戶端接收數(shù)據(jù)。函數(shù)先等待s的發(fā)送緩沖中的數(shù)據(jù)被協(xié)議傳送完畢,如果協(xié)議在傳送s的發(fā)送緩沖中的數(shù)據(jù)時出現(xiàn)網(wǎng)絡(luò)錯誤,則函數(shù)返回SOCKET_ERROR錯誤,如果s的發(fā)送緩沖中沒有數(shù)據(jù)或者數(shù)據(jù)被協(xié)議成功發(fā)送完畢后,函數(shù)先檢查套接字s的接收緩沖區(qū),如果s的接收緩沖區(qū)中沒有數(shù)據(jù)或者協(xié)議正在接收數(shù)據(jù),那么函數(shù)就一直等待,直到協(xié)議把數(shù)據(jù)接收完畢。
    對于外圍設(shè)備進(jìn)行通信主要是通過串口服務(wù),首先調(diào)用自己定義的COM口初始化函數(shù)InstallCom將端口初始化,然后通過build_REQ_Read函數(shù)實(shí)現(xiàn)根據(jù)ModBusRtu通訊協(xié)議將COM口讀取的外圍設(shè)備的數(shù)據(jù)放入自定義的數(shù)組中,并通過CRC16_modbus進(jìn)行CRC校驗(yàn)。接收的數(shù)據(jù)正確,則通過analyse_Read_Result分析從串口讀取的數(shù)據(jù),并將讀取的數(shù)據(jù)位存放到Share_Mem[MaxShareMemNum]數(shù)組中。然后將Share_Mem數(shù)組作為REMOTCP_ModServer_Create參數(shù)與上位機(jī)進(jìn)行通訊。對外圍設(shè)備發(fā)送指令,則是通過函數(shù)SendCommand選擇控制對象的COM后,將指令發(fā)送到外圍設(shè)備,外圍設(shè)備接收到指令后動作。
3.2.2 客戶端程序與PAC服務(wù)端通訊的實(shí)現(xiàn)
    客戶端的實(shí)現(xiàn)主要分為3個部分:通過Flash的Socket與PAC服務(wù)端的數(shù)據(jù)交互,將接收的數(shù)據(jù)在頁面上動態(tài)顯示和將獲取的數(shù)據(jù)實(shí)時存入到數(shù)據(jù)庫,實(shí)現(xiàn)實(shí)時數(shù)據(jù)庫的歷史存儲功能。
    客戶端Flash與PAC服務(wù)端的數(shù)據(jù)交互主要是通過Socket進(jìn)行的。首先定義Socket,利用connect連接PAC服務(wù)器的地址和端口號502,利用mysocket.a(chǎn)ddEventListener(Event.CONNECT,OnConnect)監(jiān)聽是否已建立連接,利用mysocket.a(chǎn)ddEventListener (IOErrorEvent.IO_ ERROR,ioErrorHandler)來監(jiān)聽連接過程中出現(xiàn)的錯誤,利用mysoeket.a(chǎn)ddEventListener(Event.CLOSE,OnClose)監(jiān)聽連接是否關(guān)閉,利用mysocket.a(chǎn)ddEventListener(ProgressEvent.SOCKET DATA,receivedata) 中的mysoeket.readMultiByte(mysocket.bytesAvailabl e,“utf8”)接收PAC服務(wù)端發(fā)送過來的數(shù)據(jù)。添加控制功能則是通過flash頁面中的控件的觸發(fā)事件來完成。在觸發(fā)事件中添加mysocket. writeUTFBytes(data),并調(diào)用mysocket.flush()方法將觸發(fā)的事件發(fā)送出去,從而完成了與服務(wù)端的數(shù)據(jù)交換。
    在發(fā)送與接收數(shù)據(jù)的過程中由于遵循的為Modbus/TCP協(xié)議,發(fā)送和接收的數(shù)據(jù)要遵循Modbus標(biāo)準(zhǔn)的數(shù)據(jù)幀格式,因此需要根據(jù)Modbus協(xié)議的標(biāo)準(zhǔn)格式對所接收和發(fā)送的數(shù)據(jù)幀進(jìn)行轉(zhuǎn)化。在接收的數(shù)據(jù)中,要對接收的數(shù)據(jù)進(jìn)行分析,根據(jù)自己的定義,將地址與監(jiān)控終端的信息取出,并轉(zhuǎn)換為String類型,在頁面上對應(yīng)顯示。
3.2.3 客戶端與數(shù)據(jù)庫的交互
    對采集來的數(shù)據(jù)除了在頁面上顯示,需要存入數(shù)據(jù)庫作為歷史備份??蛻舳薋lash與Oracle數(shù)據(jù)庫無法直接交互,可以通過服務(wù)器端技術(shù)連接數(shù)據(jù)庫,這3種連接方式為:HttpService、WebService和RemoteObject。3種通訊方式比較如表1所示。


    從上表中可以看出,前兩種通信數(shù)據(jù)量較小,要傳輸大量的數(shù)據(jù)或是實(shí)現(xiàn)不同對象的序列化傳輸,需要利用高效的傳輸協(xié)議AMF(Aetion Script Message Format)來代替SOAP協(xié)議傳輸?shù)姆桨浮?br />     開源項(xiàng)目FluorineFx就是專門針對.net平臺與Flex通信提供的AMF協(xié)議通信網(wǎng)關(guān),筆者可以通過FluorineFx方便地完成與.net的通信。
    要使用開源項(xiàng)目FluorineFx需要使用FluroineFx通信的.net和Flex配置,分為以下3步:
    1)NET服務(wù)端的開發(fā)
    建立解決方案,并添加FluroineFx服務(wù)器庫。添加成功后項(xiàng)目模板會自動創(chuàng)建一個Sample類和Echo方法。接著添加FluorineFx網(wǎng)站到解決方案,添加成功后網(wǎng)站會自動引用FluorineFx服務(wù)庫的DLL。
    2)Flex開發(fā)
    在Flex開發(fā)中需要根據(jù)以上的參數(shù)進(jìn)行配置。首先創(chuàng)建Flex項(xiàng)目,并將項(xiàng)目路徑指向先前建立的FluorineFx網(wǎng)站的根路徑。項(xiàng)目創(chuàng)建完畢后,可以通過FluorineFx與.net進(jìn)行通信。
    3)遠(yuǎn)程訪問
    在Flex的mxml文件下通過<mx:RemoteObject>標(biāo)簽來訪問遠(yuǎn)程對象,如下所示:

    下面通過ID調(diào)用遠(yuǎn)程方法,利用.net的服務(wù)端與數(shù)據(jù)庫進(jìn)行交互,定時存儲和讀取數(shù)據(jù)庫中的內(nèi)容:
   

4 結(jié)論
    本文提出的基于Flash的遠(yuǎn)程設(shè)備監(jiān)控系統(tǒng)的設(shè)計,對于當(dāng)前的基于Web的遠(yuǎn)程設(shè)備監(jiān)控提供了一種新的方式。利用了Flash的Socket實(shí)現(xiàn)了與PAC的Modbus/TCP協(xié)議的數(shù)據(jù)通信。由于Flash的限制,當(dāng)前還無法實(shí)現(xiàn)Flash與Oracle數(shù)據(jù)庫直接的數(shù)據(jù)交互,在本設(shè)計中由于只存取歷史數(shù)據(jù)和操作日志,數(shù)據(jù)傳輸頻率不是很高,因此對本設(shè)計并沒有太多影響。但ActionScript3可以獨(dú)立實(shí)現(xiàn)與MySOL進(jìn)行數(shù)據(jù)交互,因此我們相信在AS下一版本的推出將會實(shí)現(xiàn)與Oracle的獨(dú)立交互。本系統(tǒng)中利用Flash的各種特性,在可靠性、穩(wěn)定性、時效性、與Web的兼容性、頁面顯示效果和用戶交互的體驗(yàn)效果上將會有很大的改善。如果在現(xiàn)有的開發(fā)環(huán)境中,對數(shù)據(jù)交互和Flash頁面的動畫展示部分進(jìn)行封裝,將會大大減少軟件的開發(fā)強(qiáng)度,具有實(shí)際的應(yīng)用價值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉