还是上次的vb方问题,今天和合作方的姑娘进行了沟通,说了半天,他们提供的尽然是一个OPC服务器,搞得浪费了半天时间看VB。
既然是读取一个公开的协议,那么肯定不是vb这一种程序,于是又到程序员基友社区(github)上逛。幸运的是发现了OpenOPC这个开源软件。在Windows下读取opc服务器的程序,必须要有DCOM这个东西,但是在Linux下却无能为力,不过openopc却通过网管协议进行处理,绕开了这个限制。而且支持Python编程,这点可以很好的在我的平台上使用。【Python大法好】
有兴趣的可以尝试下openopc的编程,目前我只是看了下GitHub上的介绍,还有一些博客文章,理解还是有限。仅将opc仿真器搭建了起来,让他可以实时的产生些数据,模拟对方的数据库,实时的产生数据。然后假装我可以读他的数据,就这样!
基本的意思是:
下面就介绍一下实现的过程:
1.安装opc服务模拟器:
这里安装的是Matrikon opc simulation这款软件。
安装步骤如下:下载这款软件并安装,下载地址
首先双击文件,
。。。
文库好像有安装步骤,就不在这里造轮子了。LINK
2.安装openopc并安装:
下载地址
这是个exe文件,安装的时候遇到一点小问题。
软件默认是将文件导入到C:/Python27/lib/site-package,但是我这里用的是anaconda自动安装的。这个问题是从网站上下的zip包中发现的,安装文件的bat文件的第一句话就暴露了问题。
这时候,我们只需要将安装好的文件自己复制到anaconda的包管理中就行。
接下来就需要对仿真器进行配置,让它不断的输出一些值:
openopc配置方法
通过文中的方法,构建的3个点。如图所示:
在ipython的编辑器中输入如下的代码:
import OpenOPC
opc = OpenOPC.open_client()
openserv = "Matrikon.OPC.Simulation"
opchost = 7766
opc.connect(openserv , opchost)
opc.read('Random.Int4')#上图中的一个点
输出结果:
(2519.0 , 'Good','08/26/17 09:17:07')
上述仅为简单的测试代码,证明可以用在项目中,最近需要深入研究文档,以便深入了解OpenOPC