会员注册
发布信息

OPC技术在永宏PLC上的应用
    摘要:OPC技术在产业自动化系统中应用的越来越广泛,论文详述了基于OPC技术介绍了何用Visual Basic编写监控软件在永宏PLC上面的应用。
关键词: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,前言:


             个人电脑在产业自动化系统中常作为上位机使用,以实现跟现场设备如PLC数据的处理,实现现场的集中控制。针对于小型的控制系统 ,若采用专业的工控机或者 组态软件,则系统的造价必会很高。随着OPC技术的发展与普及,已成为产业控制的一种通讯标准。自动化厂家一般都提供OPC 接口 ,这样就轻而易举的解决了上位机与设备之间的通讯题目。再配合编程语言软件开发图控界面,达到低本钱的监控系统。本文将利用永宏电机股份有限公司提供的OPC接口FaconServer.和结合Visual Basic2005编写客户端监控程序,实现上位机与永宏PLC之间的数据处理。


         2,OPC介绍


             OPC是Object Linking and Embedding(OLE)for Process Control的缩写,基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。它是基于Windows操纵平台的对象链接和嵌进技术在过程控制方面的应用。OPC实际上是提供了一种机制,通过这种机制,系统能够以服务器/客户端标准方式从服务器获取数据并将其传递给任何客户应用程序。这样,只要生产商开发一套遵循OPC规范的服务器与 数据进行通讯,其他任何客户应用程序便能通过服务器访问设备。


             OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用Visual Basic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为产业界系统互联的缺省方案,为产业监控编程带来了便利,用户不用为通讯协议的困难而苦恼。任何一家自动化软件解决方案的提供者,假如它不能全方位地支持OPC,则必将被历史所淘汰。


             通常在系统设计中采用OLE自动化标准接口。OLE自动化标准接口,及采用OLE自动化技术进行调用,其技术为上节所述的OLE自动化技术。OLE自动化标准接口定义了以下三层接口,依次呈包含关系:服务器(server)、组(group)和数据项(item)。OPC Server:OPC启动服务器,获得其他对象和服务的起始类,并用于返回OPC Group类对象;OPC Group:存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。


         3,永宏FaconServer介绍


             FaconServer是永宏电机股份有限公司配合自身的PLC与上位机连接的OPC服务器。通过该OPC可以很便捷的使上位机与PLC连接。


        

 
图1 FaconServer界面


              FaconServer提供串口、调制解调器和以太网的方式与PLC联机。


             同时可以建立多个通讯通道(Channel);另外每个通道下面也要实现挂多个不同站号的PLC(Station)。最后在PLC下面建立对应的数据组(Group),在对应的数据组里面填写要监控的寄存器(如R或D)或者继电器点(如X、Y)。


             下面我们简单的介绍一下在FaconServer下建立一个项目的过程。


             建立一个项目:通过单击“新建”来建议一个Project项目;默认名称为Project0。名称可以根据情况自行变更。一旦确定后,将不能在做变更。一个文件下面只能建立一个Project。


             建立联机装置:在建立好项目后,在下面可以添加联机装置。通过以下3个按钮来操纵联机装置:
 :添加联机装置;建立一个联机Channel;
 :编辑联机装置;修改联机装置的通讯参数、名称等。
 :删除联机装置;删除不再需要保存的联机装置;


             在添加时,选择联机方式。其中有串口、Modem和以太网的联机方式以及做相关的叙述。添加成功后,联机装置默以为Channel0名称,在后面连续的添加中编号将递增。在一个Project下面,可以添加多个联机方式,只要留意通讯端口不重复占用即可。
添加控制器(PLC)
    在建立好联机通道后,接着就是添加控制,控制器通过一下3个按钮来操纵:
 :添加控制器(PLC);添加PLC;
 :编辑控制器(PLC);编辑PLC名称和站号;
:删除控制器(PLC);删除不需保存的PLC;
    同样,在一个联机通道下可以建立多个控制器,但名称与站号不得重复。
建立PLC下的数据群组
    在对应的控制器下面,建立不同的数据群组,以分组的形式,方面监视与控制。操纵方式由下说明:

建立监控数据
    最后就是在对应的监控群组下填写要监控的寄存器或者接点。数据通过下列3个按钮操纵:

    通过上面的介绍,可以在FaconServer里面直接对PLC进行数据的操纵。但从画面上来说不算太过于美观和便利,下面我们将介绍使用Visual Basic 2005编写监控画面,透过FaconServer来与PLC连接,达到简易的图形监控界面。


         4,VB程序编写


             永宏PLC提供的FaconServer中,Visual Basic中使用的函数如下表所示:

表格1:FaconServer使用的函数


            我们以实例的写了来介绍这些函数的使用。


            首先,先直在程序当中打开FaconServer,然后建立一个项目:Project0,一个联机装置Channel0,以及一个控制器Station0。并在项目下面建立一个数据组Group0。建立好后将该项目以“FaconDEMO”名称保存到C盘根目录下:C:\FaconDEMO.fcs。


         1.         开启FaconServer服务器:OpenProject()。

函数格式:变量.Openproject("文件路径")

现在我们就用OpenProject函数来打开“FaconDEMO.fcs”项目。

Dim Fsvr As Object ‘定义服务器对象变量Fsvr

在From1_Load的声明窗体中进行变量的声明。

范例:VB完整语句如下

Private Sub Form1_Load()
        Fsvr = CreateObject("FaconSvr.FaconServer") ‘建立Fsvr服务器对象变量
        Fsvr.Openproject("D:\DEMO.fcs")‘开启项目:FaconDEMO.fcs。
End Sub
将这两句语句放置到From1_load窗体中,即在启动图形界面时,可以自动的启动FaconServer,同时打开FaconDEMO文件。
2.         保存项目:Saveproject。
函数格式:变量.Saveproject("文件路径")

范例:VB完整语句如下

Private Sub SaveBTN_Click() 
       Fsvr.Saveproject("D:\DEMO.fcs") ‘保存修改后的项目
End Sub
在窗体中创建一个“SaveBTN”按钮,通过单击按钮来实现修改后的窗体保存。

3.         连接PLC操纵:Connect。
函数格式:变量.Connect()

VB范例:使用“ConnecBtn”按钮来实现离线操纵。

Private Sub ConnecBtn_Click() 
        PictureBox1.Image = FaconS.My.Resources.NET_YG ‘联系图标指示变化
        Fsvr.connect()‘FaconServer执行PLC联机
End Sub
使用“ConnectBtn”按钮,实现FaconServer与PLC的连接。另外通过改变图片物件“ PictureBox1”的图片,从VB界面中直观的了解到当前是联机或者断开状态。
4.         离线操纵:Disconnect。
函数格式:变量. Disconnect ()

VB范例:使用“DisconBtn”按钮来实现离线操纵。

Private Sub DisconBtn_Click()
        PictureBox1.Image = FaconS.My.Resources.ITTAI3D ‘离线图标指示变化
        Fsvr.disconnect() ‘FaconServer执行PLC离线操纵
End Sub
同时在离线后,更换”PictureBox1”的图片,来表示当前FaconServer与PLC是脱离的状态的。
5.         组群操纵:AddGroup、EditGroup、DelectGroup。
1).AddGroup:添加一个群组。
函数格式:变量.AddGroup("联机装置[Channel].控制器[Station]", "新建组群名称[Group]",优先权[0-高或1-中或2-低], 至能[1] 或抑能[0])

VB范例:通过“AddGp”按钮在通道0 控制起0 下增加Group10数组,优先级为0 ,至能状态。

Private Sub AddGp_Click()
        Fsvr.AddGroup(Channel0.Station0, Group10, 0, 1) ‘增加组群Group10命令
      End Sub
2).EditGroup:编辑群组的参数。
函数格式:与AddRoup的一致,只需要将对应以下参数作变更:优先级和至能/抑能状态。

VB范例:

    Private Sub EditBt_Click()

        Fsvr.EditGroup("Channel0.Station0", "Group0", 1, 0)‘修改Group0的优先级为中级和抑能状态命令

    End Sub
3).DelectGroup:删除一个群组。
函数格式:变量.AddGroup("联机装置[Channel].控制器[Station]", "欲删除组群名称[Group]")

VB范例:使用“DelGBnt”,通过Combobox1控件来确定要删除的群组,同时清除Combobox1中的群组名称。

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:新增项目(新增要自动读取的变量)。
函数格式:变量.AddItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲增加的项目名称[R,D,X,Y,M]")

VB范例:

Private Sub Button1_Click()
        Dim Aitem As String    ‘声明字符串变量
        Aitem = TextBox7.Text   ‘使用Textbox7来实现添加项目的输进
        Fsvr.AddItem("Channel0.Station0.Group0", Aitem)‘添加项目命令
        ComboBox2.Items.Add(Aitem)  ‘将新增的项目添加到ComboBox2的列表中
    End Sub
2).DelectItem:删除项目。
函数格式:变量.DeleteItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲删除的项目名称[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("联机装置[Channel].控制器[Station].群组名[Group]", "欲获取数据的项目名称[R,D,X,Y,M]")

VB范例:由于数据时即时变化的,所以要使用到Timer控件来不断地获取新数据。下面为获取M1922和R0的数据例子。

Private Sub Timer1_Tick()
   Dim M1922Val As Integer
   M1922Val = Fsvr.GetItem("Channel0.Station0.Group0", "M1922")  ‘获取M1922的数值
    If M1922Val > 0 Then                           ‘IF语句判定当前状态
   PictureBox2.Image = FaconS.My.Resources.Light_1 ‘当M1922=1时,以图片Light_1.ico显示红色圆表示灯显亮
      Else
   PictureBox2.Image = FaconS.My.Resources.Light_0 ‘当M1922=0时,以图片Light_0.ico显示淡红色圆表示灯熄灭
     End If
R0Val.Text = Fsvr.GetItem("Channel0.Station0.Group0", "R0")   ‘获取R0的数值,用TextBox控件显示
    End Sub
4).SetItem:写进变数值
函数格式:变量.DeleteItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲修改数据的项目名称[R,D,X,Y,M]",”要写进的数据[整数]”)

VB范例:通过“WrItemBtn” 将“DatTextBox”的数据写进到“RigTextBox”指定的寄存器中往,并用“Label13”来显示提示数据修改的情况。

Private Sub WrItemBtn_Click()

        Dim Rig As String

        Dim Dat As Integer

        Rig = RigTextBox.Text                               ‘RigTextBox指定要写进数据的寄存器地址

        Dat = DatTextBox.Text                               ‘DatTextBox设定要输进的数据

        Label13.Text = "已将" + RigTextBox.Text + "数据修改为" + DatTextBox.Text    ‘使用Label13来提示修改的寄存器为多少数值

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

    End Sub


        
5,结束语


             通过上文,正对每个命令函数做格式的说明以及案例的编写,读者在读完整章节后,很轻易的,就能使用Visual Basic来完成图形监控的编写。在简易的监控中,完全可以自行开发监控界面。采用 OPC技术使得整个项目的实施变的简单、灵活,体现了其在产业控制系统中的优越性。


         参考文献
[1] 永宏可编程控制器使用手册I 和使用手册II.台湾永宏电机股份有限公司
[2] FaconServer ActiveX.台湾永宏电机股份有限公司
[3] Vsiual Basic2005进门与进步.清华大学出版社


         作者简介:
孙恒孝(1980- ),毕业于合肥产业大学自动化系
主要从事PLC行业的技术支持与行业应用工作
联系方式:范堤商贸(上海)有限公司
               021-66315471



相关阅读:  
  • 永宏PLC在注塑机上的应用
  • 无线客户端(AP)在永宏PLC上的应用
  • 永宏PLC在条形码打印机上的应用
  • 永宏PLC在自动上膜机上的应用
  • 永宏PLC在清洗设备上的应用
  • 永宏PLC在超声波塑料焊接机上的应用
  • 永宏PLC在丝网印刷机上的应用
  • 永宏PLC在自动压盖机上的应用
  • 永宏plc在全自动led编带机上的应用
  • “永宏PLC包装应用”在塑排机上的应用
  • 永宏PLC在水钻设备上的应用
  • 永宏PLC在塑料熔接机上的应用
  • 永宏PLC在条码检测上的应用
  • 永宏PLC在真空包装机上的应用
  • 永宏PLC在定位旋转摩擦塑胶焊接机上的应用
  • 永宏PLC在高速复卷机上的应用
  • 永宏PLC在模切机上的应用2
  • 永宏PLC在瓶装贴标机上的应用
  • 永宏PLC在剪板机上的应用
  • 永宏PLC在塑排机上的应用
  •  
     
     

    时间:2011年02月18日 02:50:47 来源:中国传动网 作者: 上一篇:凌华PXI平台在电子制造业的应用 下一篇:亿维 UniMAT 200模块在高光模温机上的应用  (电脑版  手机版)
    Copyright by www.clientsrv004.com;All rights reserved.

    威尼斯人账号注册