你现在位置:首页>技术论文>软件知识>正文
怎样通过OPCClient与世纪星交互
日期:2011-8-8 9:29:59 点击:
来源:网络
作者: 未知
点击【】放大字体.
  
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

1 OPC简介
WWW_PLCJS@_COM%-PLC-技.术_网

  OPC是 OLE for Process Control 的缩写,即把 OLE 技术应用于工业控制领域。
WWW_PLC※JS_COM-PmLC-技.术_网

  OPC的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的 OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是 OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。
WWW_PLCJS_COM-PLC-技.术_网

  OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
WWW_PLCJS@_COM%-PLC-技.术_网

  应用程序与OPC服务器之间必须有 OPC 接口,OPC 规范提供了两套标准接口:Custom 标准接口,OLE 自动化标准接口。通常在系统设计中采用OLE自动化标准接口,OLE 自动化标准接口,及采用 OLE 自动化技术进行调用,其技术为上节所述的 OLE 自动化技术。OLE 自动化标准接口定义了以下三层接口,依次呈包含关系:
WWW_PL※CJS_COM-PLC-技.术_网

  1)OPC Server:OPC 启动服务器,获得其他对象和服务的起始类,并用于返回 OPC Group 类对象。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  2)OPC Group:存储由若干 OPC Item 组成的 Group 信息,并用于返回 OPC Item 类对象。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  3)OPC Item:存储具体 Item 的定义、数据值、状态值等信息。
W1WW_P4LCJS_COM-PLC-技.术_网

 
W1WW_P4LCJS_COM-PLC-技.术_网

WW.W_PLCJS_COM-PLC-技.术_网

2 采用OPC规范设计系统的优势
P.L.C.技.术.网——可编程控制器技术门户

 
W1WW_P4LCJS_COM-PLC-技.术_网

  1)OPC规范以 OLE/DCOM 为技术基础,而 OLE/DCOM 支持 TCP/IP 等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

  2)OPC按照面向对象的原则,将一个应用程序(OPC 服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
WWW.PLCJS.COM——可编程控制器技术门户

  3)OPC实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置以及使得系统的应用范围更广。
WWcW_PLCJS_COM-PLC-技.术_网

  4)采用OPC规范,便于系统的组态化,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。
plcjs.技.术_网

  5)OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
WWcW_PLCJS_COM-PLC-技.术_网

 
WWW.PLCJS.COM——可编程控制器技术门户

WW.W_PLCJS_COM-PLC-技.术_网

3 使用VB6.0编写OPC Client访问世纪星
WWW_PLCJS_COM-PLC-技.术_网

 
WWW_PLCJS@_COM%-PLC-技.术_网

  世纪星同时提供OPC Client和OPC Server两种功能,想要通过OPC方式和世纪星交换数据,必须要编写OPC Client和OPC Server其中的任意一种。由于编写OPC Server程序具有一定难度,所以我们建议工程技术人员开发OPC Client来和世纪星的OPC Server交互。
W1WW_P4LCJS_COM-PLC-技.术_网

 
WWW_PLC※JS_COM-PmLC-技.术_网

  1)世纪星工程
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  使用OPC Client访问世纪星是不需要在世纪星中做任何特殊配置的,我们在世纪星中创建如下类型变量。在应用程序命令语言中让这些变量发生变化。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

世纪星组态软件
plcjs.技.术_网

图1 变量列表
W1WW_P4LCJS_COM-PLC-技.术_网

 
P.L.C.技.术.网——可编程控制器技术门户

世纪星组态软件
plcjs.技.术_网

图2 应用程序命令语言脚本
P.L.C.技.术.网——可编程控制器技术门户

 
WW.W_PLCJS_COM-PLC-技.术_网

世纪星组态软件
WW.W_PLC※JS_C,OM-PL,C-技.术_网

图3 世纪星运行画面
WWW_P※LCJS_COM-PLC-)技.术_网

 
P.L.C.技.术.网——可编程控制器技术门户

  2)VB6.0编写OPC Client
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 
WWW.PLCJS.COM——可编程控制器技术门户

A、脚本
WWW_PL※CJS_COM-PLC-技.术_网

 
WW.W_PLC※JS_C,OM-PL,C-技.术_网

Option Explicit
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

Dim WithEvents opcSvr As OPCServer
——可——编——程——控-制-器-技——术——门——户

Dim WithEvents opcGrp As OPCGroup
WWW_PLCJS@_COM%-PLC-技.术_网

Dim opcItm(3) As OPCItem
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Dim opcInt As Variant
WW.W_PLC※JS_C,OM-PL,C-技.术_网

Dim opcInfo As Variant
WWW.PLCJS.COM——可编程控制器技术门户

Dim opcDsc As Variant
P.L.C.技.术.网——可编程控制器技术门户

Dim v As Variant
WWW_P※LCJS_COM-PLC-)技.术_网

Dim q As Variant
WWW_PLCJS_COM-PLC-技.术_网

Dim t As Variant
WWW_PLCJS_COM-PLC-技.术_网

Private Sub cmdConnect_Click()
WWW_PLCJS_COM-PLC-技.术_网

On Error GoTo ed
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

If opcSvr Is Nothing Then Set opcSvr = New OPCServer
WWW_PLCJS@_COM%-PLC-技.术_网

opcSvr.Connect "CenturyStar.OPCServer", txtIP.Text
WWW_PL※CJS_COM-PLC-技.术_网

opcSvr.OPCGroups.DefaultGroupUpdateRate = 50
WWW_PLCJS@_COM%-PLC-技.术_网

Set opcGrp = opcSvr.OPCGroups.Add("Group")
——可——编——程——控-制-器-技——术——门——户

Set opcItm(0) = opcGrp.OPCItems.AddItem("opcInt", 1)
WWW_PL※CJS_COM-PLC-技.术_网

Set opcItm(1) = opcGrp.OPCItems.AddItem("opcInfo", 2)
WWW_PLC※JS_COM-PmLC-技.术_网

Set opcItm(2) = opcGrp.OPCItems.AddItem("opcDsc", 3)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

Set opcItm(3) = opcGrp.OPCItems.AddItem("opcFlt", 4)
WWW_PLCJS_COM-PLC-技.术_网

If opcSvr.ServerState = 1 Then
WWW_P※LCJS_CO※M-PLC-技-.术_网

    MsgBox "opc服务器已连接!", vbOKOnly, "提示:"
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    tmrRun.Enabled = True
plcjs.技.术_网

    cmdConnect.Enabled = False
WWW_PL※CJS_COM-PLC-技.术_网

    cmdDisConnect.Enabled = True
WW.W_PLCJS_COM-PLC-技.术_网

Else
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

MsgBox "opc服务器连接错误!", vbOKOnly, "提示:"
WWW_P※LCJS_COM-PLC-)技.术_网

End If
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

ed:
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

End Sub
WWW_P※LCJS_COM-PLC-)技.术_网

Private Sub cmdDisConnect_Click()
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

On Error GoTo ed
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

tmrRun.Enabled = False
——可——编——程——控-制-器-技——术——门——户

opcSvr.OPCGroups.RemoveAll
WWW_PLCJS@_COM%-PLC-技.术_网

opcSvr.Disconnect
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

Set opcSvr = Nothing
WWW_P※LCJS_COM-PLC-)技.术_网

cmdDisConnect.Enabled = False
WW.W_PLC※JS_C,OM-PL,C-技.术_网

cmdConnect.Enabled = True
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

ed:
WW.W_PLCJS_COM-PLC-技.术_网

End Sub
WW.W_PLCJS_COM-PLC-技.术_网

Private Sub Form_Unload(Cancel As Integer)
WWW_P※LCJS_CO※M-PLC-技-.术_网

On Error GoTo ed
WWcW_PLCJS_COM-PLC-技.术_网

cmdDisConnect_Click
WWW_PLCJS_COM-PLC-技.术_网

ed:
W1WW_P4LCJS_COM-PLC-技.术_网

End
WWW_PLCJS@_COM%-PLC-技.术_网

End Sub
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Private Sub tmrRun_Timer()
WWW_P※LCJS_COM-PLC-)技.术_网

On Error GoTo ed
WWW_P※LCJS_CO※M-PLC-技-.术_网

 tmrRun.Enabled = False
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

If opcSvr.ServerState Then
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

    opcItm(0).Read 1, v, q, t
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    txtInt.Text = v   

本新闻共2页,当前在第11 2  
WWW_PL※CJS_COM-PLC-技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行