Чтение исторических данных с узлов OPC UA-сервера в определенное время
UaData = readAtTime(UaClient,NodeList,TimeVector)
UaData = readAtTime(NodeList,TimeVector)
UaData = readAtTime(UaClient,NodeList,TimeVector)
считывает сохраненные исторические данные с узлов, заданных NodeList
, в заданные моменты времени в TimeVector
. NodeList
- массив объектов узла OPC UA, который можно создать используя getNamespace
, browseNamespace
, или opcuanode
. TimeVector
является массивом datetimes MATLAB или номеров дат.
UaData
возвращается как вектор объектов данных OPC UA. Сервер интерполирует или экстраполирует данные, если они не хранятся в указанные в TimeVector
моменты времени. Качество данных устанавливается соответствующим образом для интерполированных данных. Если
readHistory
не удается получить историю для данного узла, этот узел не включен в возвращенный объект данных OPC UA, и выдается предупреждение. Если не удается выполнить все запрошенные узлы, генерируется ошибка.
UaData = readAtTime(NodeList,TimeVector)
считывает с узлов, обозначенных NodeList
. Все узлы должны иметь один и тот же подключенный клиент.
Серверы OPC UA обеспечивают исторические данные только с узлов типа Variable
. Если вы пытаетесь считать значения из Object
узел, данные для этого узла не возвращаются, состояние для этого узла установлено на Bad:AttributeNotSupported
, и узел не включен в возвращаемый UaData
объект.
Получите 10-минутную историю проб за текущий день с локального сервера.
uaClnt = opcua('localhost',62550); connect(uaClnt); nodeId = '1:Quickstarts.HistoricalAccessServer.Data.Dynamic.Double.txt'; nodeList = opcuanode(2,nodeId,uaClnt); TimeVector = datetime('today'):minutes(10):datetime('now'); dataObj = readAtTime(uaClnt,nodeList,TimeVector);