タグ名のエクスポート

すべてのタグ名を取得しようとしてます。

タグ数は、だいたい17 Millionで、PI System Management Tools等使って、すべてのタグ 名前をCSVファイルでエクスポートする方法はありますか?すべてのタグ名を検索すると、メモリが足りないというメッセージが出てしまいます。

 

また、PI Data Archiveに接続して、C#からcsvファイルにかき出そうとしましたが、一度にすべてのタグ名をPIPointListに入れようとすると、メモリが足りないというメッセージが出てしまいます。こちらの解決方法もあれば、宜しくお願いします。

Parents
  • AFに対するオブジェクトの検索と違って、タグの検索のページングの機能がありません。一気にすべてのタグの定義を取得するとメモリー不足が発生すると

    リクエスト毎に取得するタグの数を減らせないといけないです。

     

    例えば、タグ名の最初の文字を使い、下記のようにタグの定義を取得できます。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using OSIsoft.AF.PI;
    
    namespace ExportTags
    {
     class Program
     {
     static void Main(string[] args)
     {
     var pi = (new PIServers()).DefaultPIServer;
     var fields = new List<string>() { PICommonPointAttributes.Tag, PICommonPointAttributes.Descriptor };
     foreach (var letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_%".ToCharArray()) {
     var tags = PIPoint.FindPIPoints(pi, $"Name:={letter}*", false).ToList();
     try {
     pi.ExportCsv(tags, null, fields, null, $"C:\\Users\\jlefebvre\\Desktop\\Export\\{letter}.csv", null);
     }
     catch (Exception e){
     Console.WriteLine(e.Message);
     }
     }
     }
     }
    }
    

  • ありがとうございます。

    上記のプログラムを試しましたが、メモリ不足となってしまいます。

    タグ名の最初の文字だけではタグ数が多すぎるため、タグ名の2番目3番目...も使いメモリ不足にならないところを試しています。

     

    17Millionのすべてのタグ名をファイルにするためのツールは、他にありますか?

    例えば、コマンドラインツールのPICONFIGを使って、すべてのタグ名をファイルに書き出すことは可能ですか?

    宜しくお願いします。

  • tag名取得にPIConfigは使用可能です。メモリ不足とならないかはわからないですが、試していただければ幸いです。

    %piserver%\adm\piconfig.exe -node XXXX

    @tabl pipoint
    @ostr tag
    select tag=*
    @output pipoints.txt
    @ends
    

    同じフォルダにpipoints.txtが作成されます。

    おそらく、最初はリモートでやった方がいいと思います。(PI Data Archiveが動作しなくなることを避けたいためです)

Reply
  • tag名取得にPIConfigは使用可能です。メモリ不足とならないかはわからないですが、試していただければ幸いです。

    %piserver%\adm\piconfig.exe -node XXXX

    @tabl pipoint
    @ostr tag
    select tag=*
    @output pipoints.txt
    @ends
    

    同じフォルダにpipoints.txtが作成されます。

    おそらく、最初はリモートでやった方がいいと思います。(PI Data Archiveが動作しなくなることを避けたいためです)

Children
No Data