我有一个C#应用程序,它使用基于Master.OSIsoft/ Pi SDK-Basic-Sample·GitHub的代码创建一个新的PI点。
关键似乎是创建好的-下面是SMT中的标记搜索之后的屏幕抓取:

我的问题是,当我的同一个C#应用程序搜索新创建的Pi点时找不到它。搜索的代码如下:
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的点,以及"o”的"pointSource“--我试过大写和小写"o”。
从屏幕截图中,您可以看到新创建的"Kuba_99x“标记是这样的,但是在搜索中没有找到它,尽管还有数千个其他的现有标记。
请问我哪里出问题了?
发布于 2017-06-27 20:57:01
Pi代码实际上很好。问题是,在选择之后,我的代码正在过滤新创建的记录。
发布于 2017-06-22 19:28:41
Location1作为一个Int32存储在PI数据存档中。location参数需要是int而不是string。
进一步的问题将在OSIsoft PI广场,因为你也有一个帖子在那里。
https://stackoverflow.com/questions/44707773
复制相似问题