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秒。

转载于:https://www.cnblogs.com/menyiin/p/3948997.html

OPC通信原理在数采中的应用相关推荐

  1. 学习通信原理之——从实验中理解频谱/功率谱/功率谱密度(MATLAB演示)

    我的个人博客文章链接如下:学习通信原理之--从实验中理解频谱/功率谱/功率谱密度(MATLAB演示) 前言 最近在复习通信原理,每次到了功率谱这一块就感到困惑,每次都要去查,我觉得不能再这样循环下去了 ...

  2. 通信原理 | 信道模型 | matlab中瑞利衰落信道模型中的函数:raylrnd、raylpdf、raylcdf、raylinv、raylstat、raylfit

    matlab中瑞利衰落信道模型中的函数 1 matlab中的raylrnd(瑞利随机数) 2 matlab中的raylpdf(瑞利概率密度函数) 3 matlab中的raylcdf(瑞利累积分布函数) ...

  3. 多方通话中的VOIP通信原理

    多方通话中的VOIP通信原理 多方通话中Internet是由众多不同的计算机网络互连而成的,遍布世界各地,使用标准的TCP/IP相互通信和交换数据.TCP/IP将要传输的计算机数据分组排队发送,每个分 ...

  4. 通信原理 —— 绪论

    目录 1.通信原理 2.通信的一般原理 2.1 以电信号为物理载体的通信系统 2.2 信源 2.3 信道 2.4 信号基础 1.通信原理 通信原理:通信的基本原理:通信指信息的传输: 2.通信的一般原 ...

  5. 环保监测设备 环保数采仪

    环保监测设备环保数采仪具备环保参数采集.传输.存储.监测,环保设备工况.状态.电力监控,环保设备远程控制.异常告警等功能.计讯物联环保数采仪对接第三方云管理平台.环保局等监管部门监控中心,实现企业污染 ...

  6. 环保在线监测 数采仪监测终端+云平台

    环保在线监测系统,监测设备+环保数采仪+云平台,目标因子采集.无线同步远传.数据分析处理.远程平台监测控制.广泛应用于工业制造.化工生产.制药厂.钢铁厂.造纸厂.建材厂.污水治理.大气治理等智能化环保 ...

  7. 中公通信计算机招聘,2021新疆国企考试:电网招聘_复习锦囊计算机类-通信原理...

    模块二 通信原理 1.信息量表达式: 2.信息容量公式: 3.常见噪声:白噪声.高斯噪声.高斯白噪声 4.幅度调整原理:AM.DSB.SSB.VSB 5.角度调制:FM.PM 6.数字基带信号码型及频 ...

  8. 传统的Linux中IPC通信原理

    在了解 Binder 跨进程通信原理之前, 我们先了解一下 Linux 传统的进程间通信的概念和基本原理, 这样有助于我们更好的理解 Binder 的通信原理. 这个部分基本都是理论, 基础不是很好的 ...

  9. Android中Intent/Bundle的通信原理及大小限制(Parcelable原理及与Serializable的区别)

    ​我们知道可以通过Intent和bundle在activity或fragment间进行通信,那么这个通信是如何实现的. 通过intent的bundle的源码可以看到它们都是实现了Parcelable, ...

最新文章

  1. 2022-2028年全球与中国生物质燃料粒行业市场智研瞻分析报告
  2. elasticsearch组件的安装启动,测试等(windows)
  3. CTF的一道安卓逆向
  4. 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
  5. 组合模式——透明组合模式,安全组合模式
  6. CentOS密码忘记后的操作
  7. 篇三:访问JSON静态文件
  8. php将数字转化为中文大写人民币格式
  9. Apache2.4 与 PHP 5.5 64位版的安装配置
  10. kettle mysql 导入数据库_ETL工具—Kettle数据的导入导出—数据库到数据库
  11. python把wav本地转文字_在python中将大型wav文件转换为文本
  12. 康佳电视应用助手服务器连接超时,康佳盒子出现网络连接问题的原因,解决方式...
  13. LCD 触摸屏调试记录
  14. ROS创建Publisher理解
  15. 公众号模板消息发送限制
  16. SQL应用·:用SQL分析供应商营业额
  17. 两例司法实践撕开了一个口子,区块链应用落地会加速吗?
  18. 中断号 和 中断向量区别
  19. kaggle比赛——Jigsaw Rate Severity of Toxic Comments(NLP类型)——分析获奖模型笔记
  20. python导入自定义模块报attributeerror_Python脚本报错AttributeError: ‘module’ src has no attribute’xxx’解决方法...

热门文章

  1. flutter进行自动编译操作步骤
  2. subprocess installed post-installation script returned error exit status 127
  3. flink启动出现java.lang.NoClassDefFoundError: org/apache/hadoop/fs/Path
  4. 入门无人驾驶学习路线
  5. 数据结构与算法:已知二叉树两种遍历序列,求第三种遍历序列
  6. Mapper.xml映射文件---Mybatis学习笔记(八)
  7. Rust中文论坛已更新上线
  8. 特殊权限-软连接-硬链接
  9. java中的字符串相关知识整理
  10. Eclipse安装Gradle插件及配置