我有C#应用程序,使用基于的代码创建一个新的Pi Point 主人的PI-AF-SDK-Basic-Samples / CreatePIPointsExample.cs·osis / PI-AF-SDK-Basic-Samples·GitHub
这一点似乎已经创建好了 - 这是SMT中标签搜索后的屏幕抓取:
我的问题是,当我的同一个C#应用程序搜索新创建的Pi Point时,找不到它。 搜索代码如下:
private static List<PIPoint> GetPiPoints(PIServer piServer)
{
var criteria = GetCriteria("61");
var foundPoints = PIPoint.FindPIPoints(piServer, criteria).ToList();
criteria = GetCriteria("63");
foundPoints.AddRange(PIPoint.FindPIPoints(piServer, criteria).ToList());
criteria = GetCriteria("64");
foundPoints.AddRange(PIPoint.FindPIPoints(piServer, criteria).ToList());
return foundPoints;
}
private static List<PIPointQuery> GetCriteria(string location)
{
List<PIPointQuery> criteria = new List<PIPointQuery>();
PIPointQuery whereClause1 = new PIPointQuery(PICommonPointAttributes.Location1, OSIsoft.AF.Search.AFSearchOperator.Equal, location);
PIPointQuery whereClause2 = new PIPointQuery(PICommonPointAttributes.PointSource, OSIsoft.AF.Search.AFSearchOperator.Equal, "o");
criteria.Add(whereClause1);
criteria.Add(whereClause2);
return criteria;
}
所以,我的理解是,这应该找到所有具有“location1”属性值为61,63或61且“pointSource”为“o”的点 - 我尝试过大写和小写“o”
从屏幕截图中,您可以看到新创建的“Kuba_99x”标签就是这种情况,但在搜索中找不到它,尽管有数千个其他现有标签。
我想出错的想法吗?
答案 0 :(得分:2)
Pi代码实际上很好。问题是,我的代码在选择后过滤了新创建的记录。
答案 1 :(得分:1)
Location1 在PI Data Archive中存储为Int32。 location
参数必须是int
而不是string
。
OSIsoft PI Square将提供更多问题,因为您还有一个帖子。