Этот пример показывает вам, как создать и сконфигурировать объекты OPC Toolbox™.
ПРЕДПОСЫЛКИ:
Создайте клиент, использующий opcda
функция. Вам нужны имя хоста и ID сервера для Сервера OPC, сопоставленного с этим клиентом.
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da);
Используйте addgroup
функция, чтобы добавить группы в объект клиента. OPC Toolbox автоматически присваивает имя к группе, если вы не задаете тот.
grp1 = addgroup(da);
Групповые объекты используются, чтобы управлять наборами daitem
объекты.
Чтобы присвоить ваше собственное имя к группе, имя должно быть уникальным для всех групп в клиенте. Передайте имя в качестве дополнительного аргумента к addgroup
.
grp2 = addgroup(da,'MyGroup');
Введите имя объекта, чтобы просмотреть сводные данные группового объекта.
grp1
grp1 = Summary of OPC Data Access Group Object: Group0 Object Parameters Group Type : private Item : 0-by-1 daitem object Parent : localhost/Matrikon.OPC.Simulation.1 Update Rate : 0.5 Deadband : 0% Object Status Active : on Subscription : on Logging : off Logging Parameters Records : 120 Duration : at least 60 seconds Logging to : memory Status : Waiting for START. 0 records available for GETDATA/PEEKDATA
Добавьте элемент под названием Random.Real8
группе.
itm1 = additem(grp1,'Random.Real8');
Если вы хотите, чтобы значение, сохраненное в MATLAB®, имело определенный тип данных, задайте его в качестве третьего аргумента.
itm2 = additem(grp1,'Random.UInt2','double');
Чтобы просмотреть сводные данные объекта, введите имя объекта.
itm1
itm1 = Summary of OPC Data Access Item Object: Random.Real8 Object Parameters Parent : Group0 Access Rights : read Object Status Active : on Data Parameters Data Type : double Value : 0 Quality : Bad: Out of Service Timestamp : 12-Apr-2016 16:19:50
Ссылки на несколько объектов OPC Toolbox могут храниться в объектных векторах.
itmVec = [itm1,itm2]
itmVec = OPC Item Object Array: Index: Active: ItemID: Value: Quality: TimeStamp: 1 on Random.Real8 0 Bad: Ou... 16:19:50 2 on Random.UInt2 Bad: Ou...
Отображение объектного вектора показывает информацию о каждом объекте в векторе.
Просмотрите список всех свойств, поддержанных объектом.
get(da)
General Settings: EventLog = [] EventLogMax = 1000 Group = [1×2 dagroup] Host = localhost Name = localhost/Matrikon.OPC.Simulation.1 ServerID = Matrikon.OPC.Simulation.1 Status = connected Tag = Timeout = 10 Type = opcda UserData = [] Callback Function Settings: ErrorFcn = @opccallback ShutdownFcn = @opccallback TimerFcn = [] TimerPeriod = 10
Получите информацию об определенном свойстве.
clientName = da.Name
clientName = localhost/Matrikon.OPC.Simulation.1
Получите информацию о свойстве с помощью propinfo
функция.
statusInfo = propinfo(da,'Status')
statusInfo = Type: 'string' Constraint: 'enum' ConstraintValue: {'disconnected' 'connected'} DefaultValue: 'disconnected' ReadOnly: 'always'
Информация включает, только ли свойство для чтения, и перечисляет допустимые значения для свойств, которые имеют предопределенное множество значений.
Установите значение Timeout
свойство к 30 секундам.
da.Timeout = 30
da = Summary of OPC Data Access Client Object: localhost/Matrikon.OPC.Simulation.1 Server Parameters Host : localhost ServerID : Matrikon.OPC.Simulation.1 Status : connected Timeout : 30 seconds Object Parameters Group : 2-by-1 dagroup object Event Log : 0 of 1000 events
Удалите объекты, которые вы закончены с помощью от механизма OPC Toolbox.
disconnect(da) delete(da)
Удаление объекта клиента также удаляет группу и объекты элемента, сопоставленные с тем клиентом.