簡體   English   中英

使用OPC UA Java(OPC Foundation)編寫值

[英]Write a value with OPC UA Java (OPC Foundation)

我正在嘗試使用來自OPC Foundation的OPC UA Java堆棧連接到遠程環境。 讀取值工作正常,為此,我正在使用以下代碼:

NodeId nodeId= NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
ReadResponse res = mySessionChannel.Read(null, 500.0, TimestampsToReturn.Source, new ReadValueId(nodeId, Attributes.Value, null, null));

現在,我嘗試使用write命令如下設置此(輸入)變量:

NodeId nodeId = NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
DataValue dataValue = new DataValue(new Variant(999));
WriteValue writeValue[] = new WriteValue[1];
writeValue[0] = new WriteValue(nodeId, Attributes.Value, "0", dataValue);

RequestHeader requestHeader = new RequestHeader(nodeId, null, null, null, null, null, null);
WriteRequest writeRequest = new WriteRequest(requestHeader, writeValue);
WriteResponse response = mySessionChannel.Write(writeRequest);

write命令運行無錯誤,但值永不變。 有人可以幫我嗎?

您正在將“ 0”定義為IndexRange(WriteValue的第三個參數)。 我相信,您有一個標量變量,因此應該只使用null。

另外,您還需要檢查響應以實際查看響應是否成功。

E:write參數必須與Variable節點的DataType相匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM