OPC UA HistoryRead(Java版)

/**
 * Synchronous HistoryRead service request.
 * Based on opc-ua-java-stack-1.02-source-code-and-sample-applications-337.2-stable
 */
private static void OpcUaHistoryRead() throws UnknownHostException, ServiceResultException, ParseException, InterruptedException{
	UATcpParam param=new UATcpParam();
	param.setUrl(url);
	param.setAuthentication(0);
	//param.setUserName("admin");
	//param.setPassword("admin");
	param.setSecurityMode(MessageSecurityMode.None);
	//param.setSecurityPolicie(SecurityPolicy.BASIC128RSA15);
	String nodeIdStr1="ns=5;s=Random1";
	NodeId nodeId = NodeId.get(OpcTcpClientUtil.getIdType(nodeIdStr1),OpcTcpClientUtil.getNs(nodeIdStr1), OpcTcpClientUtil.getId(nodeIdStr1));
	ReadRawModifiedDetails rrmd = new ReadRawModifiedDetails();
	rrmd.setIsReadModified(false);
	DateTime.setStrFormat("yyyy-MM-dd hh:mm:ssZ");
	DateTime StartTime = DateTime.parseDateTime("2018-12-05 13:56:19");//GMT
	DateTime EndTime = DateTime.parseDateTime("2018-12-05 14:01:19");
	rrmd.setStartTime(StartTime);
	rrmd.setEndTime(EndTime);
	rrmd.setNumValuesPerNode(UnsignedInteger.getFromBits(1000));
	rrmd.setReturnBounds(true);
	HistoryReadValueId[] NodesToReads = new HistoryReadValueId[1];
	HistoryReadValueId hrv = new HistoryReadValueId();
	hrv.setNodeId(nodeId);
	NumericRange parsedIndexRange = new NumericRange(-1);
	hrv.setParsedIndexRange(parsedIndexRange);
	NodesToReads[0] = hrv;
	ExtensionObject eo = ExtensionObject.encode(rrmd, QualifiedName.DEFAULT_BINARY_ENCODING, 
			StackUtils.getDefaultSerializer(), EncoderContext.getDefaultInstance());
	SessionChannel mySession = OpcTcpClientUtil.getSession(param);
	RequestHeader rh = new RequestHeader();
	rh.setRequestHandle(UnsignedInteger.getFromBits(754));
	rh.setTimeoutHint(UnsignedInteger.getFromBits(30000));
	rh.setReturnDiagnostics(UnsignedInteger.getFromBits(0));
	HistoryReadResponse resp = mySession.HistoryRead(rh, eo, TimestampsToReturn.Source, false, NodesToReads);
	HistoryReadResult[] hrr = resp.getResults();
	for (HistoryReadResult historyReadResult : hrr) {
		System.out.println(historyReadResult);
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值