Не могу найти точку Пи после создания
У меня есть приложение C#, которое создает новую точку Pi, используя код, основанный на PI-AF-SDK-Basic-Samples/CreatePIPointsExample.cs в master · osisoft/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", но он не найден в поиске, хотя тысячи других существующих тегов есть.
Любые идеи, где я ошибся, пожалуйста?
2 ответа
Код Пи на самом деле был в порядке. Проблема была в том, что мой код фильтровал вновь созданную запись после выбора.
Location1 хранится как Int32 в PI Data Archive. location
параметр должен быть int
вместо string
,
Дальнейшие вопросы будут адресованы на OSIsoft PI Square, так как у вас также есть пост там.