欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VB开发OPC客户端程序的步骤与实现..pdf

    • 资源ID:76257644       资源大小:11.30KB        全文页数:8页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VB开发OPC客户端程序的步骤与实现..pdf

    VB 开发 OPC 客户端程序的步骤与实现(1)建立新工程或项目,在“工程”菜单下选择“引用”,如图 5-3所示。只有引用 OPCDAAuoto.DLL 后,在程序中才能创建服务器对象,然后进行一系列的操作。(2)在弹出的引用窗口里单击“浏览(B)”按钮,弹出添加引用窗口,选择 OPCDAAuoto.DLL 文件。(3)在引用窗口里的OPCAutomation 2.0 前面打钩,按“确定”按钮。(4)定义全局变量,这样可以在窗体的任何方法的代码内应用。变量类型应该指定为对象型。这些对象最好在窗体的通用部分声明加上“Option Explicit”语句,表示模块里的所有变量都需要显式声明。由于 OPC 自动化接口的数组的索引要求必须从1 开始,而系统默认是从 0 开始,为了避免错误最好在代码的最初加上“OptionBase 1”语句。为了使对象可以处理事件,必须将objTestGrp 和 objServer的声明中加上“WithEvents”语句,表示声明的对象可以响应事件。OptionExplicitOptionBase 1Dim WithEventsobjServerAs OPCServerDim objGroupsAs OPCGroupsDim WithEventsobjTestGrpAs OPCGroupDim objItemsAs OPCItems(5)连接 OPC 服务器和建立OPC?br 考虑到代码的可反复使用性,采用子程序进行编程。Sub Connect(strProgIDAs String,OptionalstrNode As String)IfobjServerIsNothing Then建立一个 OPC 服务器对象Set objServer=NewOPCServerEnd If服务 器状 态 ServerState属 性一 共有 OPCRunning、OPCFailed、OPCNoconfig、OPCSuspended、OPCTest和 OPCDisconnected六个值,分别表示正在运行、失败、没有配置、暂停、测试和没有连接六种OPC 服务器当前的状态。如果OPC 服务器没有连接,我们才执行objServer.ConnectstrProgID,strNode 语 句。strProgID就 是ProgID,strNode 就是用于远程通信的IP 地址。IfobjServer.ServerState=OPCDisconnected Then连接 OPC 服务器objServer.ConnectstrProgID,strNodeEnd If在 VisualBasic 中,通过执行一个Set 操作实现调用其它接口的方法。IfobjGroups IsNothingThen建立一个 OPC 组集合Set objGroups=objServer.OPCGroupsEnd IfIfobjTestGrpIs NothingThen添加一个 OPC 组Set objTestGrp=objGroups.Add(Group)End IfEnd Sub(6)添加 OPC 标签对服务器进行访问前,必须先在 OPC 组里添加要访问的OPC 标签。OPC客户端程序要按照用户指定的标签或者从组态文件里读取需要添加的 OPC 标签。Sub AddItem()Dim strItemIDs(17)As StringDim lClientHandles(17)As LongDim lErrors()As LongDim I As IntegerIfobjTestGrpIs NothingThenExitSubEnd IfIfNot objItemsIs NothingThenIfobjItems.Count 0 ThenExitSubEnd IfEnd If设置组活动状态。只有处于活动状态的OPC 才进行定期的数据更新。非活动状态的 OPC 组,除了在接到显然的数据读写要求外,并不收集任何数据。IfmnuSubscribtion.Checked=True ThenobjTestGrp.IsActive=TrueElseobjTestGrp.IsActive=FalseEnd If启动组异步通知。进行订阅的 OPC 组可以自动收到从服务器送来的数据变化通知。objTestGrp.IsSubscribed=True建立 OPC 项集合Set objItems=objTestGrp.OPCItems生成从 TAG1到 TAG17 的项标识符For I=1 To 17strItemIDs(I)=Server.Group.TAG&IlClientHandles(I)=INext添加 OPC 项CallobjItems.AddItems(17,strItemIDs,lClientHandles,lServerHandles,lErrors)End Sub(7)异步读取代码的实现在定时器事件内进行执行AsyncRead子程序的读取代码,而在读取完成事件处理返回的数据访问结果。Sub AsyncRead()Dim lErrors()As LongIfobjTestGrpIsNothingThenExitSubEnd IfIfobjTestGrp.OPCItems.Count 0 Then异步读取lTransID_Rd=lTransID_Rd+1objTestGrp.AsyncRead 17,lServerHandles,lErrors,lTransID_Rd,lCancelID_RdEnd IfEnd SubPrivateSub objTestGrp_AsyncReadComplete(_ByVal TransactionIDAs Long,ByVal NumItemsAs Long,_ClientHandles()As Long,ItemValues()As Variant,_Qualities()As Long,TimeStamps()As Date,Errors()As Long)Sub(8)在按钮中执行AsyncWrite 子程序,完成异步写的操作。Sub AsyncWrite(nIndexAs Integer,ByRef vtItemValues()AsVariant,_ByRef lErrors()As Long)Dim lHandle(1)As LongIfobjTestGrpIs NothingThenExitSubEnd IfIfobjTestGrp.OPCItems.Count 0 ThenlHandle(1)=lServerHandles(nIndex)异步写入lTransID_Wt=lTransID_Wt+1objTestGrp.AsyncWrite1,lHandle(),vtItemValues,_lErrors,lTransID_Wt,lCancelID_WtEnd IfEnd Sub(9)断开 OPC 服务器连接着 OPC 服务器的 OPC 客户应用程序,在退出前必须断开和OPC 服务器的连接。因为 OPC 服务器并不知道 OPC 客户应用程序的退出。如果不先断开连接,那么OPC 服务器使用的计算机资源就不会被释放。如果这样的问题反复发生,久而久之,连续运转的自动控制系统可能会计算机资源渐渐枯竭从而发生严重问题,可以显式地把它设置为“Nothing”。Sub Disconnect()Dim lErrors()As LongIfNot objItemsIs NothingThenIfobjItems.Count 0 ThenobjItems.Remove 17,lServerHandles,lErrors清除 OPC 项End IfSet objItems=NothingEnd IfIfNot objTestGrpIsNothingThenobjGroups.Remove Group清除 OPC 组Set objTestGrp=NothingEnd IfIfNot objGroups IsNothingThenSet objGroups=NothingEnd IfIfNot objServerIsNothingThenIfobjServer.ServerStateOPCDisconnected ThenobjServer.Disconnect断开 OPC 服务器.End IfSet objServer=NothingEnd IfEnd Sub

    注意事项

    本文(VB开发OPC客户端程序的步骤与实现..pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开