服务端是科大智控的组态软件,已开启OPCUA服务,使用组态软件内自带的OPCUA客户端,能看到数据,如下图:

我们自己写的java 客户端只能接收到时间:如下图:

,怎么才能读取到objects里面的数据呢。
服务端是科大智控的组态软件,已开启OPCUA服务,使用组态软件内自带的OPCUA客户端,能看到数据,如下图:

我们自己写的java 客户端只能接收到时间:如下图:

关注引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。
要读取OPC UA服务端的数据,你需要使用一个OPC UA的Java库,例如Eclipse Milo。以下是一个使用Eclipse Milo读取OPC UA服务端数据的示例代码:
import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
import org.eclipse.milo.opcua.stack.core.UaException;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
import java.util.concurrent.CompletableFuture;
public class Main {
public static void main(String[] args) throws Exception {
// 创建一个OPC UA客户端
OpcUaClient client = OpcUaClient.create("opc.tcp://localhost:4840");
// 连接到OPC UA服务端
client.connect().get();
// 读取Objects节点下的某个变量
NodeId nodeId = new NodeId(2, "/Objects/YourVariable");
CompletableFuture<Variant> cf = client.readValue(0, UInteger.valueOf(0), nodeId);
// 获取读取结果
Variant value = cf.get();
System.out.println("Value: " + value.getValue());
// 断开连接
client.disconnect().get();
}
}
在代码中,你需要将opc.tcp://localhost:4840替换为你实际的OPC UA服务端地址。你还需要将/Objects/YourVariable替换为你想要读取的变量的ID。这个ID可以在OPCUA客户端中查看。