这个示例向您展示了如何使用OPC Toolbox™来浏览网络中的OPC服务器,并查询服务器项及其属性的服务器名称空间。
先决条件:
您使用opcserverinfo
用于查询网络上主机上可用的OPC数据访问服务器的函数。此示例使用本地主机。
hostInfo=opcserverinfo(“本地主机”)
hostInfo=Host:'localhost'服务器ID:{'Matrikon.OPC.Simulation.1'}服务器描述:{'MatrikonOPC模拟和测试服务器'}opcsSpecification:{'DA2'}对象构造函数:{'opcda('localhost','Matrikon.OPC.Simulation.1')}
返回的结构提供了关于每个服务器的信息:
hostInfo.ServerDescription'
ans = '模拟和测试的MatrikonOPC服务器'
以及用于创建客户端对象的服务器ID。
allID=hostInfo.ServerID'
allID='Matrikon.OPC.Simulation.1'
使用上一步中找到的主机名和服务器ID构造客户端对象。
da=opcda(“本地主机”,'Matrikon.OPC.Simulation.1')
da=OPC数据访问客户端对象的摘要:localhost/Matrikon.OPC.Simulation.1服务器参数主机:localhost ServerID:Matrikon.OPC.Simulation.1状态:断开连接超时:10秒对象参数组:0-by-1 dagroup对象事件日志:0/1000事件
将客户端连接到服务器。
连接(da);
检索服务器的名称空间。
ns=getnamespace(da)
ns=4×1带字段的结构数组:Name FullyQualifiedID节点类型节点
结构的每个元素都是服务器名称空间中的一个节点。
ns(1)
ans=Name:'Simulation Items'FullyQualifiedID:'Simulation Items¥'节点类型:'branch'节点:[8×1结构]
使用服务器项
函数查找名称空间中包含字符串的所有项真实的
.
realItems=serveritems(ns,“*真实*”)
realItems='Bucket Badget.ArrayOfReal8''Bucket Badget.Real4''Bucket Badget.Real8''Random.ArrayOfReal8''Random.Real4''Random.Real8''读取错误。Real4''读取错误。Real8''锯齿波。Real4''锯齿波。Real8''方波。Real4''方波。Real8''三角波。Real4''三角波。Real8''写入e错误。ArrayOfReal8“”写入错误。Real4“”写入错误。Real8“”只写。ArrayOfReal8“”只写。Real4“”只写。Real8'
检查规范数据类型(PropID = 1
)及查阅资料的权利(PropID = 5
)找到第二个项目的。
canDT=serveritemprops(da,realItems{2},1)accessRights=serveritemprops(da,realItems{2},5)
canDT=PropID:1 PropDescription:'Item Canonical DataType'PropValue:'single'PropItemID:'accessRights=PropID:5 PropDescription:'Item Access Rights'PropValue:'read/write'PropItemID:'
断开客户端与服务器的连接,并在不再需要OPC工具箱对象时将其从内存中删除。删除客户端对象也会删除组和项对象。
断开连接(da)删除(da)