加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

组态软件与Opc实现的数据交互(组态软件数据采集之二)

(2012-01-07 17:06:01)
标签:

杂谈

之前介绍过一种适用于组态软件的数据采集的方法,但只是一种投机取巧的方式,算不得一种真正数据采集的方式,在很多方面都有限制,有局限性和很多的缺点。那现在我就介绍一种真真正正的数据采集,那就是opc

就我本人来讲,老早就用过opc通讯了。在之前的很多项目中,使用iFix与西门子300plc的通讯就是用KepServer实现的。当时就已感到opc的灵活和强大,但时隔几年之后,竟然忘记了这码事,还拐弯抹角寻找其他的通讯方式,说来真惭愧。

当然,现在要讲的不是这些opc服务器。而是我们要开发自己的opc服务器和客户端。

1、  opc服务器

对于组态软件的使用,我们更关心的是它所支持的驱动程序,当软件厂家不支持我们的设备时,我们就要为开发驱动程序花掉许多的银子。因为,我们没有组态软件厂家提供的驱动开发包。即便有,还要费尽心力的去研究复杂的接口函数。这多少有些不现实。

那么,当使用opc服务器的方式就可以完全解决这个问题,我们可以不关心软件是什么,WINCC也好,iFix也好,组态王,力控也好。在软件中只需实现opc服务器创建和数据的采集和解析,一切就ok了。

这里我简简单单介绍一下,组态王使用opc进行数据采集的方式。

http://s6/middle/881b98cbhb5ec865c1925&690
Opc数据采集(服务器)

http://s16/middle/881b98cbh7897a750c1ff&690
组态王变量定义(客户端)

http://s10/middle/881b98cbhb5ec8ab15fb9&690
服务器与客户端的数据交换

在这个例子中,我们开发的数据采集软件用来做opc服务器,组态软件作为客户端,很方便的实现变量的定义,和数据显示。

2、  opc客户端

组态软件不仅可以作为客户端存在,还可以作为服务器。就是可以将上面的例子中的角色颠倒一下,我们开发的软件可以从组态软件中得到数据。这样就可以实现功能的扩展,可以使用组态软件来采集数据并进行监控,软件来实现数据的转发。例如,水库、水厂、电站等单位需要将现场的数据使用电力规约,上传到市局或省局来进行数据分析和保存。组态软件通常不具备这样的数据转发的功能,即便具备也通常是用Modbus规约的方式来实现,并不能满足电力规约。而使用opc来解决这样的问题,可以说非常的简单。

现介绍如下。

http://s7/middle/881b98cbhb5ec8c38dc56&690

 

                                  组态王运行系统数据(服务器)

http://s6/middle/881b98cbhb5ec902d3ec5&690

采集软件变量定义(客户端)

http://s14/middle/881b98cbhb5ec91f6f15d&690

运行系统数据交换

这样采集软件获得了组态软件的数据,如果要进行数据的转发,就可以安装电力规约的格式进行发送,如图。

                                              http://s2/middle/881b98cbhb5ec94e6fe51&690

                                        电力规约数据转发

这种转发可以通过串口实现,也可以通过网络实现,可以根据需求选择通讯的方式。

关于opc的理解就说到这里,对于以上的介绍可能有人会说,作为工控人员,我们更多的是在应用,对于开发只是了解一点或根本不通,那这些复杂的opc开发简直是不可能完成的任务。而真正懂得开发的人员,对opc的了解也许只是小菜一碟,那还用你来说教吗。

    的确是这样的,我也写这篇文章的目的也不是让大家学会如何开发,只是想跟大家说明,数据的采集方式不止一种,有很多合理、有效的方式,在方便的时候我们都可以去尝试。对组态软件的理解不要局限在那一点,我们也可以灵活的使用,使其发挥最大的功效。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有