- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OPC技术研究和应用
OPC技术研究和应用
摘 要:基于全液压矫直机以Simatic.net为服务器的OPC客户端编程,目的是实现上位数学模型程序与下位西门子S7-400的数据通讯,OPC技术的采用,使得现场设备与系统的连接更加简单、灵活、方便,数据的传输更加的快捷、精确。通过现场的实验表明,该客户端程序的编写成功地实现了复杂数据的传输。
关键词:OPC; IOPCServer接口; Co Creat Instance();Simatic.net
1 概述
OPC (OLE for Process Control--用于过程控制的OLE)是一个工业标准,它是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。这个标准定义了应用Microsoft操作系统在基于PC 的客户机之间交换自动化实时数据的方法。
太原科技大学全液压实验矫直机,将尝试采用液压AGC系统工作。矫直机中,试验中需要上位数学模型程序与伺服阀、位移传感器、压力传感器交换数据。其中,要实现opc通讯的两端:VC++编写的上位数学模型程序、下位西门子S7-400。
Simatic.net服务器起到了中介的作用,我们需要编写的就是OPC客户端程序。
在本液压矫直机软件系统中,上位数学模型客户端程序与Simatic.net服务器在同一台计算机开发使用。
建立OPC连接后,客户应用程序一般可以通过三种方式从OPC 服务器读取数据:使用同步接口IOPC- SyncIO,简单有效,适合于只读取少量数据的客户程序;使用接口IOPCCallback的订阅的功能OnChange,每当数据有变化时,服务器自动通知客户;使用异步接口IOPCASyncIO2,可以直接与物理设备通讯,速度慢但数据精确度高。
2 实现步骤
2.1 连接服务器
为了在组件目录管理器中进行注册,服务器应首先调用ICat Register::Regi ster Categories函数对CATID和组件进行描述并注册,然后利用ICat Register::Register Class Impl Categories()函数注册其自身的CLSID作为CATID的实现。为了得到指向ICat Register的指针,调用Co Creat Instance()。
如果连接成功,函数返回值等于S_OK,同时得到一个指向服务器对象的IUnknown接口指针ppUnknown。
2.2 创建opc组
IOPCServer接口的AddGroup()可以创建一个有指定名称和属性的OPC组。在调用该方法之前,可以使用上一补得到的IUnknown接口指针ppUnknown的QueryInterface()方法请求IOPCServer接口指针。
2.3 添加数据项
pOPCItemMgt接口的AddItem()方法可以添加具有特殊属性的指定数量的数据项。在调用该方法之前,要用数据项个数类型名称标识及作为OPC服务器的Simatic.net项目名称等信息对ItemArray结构数组进行初始化。
hRet=ppUnknown- QueryInterface(IID_IOPCItemMgt, (void**)pOPCItemMgt);
pOPCItemMgt-AddItem(ItemNumber,ItemArray,(OPCITEMRESULT**)pItemResult,(HRESULT**)pErrors);
2.4 读写数据
添加完数据项后,就可以用IOPCSyncI()接口的Read()和Write()方法进行读写操作,为了匹配两种方法的参数,需要将添加结果传递给OPCHANDLE类型的变量。
2.5 删除对象,释放内存
上位数学模型应用程序停止运行之前,必须删除已创建的OPC对象并释放内存。应用类向导在COPCCClientDlg类中添加WM_CLOSE事件函数,在该函数中添加删除对象和释放内存代码。
3 程序调试与总结
按以上步骤完成VisualC++客户端应用程序开发,且经过编译、连接无错误后程序仍不能正常运行的异常现象,则可用debug命令跟踪调试。调试时须注意以下几点:
3.1调试客户端应用程序时,必须运行作为OPC服务器的Simatic.net项目,并且根据西门子所提供的资料连接好S7-400。
3.2客户应用程序中,OPC服务器的项目名称和数据项的名称、类型、标识等信息必须与服务器一致,尤其当作为OPC服务器的Simatic.net项目中的数据项名称和标识等信息变化时,一定要对客户端程序作出相应的修改。
3.3程序中使用的OPC接口方法函数成功时返回值均为S_OK,所以调试过程中
您可能关注的文档
最近下载
- SL 274-2020 碾压式土石坝设计规范.docx VIP
- 华中HSV–180UD 系列交流伺服驱动单元使用调试资料.pdf
- 通止规标准计算表.xls VIP
- 《大气环境化学》全套教学课件.ppt
- DB41T 2472-2023 水利工程预制混凝土联锁式砌块护坡施工规范.docx VIP
- 四川省拟任县处级党政领导职务试题第二套模拟题及标准答案.doc VIP
- NBT 10076-2018水电工程项目档案验收工作导则..pdf VIP
- 核心素养导向的作业设计.docx VIP
- ca6140车床电气控制线路详解.pptx VIP
- 中国银行南京市2025秋招半结构化面试题库及参考答案.docx VIP
原创力文档


文档评论(0)