中圖分類號:TP393.093 文獻(xiàn)標(biāo)識碼:A 文章編號:1008-925X(2011)11-0119-01
摘要:本文闡述了以VB Winsock為工具,通過OPC、UDP協(xié)議,實(shí)現(xiàn)將現(xiàn)場生產(chǎn)實(shí)時(shí)數(shù)據(jù)進(jìn)行采集,通過VB控件將采集到的數(shù)據(jù)發(fā)布到管理網(wǎng)絡(luò),集中調(diào)度,綜合監(jiān)控;為企業(yè)的管控一體化提供了一個(gè)基礎(chǔ)平臺。
關(guān)鍵詞:VB Winsock 生產(chǎn)數(shù)據(jù)實(shí)時(shí)發(fā)布系統(tǒng) UDP協(xié)議
1 引言
現(xiàn)在大型企業(yè)中,往往會建設(shè)若干個(gè)相當(dāng)獨(dú)立的PLC 控制系統(tǒng),并設(shè)置專人定時(shí)記錄系統(tǒng)的關(guān)鍵數(shù)據(jù),上報(bào)給有關(guān)人員進(jìn)行數(shù)據(jù)分析。本文闡述通過VB Winsock和UDP協(xié)議將現(xiàn)場生產(chǎn)實(shí)時(shí)數(shù)據(jù)采集,并將必要的生產(chǎn)數(shù)據(jù)進(jìn)行保存、發(fā)布,以實(shí)現(xiàn)對生產(chǎn)的實(shí)時(shí)監(jiān)控。
2 系統(tǒng)結(jié)構(gòu)
上位機(jī)裝入客戶端程序,通過OPC協(xié)議將WINCC中的變量數(shù)據(jù)采集,同時(shí)使用UDP協(xié)議,在兩個(gè)Winsock(客戶機(jī)和服務(wù)器)控制間進(jìn)行數(shù)據(jù)的發(fā)送,服務(wù)器端程序?qū)⒉杉降臄?shù)據(jù)保存,然后根據(jù)需要進(jìn)行發(fā)布。
要實(shí)現(xiàn)在公司局域網(wǎng)中能夠?qū)崟r(shí)看到現(xiàn)場PLC運(yùn)行數(shù)據(jù),必然要打通連接的兩個(gè)網(wǎng)絡(luò),為了保證生產(chǎn)現(xiàn)場網(wǎng)絡(luò)的安全,采用了網(wǎng)關(guān)來進(jìn)行安全隔離,使兩個(gè)網(wǎng)絡(luò)處于不同的網(wǎng)段。
3 生產(chǎn)數(shù)據(jù)采集、發(fā)布
3.1 生產(chǎn)數(shù)據(jù)采集:為了實(shí)時(shí)采集生產(chǎn)數(shù)據(jù),上位機(jī)裝入的客戶端程序與WINCC 程序通過OPCServer.WinCC服務(wù)通訊,采集數(shù)據(jù)。
3.2 數(shù)據(jù)傳輸:
3.2.1 WINSOCKET簡介:Winsock控件是不可視控件,它提供了訪問TCP和UDP網(wǎng)絡(luò)服務(wù)非常簡便的途徑,使編程人員開發(fā)客戶/服務(wù)器應(yīng)用程序時(shí),不必了解TCP和UDP的細(xì)節(jié)或調(diào)用低級的Winsock API函數(shù),只通過設(shè)置Winsock控件的屬性并調(diào)用其方法,就可直接連接到一臺遠(yuǎn)程計(jì)算機(jī)進(jìn)行,并可實(shí)現(xiàn)雙向數(shù)據(jù)交換。 SOCKET實(shí)際在計(jì)算機(jī)中提供了遙感通信端口,可以通過這個(gè)端口與任何一個(gè)具有Socket接口的計(jì)算機(jī)通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸,接受的信息都通過這個(gè)Socket接口來實(shí)現(xiàn)。在應(yīng)用開發(fā)中就像使用文件句柄一樣,可以對Socket句柄進(jìn)行讀、寫操作。
根據(jù)傳輸數(shù)據(jù)類型的不同,Windows Socket支持套接字一般可分為三種。
面向連接的字節(jié)流式套接字
采用TCP協(xié)議,提供雙向的、可靠的、有序的和無重復(fù)投遞的數(shù)據(jù)流。
無連接的數(shù)據(jù)報(bào)套接字
采用UDP協(xié)議,支持雙向的數(shù)據(jù)流,但不保證有序、可靠或無重復(fù)的投遞。
原始套接字
3.2.2 無連接的數(shù)據(jù)報(bào)套接字的編程:在使用中,面向連接協(xié)議的Socket編程模型應(yīng)用最為廣泛,因?yàn)槊嫦蜻B接協(xié)議提供了一系列的數(shù)據(jù)糾錯(cuò)功能,可以保證在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)及時(shí)、無誤到達(dá)對方,Internet上的多數(shù)服務(wù)(www、ftp等)就是靠此協(xié)議運(yùn)轉(zhuǎn)的。數(shù)據(jù)報(bào)套接字由于不用建立連接、無數(shù)據(jù)糾錯(cuò)功能、不保證數(shù)據(jù)的可靠傳遞,傳輸速度快。
一般來說,使用無連接的數(shù)據(jù)報(bào)套接字進(jìn)行網(wǎng)絡(luò)通信時(shí),必須按下面四步進(jìn)行處理:
Ⅰ、程序必須建立一個(gè)Socket
Ⅱ、程序必須按要求配置此Socket。程序要將本地可用協(xié)議端口及網(wǎng)絡(luò)地址綁定到此Socket上。
Ⅲ、程序必須按要求通過此Socket發(fā)送和接受數(shù)據(jù)
Ⅳ、關(guān)閉Socket
3.3 發(fā)布畫面設(shè)計(jì):作為發(fā)布的畫面,其最主要的特點(diǎn)是:能夠?qū)崟r(shí)顯示現(xiàn)場PLC控制變量的狀態(tài)或數(shù)值,屏蔽了所有對現(xiàn)場設(shè)備的控制、設(shè)定、修改等操作。管理人員只能查看現(xiàn)場生產(chǎn)狀態(tài),而不能做任何變更,這樣在系統(tǒng)中保證現(xiàn)場PLC設(shè)備的安全管理。
畫面設(shè)計(jì)的主要過程:
Ⅰ、在服務(wù)器端建立發(fā)布用的站點(diǎn)程序;
Ⅱ、用PS、WINCC修改摘選畫面:刪除不必要的畫面元素;對畫面進(jìn)行重新布局,統(tǒng)一畫面寬度;去掉畫面的所有操控動(dòng)作,防止管理人員操作到生產(chǎn)現(xiàn)場設(shè)備;
Ⅲ、VB 做導(dǎo)航畫面,根據(jù)需要,將建立多窗體,創(chuàng)建適合控件;
Ⅳ、與服務(wù)器端保存現(xiàn)場數(shù)據(jù)的數(shù)據(jù)庫進(jìn)行連接;
3.4 數(shù)據(jù)頁面發(fā)布:使用人員首先要設(shè)置Internet選項(xiàng),其安全等級為中低級,服務(wù)器IP設(shè)置為受信任的站點(diǎn),然后在地址欄中輸入服務(wù)器IP回車,即可查看站點(diǎn)畫面。
4 結(jié)束語
經(jīng)過用戶的實(shí)際使用,該系統(tǒng)符合用戶的操作習(xí)慣及實(shí)際生產(chǎn)需要,可實(shí)時(shí)、有效地反映生產(chǎn)過程中實(shí)際數(shù)據(jù),并對生產(chǎn)過程出現(xiàn)問題及時(shí)進(jìn)行調(diào)整和改進(jìn)。通過一段時(shí)間試用,該系統(tǒng)得到了用戶的認(rèn)可和好評,并在全公司范圍內(nèi)推廣使用。