OPC通信原理在数采中的应用
OPC通信原理在数采中的应用
OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。OPC以OLE/COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。
在OPC数据存取规范中,一个OPC的数据存取服务器中包括几类对象(OPC Server)、组(OPC Group)和项(OPC Item)。OPC服务器对象维护有关服务器的信息并作为OPC组对象的容器,而OPC组对象维护有关其自身的信息,提供包容OPC项的机制,并管理OPC项。
OPC服务器对象主要实现IUnknown和IOPCServer接口,OPC客户通过OPC服务器的接口与OPC对象进行通信。IOPCServer接口为OPC客户提供了方便有效的OPC组的方法。OPC组提供了客户程序组织数据的手段,每个组中都可以定义一个或多个OPC项。组有两种类型:公共组(Public)和局部组(Local),公共组可以被多个客户共享,而局部组只能被一个客户使用。OPC组中有以下几个主要属性:
Name—组的名字;
Active—组的激活状态标志;
Update Rate OPC—服务器向客户程序提交数据变化的刷新率;
Percent Deadband—数据死区,即能引起数据变化的最小数据百分比。
OPC项代表了与服务器中的数据的连接,它并不是数据源,而仅仅是与数据源的连接。
每个项都与以下主要属性:
Active项的激活状态;
Value项的数据,类型为VARIANT;
Quality项的品质,代表数值的可信度,类型为SHORT;
Time Stamp时间戳,代表数据的存取时间。
OPC规范包含了两套接口:客户化接口(Custom Interface)和自动化接口(Automation Interface)。客户化接口是一个OPC服务器所必须实现的接口,它描述了OPC组件对象的接口和其中的方法,适合C++和PASCAL语言设计,并可实现最佳运行性能的客户应用程序,客户化接口没有项的对象,它对项的操作都是通过包容此项的组对象进行的。自动化接口是可选接口,它提供的是一个自动配置和存取过程控制数据的接口,它方便了Visual Basic、Excel及其它可以使用OLE自动化的服务器应用程序接口的高级商业软件使用。
服务器内安装有数据采集卡(通用多串口卡,网卡),软件安装有OPC Server完成对现场各个设备检测、监控、调节、诊断等功能。
考虑到系统对数据的实时性要求较高,在客户端安装的数据采集软件,开发工具用VC++6.0,与OPC服务器的通讯采用OPC定制接口。该软件包括两个模块:OPC数据采集和数据保存。模块之间采用Win32的多线程技术进行通讯,OPC数据采集作为工作线程在后台运行,数据保存即写系统主线程。工作线程的线程函数循环读取OPC服务器中的数据,数据的变化不断出发主线程的写库事件。此外为了保证数据的安全性,使用了信号灯同步对象,以协调两个线程对共享资源的访问。
装置的DCS系统是日本横河公司的CS3000,并有上位机软件,CS3000支持OPC通讯方式,可通过OPC方式和CS3000软件包的OPC Server进行通讯,取得实时数据。如下图,用一台工控机来采集实时数据,数采机安装两块网卡,其中一块网卡和PLC工程师站(上位机)连接,另一块通过交换机连接在厂内光纤网上。这样,数采机就同时和两个网络通讯,先通过OPC方式从上位机取得实时数据,然后把实时数据发送到实时数据库。
|
综上所述,目前此装置所采用的一些重要技术性指标有:
1.客户与服务器之间,采用了客户化接口和主动访问通信方式;
2.客户与服务器之间通信,也是进程间通道通信,不会占用CPU和内存过多资源;
3.客户与服务器之间数据通信,是以只读方式对服务器缓冲区数据的读取;
4.采集位号为207个;
5.刷新频率为20秒。
OPC通信原理在数采中的应用的更多相关文章
- 基于web的IM软件通信原理分析
关于IM(InstantMessaging)即时通信类软件(如微信,QQ),大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM或桌面IM软件类的通信原理介绍也较多,此处不再赘述.而 ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- 由于用mpu6050模块,所以要用上i2c通信原理。
i2c通信原理 i2c总线只有两根双向信号线,一根是数据线SDA,一根是时钟线SCL. 每个接到i2c总线上的器件都有唯一的地址,主机与其他器件之间的数据传送可以是由主机发送给其他器件.主机为发送器, ...
- [转]HTTP协议通信原理
本文转自<HTTP协议通信原理> 了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客 ...
- React-Native系列Android——Native与Javascript通信原理(一)
React-Native最核心的是Native与Javascript之间的通信,并且是双向通信.Native层到Javascript层,Javascript层到Native层.虽说是两个方向,但实现上 ...
- C#版清晰易懂TCP通信原理解析(附demo)
[转] C#版清晰易懂TCP通信原理解析(附demo) (点击上方蓝字,可快速关注我们) 来源:周见智 cnblogs.com/xiaozhi_5638/p/4244797.html 对.NET中网络 ...
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- Adaboost原理及目标检测中的应用
Adaboost原理及目标检测中的应用 whowhoha@outlook.com Adaboost原理 Adaboost(AdaptiveBoosting)是一种迭代算法,通过对训练集不断训练弱分类器 ...
随机推荐
- spring boot的一个小项目小型进销存系统
项目所需的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- 一起学Vue之事件处理
在Vue进行前端开发中,事件监听是必不可少的功能,本文通过简单的小例子,简述v-on的简单用法,仅供学习分享使用,如有不足之处,还请指正. 监听事件 可以用 v-on 指令监听 DOM 事件,并在触发 ...
- Java连载86-List集合详解
一.List集合 1.List集合存储元素的特点: (1)有序(List集合中存储有下标):存进去是这样的顺序,取出来还是按照这个顺序取出. (2)可重复 2.深入ListJ集合 ArrayLis ...
- vue自定义插件
1.新建js文件 utils.js,自定义方法 let local = { say() { console.log('我是插件里面自定义的方法') } } export default { insta ...
- c基本语法和数据类型
一.C语言结构 C 程序主要包括以下部分: 预处理器指令 函数 变量 语句 & 表达式 注释 二.基本语法 1. 分号是语句结束符. 2. 单行注释//.多行注释/* */. 3. 标识符是 ...
- JavaDay9(上)
Java learning_Day9(上) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- 题解【AcWing272】最长公共上升子序列
题面 一道线性 DP 好题. 设 \(dp_{i,j}\) 表示在所有 \(a_{1\dots i}\),\(b_{1\dots j}\) 的子序列中,以 \(b_j\) 结尾的最长公共上升子序列的最 ...
- Mysql 出现许多问号的问题
建数据库的时候,已经选择了编码格式为UTF-8 但是用PDM生成的脚本导进去的时候却奇怪的发现表和表的字段的编码格式却是GBK,一个一个却又觉得麻烦,在网上找了一下办法 一个是修改表的编码格式的 AL ...
- 小白的java学习之路 “ 类和对象”
一.※ 万物皆对象 二.对象的两个特征: 属性:对象具有的各种特征 方法:对象执行的操作 对象:用来描述客观事物的一个实体,由一组属性和方法构成 三.封装: 对象同时具有属性和方法两项特性 对象的属性 ...
- 统一身份认证服务IdentityServer4实践
导读 当企业的应用系统逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进.当企业的业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的, ...