安全生产
首页资讯供应求购招商招聘展会社区
长期信息合作请联系:QQ66821730
PLC技术首页-->PLC基础plc应用PLC文案资料PLC手册国标规程plc资料下载技术培训人才招聘职业认证产品商情论坛
PLC搜索
我 要 找
标题 内容 作者
PLCRSS订阅PLC技术信息
电工技术资料 您的位置: 机电之家-->plc技术资料栏目首页-> plc应用 -> 永宏plc应用 --> OPC技术在永宏PLC上的应用
阅读plc技术相关资料
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



有搞不定的程序,交给机电之家吧!去悬赏竞标
 OPC技术在永宏PLC上的应用相关资料
  • 用三菱的FX2N PLC实现N:N网络(令牌总线)
  • PLC程序调试步骤
  • 三菱PLC的几个常见问题解答
  • PLC内置高速计数器的简单应用介绍
  • PC与FX30DUE传输数据办法
  • 变频器逆变器件的原理
  • 三菱PLC程序编写注意事项一例
  • 三菱FX,A,QnA系列PLC特殊寄存器查询软件
  • 三菱FX2N系列PLC与Profibus的连接
  • 计数器级联PLC程序梯形图 
  • ⊕这地方投资政策最优
    ⊕上千份机电行业研究报告
    ⊕机电项目招商啦
    ⊕谁把我买了?
    ⊕机电行业展会大全
    ⊕十万企业抢登行业网址大全
    机电之家会议开通
    ⊕每日最新求购信息
    ⊕电工技术资料为了谁?
    ⊕机电设备维修与管理
    机电之家(中国)plc技术资料中心资讯版权声明:
    1、凡注明“机电之家采编”字样的所有作品均系本网原创,版权归机电之家所有,任何媒体摘编或享用本作品,需注明文章来源。违反声明者,本网将追究其相关法律责任。
    2、凡本网注明“来源:XXX网(非本网)”的作品,均转载自其他媒体,目的在于传达更多资讯,本网不承担相关法律责任。

    3、如在资讯、广告等方面想与本网合作,请致电:0571-87774297。Email:donemi@hz.cn

    ·工程项目经理培训
    ·欧姆龙PLC编程维护培训
    ·杭州西门子PLC应用培训
    ·模具加工设计培训
    ·变频器维修培训
    ·安全员认证培训
    ·电工培训


    ·招聘项目管理人员
    ·首席技术执行官
    ·自控工程师
    ·数控编程学徒
    ·总工程师

    项目竞标

    最新商业情报
    代理
    [代理] 寻求地区代理
    [代理] 电工产品诚招代理..
    采购
    [采购] 电动车控制器外壳
    [采购] 高品质缓冲器
    论坛最新话题
    ·超级搞笑的安全事故
    ·电工技术资料flash大全
    ·最新的搞笑图片
    ·工控行业应用软件下载
    首页
    首页
    合作网站:
    | 中国机电网机电之家安全生产网 | 机电论文 | 机电论坛 | 机电设备贸易 | 机电网址大全 | 浙江机电网 | 陕西机电网 | 变频器技术网 |
    中国电工网 | 电工网 |环球会展网机电产品网 | 机电人才网 | 中国工控网 | 五金工具网 | 安全生产网 | 甘肃机电网 | PLC技术网 |
    友情连接:
    | 中国机电网 | 中国工控网 | 行业培训网 | 中国工程机械网 | 机电一体化网 | 行业下载网 | 行业国标网 | 商业情报站 |
    关于我们 | 联系我们 | 广告联系 | 付款方式 | 使用帮助 | PLC技术网 | 会员助手 | 友情链接
    电话:0571-87774297(杭州) 传真:0571-87774298(杭州)点击这里给我发消息66821730(技术) 点击这里给我发消息58733127(审核)
    机电之家 PLC技术网 站所共享的PLC知识,PLC技术,PLC应用,PLC行情分析,PLC学习资料,PLC国标规程,PLC维修知识,
    PLC国家标准,PLC操作规程,PLC岗位职责,PLC管理制度,PLC工作总结,PLC实习报告,PLC考试题库,
    等都是来自会员发表或 网上收集整理。如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。
    企业登陆可自行免费发布资料,本站代发布邮箱为88ctv@163.com
    Copyright 2007 plc.jdzj.com Inc All Rights Reserved.PLC技术网
    chinaplc.net 联合建设
    技术支持:PLC技术网 mailto:88ctv@163.com
    免费发布信息主办:浙江-杭州-PLC技术网网络运营部安全生产