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)。自动化接口通常是为基于脚本编程语言而定义的标准 深圳捷达兴--台湾永宏深圳特级代理:台湾永宏全系列 (永宏C3触摸屏、永宏PLC,永宏伺服一拖二,永宏开关电源,永宏传感器)主要从事工控相关产品的代理销售,我司是台湾永宏产品FATEK,深圳总代理。唯一制授权合作伙伴。 接口,可以使用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连接。 FaconServer提供串口、调制解调器和以太网的方式与PLC联机。 同时可以建立多个通讯通道(Channel);另外每个通道下面也要实现挂多个不同站号的PLC(Station)。最后在PLC下面建立对应的数据组(Group),在对应的数据组里面填写要监控的寄存器(如R或D)或者继电器点(如X、 深圳捷达兴--台湾永宏深圳特级代理:台湾永宏全系列 (永宏C3触摸屏、永宏PLC,永宏伺服一拖二,永宏开关电源,永宏传感器)主要从事工控相关产品的代理销售,我司是台湾永宏产品FATEK,深圳总代理。唯一制授权合作伙伴。 Y)。 下面我们简单的介绍一下在FaconServer下建立一个项目的过程。 建立一个项目:通过单击“新建”来建议一个Project项目;默认名称为Project0。名称可以根据情况自行变更。一旦确定后,将不能在做变更。一个文件下面只能建立一个Project。 建立联机装置:在建立好项目后,在下面可以添加联机装置。通过以下3个按钮来操作联机装置: 在添加时,选择联机方式。其中有串口、Modem和以太网的联机方式以及做相关的叙述。添加成功后,联机装置默认为Channel0名称,在后面连续的添加中编号将递增。在一个Project下面,可以添加多个联机方式,只要注意通讯端口不重复占用即可。 深圳捷达兴--台湾永宏深圳特级代理:台湾永宏全系列 (永宏C3触摸屏、永宏PLC,永宏伺服一拖二,永宏开关电源,永宏传感器)主要从事工控相关产品的代理销售,我司是台湾永宏产品FATEK,深圳总代理。唯一制授权合作伙伴。 数据群组,以分组的形式,方面监视与控制。操作方式由下说明: 4,VB程序编写 永宏PLC提供的FaconServer中,Visual Basic中使用的函数如下表所示: 表格1:FaconServer使用的函数 我们以实例的写了来介绍这些函数的使用。 首先,先直在程序当中打开FaconServer,然后建立一个项目:Project0,一个联机装置Channel0,以及一个控制器Station0。并在项目下面建立一个数据组Group0。建立好后将该项目以“FaconDEMO”名称保存到C盘根目录下:C:\Faco 深圳捷达兴--台湾永宏深圳特级代理:台湾永宏全系列 (永宏C3触摸屏、永宏PLC,永宏伺服一拖二,永宏开关电源,永宏传感器)主要从事工控相关产品的代理销售,我司是台湾永宏产品FATEK,深圳总代理。唯一制授权合作伙伴。 nDEMO.fcs。 1. 开启FaconServer服务器:OpenProject()。 函数格式:变量.Openproject("文件路径")
现在我们就用OpenProject函数来打开“FaconDEMO.fcs”项目。
Dim Fsvr As Object ‘定义服务器对象变量Fsvr
在From1_Load的声明窗体中进行变量的声明。
范例:VB完整语句如下
深圳捷达兴--台湾永宏深圳特级代理:台湾永宏全系列 (永宏C3触摸屏、永宏PLC,永宏伺服一拖二,永宏开关电源,永宏传感器)主要从事工控相关产品的代理销售,我司是台湾永宏产品FATEK,深圳总代理。唯一制授权合作伙伴。 ct("D:\DEMO.fcs")‘开启项目:FaconDEMO.fcs。 函数格式:变量.Saveproject("文件路径")
范例:VB完整语句如下
在窗体中创建一个“SaveBTN”按钮,通过单击按钮来实现修改后的窗体保存。
函数格式:变量.Connect()
VB范例:使用“ConnecBtn”按钮来实现离线操作。
函数格式:变量. Disconnect ()
VB范例:使用“DisconBtn”按钮来实现离线操作。
全权代理:台湾永宏触摸屏,永宏PLC, 永宏伺服一托二,永宏变频器,永宏传感器,台湾永宏开关电源。承接电柜,设备编程。电气改造,设备升级等技术服务。免费帮客户选型,免费定制行业程序,免费指导调试,免费提供技术支持,免费送货上门,免费质保三年,终生保修!)详情来电:0755-23200389 nnect() ‘FaconServer执行PLC离线操作 函数格式:变量.AddGroup("联机装置[Channel].控制器[Station]", "新建组群名称[Group]",优先权[0-高或1-中或2-低], 至能[1] 或抑能[0])
VB范例:通过“AddGp”按钮在通道0 控制起0 下增加Group10数组,优先级为0 ,至能状态。 全权代理:台湾永宏触摸屏,永宏PLC, 永宏伺服一托二,永宏变频器,永宏传感器,台湾永宏开关电源。承接电柜,设备编程。电气改造,设备升级等技术服务。免费帮客户选型,免费定制行业程序,免费指导调试,免费提供技术支持,免费送货上门,免费质保三年,终生保修!)详情来电:0755-23200389Private Sub AddGp_Click() 函数格式:与AddRoup的一致,只需要将对应以下参数作变更:优先级和至能/抑能状态。
VB范例:
Private Sub EditBt_Click()
Fsvr.EditGroup("Channel0.Station0", "Group0", 1, 0)‘修改Group0的优先级为中级和抑能状态命令
函数格式:变量.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选择的群组
函数格式:变量.AddItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲增加的项目名称[R,D,X,Y,M]")
VB范例:
函数格式:变量.DeleteItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲删除的项目名称[R,D,X,Y,M]")
VB范例:
函数格式:变量.DeleteItem("联机装置[Channel].控制器[Station].群组名[Group]", "欲获取数据的项目名称[R,D,X,Y,M]")
VB范例:由于数据时即时变化的,所以要使用到Timer控件来不断地获取新数据。下面为获取M1922和R0的数据例子。
函数格式:变量.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) ‘执行修改数值命令
通过上文,正对每个命令函数做格式的说明以及案例的编写,读者在读完整章节后,很容易的,就能使用Visual Basic来完成图形监控的编写。在简易的监控中,完全可以自行开发监控界面。采用 OPC技术使得整个项目的实施变的简单、灵活,体现了其在工业控制系统中的优越性。 |