主要内容

开始从PI服务器访问数据

本示例向您展示如何连接到OSIsoft™PI Server并定位存储在其数据存档中的资产信息。运行此示例需要安装OSIsoft PI系统。本例中使用的演示标签由OSIsoft提供,可以从以下位置下载:

https://learning.osisoft.com/asset-based-af-example-kits

PI服务器能够存储来自数百个资产的数十年实时数据。PI系统的MATLAB®接口利用系统的资产框架(AF)访问您的资产的时间序列数据。

创建客户端并连接到服务器

连接到PI服务器使用piclient函数。在本例中,使用Windows计算机名作为PI AF服务器名。根据PI系统配置的不同,您的情况可能有所不同。

主机= getenv (“COMPUTERNAME”);客户= piclient(主机);

列出所有标签

方法创建PI服务器上可用的所有标记的列表标签方法。根据您的系统,此查询可能返回大量数据。如果您有大量的标记列表,这会使此操作过于缓慢或不切实际,那么您可能希望跳过此步骤。

PI系统使用标记作为别名或快捷方式来表示资产属性,如电压、电流、温度等。一些标记名称很短,其他的可能很长并且具有描述性,或者包含一个唯一的ID。

allTags =标签(客户端)
allTags =478×1表标签  _______________________________________________________________________________________________________________________ " 弗林I.Active权力generated.1b86ebf3 - 1 - c0a - 52 - bd - 3222 - 38 - e6660052f2”“弗林I.Hydro单位注意percentage.4ae999f5 f5ae - 535 c - 3 - f43 fcb3775ee8a4”“弗林I.Hydro单位条件。f3ec518f - 1059 - 5 - c79 - 00 - cf - 28 - c97d06714b”“弗林二世。产生有功功率。1b86eb8e-1c0a-52bd-3222-38e6660052f2" "Flynn II。水力机组注意百分比。4ae99988-f5ae-535c-3f43-fcb3775ee8a4”。水电机组的状态。“弗林河水电。实际发电量。1670a44f-b666-5758-3021-6f6f8a37127d。水电比例的关注。“弗林河水电。水力条件。1bf06b5f-9e31-5615-1701-19b9b333770f" "GU1发电机。发电机状况分析-自上次维护以来的小时数。d7df31d2 dbb3 - 5 - ff3 - 346 b - 4102 edc802cc”“GU1生成器。分析发电机冷却轴承温度。7c20f57e-0f25-5474-3d73-b839651b5ed7" "GU1发电机。发电机冷却-冷却水输出温度。844da429-3a04-505b-1315-ab4869963455" "GU1发电机。发电机冷却-冷却水压力分析。e217c9ab - 825 a - 5 - e3b - 1915 - 657727 - f82eea”“GU1生成器。Analysis Generator Cooling - Core Temperature.204ab467-880e-5691-189c-3bc20e83484f" "GU1 Generator.Analysis Generator Cooling - Rotor Winding Temperature.1c7fa6fd-9eaf-5fea-30ce-b1eca9436a20" "GU1 Generator.Analysis Generator Lubricating - Lubricant Oil Output Temperature.d6db886f-e4fa-5c60-2552-bf41e4307e9d" ⋮

使用通配符的特定设施的狭窄标签列表

您可以选择浏览上一步中返回的标记列表,以定位特定的标记并将其分配给一个新变量。的附加输入参数可以更方便地缩小搜索范围标签方法。例如,根据上一步中返回的标记列表,在标记搜索中指定一个前缀以缩小搜索结果。下面的示例使用通配符查找前缀为“OSIDemo_Flynn I.”的所有标记。

tagsFlynnI = tags(客户端,名称=“OSIDemo_Flynn i *”
tagsFlynnI =7×1表标签  ________________________________________________________________________ " OSIDemo_Flynn I.Dam盖茨开放。"OSIDemo_Flynn I.Penstock Flow.322006e7-2097-5f17-0e4d-1be282f8c36c" "OSIDemo_Flynn I.Penstock Opening. ""OSIDemo_Flynn I.Penstock压力。"OSIDemo_Flynn I.Water PH.42e7dc15-656a-5aa7-181c-6adee980d38a" "OSIDemo_Flynn I.Water Temperature.18d94851-7252-5c87-1fb3-d769fb949f15"

使用多个通配符来缩小标签列表

还可以使用多个通配符来缩小标记列表。注意下面的例子在“Demo”前后使用了通配符。这将返回所有包含字符串“Demo”的标记。请注意,结果现在包含包含“Flynn I”和“Flynn II”的标签。

tagsDemo = tags(客户端,名称=“* *”演示
tagsDemo =194×1表标签  ____________________________________________________________________________ " OSIDemo_Flynn I.Dam盖茨开放。"OSIDemo_Flynn I.Penstock Flow.322006e7-2097-5f17-0e4d-1be282f8c36c" "OSIDemo_Flynn I.Penstock Opening. ""OSIDemo_Flynn I.Penstock压力。"OSIDemo_Flynn I.Reservoir Level.1a4f7e16-c4ad-55ea-0731-ca5ba86bcaf7" "OSIDemo_Flynn I.Water PH.42e7dc15-656a-5aa7-181c-6adee980d38a" "OSIDemo_Flynn I.Water Temperature.18d94851-7252-5c87-1fb3-d769fb949f15" "OSIDemo_Flynn II. reservoir Level.1a4f7e16-c4ad-55ea-0731-ca5ba86bcaf7"大坝大门打开。b2156e77 - 0 - b4d - 555 c - 3 - edf cea1339a96b7”“OSIDemo_Flynn II。Penstock Flow.3220069a-2097-5f17-0e4d-1be282f8c36c" "OSIDemo_Flynn II. "水门。d49c75bb - 5 - ef9 - 57 - a8 - 0366 - 9 - d71e9b595cf”“OSIDemo_Flynn II。压力压力。c550b9a3 - f101 53 - 84 - 1 - b5a e0f3c22991”“OSIDemo_Flynn II。1a4f7e6b-c4ad-55ea-0731-ca5ba86bcaf7" "OSIDemo_Flynn II. "水PH.42e7dc68-656a-5aa7-181c-6adee980d38a" "水温。18d9482c-7252-5c87-1fb3-d769fb949f15" "OSIDemo_GU1发生器。有功电源。4db83f0a-ff87-5c67-385a-83cfe3ac560d" "OSIDemo_GU1 Generator。轴向vibration.373a6144 - 442 d - 5 - e69 - 1079 - 5986 -⋮bf866fa1”

窄列表标签使用MATLAB模式匹配

方法缩小标记列表包含函数。这个例子使用了tagsDemo列表,返回所有包含字符串“Water”的标记。

tagsWater = tagsDemo(包含(tagsDemo。标签,“水”):)
tagsWater =48×1表标签  _____________________________________________________________________________________________ " OSIDemo_Flynn I.Water ph.42e7dc15 - 656 a - 5 - aa7 - 181 c - 6 adee980d38a”“OSIDemo_Flynn I.Water temperature.18d94851 - 7252 - 5 - c87 - 1 - fb3 - d769fb949f15”“OSIDemo_Flynn II。水PH.42e7dc68-656a-5aa7-181c-6adee980d38a" "水温。18d9482c-7252-5c87-1fb3-d769fb949f15" "OSIDemo_GU1发生器。冷却水入口温度。2b0243be-4a97-5a48-1337-0e0b242c4795" "OSIDemo_GU1 Generator.Cooling Water Output Temperature.7d1a79de-1957-5efc-1d55-aa5fcfccf36a" "OSIDemo_GU1 Generator.Cooling Water Pressure.0c723cab-80c6-5630-13bf-38fdd7092768" "OSIDemo_GU1 Generator.Water in Oil.801b9776-f2fd-5a9b-2725-d2e66ad4284f" "OSIDemo_GU1 Turbine.Cooling Water Intake Temperature.f987f83c-7a17-5027-1492-0482f0ae04b9" "OSIDemo_GU1 Turbine.Cooling Water Output Temperature.62d8c804-2b82-53bc-09f1-660ffa00aa70" "OSIDemo_GU1 Turbine.Cooling Water Pressure Output.7c04ebc3-ae18-5207-0690-514252308c5b" "OSIDemo_GU1 Turbine.Water Flow.cf5b84c3-af11-5637-2317-f518e59b0c9f" "OSIDemo_GU1 Turbine.Water in Oil.562f5784-a814-5b11-3dd7-44b9735068ca" "OSIDemo_GU1 Turbine.Water pH Intake.2f31dbfe-6f9a-5005-083c-db8531de4d07" "OSIDemo_GU1 Turbine.Water pH Output.59993b66-79da-591e-1d17-ea5fad61a12b" "OSIDemo_GU2 Generator.Cooling Water Intake Temperature.2b0243d3-4a97-5a48-1337-0e0b242c4795" ⋮

根据标签在现有标签列表中的位置识别标签

在缩小标记搜索时,可以通过指定标记在列表中的位置,快速从标记列表中选出特定的标记。这通常比通过名称识别标记更方便,后者有时会很长。例如,注意您可以在tagsWater通过指示中的第二个条目来列出前面示例的列表tagsWater

tagflyn1water = tags(客户端,名称= tagsWater{2,:})
tagFlynn1Water =表格标签  ________________________________________________________________________ " OSIDemo_Flynn I.Water temperature.18d94851 - 7252 - 5 - c87 - 1 - fb3 d769fb949f15”

清理

在使用完PI Server之后,断开连接并从工作区中清除客户机的变量,从而删除客户机。

清晰的客户端
Baidu
map