国产福利在线免费,亚洲国产精品一,三级黄色免费网站,在线视频播放免费网站,9999久久久久,91福利网,久久999精品

OPC技術(shù)在永宏P(guān)LC上的應用

2015/6/26 13:58:41 人評論 次瀏覽 分類(lèi):永宏應用案例

摘要:OPC技術(shù)在工業(yè)自動(dòng)化系統中應用的越來(lái)越廣泛,論文詳述了基于OPC技術(shù)介紹了何用Visual Basic編寫(xiě)監控軟件在永宏P(guān)LC上面的應用。
關(guān)鍵詞:OPC   FBs-PLC  Visual Basic   監控界面 永宏
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)化系統中常作為上位機使用,以實(shí)現跟現場(chǎng)設備如PLC數據的處理,實(shí)現現場(chǎng)的集中控制。針對于小型的控制系統 ,若采用專(zhuān)業(yè)的工控機或者 組態(tài)軟件,則系統的造價(jià)必會(huì )很高。隨著(zhù)OPC技術(shù)的發(fā)展與普及,已成為工業(yè)控制的一種通信標準。自動(dòng)化廠(chǎng)家一般都提供OPC 接口 ,這樣就輕而易舉的解決了上位機與設備之間的通訊問(wèn)題。再配合編程語(yǔ)言軟件開(kāi)發(fā)圖控界面,達到低成本的監控系統。本文將利用永宏電機股份有限公司提供的 OPC接口FaconServer.和結合Visual Basic2005編寫(xiě)客戶(hù)端監控程序,實(shí)現上位機與永宏P(guān)LC之間的數據處理。

2,OPC介紹

    OPC是Object Linking and Embedding(OLE)for Process Control的縮寫(xiě),基于微軟的OLE(現在的Active X)、COM (部件對象模型)和DCOM (分布式部件對象模型)技術(shù)。OPC包括一整套接口、屬性和方法的標準集,用于過(guò)程控制和制造業(yè)自動(dòng)化系統。它是基于Windows操作平臺的對象鏈接和嵌入技術(shù)在過(guò)程控制方面的應用。OPC實(shí)際上是提供了一種機制,通過(guò)這種機制,系統能夠以服務(wù)器/客戶(hù)端標準方式從服務(wù)器獲取數據并將其傳遞給任何客戶(hù)應用程序。這樣,只要生產(chǎn)商開(kāi)發(fā)一套遵循OPC規范的服務(wù)器與 數據進(jìn)行通信,其他任何客戶(hù)應用程序便能通過(guò)服務(wù)器訪(fǎng)問(wèn)設備。

    OPC服務(wù)器通常支持兩種類(lèi)型的訪(fǎng)問(wèn)接口,它們分別為不同的編程語(yǔ)言環(huán)境提供訪(fǎng)問(wèn)機制。這兩種接口是:自動(dòng)化接口(Automation interface);自定義接口(Custom interface)。自動(dòng)化接口通常是為基于腳本編程語(yǔ)言而定義的標準接口,可以使用Visual Basic、Delphi、PowerBuilder等編程語(yǔ)言開(kāi)發(fā)OPC服務(wù)器的客戶(hù)應用。而自定義接口是專(zhuān)門(mén)為C++等高級編程語(yǔ)言而制定的標準接口。OPC現已成為工業(yè)界系統互聯(lián)的缺省方案,為工業(yè)監控編程帶來(lái)了便利,用戶(hù)不用為通訊協(xié)議的難題而苦惱。任何一家自動(dòng)化軟件解決方案的提供者,如果它不能全方位地支持OPC,則必將被歷史所淘汰。

    通常在系統設計中采用OLE自動(dòng)化標準接口。OLE自動(dòng)化標準接口,及采用OLE自動(dòng)化技術(shù)進(jìn)行調用,其技術(shù)為上節所述的OLE自動(dòng)化技術(shù)。OLE自動(dòng)化標準接口定義了以下三層接口,依次呈包含關(guān)系:服務(wù)器(server)、組(group)和數據項(item)。OPC Server:OPC啟動(dòng)服務(wù)器,獲得其他對象和服務(wù)的起始類(lèi),并用于返回OPC Group類(lèi)對象;OPC Group:存儲由若干OPC Item組成的Group信息,并用于返回OPC Item類(lèi)對象。

3,永宏FaconServer介紹

    FaconServer是永宏電機股份有限公司配合自身的PLC與上位機連接的OPC服務(wù)器。通過(guò)該OPC可以很便捷的使上位機與PLC連接。


 
圖1 FaconServer界面

     FaconServer提供串口、調制解調器和以太網(wǎng)的方式與PLC聯(lián)機。

    同時(shí)可以建立多個(gè)通訊通道(Channel);另外每個(gè)通道下面也要實(shí)現掛多個(gè)不同站號的PLC(Station)。最后在PLC下面建立對應的數據組(Group),在對應的數據組里面填寫(xiě)要監控的寄存器(如R或D)或者繼電器點(diǎn)(如X、Y)。

    下面我們簡(jiǎn)單的介紹一下在FaconServer下建立一個(gè)項目的過(guò)程。

    建立一個(gè)項目:通過(guò)單擊“新建”來(lái)建議一個(gè)Project項目;默認名稱(chēng)為Project0。名稱(chēng)可以根據情況自行變更。一旦確定后,將不能在做變更。一個(gè)文件下面只能建立一個(gè)Project。

    建立聯(lián)機裝置:在建立好項目后,在下面可以添加聯(lián)機裝置。通過(guò)以下3個(gè)按鈕來(lái)操作聯(lián)機裝置:
 :添加聯(lián)機裝置;建立一個(gè)聯(lián)機Channel;
 :編輯聯(lián)機裝置;修改聯(lián)機裝置的通訊參數、名稱(chēng)等。
 :刪除聯(lián)機裝置;刪除不再需要保留的聯(lián)機裝置;

    在添加時(shí),選擇聯(lián)機方式。其中有串口、Modem和以太網(wǎng)的聯(lián)機方式以及做相關(guān)的敘述。添加成功后,聯(lián)機裝置默認為Channel0名稱(chēng),在后面連續的添加中編號將遞增。在一個(gè)Project下面,可以添加多個(gè)聯(lián)機方式,只要注意通訊端口不重復占用即可。
添加控制器(PLC)
    在建立好聯(lián)機通道后,接著(zhù)就是添加控制,控制器通過(guò)一下3個(gè)按鈕來(lái)操作:
 :添加控制器(PLC);添加PLC;
 :編輯控制器(PLC);編輯PLC名稱(chēng)和站號;
:刪除控制器(PLC);刪除不需保留的PLC;
    同樣,在一個(gè)聯(lián)機通道下可以建立多個(gè)控制器,但名稱(chēng)與站號不得重復。
建立PLC下的數據群組
    在對應的控制器下面,建立不同的數據群組,以分組的形式,方面監視與控制。操作方式由下說(shuō)明:

建立監控數據
    最后就是在對應的監控群組下填寫(xiě)要監控的寄存器或者接點(diǎn)。數據通過(guò)下列3個(gè)按鈕操作:

    通過(guò)上面的介紹,可以在FaconServer里面直接對PLC進(jìn)行數據的操作。但從畫(huà)面上來(lái)說(shuō)不算太過(guò)于美觀(guān)和便利,下面我們將介紹使用Visual Basic 2005編寫(xiě)監控畫(huà)面,透過(guò)FaconServer來(lái)與PLC連接,達到簡(jiǎn)易的圖形監控界面。

4,VB程序編寫(xiě)

    永宏P(guān)LC提供的FaconServer中,Visual Basic中使用的函數如下表所示:


表格1:FaconServer使用的函數


   我們以實(shí)例的寫(xiě)了來(lái)介紹這些函數的使用。

   首先,先直在程序當中打開(kāi)FaconServer,然后建立一個(gè)項目:Project0,一個(gè)聯(lián)機裝置Channel0,以及一個(gè)控制器 Station0。并在項目下面建立一個(gè)數據組Group0。建立好后將該項目以“FaconDEMO”名稱(chēng)保存到C盤(pán)根目錄下:C:\FaconDEMO.fcs。

1.         開(kāi)啟FaconServer服務(wù)器:OpenProject()。


函數格式:變量.Openproject("文件路徑")


現在我們就用OpenProject函數來(lái)打開(kāi)“FaconDEMO.fcs”項目。


Dim Fsvr As Object ‘定義服務(wù)器對象變量Fsvr


在From1_Load的聲明窗體中進(jìn)行變量的聲明。


范例:VB完整語(yǔ)句如下

Private Sub Form1_Load()
        Fsvr = CreateObject("FaconSvr.FaconServer") ‘建立Fsvr服務(wù)器對象變量
        Fsvr.Openproject("D:\DEMO.fcs")‘開(kāi)啟項目:FaconDEMO.fcs。
End Sub
將這兩句語(yǔ)句放置到From1_load窗體中,即在啟動(dòng)圖形界面時(shí),可以自動(dòng)的啟動(dòng)FaconServer,同時(shí)打開(kāi)FaconDEMO文件。
2.         保存項目:Saveproject。

函數格式:變量.Saveproject("文件路徑")


范例:VB完整語(yǔ)句如下

Private Sub SaveBTN_Click()
       Fsvr.Saveproject("D:\DEMO.fcs") ‘保存修改后的項目
End Sub

在窗體中創(chuàng )建一個(gè)“SaveBTN”按鈕,通過(guò)單擊按鈕來(lái)實(shí)現修改后的窗體保存。

3.         連接PLC操作:Connect。

函數格式:變量.Connect()


VB范例:使用“ConnecBtn”按鈕來(lái)實(shí)現離線(xiàn)操作。

Private Sub ConnecBtn_Click()
        PictureBox1.Image = FaconS.My.Resources.NET_YG ‘聯(lián)系圖標指示變化
        Fsvr.connect()‘FaconServer執行PLC聯(lián)機
End Sub
使用“ConnectBtn”按鈕,實(shí)現FaconServer與PLC的連接。另外通過(guò)改變圖片物件“ PictureBox1”的圖片,從VB界面中直觀(guān)的了解到當前是聯(lián)機或者斷開(kāi)狀態(tài)。
4.         離線(xiàn)操作:Disconnect。

函數格式:變量. Disconnect ()


VB范例:使用“DisconBtn”按鈕來(lái)實(shí)現離線(xiàn)操作。

Private Sub DisconBtn_Click()
        PictureBox1.Image = FaconS.My.Resources.ITTAI3D ‘離線(xiàn)圖標指示變化
     &nbs

p;  Fsvr.disconnect() ‘FaconServer執行PLC離線(xiàn)操作
End Sub
同時(shí)在離線(xiàn)后,更換”P(pán)ictureBox1”的圖片,來(lái)表示當前FaconServer與PLC是脫離的狀態(tài)的。
5.         組群操作:AddGroup、EditGroup、DelectGroup。
1).AddGroup:添加一個(gè)群組。

函數格式:變量.AddGroup("聯(lián)機裝置[Channel].控制器[Station]", "新建組群名稱(chēng)[Group]",優(yōu)先權[0-高或1-中或2-低], 至能[1] 或抑能[0])


VB范例:通過(guò)“AddGp”按鈕在通道0 控制起0 下增加Group10數組,優(yōu)先級為0 ,至能狀態(tài)。

Private Sub AddGp_Click()
        Fsvr.AddGroup(Channel0.Station0, Group10, 0, 1) ‘增加組群Group10命令
      End Sub
2).EditGroup:編輯群組的參數。

函數格式:與AddRoup的一致,只需要將對應以下參數作變更:優(yōu)先級和至能/抑能狀態(tài)。


VB范例:


    Private Sub EditBt_Click()


        Fsvr.EditGroup("Channel0.Station0", "Group0", 1, 0)‘修改Group0的優(yōu)先級為中級和抑能狀態(tài)命令

    End Sub
3).DelectGroup:刪除一個(gè)群組。

函數格式:變量.AddGroup("聯(lián)機裝置[Channel].控制器[Station]", "欲刪除組群名稱(chēng)[Group]")


VB范例:使用“DelGBnt”,通過(guò)Combobox1控件來(lái)確定要刪除的群組,同時(shí)清除Combobox1中的群組名稱(chēng)。


Private Sub DelGBnt_Click()


        Dim DGpmane As String   ‘定字符串


        DGpmane = ComboBox1.SelectedItem ‘COMBOBOX選擇欲刪除的群組


        Fsvr.DeleteGroup("Channel0.Station0", DGpmane) ‘刪除DGpmane選擇的群組

        ComboBox1.Items.Remove(DGpmane)’ 清除ComboBox1中的群組項目
End Sub
6.         項目操作:AddItem、DelectItem、GetItem、SetItem。
1).AddItem:新增項目(新增要自動(dòng)讀取的變量)。

函數格式:變量.AddItem("聯(lián)機裝置[Channel].控制器[Station].群組名[Group]", "欲增加的項目名稱(chēng)[R,D,X,Y,M]")


VB范例:

Private Sub Button1_Click()
        Dim Aitem As String    ‘聲明字符串變量
        Aitem = TextBox7.Text   ‘使用Textbox7來(lái)實(shí)現添加項目的輸入
        Fsvr.AddItem("Channel0.Station0.Group0", Aitem)‘添加項目命令
        ComboBox2.Items.Add(Aitem)  ‘將新增的項目添加到ComboBox2的列表中
    End Sub
2).DelectItem:刪除項目。

函數格式:變量.DeleteItem("聯(lián)機裝置[Channel].控制器[Station].群組名[Group]", "欲刪除的項目名稱(chēng)[R,D,X,Y,M]")


VB范例:

Private Sub DelItemBtn_Click()
        Dim DelItem As String
        DelItem = ComboBox2.SelectedItem    ‘Combobox2選擇欲刪除的項目
        Label8.Text = "已刪除" + DelItem       ‘顯示刪除的項目
        ComboBox2.Items.Remove(DelItem)    ‘將刪除的項目從Combobox2中移除
        Fsvr.DeleteItem("Channel0.Station0.Group0", DelItem) ‘添加項目命令
    End Sub
3).GetItem:讀取變數值

函數格式:變量.DeleteItem("聯(lián)機裝置[Channel].控制器[Station].群組名[Group]", "欲獲取數據的項目名稱(chēng)[R,D,X,Y,M]")


VB范例:由于數據時(shí)即時(shí)變化的,所以要使用到Timer控件來(lái)不斷地獲取新數據。下面為獲取M1922和R0的數據例子。

Private Sub Timer1_Tick()
   Dim M1922Val As Integer
   M1922Val = Fsvr.GetItem("Channel0.Station0.Group0", "M1922")  ‘獲取M1922的數值
    If M1922Val > 0 Then                           ‘IF語(yǔ)句判斷當前狀態(tài)
   PictureBox2.Image = FaconS.My.Resources.Light_1 ‘當M1922=1時(shí),以圖片Light_1.ico顯示紅色圓表示燈顯亮
      Else
   PictureBox2.Image = FaconS.My.Resources.Light_0 ‘當M1922=0時(shí),以圖片Light_0.ico顯示淡紅色圓表示燈熄滅
     End If
R0Val.Text = Fsvr.GetItem("Channel0.Station0.Group0", "R0")   ‘獲取R0的數值,用TextBox控件顯示
    End Sub
4).SetItem:寫(xiě)入變數值

函數格式:變量.DeleteItem("聯(lián)機裝置[Channel].控制器[Station].群組名[Group]", "欲修改數據的項目名稱(chēng)[R,D,X,Y,M]",”要寫(xiě)入的數據[整數]”)


VB范例:通過(guò)“WrItemBtn” 將“DatTextBox”的數據寫(xiě)入到“RigTextBox”指定的寄存器中去,并用“Label13”來(lái)顯示提示數據修改的情況。


Private Sub WrItemBtn_Click()


        Dim Rig As String


        Dim Dat As Integer


        Rig = RigTextBox.Text                               ‘RigTextBox指定要寫(xiě)入數據的寄存器地址


        Dat = DatTextBox.Text 

;   ‘DatTextBox設定要輸入的數據


        Label13.Text = "已將" + RigTextBox.Text + "數據修改為" + DatTextBox.Text    ‘使用Label13來(lái)提示修改的寄存器為多少數值


        Fsvr.setitem("channel0.Station0.Group0", Rig, Dat) ‘執行修改數值命令

    End Sub


5,結束語(yǔ)

    通過(guò)上文,正對每個(gè)命令函數做格式的說(shuō)明以及案例的編寫(xiě),讀者在讀完整章節后,很容易的,就能使用Visual Basic來(lái)完成圖形監控的編寫(xiě)。在簡(jiǎn)易的監控中,完全可以自行開(kāi)發(fā)監控界面。采用 OPC技術(shù)使得整個(gè)項目的實(shí)施變的簡(jiǎn)單、靈活,體現了其在工業(yè)控制系統中的優(yōu)越性。

參考文獻:
[1] 永宏可編程控制器使用手冊I 和使用手冊II.臺灣永宏電機股份有限公司
[2] FaconServer ActiveX.臺灣永宏電機股份有限公司
[3] Vsiual Basic2005入門(mén)與提高.清華大學(xué)出版社

安丘市| 永城市| 商河县| 铁岭县| 龙山县| 若尔盖县| 壶关县| 宁强县| 兴城市| 武夷山市| 藁城市| 铁岭县| 罗甸县| 麻栗坡县| 宁陵县| 桐梓县| 本溪市| 蒙山县| 扎鲁特旗| 团风县| 元阳县| 娄烦县| 高碑店市| 图片| 千阳县| 鸡泽县| 香格里拉县| 拉萨市| 蒲城县| 衡阳县| 景宁| 三河市| 锡林郭勒盟| 河南省| 札达县| 石河子市| 东丰县| 布拖县| 潜江市| 平安县| 布尔津县|