之前没详细说明怎么提取数据的。这篇详细分享给大家。
1 运行环境和安装版本
windows7 32位系统,组态王版本好像是6.x的。此软件已经运行了好多年了,期间经过多个公司开发升级,分批接入的设备很多很乱。一些设备通过本地总线接入,一些远端的设备通过虚拟串口接入。我们根本不敢动里面的任何东西。
由于windows系统出于安全考虑对DCOM限制很多,连接OPC DA我们准备直接在他们现在的机器上本地安装,这样减少了很多麻烦。
由于OPC DA的特殊性,我们必须下载x86版本。下载地址:Releases · bambooww/iot-tree · GitHub
从里面选择iot-tree-x.xx.x-winjre8x86.zip对应的版本。
解压安装到特点目录即可,这个目录建议简单点用英文,最好不要带空格。我这边安装目录很简单,就c:\iottree
接下来有个坑需要注意一下,iottree软件可以注册成服务方式运行(具体注册用命令行或运行c:\iottree\iottree_win_panel.exe然后照着按钮注册启动就行),但组态王好像是运行在当前登录的用户模式下。注册成服务之后,还需要进入windows的服务管理,找到IOT Tree Server,双击打开,在"登录"里面配置允许服务与桌面交互,或者可能设置使用超级管理员的账号和密码才行。具体不同机器会出现什么情况我也没法确定,反正就是多尝试设置,然后启动服务之后,看看能够正常连接组态王的opc。
如果注册成服务没法连成功,那就不能注册成服务了。只能用命令行和组态王程序使用同一个用户下面启动。这里也有个需要注意的地方,指定超级管理员启动c:\iottree\iot-tree.bat,建议在当前用户启动目录下面放一个快捷指向这个bat文件,这样windows重启动之后可以自动运行(有可能需要设置命令控制台都以超级管理员启动)。
2 测试OPC DA连接
启动成功之后,访问http://localhost:9090/admin/访问管理界面,新建项目。然后在项目中新建OPC DA Client连接。这个来张图吧:

在左边Connectors下拉菜单选择OPC DA Client,弹出窗口填写内容如上图,其中,Program Id选择KingView.View.1。这个其实就是对应与组态王的Opc程序id。如果没有这个选项,说明没有找到组态王的Opc接口。
成功建立之后,我们鼠标右键新增加的“本地组态王”接入。选择Bind菜单项,打开一个弹出窗口。如果上面的参数正确,并且连接正常,弹出窗口就会列出组态王当前运行的项目能够提供的所有数据项,这个也给个图吧。如果没有出现数据项,那只能回到前面环境配置和权限设置调整了。

只有弹出窗口出现上面红框的数据列表,说明访问OPC DA成功了。
3 提取绑定到json格式
这块我就不罗嗦了,可以直接参考iottree里面自带的文档。也就建立通道、数据分层,然后在每个节点中定义自己的数据项。把上面的连接和通道建立关联之后,就可以在上面弹出窗口中,把左边的组态王数据项和你建立的右边数据项进行绑定。
启动之后,就可以读取数据了,比如最简单的,你自己访问某个节点的json数据即可,具体看你安装程序里面的这个文档即可:http://localhost:9090/doc/cn/doc/case/case_opc_da.md。
就这样结束有点快了,再分享一个好用的地方。你定义的数据项和组态王绑定之后,组态王这边的数据项可能和你的数据项需要做一些转换,比如opc这边的数据单位和你的不一样,你需要对opc这边的整数数据做一些浮点转换(如/1000之类的)或者opc这边的数据是4-20mA原始整数信号值,你需要做个简单的线性转换。iottree数据项可以直接支持转换。下面就是我用在项目中的例子:


本文详细介绍了在Windows7 32位系统上,使用特定版本的组态王和OPCDA进行数据提取的过程。首先,介绍了系统的运行环境和软件安装步骤,包括如何处理DCOM限制和注册服务。接着,阐述了OPCDA连接组态王的测试过程,强调了配置细节和验证连接成功的标志。最后,提到了如何将数据绑定到JSON格式,并展示了数据转换的例子。整个过程中,作者分享了遇到的问题及解决方案,为类似项目的实施提供了参考。
945

被折叠的 条评论
为什么被折叠?



