我似乎無法弄清楚這一個:OPC UA如何從服務器讀取數據類型
前寫標籤,我需要知道什麼樣的數據類型,它希望(該值mywrite函數接收總是一個字符串)。
我知道你必須從服務器讀取數據類型,這裏是我的代碼,這樣做,但我手足無措,如何使用這些信息很返回:
var nodesToRead = BuildReadValueIdCollection(node.DisplayName, Attributes.DataType);
DataValueCollection readResults;
DiagnosticInfoCollection diag;
_session.Read(
requestHeader: null,
maxAge: 0,
timestampsToReturn: TimestampsToReturn.Neither,
nodesToRead: nodesToRead,
results: out readResults,
diagnosticInfos: out diag);
var val = readResults[0];
我該怎麼辦用val
來確定數據類型是什麼?
難道我用Val.Value
或Val.WrappedValue
或Val.WrappedValue.Value
(無論區別是?)
我一直在使用測試標籤返回Val = "i=6".....
這是什麼指的是?
什麼數據類型是「6」,
如何轉換VAL的東西,我可以使用。
任何幫助將不勝感激。
謝謝
謝謝你,非常有用。是否必須將節點轉換爲字符串才能執行比較(即「i = 6」:vartype = Int32 ...等)? –
在OPC基金會的.NET堆棧中,如果這是我們在這裏討論的內容,則值應該是Opc.Ua.NodeId類型,此類型具有像(ushort)NamespaceIndex,IdType,Identifier等屬性。我推薦使用這些屬性,或者NodeId上的相等,做出比較。字符串形式僅用於使人類可識別的節點ID。 – ZbynekZ