OPC常见问题解决

1)OPCClient无法遍历远程计算机上的OPCServer 列表,Telnet 远程计算机的135 端口不能连接。

排错思路:检测网络是否通畅,先关闭远程计算机上的的所有防火墙,能Ping通则说明链路通畅,不能则看看IP设置是否有问题,网络接线是否存在问题。如果关闭防火墙后正常,而开启防火墙后不正常,则说明防火墙规则未配置正确。

如是遇到Win7及以上系统,注意检查Windows自带防火墙的几条规则,需要在Win7,Win2K8操作系统的防火墙规则中添加两条规则,允许rpc动态端口和允许rpc终结点映射器。

 

2)Telnet 远程计算机的135 端口能连接。但OPCClient还是无法遍历远程计算机上的OPCServer 列表。

排错思路:远程计算机上是否安装并注册OPC 组件库文件,特别是opcenum(此组件的功能用于遍历本地所有注册的OPC Server名称),如是刚完成OPC DCOM配置的计算机,最好重启一次操作系统。

 

3)OPCClient能遍历远程计算机上的OPCServer 列表,无法连接指定的OPCServer

 排错思路:能遍历远程计算机上的OPCServer 列表,说明远程计算机整体的DCOM配置已经ok,连接不到指定的OPCServer,那么说明一定是目标OPCServer的配置或OPCServer本身的问题(如连接数限制,未授权等)

 

4)OPCClient能遍历远程计算机上的OPCServer 列表,也可连接指定的OPCServer ,但无法增加组。

排错思路:当你已经可以连接到远程计算机上指定的OPCServer时,说明已经成功了99%,但是无法添加组,则是OPCClient所在计算机的OPC配置不正确导致的,你若是不信,你可以使用Matrikon 提供的OPCClient工具OPCExplorer.exe,添加组时选择“同步方式”试一试,你会发现是可以连接上的,而选择“异步方式”却不通。

 

6)OPCClient提示输入用户名和密码

排错思路:本地计算机和远程计算机上安装的OPC组件版本不一致,按照OPC标准,应该是兼容的,不过各OPC开发者使用上有差别,导致兼容性问题,使用相同版本的OPC组件库文件可以有一半的机会消除这类问题。

 

7)OPCClient无测点

 排查思路:这本来是一个很简单的问题,但在实际现场中还真是常见,多是自动化组态软件的数据库和OPCServer是独立程序,OPCServer被远程OPCClient拽起来时,数据库还未正常呢,因此OPCServer中就是空。

 

8) DCOM无法配置。

排错思路:这种情况是指运行DComcnfg后,组件服务下面的计算机下面的“我的电脑”有一个红色的箭头。这种状态下是无法配置属性以及展开我的电脑。这种情况一般属于MSDTC服务未能正常启动。下面这段脚本绝大多数情况下是能帮助你修复MSDTC服务的。

脚本如下:

::脚本开始

@echo off

 

echo 1)重装MSDTC

setlocal

@echo %WINDIR%\System32\msdtc.exe -uninstall

%WINDIR%\System32\msdtc.exe -uninstall

call :delkey "HKCR\CID"

call :delkey"HKLM\SYSTEM\CurrentControlSet\Services\MSDTC"

call :delkey"HKLM\SYSTEM\ControlSet001\Services\MSDTC"

call :delkey"HKLM\SYSTEM\ControlSet002\Services\MSDTC"

call :delkey "HKLM\Software\Microsoft\MSDTC"

@echo %WINDIR%\System32\msdtc.exe -install

%WINDIR%\System32\msdtc.exe -install

endlocal

goto :EOF

:delkey

set key=%1

call :delkeyq %key% >nul 2>&1

@echo. 

goto :EOF

:delkeyq

REG Delete %key% /F 

 

exit

::脚本结束

 

将上面这段脚本拷贝到记事本,并保存为扩展名为cmd的文件。然后执行即可。



文章转载自:http://sns.ca800.com/space.php?uid=45972&do=blog&id=2309


Java可以通过OPC(OLE for Process Control)库来读取OPC服务器的数据。 首先,需要在Java项目引入OPC库。常用的OPC库有jEasyOPC、Jinterop、OpenSCADA等,可以根据具体需求选择适合的库。 接下来,使用OPC库提供的API来连接OPC服务器。通常,需要提供OPC服务器的IP地址、端口号、用户名和密码等连接信息。可以使用以下代码示例连接OPC服务器: ``` import org.jeasyopcua.opcua.client.OpcUaClient; import org.jeasyopcua.opcua.client.OpcUaClientBuilder; public class OPCClient { public static void main(String[] args) { // 创建OPC客户端 OpcUaClient client = OpcUaClientBuilder.create() .setEndpointUrl("opc.tcp://127.0.0.1:49320") // OPC服务器的连接地址 .setCredentials("user", "password") // OPC服务器的用户名和密码 .build(); try { // 连接OPC服务器 client.connect(); // 读取OPC服务器的数据 Object value = client.readValue("ns=2;s=MyVariable").get(); System.out.println("Value: " + value); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭OPC连接 client.disconnect(); } } } ``` 在代码示例,我们使用jEasyOPC库创建了一个OPC客户端,指定了OPC服务器的连接地址和凭据信息。然后,通过`client.readValue()`方法读取了OPC服务器上的一个变量值,并打印输出。 通过以上步骤,就可以使用Java来读取OPC服务器的数据了。当然,在具体操作过程,还需根据实际情况对OPC库的使用进行编码和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值