

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、弱,系统外部接线比较 凌乱”会给维护带来一定的负 面影响。3当 2#,3#炉的过程控制站 HPM 丄 M 或 IPC620 通过同一网关(NIM 与 LC N 通信时,它们的独立性相对较弱,对每台炉的停车检修有一定的影响。4若取消 DH 过程网,可以通过更换原有 HG 的属性板 DHI (模件号51400700-100 为 EPNI (模件号51401583-100 来构成 NIM ,这样保护了用户资源。5不同改造方案因增加硬件类型和数量的不同导致系统成本不同程度的增长(设备价格大小依次为HPM LM NIM H M 。LM M 卡的更换投资相对较小。6保留 IPC620,则可以节约大量的 D
2、I/DO 模件,减少大量的现场接线工作量 保留MC 与 H LPIU 也可减少一定的现场接线工作量。7使用 LM 替代 IPC620,界面友好,;,引用大量的逻辑块,量较大。8HPM 功能强大,比 MC ,H LPIU 及 IPC620 可靠性 强,是当今最先进的过程 控制站。值得注意的是,由于其逻辑关系的直观性较差,调试和维护相对较困难,对自控人员素质要求较 高。根据上述分析可以遴选出综合效果最佳的方案为第 2 种(见图 2 ,其次为第 4种方案(见图 3。限于篇幅,笔者略去其它设计方案。3 结论前三种方案对原系统 2#,3#炉属于 T DC3000 水平的所有 DH 设备进行了彻 底改造,
3、升级为具有最先进应用水平的 DCS ;后两种方案则是对现有系统进 一步的过度性改造,投资相对较少,改造时间较短,是 H TPS 计算机系统改造,必将DCS 存在的一系列问题,为氧化铝生产长期安全稳定运行奠定坚实的基础。收稿日期:2001-01-26。作者王晏斌,男,1968 年生,1990 年毕业于昆明工学院,工程师;主要从事DCS 和自动化仪表的应用工作,发表论文 10 余篇。工控软件互操作规范 OPC 技术”讲座第 9 讲输入输出板卡 O PC 服务器程序的设计凌志浩 李京 马 欣 曲金鹏OPC 技术建立了一套符合工业控制要求的通信接口规范,实现了硬件和应用软件的有效分离。硬件厂 商只要提
4、供一套软件组件,所有的 OPC 客户程序就 可以按照统一的方法使用这些组件,无需重复开发单独 的驱动程序。对于硬件厂 商而言,则需根据不同的硬 件开发不同的 OPC 服务器程序,本文针对研华 PC L 系 列输入输出板卡设计了 OPC 数据存取服务器,使支持OPC 技术的客户程序能够通过该 OPC 服务器程序来访问硬件设备,实现数据采集和输出的功能。1 总体结构OPC 数据服务器程序可按图 1 的结构进行设计,各个部分功能相对独立又相互协作,形成一个统一的整体。该程序可与多个 研华PC L 系列的 A/D、D/A 板卡相连,并以统一的方式将现场数据提供给客户 程序。图 1 OPC 服务器程序总
5、体结构2 主程序及界面设计C 0M 组件程序分为进程内组件程序和进程外组86自动化仪表第 24 卷第 1 期2003 年 1 月 PR OCESS AUTOMATIONINSTRU MENTATION, V ol. 24, N o. 1,Ja n. , 2003件程序,前者采用动态链接库的方式实现;后者采用可执行程序的方式实 现。本文设计 OPC 服务器属于进 程外组件程序,它拥有独立的进程地址空间,在 与客户程序进行数据交互时稳定性较高。OPC 服务器应用程序在实现时,利用 VC 软件平 台中的 MFC App W izard 仓 U 建一个基于文档的应用程序 工程,得到一个主体框架。App
6、 W izard 自动生成了应 用程序类、框架类、文档类、视图类以及相关的资源文 件。然后将 OPC 对象和 数据区部分设计的头文件和 实现文件添加到工程当中。接着在应用程序类的初始化函数当中完成 COM 库初始化、类厂注册等功能。为了方便用户对数据区中的 数据项进行添加、删除和修改属性等操作,设计类似 Windows 中资源管理 器的 用户界面,用树状视图显示和管理数据项,表视图显示数据项的属性,如图 2图 2 OPC 服务器程序界面本文采用了设备和通道两个层次来管理数据项,同时设计了相应的对话框来设 置数据项的属性。用户可以通过设置设备名和通道号等属性将数据项与某个实际硬件 I/O 通道对
7、应起来。为操作方便,在 OPC 服务器程序关闭时需要将数据项的 属性以及硬件设置参数作为组态文件保存起来;而在程序运行时能自动调入组态 文件,完成初始设置。在某些应用当中可能只需要 OPC 服务器程序在 后台完成数据的输入输出任务 无需要用户界面。此 时可编写无界面的应用程序,同时在编程时就将存储 区的数 据项及其属性定义好,减少用户组态的负担。更为灵活的方式是将一些设置信息写 到注册表当中,服务器程序通过访问注册表完成初始化设置。 这样操作人员在日 常操作中无须组态,而当整个系统升级变 化时由操作工程师修改配置信息。3 OPC 对象与接口OPC 对象部分需要与数据存储区和硬件驱动部分相联系,
8、以便获取数据区中的数据或直接访问硬件设备。OPC 对象包括服务器对象、组对象、项对象,其中前两个对象是真正的 C OM 对象,能够将各自的 接口暴露给客户程序。OPC 服务器对象和组对象之间实现了 聚合关系,即 OPC 服务器对象创建OPC 组后,将组对象的指针传递给客户,由客户直接操纵组对 象。而组对象只是简单地包容 OPC 项对象,客户程序通过组对象获取 OPC 项的 各项属性。OPC 基金会定义了接口规范,但并未规定 OPC 对象如何实现,因此可从 lUnknown类派生出 C M yServer , C M yG roup 和 C M yltem 三个类来代表服务器 对象、组对1 个
9、C OM C 1(C LSID。UUIDGE N 或 G UIDGE N 程序自,这样能够保证生 成的标识是全球唯一的。在 COM 规范中,客户程序是通过类厂创建 COM 对象并 返回其接口指针的,因此也需要为 C M yServer 类设计相应 的类厂。具体实现时,先从 IClassFactory 基类派生出 M yOPCC lassFactory 类,然后重载 CreateInstanee (成员函 数,通过该函数创建 C M yServer 服务器对象。此时,C M yServer 服务器对象仅有 IUnknown 个接口,还需要增加 OPC 规 范定义的标准接口并实现其功 能。根据 O
10、PC 规范,OPC 对象的接口分为定制接口 (custom interface 和自动化接口 (automatio n in terface。OPC 服务器必须实现定制接 口,也可有选择地实现自 动化接口 。这些接口在 OPC 基金会免费提供的头文 件 中已经定义好,因此可从这些接口派生出新的接口 类,并实现每个接口的成员函 数。接着在 C M yServer类中添加指向这些接口类的指针成员变量,然后修改 CM yServer 类的接口查询函数,即根据接口标识查询某 一接口时实例化该接口类,并返回接口指针变量。客 户程序在创建 OPC 服务器对象时仅实例化 IUnknown 接 口和其它经常使
11、用的接口,不常用的接口在需要时 才创建,这样改进了服务器程序 的性能。而客户程序 获得接口指针后可进一步调用接口成员函数来完成实际功能。实现 C M yG roup 组对象及其接口功能时也可采用 类似方法。先从 OPC 基 金会定义的组对象接口派生 出新的接口类并实现其成员函数的功能;再在 C My2 G roup 类中增加指针成员变量指向这些接口类;最后在组对象的接口查询函数中增加实例化接口类的代 码。OPC 项表示了与数据源的连接,数据源可以是程 96 工控软件互操作规范 OPC 技术”讲座凌志浩,等序数据区中的数据项,也可以是某个硬件设备中的数 据。OPC 项没有自己的 接口,无需实现任
12、何接口功能,因此只需在 C M yltem 类增加相应的功能函数,例 如根据 OPC项的名称与数据源进行连接、 读写数据源等等。OPC 客户程序将通 过 OPC 组对象的接口函数来间 接调用 OPC 项的这些成员函数。4 数据存储区设计数据存储区是 OPC 服务器程序中的重要部分,其中包含了由服务器程序方定 义的数据项。OPC 客户程 序通过 OPC 组对象和 OPC 项来访问存储区数据,硬件 驱动部分也不断地将最新现场数据写入到数据区。如果服务器程序实现了 IOPCBrowseServerAddressS pac 可 选接口,区中的数据项名称 规范 2. 02ties 接口,性,如工程量范围
13、 数据存储区中的数据项可通过设计专门的数据项 类来实现,该类包括了数值、品质、时间戳三个基本属性,另外还有数据项名 称、工程量单位等属性。由于数据项总是和具体的硬件相关,因此需要添加与设 备有关的属性。针对研华 PC L 系列板卡,添加了设备名、设备特性、通道 号、通道量程等属性。数据项类中还设计了相关函数来设置和获取这些属性 。为了组织和管理数据项,可利用 MFC 当中的标准 模板库(ST L ,例如利用 C M ap字典集合模板类管理数 据项对象的指针,这样就可以方便快速地添加、查找 和删除数据项。由于直接操纵数据项指针容易发生访问 冲突,因此可设计数据存 储区类将字典集合类进一步 封装,
14、并提供访问数据项指针的函数。同时还设置临 界区来保证多个线程对数据项进行操作时不互相冲突。本文设计的 OPC 服务器只有一个数据存储区,因此可定义一个存储区类的全局变量。这样服务器程序 的其他部分都能通过调用该全局变量的公共成员函数 来访问其中的数据项了。更好的方法是采用单件(sin 2gleton 设计模式,保证存储区类仅有一个实例,并提供相应的全局访问点。5 硬件驱动硬件研华公司提供了一套读写 PC L 系列板卡的 API 函数,并封装在相应的 D LL 文件当中。本文设计的 OPC 服务器通过调用这些函数达到访问硬件的目的,并设 计相应的类将这些函数进一步封装。 为了提高数据存 取效率,
15、对每一个不同的板 卡都创建了单独的线程进 行读写操作。图 3 示意了硬件扫描的过程。图 3PC L 系列板卡设备,接着对各个。然后按照设置的周期轮流扫描各个通 道,对于输出通道先读取 数据区中的数据项的数值,然后输出;对于输入通道则 先 读取输入值然后存储到数据区的相应数据项中。当需要终止线程时,先关闭设备 再结束。由于数据区的数据项采用 VARIANT 类型表示实 际数据值,而研华板卡的模拟 输入输出数值类型为浮 点型,因此在对设备进行读写操作时需要进行数据转 换。VARIANT类型是在 C OM 技术中广泛应用的一种数据类型,它包括类型标识和一 个大的联合域,类型标识指示了数据的确切类型,而联合域包含了真正的数 据或数 据指针。在进行写通道操作时,先将数据项的 数值变量转换为浮点类型的 VARIANT 变量,然后读取其中浮点数值。进行读通道操作时,先将输入浮点值 放 到一个浮点类型的 VARIANT 变量中,转换为数据项 原来的类型后赋值给数据项的 数值变量。对于数字输入输出通道也可采用类似的方法实现,只不过使用了布尔 数据类型。将通道输入值写到数据存储区时还需要刷新数据 的时间戳和品质属性。时间 戳表示了数据的最新获取时间;品质则表示采集的数据是否真实有效,例如当读 输入通道产生数据溢出等错误时需要将品质置为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公务员省考之公务员申论高分通关题型题库附解析答案
- 护理部培训体系建设计划
- 出国留学咨询合同样本
- 出口螺杆验货合同标准文本
- 伪造合同样本量刑标准
- 上海牌照租赁合同标准文本
- 上下铺床采购合同标准文本
- 2025年五星级酒店餐厅外包合同
- 中粗砂采购合同样本
- 2025标准车辆租赁合同如何制定
- 高龄孕妇子痫前期危险因素分析及预测模型构建与验证
- 2025年春新苏教版数学一年级下册课件 数学连环画 2.画出你的数学故事
- 冷库工程施工组织设计方案
- 2025年金华市轨道交通集团招聘笔试参考题库含答案解析
- 2024版心肺复苏培训课件
- 化验室安全隐患及防范措施
- 中通服网盈科技有限公司连云港分公司(中国电信)招聘笔试冲刺题2024
- 国内外知识产权保护对比研究
- 部编版语文一年级下册第一单元教材解读
- 【MOOC】走向深度的合作学习-爱课程 中国大学慕课MOOC答案
- 丰子恺课件教学课件
评论
0/150
提交评论