首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭OPC DA连接

关闭OPC DA连接
EN

Stack Overflow用户
提问于 2016-08-22 22:28:44
回答 1查看 551关注 0票数 1

我正在使用OPC Foundation的OpcNetApi.dll与OPC服务器进行通信。

我很好奇是否有一种编程方法可以杀死当前在使用这个库或类似库的服务器上活动的特定连接。

EN

回答 1

Stack Overflow用户

发布于 2016-09-03 05:23:24

我不敢肯定,但我认为你所要求的并不总是可能的(没有调试器)。OPC是基于微软COM组件的。COM有两种实现方式:进程内和进程外。选择取决于OPC服务器供应商。

通过进程内实现,如果您在与OPC服务器相同的机器上运行OPC客户端,则OPC服务器只是一个直接加载到OPC客户端内存空间的dll。现在它可能是通过某种其他机制(命名管道、ReadAllItems /IP等)获取实际数据,但这仍然取决于OPC服务器的实现。真正强制停止此OPC服务器的唯一方法是结束OPC客户端或获取OPC客户端程序。当然,OPC客户端或OPC服务器可能已经实现了一种机制来结束,但不能保证。

如果它是进程外OPC实现,那么OPC服务器将在一个单独的可执行文件中运行,这样您就可以找到该可执行文件的名称并终止它。(您可以在regedit中搜索OPC服务器的名称,以找到相应的可执行文件名称)。如果我没记错的话,OPC服务器可以设计成所有客户端共享一个可执行文件,或者每个OPC客户端都有自己的可执行文件实例。

如果您正在远程运行OPC服务器,那么如果它是一个进程内实现,那么它可能会被加载到存根程序中,然后绑定到RPC。如果您阻止RPC通信的端口,我认为大多数客户端会在一段时间后决定断开连接,尽管没有守护人,但他们不会尝试重新连接。

这里有更多信息:https://www.opcsupport.com/link/portal/4164/4590/Article/711/May-I-get-a-In-Proc-and-Out-Of-Proc-explanation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39082144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档