厦门海正自动科技有限公司2007年成立于厦门经济区,本公司主要销售各种电子、电气产品及配件.是台湾FATEK永宏PLC可编程控制器在大陆的一级代理商及销售深圳威纶通各种威纶触摸屏. |
|
永宏PLC 值得您信賴的品牌 |
OPC技术在永宏PLC上的应用
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中使用的函数如下表所示:
我们以实例的写了来介绍这些函数的使用。
首先,先直在程序当中打开FaconServer,然后建立一个项目:Project0,一个联机装置Channel0,以及一个控制器Station0。并在项目下面建立一个数据组Group0。建立好后将该项目以“FaconDEMO”名称保存到C盘根目录下:C:\FaconDEMO.fcs。
1. 开启FaconServer服务器:OpenProject()。
Private Sub Form1_Load()
Fsvr = CreateObject("FaconSvr.FaconServer") ‘建立Fsvr服务器对象变量
Fsvr.Openproject("D:\DEMO.fcs")‘开启项目:FaconDEMO.fcs。
End Sub
将这两句语句放置到From1_load窗体中,即在启动图形界面时,可以自动的启动FaconServer,同时打开FaconDEMO文件。
2. 保存项目:Saveproject。
Private Sub SaveBTN_Click()
Fsvr.Saveproject("D:\DEMO.fcs") ‘保存修改后的项目
End Sub
3. 连接PLC操作:Connect。
Private Sub ConnecBtn_Click()
PictureBox1.Image = FaconS.My.Resources.NET_YG ‘联系图标指示变化
Fsvr.connect()‘FaconServer执行PLC联机
End Sub
使用“ConnectBtn”按钮,实现FaconServer与PLC的连接。另外通过改变图片物件“ PictureBox1”的图片,从VB界面中直观的了解到当前是联机或者断开状态。
4. 离线操作:Disconnect。
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:添加一个群组。
Private Sub AddGp_Click()
Fsvr.AddGroup(Channel0.Station0, Group10, 0, 1) ‘增加组群Group10命令
End Sub
2).EditGroup:编辑群组的参数。
End Sub
3).DelectGroup:删除一个群组。
ComboBox1.Items.Remove(DGpmane)’ 清除ComboBox1中的群组项目
End Sub
6. 项目操作:AddItem、DelectItem、GetItem、SetItem。
1).AddItem:新增项目(新增要自动读取的变量)。
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:删除项目。
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:读取变数值
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:写入变数值
End Sub
5,结束语
通过上文,正对每个命令函数做格式的说明以及案例的编写,读者在读完整章节后,很容易的,就能使用Visual Basic来完成图形监控的编写。在简易的监控中,完全可以自行开发监控界面。采用 OPC技术使得整个项目的实施变的简单、灵活,体现了其在工业控制系统中的优越性。
聯系電話:0592-5337726 5337727 5337728 傳真:0592-5337738 技術服務:0592-5337731
聯系地址:福建省廈門市火炬高新区火炬路7-11号(光业东楼)四楼401室 郵編:361000