摘要:OPC技術(shù)在工業(yè)自動(dòng)化系統(tǒng)中應(yīng)用的越來(lái)越廣泛,論文詳述了基于OPC技術(shù)介紹了何用Visual Basic編寫監(jiān)控軟件在永宏P(guān)LC上面的應(yīng)用。
關(guān)鍵詞:OPC FBs-PLC Visual Basic 監(jiān)控界面 永宏
Abstract::OPC technology applications in industrial control systems more and more extensive. Here, we are introduce How to use the Visual Basic Language write the Graphics Monitoring Interface basic on OPC which applications in FATEK PLC
Key Words:OPC FBs-PLC Visual Basic Graphics Monitoring Interface FATEK
1,前言:
個(gè)人電腦在工業(yè)自動(dòng)化系統(tǒng)中常作為上位機(jī)使用,以實(shí)現(xiàn)跟現(xiàn)場(chǎng)設(shè)備如PLC數(shù)據(jù)的處理,實(shí)現(xiàn)現(xiàn)場(chǎng)的集中控制。針對(duì)于小型的控制系統(tǒng) ,若采用專業(yè)的工控機(jī)或者 組態(tài)軟件,則系統(tǒng)的造價(jià)必會(huì)很高。隨著OPC技術(shù)的發(fā)展與普及,已成為工業(yè)控制的一種通信標(biāo)準(zhǔn)。自動(dòng)化廠家一般都提供OPC 接口 ,這樣就輕而易舉的解決了上位機(jī)與設(shè)備之間的通訊問(wèn)題。再配合編程語(yǔ)言軟件開(kāi)發(fā)圖控界面,達(dá)到低成本的監(jiān)控系統(tǒng)。本文將利用永宏電機(jī)股份有限公司提供的 OPC接口FaconServer.和結(jié)合Visual Basic2005編寫客戶端監(jiān)控程序,實(shí)現(xiàn)上位機(jī)與永宏P(guān)LC之間的數(shù)據(jù)處理。
2,OPC介紹
OPC是Object Linking and Embedding(OLE)for Process Control的縮寫,基于微軟的OLE(現(xiàn)在的Active X)、COM (部件對(duì)象模型)和DCOM (分布式部件對(duì)象模型)技術(shù)。OPC包括一整套接口、屬性和方法的標(biāo)準(zhǔn)集,用于過(guò)程控制和制造業(yè)自動(dòng)化系統(tǒng)。它是基于Windows操作平臺(tái)的對(duì)象鏈接和嵌入技術(shù)在過(guò)程控制方面的應(yīng)用。OPC實(shí)際上是提供了一種機(jī)制,通過(guò)這種機(jī)制,系統(tǒng)能夠以服務(wù)器/客戶端標(biāo)準(zhǔn)方式從服務(wù)器獲取數(shù)據(jù)并將其傳遞給任何客戶應(yīng)用程序。這樣,只要生產(chǎn)商開(kāi)發(fā)一套遵循OPC規(guī)范的服務(wù)器與 數(shù)據(jù)進(jìn)行通信,其他任何客戶應(yīng)用程序便能通過(guò)服務(wù)器訪問(wèn)設(shè)備。
OPC服務(wù)器通常支持兩種類型的訪問(wèn)接口,它們分別為不同的編程語(yǔ)言環(huán)境提供訪問(wèn)機(jī)制。這兩種接口是:自動(dòng)化接口(Automation interface);自定義接口(Custom interface)。自動(dòng)化接口通常是為基于腳本編程語(yǔ)言而定義的標(biāo)準(zhǔn)接口,可以使用Visual Basic、Delphi、PowerBuilder等編程語(yǔ)言開(kāi)發(fā)OPC服務(wù)器的客戶應(yīng)用。而自定義接口是專門為C++等高級(jí)編程語(yǔ)言而制定的標(biāo)準(zhǔn)接口。OPC現(xiàn)已成為工業(yè)界系統(tǒng)互聯(lián)的缺省方案,為工業(yè)監(jiān)控編程帶來(lái)了便利,用戶不用為通訊協(xié)議的難題而苦惱。任何一家自動(dòng)化軟件解決方案的提供者,如果它不能全方位地支持OPC,則必將被歷史所淘汰。
通常在系統(tǒng)設(shè)計(jì)中采用OLE自動(dòng)化標(biāo)準(zhǔn)接口。OLE自動(dòng)化標(biāo)準(zhǔn)接口,及采用OLE自動(dòng)化技術(shù)進(jìn)行調(diào)用,其技術(shù)為上節(jié)所述的OLE自動(dòng)化技術(shù)。OLE自動(dòng)化標(biāo)準(zhǔn)接口定義了以下三層接口,依次呈包含關(guān)系:服務(wù)器(server)、組(group)和數(shù)據(jù)項(xiàng)(item)。OPC Server:OPC啟動(dòng)服務(wù)器,獲得其他對(duì)象和服務(wù)的起始類,并用于返回OPC Group類對(duì)象;OPC Group:存儲(chǔ)由若干OPC Item組成的Group信息,并用于返回OPC Item類對(duì)象。
3,永宏FaconServer介紹
FaconServer是永宏電機(jī)股份有限公司配合自身的PLC與上位機(jī)連接的OPC服務(wù)器。通過(guò)該OPC可以很便捷的使上位機(jī)與PLC連接。
圖1 FaconServer界面
FaconServer提供串口、調(diào)制解調(diào)器和以太網(wǎng)的方式與PLC聯(lián)機(jī)。
同時(shí)可以建立多個(gè)通訊通道(Channel);另外每個(gè)通道下面也要實(shí)現(xiàn)掛多個(gè)不同站號(hào)的PLC(Station)。最后在PLC下面建立對(duì)應(yīng)的數(shù)據(jù)組(Group),在對(duì)應(yīng)的數(shù)據(jù)組里面填寫要監(jiān)控的寄存器(如R或D)或者繼電器點(diǎn)(如X、Y)。
下面我們簡(jiǎn)單的介紹一下在FaconServer下建立一個(gè)項(xiàng)目的過(guò)程。
建立一個(gè)項(xiàng)目:通過(guò)單擊“新建”來(lái)建議一個(gè)Project項(xiàng)目;默認(rèn)名稱為Project0。名稱可以根據(jù)情況自行變更。一旦確定后,將不能在做變更。一個(gè)文件下面只能建立一個(gè)Project。
建立聯(lián)機(jī)裝置:在建立好項(xiàng)目后,在下面可以添加聯(lián)機(jī)裝置。通過(guò)以下3個(gè)按鈕來(lái)操作聯(lián)機(jī)裝置:
:添加聯(lián)機(jī)裝置;建立一個(gè)聯(lián)機(jī)Channel;
:編輯聯(lián)機(jī)裝置;修改聯(lián)機(jī)裝置的通訊參數(shù)、名稱等。
:刪除聯(lián)機(jī)裝置;刪除不再需要保留的聯(lián)機(jī)裝置;
在添加時(shí),選擇聯(lián)機(jī)方式。其中有串口、Modem和以太網(wǎng)的聯(lián)機(jī)方式以及做相關(guān)的敘述。添加成功后,聯(lián)機(jī)裝置默認(rèn)為Channel0名稱,在后面連續(xù)的添加中編號(hào)將遞增。在一個(gè)Project下面,可以添加多個(gè)聯(lián)機(jī)方式,只要注意通訊端口不重復(fù)占用即可。
添加控制器(PLC)
在建立好聯(lián)機(jī)通道后,接著就是添加控制,控制器通過(guò)一下3個(gè)按鈕來(lái)操作:
:添加控制器(PLC);添加PLC;
:編輯控制器(PLC);編輯PLC名稱和站號(hào);
:刪除控制器(PLC);刪除不需保留的PLC;
同樣,在一個(gè)聯(lián)機(jī)通道下可以建立多個(gè)控制器,但名稱與站號(hào)不得重復(fù)。
建立PLC下的數(shù)據(jù)群組
在對(duì)應(yīng)的控制器下面,建立不同的數(shù)據(jù)群組,以分組的形式,方面監(jiān)視與控制。操作方式由下說(shuō)明:
建立監(jiān)控?cái)?shù)據(jù)
最后就是在對(duì)應(yīng)的監(jiān)控群組下填寫要監(jiān)控的寄存器或者接點(diǎn)。數(shù)據(jù)通過(guò)下列3個(gè)按鈕操作:
通過(guò)上面的介紹,可以在FaconServer里面直接對(duì)PLC進(jìn)行數(shù)據(jù)的操作。但從畫面上來(lái)說(shuō)不算太過(guò)于美觀和便利,下面我們將介紹使用Visual Basic 2005編寫監(jiān)控畫面,透過(guò)FaconServer來(lái)與PLC連接,達(dá)到簡(jiǎn)易的圖形監(jiān)控界面。
4,VB程序編寫
永宏P(guān)LC提供的FaconServer中,Visual Basic中使用的函數(shù)如下表所示:
表格1:FaconServer使用的函數(shù)
我們以實(shí)例的寫了來(lái)介紹這些函數(shù)的使用。
首先,先直在程序當(dāng)中打開(kāi)FaconServer,然后建立一個(gè)項(xiàng)目:Project0,一個(gè)聯(lián)機(jī)裝置Channel0,以及一個(gè)控制器 Station0。并在項(xiàng)目下面建立一個(gè)數(shù)據(jù)組Group0。建立好后將該項(xiàng)目以“FaconDEMO”名稱保存到C盤根目錄下:C:\FaconDEMO.fcs。
1. 開(kāi)啟FaconServer服務(wù)器:OpenProject()。
函數(shù)格式:變量.Openproject("文件路徑")
現(xiàn)在我們就用OpenProject函數(shù)來(lái)打開(kāi)“FaconDEMO.fcs”項(xiàng)目。
Dim Fsvr As Object ‘定義服務(wù)器對(duì)象變量Fsvr
在From1_Load的聲明窗體中進(jìn)行變量的聲明。
范例:VB完整語(yǔ)句如下
Private Sub Form1_Load()
Fsvr = CreateObject("FaconSvr.FaconServer") ‘建立Fsvr服務(wù)器對(duì)象變量
Fsvr.Openproject("D:\DEMO.fcs")‘開(kāi)啟項(xiàng)目:FaconDEMO.fcs。
End Sub
將這兩句語(yǔ)句放置到From1_load窗體中,即在啟動(dòng)圖形界面時(shí),可以自動(dòng)的啟動(dòng)FaconServer,同時(shí)打開(kāi)FaconDEMO文件。
2. 保存項(xiàng)目:Saveproject。
函數(shù)格式:變量.Saveproject("文件路徑")
范例:VB完整語(yǔ)句如下
Private Sub SaveBTN_Click()
Fsvr.Saveproject("D:\DEMO.fcs") ‘保存修改后的項(xiàng)目
End Sub
在窗體中創(chuàng)建一個(gè)“SaveBTN”按鈕,通過(guò)單擊按鈕來(lái)實(shí)現(xiàn)修改后的窗體保存。
3. 連接PLC操作:Connect。
函數(shù)格式:變量.Connect()
VB范例:使用“ConnecBtn”按鈕來(lái)實(shí)現(xiàn)離線操作。
Private Sub ConnecBtn_Click()
PictureBox1.Image = FaconS.My.Resources.NET_YG ‘聯(lián)系圖標(biāo)指示變化
Fsvr.connect()‘FaconServer執(zhí)行PLC聯(lián)機(jī)
End Sub
使用“ConnectBtn”按鈕,實(shí)現(xiàn)FaconServer與PLC的連接。另外通過(guò)改變圖片物件“ PictureBox1”的圖片,從VB界面中直觀的了解到當(dāng)前是聯(lián)機(jī)或者斷開(kāi)狀態(tài)。
4. 離線操作:Disconnect。
函數(shù)格式:變量. Disconnect ()
VB范例:使用“DisconBtn”按鈕來(lái)實(shí)現(xiàn)離線操作。
Private Sub DisconBtn_Click()
PictureBox1.Image = FaconS.My.Resources.ITTAI3D ‘離線圖標(biāo)指示變化
&nbs
p; Fsvr.disconnect() ‘FaconServer執(zhí)行PLC離線操作 End Sub 同時(shí)在離線后,更換”PictureBox1”的圖片,來(lái)表示當(dāng)前FaconServer與PLC是脫離的狀態(tài)的。 5. 組群操作:AddGroup、EditGroup、DelectGroup。 1).AddGroup:添加一個(gè)群組。 函數(shù)格式:變量.AddGroup("聯(lián)機(jī)裝置[Channel].控制器[Station]", "新建組群名稱[Group]",優(yōu)先權(quán)[0-高或1-中或2-低], 至能[1] 或抑能[0])
Private Sub AddGp_Click() 函數(shù)格式:與AddRoup的一致,只需要將對(duì)應(yīng)以下參數(shù)作變更:優(yōu)先級(jí)和至能/抑能狀態(tài)。
End Sub 函數(shù)格式:變量.AddGroup("聯(lián)機(jī)裝置[Channel].控制器[Station]", "欲刪除組群名稱[Group]")
ComboBox1.Items.Remove(DGpmane)’ 清除ComboBox1中的群組項(xiàng)目 函數(shù)格式:變量.AddItem("聯(lián)機(jī)裝置[Channel].控制器[Station].群組名[Group]", "欲增加的項(xiàng)目名稱[R,D,X,Y,M]")
Private Sub Button1_Click() 函數(shù)格式:變量.DeleteItem("聯(lián)機(jī)裝置[Channel].控制器[Station].群組名[Group]", "欲刪除的項(xiàng)目名稱[R,D,X,Y,M]")
Private Sub DelItemBtn_Click() 函數(shù)格式:變量.DeleteItem("聯(lián)機(jī)裝置[Channel].控制器[Station].群組名[Group]", "欲獲取數(shù)據(jù)的項(xiàng)目名稱[R,D,X,Y,M]")
Private Sub Timer1_Tick() 函數(shù)格式:變量.DeleteItem("聯(lián)機(jī)裝置[Channel].控制器[Station].群組名[Group]", "欲修改數(shù)據(jù)的項(xiàng)目名稱[R,D,X,Y,M]",”要寫入的數(shù)據(jù)[整數(shù)]”)
|
; ‘DatTextBox設(shè)定要輸入的數(shù)據(jù)
End Sub
通過(guò)上文,正對(duì)每個(gè)命令函數(shù)做格式的說(shuō)明以及案例的編寫,讀者在讀完整章節(jié)后,很容易的,就能使用Visual Basic來(lái)完成圖形監(jiān)控的編寫。在簡(jiǎn)易的監(jiān)控中,完全可以自行開(kāi)發(fā)監(jiān)控界面。采用 OPC技術(shù)使得整個(gè)項(xiàng)目的實(shí)施變的簡(jiǎn)單、靈活,體現(xiàn)了其在工業(yè)控制系統(tǒng)中的優(yōu)越性。
參考文獻(xiàn): |