OPC Client和OPC Server容易出现通讯故障,原因是什么?

OPC Server是一套利用微软的COM/DCOM技术实现工业自动化资料获取的架构。OPC Server提供OPC接口,它将与之相连的物理设备(PLC)的信息值通过接口返回到客户端应用程序。也就是说,客户端通过这些接口,可以获得与OPC Server连接的物理设备的信息。

OPC Client通过端接OPC Server 提供的接口,可以取得与 OPC Server 相连的硬件装置的信息,而无须了解这些硬件装置的细节信息。

但是,相信很多人都被OPC Client与OPC Server之间的通讯弄得头疼不已吧,通过几次远程协助后,总结了OPC Client和OPC Server在Windows上运行方式的恩怨,希望对大家有所帮助。

目前市场上的OPC Client和OPC Server软件在Windows上的运行方式主要有两种:Windows 桌面程序和Windows NT服务。由于OPC CLient和OPC Server不是同一个厂家的软件,又由于软件的多样性,导致使用时出现这些现象:

1、OPC CLient连接目标OPC Server时无法连接,但在OPC Server计算机上明明看见OPC Server进程已经启动。

2、OPC CLient连接目标OPC Server时,虽然能连接,也能看见测点,但无法获取到数据。

多次现场测验后发现,这些问题是OPC Client和OPC Server软件在Windows上的运行方式不同导致的。也就是说,OPC CLient运行Windows NT服务方式,而OPC Server运行桌面程序方式。但是当OPC CLient是Windows 桌面程序方式,OPC Server是Windows NT服务时,基本不会出现上述现象。这是为什么呢?

原因是这样的:

OPC Client和OPC Server都是基于DCOM的应用,其特点是OPC Server无需先运行或启动,等待OPC CLient请求时,操作系统会直接将OPC Server拽起来。这种可以随用随启的机制,非常实用。

但这种机制处理不好,会导致一些问题。当OPC CLient是Windows NT服务时,OPC Server被拽起来后,是运行在System这个系统账户下面的。相对于Windows的桌面用户来说,是另外一个隔离开的空间。因此当桌面运行类型的OPC Server被Windows NT服务方式的OPC CLient拽起来后,被运行在System这个系统账户的空间。而如果这个OPC Server程序又做了全局唯一进程运行的限制或与数据库只允许一个TCP连接时,上述的两种现象基本就会出现。这就是大家经常会遇到的OPC通讯故障现象。

如果让自己开发的OPC程序兼容性更好呢?

1、当开发OPC CLient程序时,最好使用Windows桌面程序方式,这种方式可兼容OPC Server程序运行在Windows桌面程序方式和Windows NT服务方式。

2、当开发OPC Server程序时,最好使用Windows NT服务方式,这种方式可兼容OPC Client程序运行在Windows桌面程序方式和Windows NT服务方式。

如果很不幸遇到了Windows NT服务的OPC Client去采集Windows 桌面程序的OPC Server(加上OPC Server本身的全局唯一限制),那么你可以去Windows NT服务的管理器中将Windows NT服务的OPC Client更改为指定的系统用户运行,大多数情况下可以解决问题。

希望这篇文章能帮您解决问题~喜欢OPC Server的朋友不妨下载免费版来体验一下~

文章转自:https://blog.51cto.com/hebaoqiang/1947345

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值