OPCDAAuto的一个坑

最近项目需要对SCADA系统的下位机采集实时数据,常见做法是两种,一种采用ModBus RTU/TCP协议直接通过支持ModBus的下位机通信,一种是通过OPC规范,使用厂商提供的OPC Server进行中转读取下位机数据。

这里的坑就是在开发连接OPC Server的客户端工具时遇到的。

使用.Net开发,最关键的是使用OPCDAAuto.dll,而且几乎只需要它即可实现最基本的数据访问功能。但是这里遇到个坑,配置OPC Server的同事告诉我PC Access SMART 配置到跨PC(俩PC应该通过TCP协议能够互访, 即同局域网或vpn等形式)可访问,说是防火墙等等需要配置,win7似乎比XP麻烦所以需要我直接在OPC Server运行的机器上开发调试。这里开发没问题,dll顺利的引用了。之后准备测试跨pc访问的时候,把代码工程搬到我的机器上了,结果发现这个OPCDAAuto的引用死活添加不上,提示检查是否有访问权限或者是否为.Net类库或已注册的COM。

说实话第一次遇到这种问题,非常懵逼。同事看了也说没遇到过,只好自己研究。显然regsvr注册也不成功。一度我怀疑是不是因为vs版本或者win10不支持这个dll。。

最后是运气好,决定看看搜索条目最多的关于这个dll注册的事情,才发现原来这个COM是个32位的,64位系统直接注册无效。

【解决方案】

首先将这个dll拷贝到C:\windows\SysWow64 下,再使用regsvr32 进行注册。

这样之后vs里就可以正常引用了,当然需要在添加引用时选择COM组件里找到这个类库。

【经验总结】

排错时应该加上对系统位数的考虑,因为忽略32位和64位的区别造成一度开发停滞也是醉了。。

【最后是吐槽】

西门子的工业技术支持网站做的真挫啊。。。。。

还有那亲爱的OPC 基金会的官网,好多bug连资源页面都进不去。。。

不知道工业自控这个领域是太封闭了导致网上几乎没什么资料还是什么原因,感觉获取靠谱信息太难了。

时间: 2024-12-20 22:02:14

OPCDAAuto的一个坑的相关文章

踩到Framework7 Photo Browser 的一个坑

最近在做的项目用了Framework7前端框架,功能确实比较强大!但这两天遇到一个坑,希望我的这点收获能给遇到这个问题的朋友一点帮助. 在使用Photo Browser 的时候,图片下方想放一个“点赞”的按钮,耐何就死活无法响应鼠标的点击事件(click tap都不行).怀疑被父级元素拦截了,反复各种折腾就是没效果! 最后都要放弃的时候,都准备移除“点赞”功能了,无意中发现.photo-browser-captions这个层有个样式是 pointer-events: none; 翻了一下CSS手

PHP中逻辑运算符and/or与||/&&的一个坑

我原来以为PHP中的and和&&是一样的, 只是写法上为了可读性和美观, 事实上我错了. 这里面深藏了一个坑! 看以下代码: $bA = true; $bB = false; $b1 = $bA and $bB; $b2 = $bA && $bB; var_dump($b1); // $b1 = true var_dump($b2); // $b2 = false $bA = false; $bB = true; $b3 = $bA or $bB; $b4 = $bA ||

Android 和Java API的一个坑:SimpleDateFormat

今天上班遇到这么一个意料之外的异常: 出问题的代码是这样的(已去除上下文信息): Log.i(LOG_TAG, new SimpleDateFormat("YYYY-MM-dd HH:mm:ss", Locale.CHINA) .format(System.currentTimeMillis())); 反复检查,感觉没有问题,于是新建一个Java Project,直接输出同样的代码: public class Main{ public static void main(String[]

关于UWP数据绑定的一个坑 x:bind修改为binding

<Page    x:Class="AlbumCoverMatchGame.MainPage"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:local="using:AlbumCoverMatchGame&

【Java记录】try-with-resources的一个坑

[Java记录]try-with-resources的一个坑 今天处理 AsynchronousFileChannel 时候的一个问题,代码如下: public static void main(String[] args) throws Exception { String filePath = "/home/xe/git/osc/JavaNote/Lang/data/Test.java"; ExecutorService executorService = Executors.ne

openlayer关于feature中的一个坑

在Openlayer中使用Feature时候,有时候我们需要使用图片来做Maker,今天就讲我在这碰到的一个坑. 这一个除了黄色部分其他部分透明的png图片. 将其加入地图中后. 我们要注册一个Feature的Select事件. 结果,点击中间透明部分时,竟然没有信息提示,只有点击黄色部分时候才有提示!这不科学!!! 后来,为了证明是不是图片中间透明的原因.我请美工妹妹帮我弄了另一张图. 就是它了.替换图片后,结果是点击圆里都行!这不科学啊! 好了,这是一个坑,写下来纪念. 有关于openlay

记学习PHP掉进去的第一个坑

从前几天开始刚开是学习PHP,就经历了一个坑,让人确实挺郁闷的,主要是因为开发环境的问题. 直接切入正题. =================================================================================================== 实验环境:PHPStorm2016 + Xampp 在学习使用表单的post方法接受数据一节时,怎么也接受不到数据,不知道怎么回事.代码如下 <form name="form1"

MySQL JDBC的queryTimeout的一个坑

遇到一个MySQL JDBC的queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释: 现象: 用同一个Connection执行大批量SQL的时候,导致了OOM现象. 细节现象描述: 1.SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M. 2.每一批SQL执行会单独创建Statement对象,执行一批SQL后,会将这个Statement关闭掉. 3.SQL语句中只有insert,没有其

bootstrap 中的静态模式的控制按钮上的一个坑

在使用modal时发现,代码:<button class="btn btn-danger" data-toggle="modal" data-target="#myModal">删除</button>,button按钮点击没有反映,经过与自带的实例对比,发现一个区别,就是type="button"没有加,真是一个坑啊 <button class="btn btn-danger"