- 29 Aug 2025
- 印刷する
- PDF
dataPARC SDK呼び出しリスト
- 更新日 29 Aug 2025
- 印刷する
- PDF
dataPARC Historian SDKの呼び出しリスト/例
概要
dataPARC Historian SDKは、サードパーティ・アプリケーションの開発者に、dataPARC Historianに接続し、データの読み取り/書き込み/操作を行う機能を提供します。
特定のデータソース接続(OPCサーバー、フラットファイルなど)は、インターフェイスで表されます。インターフェース・セットは、単一の dataPARC ソース内で使用するために複数のインターフェースを組み合わせることができます。ソースのグループは、通常、物理的なプラントの場所を表し、インターフェイスグループと呼ばれます。接続は、個々のインターフェイス、インターフェイス セット、およびインターフェイス グループに行うことができます。
各インターフェイス内のタグは、構成された各ヒストリアンタグのすべての属性を公開します。dataPARC Historian SDKでは、データを取得時に読み取るためのタグをサブスクリプションできます。
データポイントは、各タグの個々のデータレコードを表します。値に加えて、タイムスタンプと品質はデータポイント内で使用できます。これらは、個別に、時間範囲にわたって読み取るか、ストリーミングすることができます。
次のドキュメントでは、dataPARC Historian SDK の使用方法と、一般的に使用される呼び出しのコード例を示します。
はじめ
前提 条件
サードパーティ アプリケーションには、Visual Studio に dataPARC Historian SDK Nuget パッケージ (dataPARC.Store.Public.SDK) を追加する必要があります。追加されると、この Nuget ソースはパブリック フィードにある場合は最新の状態に保たれます。 または、開発システム上でローカルにホストすることもできます。
Historian SDK は、.NET Standard 2.0 と 2.1 の互換性を考慮して設計されています。
dataPARC Historian 側では、追加のものは必要ありません。
サンプル プロジェクトは、*\Historian\dataPARC.Store.Public.SDK.Sample で入手できます。 以下の情報に加えて参考にすることができます。
クライアントの作成
ホストとポートをコンストラクターに渡す ServiceClient クラスのインスタンスを作成します。
構成
インターフェイス グループ
創造する
PendingInterfaceGroup のインスタンスを作成する
注: 必ず名前を付けて、アクティブに設定してください。
PendingInterfaceGroup を渡す ServiceClient で SaveInterfaceGroupAsync を呼び出します。
読む
ServiceClient GetInterfaceGroupsAsync を呼び出して、すべてのインターフェイス グループの一覧を取得します。
インターフェイス
創造する
注: 必ず名前を付けて、アクティブに設定してください。
PendingInterface を渡す ServiceClient で SaveInterfaceAsync を呼び出します。
読む
Idによるインターフェイスの取得
InterfaceQueryIdentifier のインスタンスを作成する
GetInterfaceAsync を呼び出し、InterfaceQueryIdentifier のインスタンスを渡します。
インターフェイス グループ別のインターフェイスの取得
InterfaceGroupQueryIdentifier のインスタンスを作成する
GetInterfacesAsync を呼び出し、InterfaceGroupQueryIdentifier のインスタンスを渡します
インタフェース・セット
創造する
PendingInterfaceSet のインスタンスを作成する
インターフェイス セットのインスタンスにインターフェイスを追加します。
PendingInterfaceSet を渡す ServiceClient で SaveInterfaceSetAsync を呼び出します
読む
Id で設定されたインターフェイスの取得
InterfaceSetQueryIdentifier のインスタンスを作成する
GetInterfaceSetAsync を呼び出し、InterfaceQueryIdentifier のインスタンスを渡します。
インターフェイス グループ別のインターフェイス セットの取得
InterfaceGroupQueryIdentifier のインスタンスを作成する
GetInterfaceSetsAsync を呼び出し、InterfaceGroupQueryIdentifier のインスタンスを渡します
タグ
創造する
PendingTag のインスタンスを作成します。
PendingTag を渡す ServiceClient で SaveTagAsync を呼び出します。
読む
ID によるタグの取得
TagQueryIdentifier のインスタンスを作成します。
GetTagAsync を呼び出し、TagQueryIdentifier のインスタンスを渡します。
インターフェイスによるタグの取得
InterfaceQueryIdentifier のインスタンスを作成します。
GetTagsAsync を呼び出し、InterfaceQueryIdentifier のインスタンスを渡します。
インターフェイス セットによるタグの取得
InterfaceSetQueryIdentifier のインスタンスを作成します。
GetTagsAsync を呼び出し、InterfaceSetQueryIdentifier のインスタンスを渡します。
データ
タグ値の読み取り
現在の値を取得する
List<TagQueryIdentifier> のインスタンスを作成します。
TagQueryIdentifer のインスタンスを作成し、リストに追加します。
GetCurrentValuesAsync を呼び出し、List のインスタンスを渡します
一貫性のあるタグのセットで現在の値を取得します。
List<TagQueryIdentifer> のインスタンスを作成します。
TagQueryIdentifer のインスタンスを作成し、リストに追加します。
CreateTagSet を呼び出し、List のインスタンスを渡します
ReadTagSetCurrentValues を呼び出し、Guid を渡します。
1 つのタグの生データを取得します。
TagReadRawParams のインスタンスを作成します。
ReadRawAsync を呼び出し、TagReadRawParams のインスタンスを渡します。
複数のタグの生データを取得します。
ReadRawBulkParameters のインスタンスを作成します。
ReadRawBulkData を呼び出し、ReadRawBulkParameters のインスタンスを渡します。
集計データまたは処理済みデータの取得
TagReadProcessedParams のインスタンスを作成します。
ReadProcessedAsync を呼び出し、TagReadProcessedParams のインスタンスを渡します。
集計構成による集計データの取得
ReadProcessedByConfigParameters のインスタンスを作成します。
ReadProcessedByConfig を呼び出し、ReadProcessedByConfigParameters のインスタンスを渡します。
タグ値の書き込み
1 つの値を書き込む
TagToHistorize を呼び出します。CreateITagDataToHistorize
WriteData を呼び出し、ITagDataToHistorize を渡します
複数の値を書き込む
TagToHistorize.CreateITagDataToHistorize を複数回呼び出して、配列に入れます。
WriteDataBulk を呼び出し、 ITagDataToHistorize の配列を渡します
タグ値の削除
特定のタイムスタンプで値を削除する
DeleteDataAtTimesを呼び出し、tagidとListを渡します
特定の範囲内の値を削除する
TagDeleteRangeParams のインスタンスを作成し、開始時刻と終了時刻を渡します。
DeleteValuesAsync を呼び出し、TagDeleteRangeParams のインスタンスを渡します。
予約
サブスクリプションの作成
Subscribe を呼び出し、tagqueryidentifiers を追加パラメータとともに追加します。
サブスクリプションイベント
イベント ハンドラーを SubscriptionChangedEvent に追加します。
イベントハンドラは、サブスクリプションで値が変更されたときに呼び出されます。
サブスクリプションの削除
Unsubscribe を呼び出して、subscription ID を渡します。
タグデータを読み込むためのコード例
using dataPARC.Authorization.CertificateValidation;
using dataPARC.Common.Validation.Results;
using dataPARC.Store.EnterpriseCore.DataPoints.Entities;
using dataPARC.Store.EnterpriseCore.DataPoints.Unions;
using dataPARC.Store.EnterpriseCore.Entities;
using dataPARC.Store.EnterpriseCore.Entities.HistoryReading;
using dataPARC.Store.Public.SDK;
using dataPARC.Store.Public.SDK.Interfaces;
// This example loads a tag from the historian, then reads the current value for the tag. Change any of the values in
// the connection variables or the group/interface/tag variables to test reading the current value for a tag.
string hostName = "localhost"; // The host name of the server that the historian is on. This can also be an IP address.
int port = 12340; // The port number the historian is listening on. 12340 is the default port.
// StoreClient is the main class for client connections to the historian. These are the required parameters only. The
// CertificateValidation can be set to accept all certificates, but should be configured for production deployments.
StoreClient client = new(hostName, port, CertificateValidation.AcceptAllCertificates);
string interfaceGroupName = "Group1"; // The name of the interface group of the tag to read.
string interfaceName = "Interface1"; // The name of the interface of the tag to read.
string tagName = "Tag1"; // The name of the tag to read datpoints from.
// Create as query object for the tag using the names of the group, interface, and tag by creating a FullyQualifiedTagName
// and converting it a TagQueryIdentifier.
TagQueryIdentifier tagQuery =
FullyQualifiedTagName.CreateWithInterface(interfaceGroupName, interfaceName, tagName)
.ToTagQueryIdentifier();
// Load the tag from the server, passing in the tag query object. This returns a result object that wraps the tag requested.
// The result object has a status that tells you if the tag could be found or not, or if an exception was thrown on the server.
GetResult
if (tagResult.Status == GetResultStatus.NoValueFound)
{
Console.WriteLine($"Could not find tag {tagName}");
}
else if (tagResult.Status == GetResultStatus.HasException)
{
Console.WriteLine($"Exception trying load tag {tagName}: {tagResult.ExceptionMessage}");
}
else // tagResult.Status == GetResultStatus.Successful
{
// Successfully loaded tag. Try to read it's current value.
ITag tag = tagResult.Value;
Console.WriteLine($"Loaded tag {tag.Name}");
// This also returns the same type of result object, wrapping the current value requested.
GetResult
if (currentValueResult.Status == GetResultStatus.NoValueFound)
{
Console.WriteLine($"No current value found for tag {tag.Name}");
}
else if (currentValueResult.Status == GetResultStatus.HasException)
{
Console.WriteLine($"Exception trying to read current value for tag {tag.Name}: {currentValueResult.ExceptionMessage}");
}
else
{
// Successfully read tag's current value, which contains a TagIdentifier for the tag requested and a datapoint.
TagCurrentValue currentValue = currentValueResult.Value;
// For now, we're only concerned with the datapoint.
DataPoint dp = currentValue.DataPoint;
Console.WriteLine(
$"Read current value for tag {tag.Name}: value = {dp.Value}, timestamp = {dp.Time}, quality = {dp.Quality.Text}");
}
}
以下のリストは、使用可能な dataPARC Historian SDK 呼び出しをまとめたものです。
接続呼び出し
メソッド StoreClient(host, port, shutdownNotification, certificateValidation, authProvider, enableInternalLogMessages, deadlineSeconds)
ヒストリアンへのクライアント接続の作成を試みます。接続を表すオブジェクトを返します。
引数
ホスト: タイプ = 文字列、ヒストリアン コンピューターのホスト名を表します
ポート: Type = int、ヒストリアン接続ポート番号を表します。
shutdownNotification: Type = IShutdownNotification、サーバー接続が失われたときに発生する通知。デフォルト = null
certificateValidation: Type = ICertificateValidation、サーバーの証明書を検証するためのメソッドを提供します。Defualt = null
authProvider: Type = IAuthProvider、認証が有効になっている場合、これはセキュリティ トークンの OAuth プロバイダーです。Defualt = null
enableInternalLogMessages: Type = bool、トラブルシューティングに使用される内部通信ログを有効にします。デフォルト = false
deadlineSeconds: Type = int、サーバーへのリクエストのデフォルトのタイムアウト (秒単位)。デフォルト = 120。
例
文字列 host = "localhost";
int ポート = 12340;
var client = new StoreClient(ホスト、ポート);
プロパティ IsConnectedAsync()
クライアントオブジェクトの接続状態を表すブール値を返します。接続に問題がないと仮定すると、クライアントがチェックしてからクライアントがサーバーに別のリクエストを行うまでの時間で接続が失われる可能性があるため、接続が稼働しているかどうかを判断するためにこれに依存すべきではありません。
引数
何一つ
例
Console.WriteLine($"{host}:{port} -> connected: {isConnected}");
DPStore インターフェイス関連の呼び出し
メソッド GetInterfaceGroupsAsync(deadlineSeconds, Token)
クライアントオブジェクトのインタフェースグループのリストを返します。インターフェイス グループは、多くの場合、マルチサイト企業内の物理的な「サイト」または場所を指します。
引数
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
Console.WriteLine("\n-- インタフェースグループの読み取りと書き込み --");
var result = await clientです。GetInterfaceGroupsAsync();
if (結果。ステータス == GetResultStatus.Successful)
{
リスト
Console.WriteLine($"{groups.Count} グループが見つかりました");
foreach (グループ内の var グループ)
{
Console.WriteLine($" - {グループ。名前}");
}
}
メソッド PendingInterfaceGroup(Name, Path, TimeZone)
PendingInterfaceGroup クラスの新しいインスタンスを返します。この情報は、通常、特定の「サイト」または場所にあるすべてのインターフェイスを含む新しいインターフェイス グループを作成するために使用されます。
引数
名前: タイプ = 文字列、グループ名を表します
パス: タイプ = 文字列、グループの履歴パスを表します
TimeZone: Type = string、グループのタイムゾーンを表します
例
var newGroupConfig = new PendingInterfaceGroup("TestGroup1", @"C:\Capstone\History\", TimeZoneInfo.Local.StandardName);
メソッド SaveInterfaceGroupAsync(GroupConfig, deadlineSeconds, Token)
新しいインターフェイス グループを保存します。SaveResult をラップする非同期書き込み操作を表すタスクを返します
引数
GroupConfig: Type = PendingInterfaceGroup、新しいインターフェイスグループの初期設定オブジェクト。この設定は、新しいインターフェイスグループがヒストリアンに保存されるまでのみ存在し、その後、完全なインターフェイスグループ設定が返されます。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
試みる
{
var newGroupResult = クライアントを待機します。SaveInterfaceGroupAsync(newGroupConfig);
if (newGroupResult.Status == SaveResultStatus.DataSaved ||
newGroupResult.Status == SaveResultStatus.DataSavedWithWarnings)
{
var newGroup = newGroupResult.SavedValue;
Console.WriteLine($"{newGroup.Name} ID = {newGroup.Id}");
}
}
catch (例外例)
{
Console.WriteLine("新しいインターフェイス グループの書き込み中にエラーが発生しました: " + ex.メッセージ);
}
クラス InterfaceGroupQueryIdentifier()
インターフェイス グループ Guid、Id、またはインターフェイス グループ名から InterfaceGroupQueryIdentifier クラスの新しいインスタンスを初期化します。
プロパティ
Guid: Type = Guid?、クエリ内のインターフェイス グループの guid。
Id: Type = int?、クエリ内のインターフェイス グループの ID。
InterfaceGroupName: Type = string、クエリ内のインターフェイスグループの名前。
例
以下の GetIntfsParams の使用例を参照してください。
メソッド GetIntfsParams(InterfaceGroup, LoadTags)
インターフェイスグループ内のすべてのインターフェイスをサーバーから返します。
引数
InterfaceGroup: Type = InterfaceGroupQueryIdentifier、インターフェイスが要求されるインターフェイス グループの識別子を含むクエリ オブジェクト。
LoadTags: Type = bool、インタフェースが返されたときに、要求されているインタフェースのタグをロードする必要があるかどうかを示します。デフォルト = true。
例
var igqiParam = new GetIntfsParams(new InterfaceGroupQueryIdentifier(groupName));
メソッド GetInterfacesAsync(Parameters, deadlineSeconds, Token)
インターフェイス グループのすべてのインターフェイスを取得します。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
パラメータ: タイプ = GetIntfsParams、インターフェイス グループのクエリとタグの読み込み動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var getInterfaceResult = クライアントを待機します。GetInterfacesAsync(igqiParam)
if (getInterfaceResult.Status == GetResultStatus.Successful)
{
インターフェイス = getInterfaceResult.Value;
Console.WriteLine($"{インターフェイス。グループ {groupName} で見つかったインターフェイスの数} ");
}
クラス InterfaceQueryIdentifier()
インターフェイス Guid、Id、または完全修飾インターフェイス グループ名から InterfaceQueryIdentifier クラスの新しいインスタンスを初期化します。
プロパティ
Guid: Type = Guid?、クエリ内のインターフェイスの guid。
Id: Type = int?、クエリ内のインターフェイスの ID。
FullyQualifiedInterfaceName: タイプ = FullyQualifiedInterfaceName、クエリ内のインターフェイスの完全修飾名。
注: 完全修飾インターフェイス名の代わりに、インターフェイス グループ名とインターフェイス名を使用できます。
例
以下のGetIntfParamsの使用例を参照してください。
メソッド GetIntfParams(InterfaceQueryIdentifier, LoadTags)
インターフェイスクエリ識別子パラメーターを表すvarを返します。
引数
InterfaceQueryIdentifier: Type = InterfaceQueryIdentifier、インターフェイス クエリ識別子を表します
LoadTags: Type = bool、インタフェースが返されたときに、要求されているインタフェースのタグをロードする必要があるかどうかを示します。デフォルト = true。
例
var iqiParam = new GetIntfParams(new InterfaceQueryIdentifier(groupName, interfaceName));
メソッド GetInterfaceAsync(InterfaceQueryIdentifierParameters, deadlineSeconds, Token)
GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
InterfaceQueryIdentifierParameters: Type = GetIntfParams、インターフェイス クエリ識別子パラメーターを表します
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var interfaceFromClient = (クライアントを待機します。GetInterfaceAsync(iqiParam))を使用します。価値;
クラス PendingInterface()
PendingInterface クラスの新しいインスタンスを初期化します。コンストラクターには、1番目の 引数としてName(Type = string)、2番目の 引数としてgroupQuery(Type = InterfaceGroupQueryIdentifier)またはgroupConfig(Type = IInterfaceGroup)が必要です。
プロパティ
アクティブ: Type = bool、このインターフェイスがアクティブかどうか。
FileType: Type = FileType、これはファイルごとにデータが保存される方法です。日、月、または年。
Guid?: タイプ = Guid、省略可能。このインターフェイス グループの guid。これは、何も指定されていない場合は自動生成されます。
名前: Type = string、インターフェイスの名前。
OverrideHistoryDataPath: 型 = 文字列、省略可能。これは、このインターフェイスに固有のデータが格納されるパスです。
SendCurrentValues: 型 = bool
タイムゾーン: タイプ = 文字列
例
var newInterfaceConfig = new PendingInterface("TestInterface1", group);
メソッド SaveInterfaceAsync(pendingInterface, deadlineSeconds, Token)
新しいインターフェイスを保存します。SaveResult をラップする非同期書き込み操作を表すタスクを返します
引数
pendingInterface: Type = PendingInterface、新しいインターフェイスの初期設定オブジェクト。この設定は、新しいインターフェイスがヒストリアンに保存されるまでのみ存在し、その後、完全なインターフェイス設定が返されます。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
試みる
{
var newInterfaceResult = クライアントを待機します。SaveInterfaceAsync(newInterfaceConfig);
if (newInterfaceResult.Status == SaveResultStatus.DataSaved ||
newInterfaceResult.Status == SaveResultStatus.DataSavedWithWarnings)
{
var newInterface = newInterfaceResult.SavedValue;
Console.WriteLine($"{newInterface.Name} ID = {newInterface.Id}");
}
}
catch (例外例)
{
Console.WriteLine("新しいインターフェイスの書き込み中にエラーが発生しました: " + ex.メッセージ);
}
メソッド GetIntfSetsParams(InterfaceGroup, LoadTags)
インタフェースグループ内のすべてのインタフェースセットをサーバから取得するためのパラメータを返します。インターフェイス セットは通常、複数のインターフェイスを 1 つの PARCview ソースに結合するために使用されます。1 つのセット内のすべてのインターフェイスは、同じインターフェイス グループに属している必要があります。
引数
InterfaceGroup: Type = InterfaceGroupQueryIdentifier、インターフェイス セットの要求元であるインターフェイス グループの識別子を含むクエリ オブジェクト。
LoadTags: Type = bool、インタフェースが返されたときに、要求されているインタフェースのタグをロードする必要があるかどうかを示します。デフォルト = true。
例
var iSetsParams = new GetIntfSetsParams(new InterfaceGroupQueryIdentifier(groupName));
メソッド GetInterfaceSetsAsync(Parameters, deadlineSeconds, Token)
インターフェイス グループのすべてのインターフェイス セットを取得します。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
InterfaceSetsParameters: Type = GetIntfSetsParams、インターフェイス グループのクエリとタグの読み込み動作を指定するパラメーター。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var getInterfaceSetResult = await clientです。GetInterfaceSetsAsync(iSetsParams);
if (getInterfaceSetResult.Status == GetResultStatus.Successful)
{
interfaceSets = getInterfaceSetResult.Value;
Console.WriteLine($"{interfaceSets.Count} グループ {groupName} のインターフェイス セットが見つかりました");
}
メソッド InterfaceSetQuery(GroupName, InterfaceSetName)
ヒストリアンで設定されたインターフェイスのクエリを返します。インターフェイス Guid、Id、または完全修飾インターフェイス グループ名から InterfaceSetQueryIdentifier クラスの新しいインスタンスを初期化します。
引数
Guid: Type = Guid?、クエリ内のインターフェイスの guid。
Id: Type = int?、クエリ内のインターフェイスの ID。
FullyQualifiedInterfaceName: タイプ = FullyQualifiedInterfaceName、クエリ内のインターフェイスの完全修飾名。
注: 完全修飾インターフェイス名の代わりに、インターフェイス グループ名とインターフェイス セット名を使用できます。
例
以下の GetIntfSetParams の使用例を参照してください。
メソッド GetIntfSetParams(InterfaceSet, LoadTags)
サーバーからインターフェイスセットを取得するためのパラメーターを返します。
引数
InterfaceSet: Type = InterfaceSetQueryIdentifier、要求されるインターフェイス セットの識別子を含むクエリ オブジェクト。
LoadTags: Type = bool、インタフェースが返されたときに、要求されているインタフェースのタグをロードする必要があるかどうかを示します。デフォルト = true。
例
var iSetParam = new GetIntfSetParams(new InterfaceSetQueryIdentifier(groupName, interfaceSetName));
メソッド GetInterfaceSetAsync(Parameters, deadlineSeconds, Token)
インターフェイス セットを取得します。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
パラメータ: Type = GetIntfSetParams、インターフェイスセットパラメータを表します
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var result = await clientです。GetInterfaceSetAsync(iSetParam);
if (結果。ステータス == GetResultStatus.Successful)
{
var interfaceSetFromClient = 結果です。価値;
//...
}
クラス PendingInterfaceSet()
PendingInterfaceSet クラスの新しいインスタンスを初期化します。コンストラクターには、1番目の 引数としてName(Type = string)、2番目の 引数としてgroupQuery(Type = InterfaceGroupQueryIdentifier)またはgroupConfig(Type = IInterfaceGroup)が必要です。
プロパティ
アクティブ: Type = bool、このインターフェイス セットがアクティブかどうか。
名前: タイプ = 文字列、インターフェイス セットの名前。
例
var pendingInterfaceSet = new PendingInterfaceSet("TestInterfaceSet1", new InterfaceGroupQueryIdentifier(selectedInterfaceGroup.Value))
メソッド AddInterface(InterfaceQueryIdentifier)
保留中のインターフェイスセットにインターフェイスを追加します。インターフェイスをインターフェイスセットに関連付けます。インターフェイスが正常に追加されたかどうかを示すフラグを返します。
引数
InterfaceQueryIdentifier: Type = var、新しいインターフェイスが作成されるインターフェイスクエリ識別子オブジェクトを表します
例
foreach (selectedInterfaces の var interfaceToAdd)
{
pendingInterfaceSet.AddInterface(新しいInterfaceQueryIdentifier(interfaceToAdd));
}
メソッド SaveInterfaceSetAsync(PendingInterfaceSet, deadlineSeconds, Token)
保留中のインターフェイス セットを保存します。SaveResult をラップする非同期書き込み操作を表すタスクを返します
引数
PendingInterfaceSet: Type = var、保存するインタフェース・セット構成オブジェクトを表します
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
await クライアント。SaveInterfaceSetAsync(pendingInterfaceSet);
タグ呼び出し
メソッド GetTagsAsync(InterfaceQueryIdentifier, reloadTags, deadlineSeconds, Token)
このインターフェイスからすべてのタグを取得します。タグがまだロードされていない場合はサーバーからロードされるため、これは非同期操作です。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
InterfaceQueryIdentifier: Type = var、目的のタグを含むインターフェイスまたはインターフェイスセットのクエリ識別子を表します 注: 引数は「クライアント」オブジェクトで操作する場合にのみ必要であり、「インターフェイス」または「インターフェイスセット」オブジェクトで操作する場合は引数は必要ありません。
reloadTags: Type = bool、このインターフェイスのタグが既にロードされている場合でも、サーバーから再ロードする必要があるかどうかを示します。タグがまだロードされていない場合は、設定内容に関係なくサーバーから取得されます。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
リスト
又は
リスト
又は
リスト
クラス FullyQualifiedTagName()
ヒストリアン内のタグの完全修飾名。これは、タグを一意に識別するために必要な完全な文字列です。コンストラクターは、引数として 4 つのプロパティすべてを必要とします。
プロパティ
interfaceGroup: Type = string、この FullyQualifiedTagName が表すタグのインターフェイス グループの名前。
インターフェイス: Type = string、この FullyQualifiedTagName が表すタグのインターフェイスの名前。
interfaceSet: Type = string、この FullyQualifiedTagName が表すタグのインターフェイス セットの名前。
タグ: Type = string、この FullyQualifiedTagName が表すタグの名前。
例
以下の GetTagAsync メソッドの例を参照してください。
メソッド GetTagAsync(TagQuery, deadlineSeconds, Token)
タグを取得します。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
TagQuery: Type = TagQueryIdentifier、タグクエリオブジェクト。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var tagFromClient = (クライアントを待機します。GetTagAsync(new TagQueryIdentifier(new FullyQualifiedTagName(groupName, interfaceName, null, tagName)))) を呼び出します。価値;
メソッド IntfGetTagParams(Tag, ReloadTags)
インターフェイスまたはインターフェイスセットからタグを取得するためのパラメーター。
引数
TagQueryIdentifier: タイプ = TagQueryIdentifier、要求されているタグの識別子を含むクエリ オブジェクト。
ReloadTags: Type = bool、タグを返す前に、要求元のインターフェイスまたはインターフェイスセットのサーバーからタグを再ロードするかどうかを示します。
例
var getTagParams = new IntfGetTagParams(new TagQueryIdentifier(new FullyQualifiedTagName(groupName, interfaceName, null, tagName)));
var tagFromInterface = (待ち入力。GetTagAsync(getTagParams))です。価値;
クラス PendingTag()
新しいタグを作成するために使用します。コンストラクターには、name (文字列)、dataType (ValueType)、interfaceQueryIdentifier (InterfaceQueryIdentifier) または Interface (IInterface) の 3 つの引数が必要です。
プロパティ
アクティブ: タイプ = bool、タグがアクティブかどうか。
AlternativeAddress: Type = string、タグ値への代替パス。
CalcAggregates: Type = bool、データ型がサポートしている場合、タグを有効または無効にして集計データを計算します。
CliptoDeadbandMax: 入力値を保持して品質が悪いものに設定する代わりに、DeadbandMax より大きい値を DeadbandMax として保存する必要がある場合は、Type = bool、True です。
CliptoDeadbandMin: Type = bool、DeadbandMin より小さい値を DeadbandMin として保存し、入力値を保持して品質が悪い場合は True。
DataArrayLength: Type = int、タグデータが配列の場合、これは配列の長さです。
DataType: Type = ValueType、タグデータに保存される値型。
DeadbandMax: Type = float?、このタグの最大値。このしきい値を超える値は、悪い品質として保存されるか、ClipToDeadBandMax が true に設定されている場合は、この最大値として保存されます。
DeadbandMin: Type = float?、このタグの最小値。このしきい値より小さい値は、悪い品質として保存されるか、ClipToDeadBandMax が true に設定されている場合は、この最大値として保存されます。
説明: Type = string、タグの説明。
Deviation: Type = float?, パーセント、または絶対値 DeviationIsAbsolute が true に設定されている場合、履歴に書き込む前にタグ値を変更する必要があります。
DeviationIsAbsolute: 型 = bool、Deviation が絶対値の変化の場合は True、Deviation が値の変化率の場合は false。
DisplayFormatMask: Type = string、このタグの表示形式マスク。
DrawMode: Type = DrawMode、このタグがディスプレイをどのようにレンダリングするか。
Guid: Type = Guid?、タグの guid 識別子。
Historize: Type = bool、タグデータを保存して履歴化するかどうか。
InterpolateType: Type = InterpolateType、このタグの補間タイプ。
MaxHistoryInterval: Type = int、期間内にデータが書き込まれていない場合にデータを格納する最大期間 (秒単位)。
名前: タイプ = 文字列、タグの名前。
OpcServerGroup: このタグの OPC サーバー グループをタイプ = 文字列。
OpcServerNumber: タイプ = 文字列、このタグの OPC サーバー番号。
パラメータ: Type = string、データコレクタ用の ';' 区切り文字列内のオプションのデータ収集パラメータ。
PlotMax: タイプ = double、プロット時のデフォルトの最大設定。
PlotMin: タイプ = double、プロット時のデフォルトの最小設定。
TagAddress: Type = string、タグ値へのパス。
TaglistVisible: Type = bool、このタグがタグリストに表示される場合は True、それ以外の場合は false。
UnitMultiplier: Type = double?、読み取るときに値を乗算できるスカラー。単位変換に使用できます。
UnitPostAdd: Type = double?, UnitMultiplier を適用した後に値に追加する値 (存在する場合)、単位変換に使用できます。
UnitPreAdd: Type = double?、UnitMultiplier を適用する前に値に追加する値 (存在する場合)。単位変換に使用できます。
単位: タイプ = 文字列、このタグのエンジニアリング単位。
UpdateInterval: Type = int、このタグの更新間隔 (秒単位)。
例
var newTagConfig = new PendingTag("TestTag1", TimeSeries.Core.Enums.ValueType.Int32, tagInterface)
{
説明 = "SDK を介して書き込まれたテスト タグ 1"、
単位 = "s"、
};
メソッド SaveTagAsync(PendingTag, deadlineSeconds, Token)
新しいタグを保存します。SaveResult をラップする非同期書き込み操作を表すタスクを返します
引数
PendingTag: タイプ = PendingTag、新しいタグの初期設定オブジェクト。この設定は、新しいタグがヒストリアンに保存されるまでのみ存在し、その後、完全なタグ設定が返されます。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
試みる
{
var newTagResult = クライアントを待機します。SaveTagAsync(newTagConfig);
if (newTagResult.Status == SaveResultStatus.DataSaved ||
newTagResult.Status == SaveResultStatus.DataSavedWithWarnings)
{
var newTag = newTagResult.SavedValue;
Console.WriteLine($"{newTag.TagIdentifier.FullyQualifiedTagName.Tag} id = {newTag.TagIdentifier.Id}");
newTagを返します。
}
}
catch (例外例)
{
Console.WriteLine("新しいタグの書き込み中にエラーが発生しました: " + ex.メッセージ);
}
データ書き込み呼び出し
メソッド Create(TimeStamp, Quality, isHistory, Value)
指定されたパラメーターから DataPoint クラスの新しいインスタンスを作成します。TagDataPoint の新しいインスタンスを返します。
引数
TimeStamp: Type = DateTime、データポイントのタイムスタンプを表します
品質: タイプ = 品質、データ ポイントの品質を表します
isHistory: Type = bool、このデータポイントを履歴化する必要があるか、履歴化したか。
値: Type = bool, byte, sbyte, DateTime, decimal, double, float, short, int, long, ushort, uint, ulong, string, bool[], byte[], sbyte[], DateTime[], decimal[], double[], float[], short[], int[], long[], ushort[], uint[], ulong[], string[], 作成されるデータポイントの値。これは、ヒストリアンがサポートするデータ型の 1 つである必要があります。
例
以下の WriteValueAsync メソッドの例を参照してください。
メソッド WriteValueAsync(DataPoint, deadlineSeconds, Token)
このインターフェイスのタグにデータポイントを書き込みます。これは、他のタイプのタグデータポイントのいずれかです。ReceivedDataStatus をラップする非同期書き込み操作を表すタスクを返します。
引数
DataPoint: Type = TagDataPoint、サーバーに書き込まれるタグデータポイント。タグは、このインターフェイスに属している必要があります。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var writeResponse = await タグを使用します。WriteValueAsync(DataPoint.Create(DateTime.UtcNow, Quality.Good, true, 0));
メソッド DataPointInt32(TimeStamp, Quality, isHistory, Value)
データポイントの行列に新しいデータポイントを追加します。
引数
TimeStamp: Type = DateTime、データポイントのタイムスタンプを表します
品質: タイプ = 品質、データ ポイントの品質を表します
isHistory: Type = bool、このデータポイントを履歴化する必要があるか、履歴化したか。
値: Type = bool, byte, sbyte, DateTime, decimal, double, float, short, int, long, ushort, uint, ulong, string, bool[], byte[], sbyte[], DateTime[], decimal[], double[], float[], short[], int[], long[], ushort[], uint[], ulong[], string[], 作成されるデータポイントの値。これは、ヒストリアンがサポートするデータ型の 1 つである必要があります。
例
var datapoints = 新しい DataPointInt32[]
{
新しい DataPointInt32(DateTime.UtcNow.AddMinutes(-1), Quality.Good, true, 1),
新しい DataPointInt32(DateTime.UtcNow.AddMinutes(-2), Quality.Good, true, 2)
};
メソッド WriteValuesAsync(DataPoints, deadlineSeconds, Token)
タグデータポイントの配列を書き込みます。
引数
DataPoints: Type = 任意の TagDataPoint タイプ、サーバーに書き込まれるタグ データポイント。タグは、このメソッドが作用するエンティティ (Interface、InterfaceSet、Tag) に属している必要があります。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
writeResponse = await タグを使用します。WriteValuesAsync(データポイント);
メソッド TagDataPointInt32(tagID, Timestamp, Quality, isHistory, Value)
特定のタグの特定のデータポイントを検索します。
引数
tagID: Type = int、タグ ID を表します。
TimeStamp: Type = DateTime、データポイントのタイムスタンプを表します
品質: タイプ = 品質、データ ポイントの品質を表します
isHistory: Type = bool、このデータポイントを履歴化する必要があるか、履歴化したか。
値: Type = bool, byte, sbyte, DateTime, decimal, double, float, short, int, long, ushort, uint, ulong, string, bool[], byte[], sbyte[], DateTime[], decimal[], double[], float[], short[], int[], long[], ushort[], uint[], ulong[], string[], 作成されるデータポイントの値。これは、ヒストリアンがサポートするデータ型の 1 つである必要があります。
注: 引数として tagID (int) とデータポイント (DataPoint) のみを使用しても使用できます。
例
以下の QueueValue メソッドの例を参照してください。
メソッド QueueValue(DataPoint)
後でサーバーに送信されるように、クライアント上のデータポイントをキューに入れます。これは、他のタイプのデータポイントのいずれかです。データポイントがキューに入れられた場合はtrueを返し、それ以外の場合はfalseを返します。
引数
DataPoint: タイプ = DataPoint、キューに入れるデータポイント。
例
tagInterface.QueueValue(new TagDataPointInt32(tag.TagIdentifier.Id, DateTime.UtcNow.AddMinutes(-3), Quality.Good, true, 3));
メソッド QueueValues(DataPoints)
クライアント上のブール・データ・ポイントの配列をキューに入れて、後でサーバーに送信します。データポイントがキューに入れられている場合はtrueを返し、それ以外の場合はfalseを返します。
引数
DataPoints: タイプ = 任意の DataPoint タイプ、キューに入れるデータポイント。
例
var datapoints2 = 新しい TagDataPointInt32[]
{
new TagDataPointInt32(tag.TagIdentifier.Id, DateTime.UtcNow.AddMinutes(-4), Quality.Good, true, 4),
新しい TagDataPointInt32(tag.TagIdentifier.Id, DateTime.UtcNow.AddMinutes(-5), Quality.Good, true, 5)
};
tagInterface.QueueValues(データポイント2);
メソッド WriteQueuedValuesAsync(deadlineSeconds, Token)
キューに入れられたすべてのデータポイントをサーバーに非同期的に書き込みます。ReceivedDataStatus をラップする非同期書き込み操作を表すタスクを返します。
引数
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
writeResponse = await tagInterface.WriteQueuedValuesAsync();
データ読み取り呼び出し
メソッド ReadCurrentValueAsync(deadlineSeconds, Token)
このタグの現在の値を非同期的に読み取ります。GetResult をラップする非同期読み取り操作を表すタスクを返します。
引数
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var currentValueResult = await タグを使用します。ReadCurrentValueAsync();
if (currentValueResult.Status == GetResultStatus.Successful)
{
var currentValue = currentValueResult.Value;
var datapoint = currentValue.DataPoint;
var (時間、品質、値、isHistory) = データポイント。GetCastedDataPoint
Console.WriteLine($"{tagName} 現在の値:");
Console.WriteLine($"値: {値} - 品質: {品質} - タイムスタンプ: {時間} は履歴: {isHistory}");
}
メソッド TagReadRawParams(Start, End, StartBoundMode, EndBoundMode, MaxReturnedValues)
タグの生データポイントを読み取るためのパラメータ。
引数
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
StartBoundMode: Type = ReturnRawBoundMode、開始タイムスタンプでデータポイントを読み取る方法を指定するモード。
EndBoundMode: Type = ReturnRawBoundMode、終了タイムスタンプでデータポイントを読み取る方法を指定するモード。
MaxReturnedValues: Type = int、クライアントに返されるデータポイントの最大数。これを使用して、必要に応じてクライアントのメモリ内のデータポイントの数を制限できます。
例
以下の ReadRawAsync メソッドの例を参照してください。
メソッド ReadRawAsync(Parameters, deadlineSeconds, Token)
このタグの期間内の生データポイントを非同期的に読み取ります。ReadRawResult をラップする非同期読み取り操作を表すタスクを返します。DataPointsは、値の配列を含むDataPointsが見つかった場合は保持します。
引数
パラメータ: Type = TagReadRawParams、タグの生データポイントを読み取るための動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var rawValues = await タグを使用します。ReadRawAsync(new TagReadRawParams(DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow));
if (rawValues.Status == EnterpriseCore.History.Enums.ReadRawStatus.Successful)
{
Console.WriteLine($"{tagName} 過去 10 分間の生の値:");
var datapoints = rawValues.DataPoints;
foreach (var (時間、品質、値、isHistory) をデータポイントで指定します。GetCastedDataPoints (キャストデータポイント)
{
Console.WriteLine($"値: {値} - 品質: {品質} - タイムスタンプ: {時間} は履歴: {isHistory}");
}
}
メソッド TagReadProcessedParams(AggregateType, ProcessingInterval, Start, End, ReturnBounds, Alignment, TreatUncertainAsBad, UseUtcTimeForInterval, DataSource, MaxReturnedValues)
タグの処理されたデータポイントを読み取るためのパラメータ。
引数
AggregateType: Type = AggregateType、処理するアグリゲートのタイプ。
ProcessingInterval: タイプ = TimeSpan、データポイントが集計される期間。たとえば、処理間隔が 30 秒の時間平均は、データポイントの 30 秒ごとの時間平均を集計します。
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
ReturnBounds: Type = bool、時間境界のデータポイントを集計に含めるかどうかを示します。
配置: Type = DateTime?、時間平均など、時間を因子として含む集計の整列元となるタイムスタンプ。
TreatUncertainAsBad: Type = bool、品質が不確実なデータポイントを品質が悪いと見なすかどうかを示します。
UseUtcTimeForInterval: Type = bool、間隔にUTC時間を使用するかどうかを示します。
DataSource: Type = ProcessedSource、集計の処理元となるデータポイントのソース。
MaxReturnedValues: Type = int、クライアントに返されるデータポイントの最大数。これを使用して、必要に応じてクライアントのメモリ内のデータポイントの数を制限できます。
例
以下の ReadProcessedAsync メソッドの例を参照してください。
メソッド ReadProcessedAsync(Parameters, deadlineSeconds, Token)
このタグの一定期間に処理されたデータポイントを非同期に読み取ります。ReadProcessedResult をラップする非同期読み取り操作を表すタスクを返します。DataPointsは、データポイントの配列を含むDataPointが見つかった場合は保持します。
引数
パラメータ: Type = TagReadProcessedParams、パラメータは、タグの処理されたデータポイントを読み取るための動作を指定します。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var processedValues = await タグを使用します。ReadProcessedAsync(
new TagReadProcessedParams(
AggregateType.TimeAverage、
TimeSpan.FromMinutes(2)、
DateTime.UtcNow.AddMinutes(-10)、
DateTime.UtcNow));
if (processedValues.Status == EnterpriseCore.History.Enums.ReadProcessedStatus.Successful)
{
Console.WriteLine($"{tagName} 過去 10 分間の処理された値、2 分間隔の時間平均:");
var datapoints = rawValues.DataPoints;
foreach (var (時間、品質、値、isHistory) をデータポイントで指定します。GetCastedDataPoints (キャストデータポイント)
{
Console.WriteLine($"値: {値} - 品質: {品質} - タイムスタンプ: {時間} は履歴: {isHistory}");
}
}
メソッド TagReadRawCountParams(Start, End, StartBoundMode, EndBoundMode)
タグのカウント生データポイントを読み取るためのパラメーター。
引数
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
StartBoundMode: Type = ReturnRawBoundMode、開始タイムスタンプでデータポイントを読み取る方法を指定するモード。
EndBoundMode: Type = ReturnRawBoundMode、終了タイムスタンプでデータポイントを読み取る方法を指定するモード。
例
以下の ReadRawCountAsync メソッドの例を参照してください。
メソッド ReadRawCountAsync(Parameters, deadlineSeconds, Token)
このタグの期間内の生データポイントの数を非同期的に読み取ります。ReadCountResult をラップする非同期読み取り操作を表すタスクを返します。カウントは、読み取られたデータポイントの数(見つかった場合)を保持します。
引数
パラメータ: Type = TagReadRawCountParams、タグの生データポイントを読み取るための動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var numRawValues = await タグを使用します。ReadRawCountAsync(新しいTagReadRawCountParams(DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow));
Console.WriteLine($"過去 10 分間に見つかった生値の数: {numRawValues}");
メソッド TagReadProcessedCountParams(AggregateType, ProcessingInterval, Start, End, ReturnBounds, Alignment, TreatUncertainAsBad, UseUtcTimeForInterval, DataSource)
タグの処理されたデータポイント数を読み取るためのパラメータ。
引数
AggregateType: Type = AggregateType、処理するアグリゲートのタイプ。
ProcessingInterval: タイプ = TimeSpan、データポイントが集計される期間。たとえば、処理間隔が 30 秒の時間平均は、データポイントの 30 秒ごとの時間平均を集計します。
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
ReturnBounds: Type = bool、時間境界のデータポイントを集計に含めるかどうかを示します。
配置: Type = DateTime?、時間平均など、時間を因子として含む集計の整列元となるタイムスタンプ。
TreatUncertainAsBad: Type = bool、品質が不確実なデータポイントを品質が悪いと見なすかどうかを示します。
UseUtcTimeForInterval: Type = bool、間隔にUTC時間を使用するかどうかを示します。
DataSource: Type = ProcessedSource、集計の処理元となるデータポイントのソース。
例
以下の ReadProcessedCountAsync メソッドの例を参照してください。
メソッド ReadProcessedCountAsync(Parameters, deadlineSeconds, Token)
このタグの一定期間に処理されたデータポイントの数を非同期的に読み取ります。ReadCountResult をラップする非同期読み取り操作を表すタスクを返します。カウントは、読み取られたデータポイントの数(見つかった場合)を保持します。
引数
パラメータ: Type = TagReadProcessedCountParams、タグの処理されたデータポイントを読み取るための動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var numProcValues = await タグを使用します。ReadProcessedCountAsync(
new TagReadProcessedCountParams(
AggregateType.Average、
TimeSpan.FromMinutes(2)、
DateTime.UtcNow.AddMinutes(-10)、
DateTime.UtcNow));
Console.WriteLine($"過去 10 分間に見つかった処理された平均値の数: {numProcValues}");
メソッド TagStreamRawParams(Start, End, StartBoundMode, EndBoundMode)
タグの生データポイントをストリームで読み取るためのパラメーター。
引数
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
StartBoundMode: Type = ReturnRawBoundMode、開始タイムスタンプでデータポイントを読み取る方法を指定するモード。
EndBoundMode: Type = ReturnRawBoundMode、終了タイムスタンプでデータポイントを読み取る方法を指定するモード。
例
以下の StreamingReadRawAsync メソッドの例を参照してください。
メソッド StreamingReadRawAsync(Parameters, deadlineSeconds, Token)
このタグの期間内の生データポイントを非同期的にストリーミングします。StreamingReadRawResult をラップする非同期読み取り操作を表すタスクを返します。Value は、StreamingDataPointSet が見つかった場合は保持し、そこからデータポイントをストリームとして読み取ることができます。
引数
パラメータ: タイプ = TagStreamRawParams、このタグの生データポイントをストリーミングするための動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
Console.WriteLine("生データの最後の 10 分間をストリーミングしています");
var streamRawResult = await タグを使用します。StreamingReadRawAsync(
新しいTagStreamRawParams(DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow));
if (streamRawResult.Status == ReadRawStatus.Successful)
{
await foreach (streamRawResult.Value.GetValues の DataPointInt32 streamedVal
{
Console.WriteLine($"値: {streamedVal.Value}\tQuality: {streamedVal.Quality.Text}\tTimeStamp: {streamedVal.Time}");
}
}
メソッド TagStreamRawDirectionalParams(Start, Direction, NumPoints)
タグの指定された方向に生データポイントを読み取るためのパラメーター。
引数
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
方向: タイプ = 方向、ベースタイムスタンプから順方向または逆方向に読み取ることを指定します
NumPoints: Type = int、ストリームを終了する前に読み取るデータポイントの数。
例
以下の StreamingReadRawDirectionalAsync メソッドの例を参照してください。
メソッド StreamingReadRawDirectionalAsync(パラメーター、deadlineSeconds、トークン)
このタグの生データポイントを、指定された数のデータポイントが読み取られるか、それ以上データポイントが見つからなくなるまで、開始日時から前後に非同期的にストリーミングします。StreamingReadRawResult をラップする非同期読み取り操作を表すタスクを返します。Value は、StreamingDataPointSet が見つかった場合は保持し、そこからデータポイントをストリームとして読み取ることができます。
引数
パラメータ: Type = TagStreamRawDirectionalParams、このタグの生データポイントをストリーミングするための動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
Console.WriteLine("現在の時刻から逆算して、最新の 3 つの生データ ポイントをストリーミングします");
var streamRawBackwardsResult = await タグを使用します。StreamingReadRawDirectionalAsync(
new TagStreamRawDirectionalParams(DateTime.UtcNow, Direction.Backwards, 3));
if (streamRawBackwardsResult.Status == ReadRawStatus.Successful)
{
await foreach (dataPointInt32 streamedVal in streamRawBackwardsResult.Value.GetValues
{
Console.WriteLine($"値: {streamedVal.Value}\tQuality: {streamedVal.Quality.Text}\tTimeStamp: {streamedVal.Time}");
}
}
メソッド TagStreamProcessedParams(AggregateType, ProcessingInterval, Start, End, ReturnBounds, Alignment, TreatUncertainAsBad, UseUtcTimeForInterval, DataSource)
タグの処理されたデータポイントをストリームで読み取るためのパラメータ。
引数
AggregateType: Type = AggregateType、処理するアグリゲートのタイプ。
ProcessingInterval: タイプ = TimeSpan、データポイントが集計される期間。たとえば、処理間隔が 30 秒の時間平均は、データポイントの 30 秒ごとの時間平均を集計します。
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
ReturnBounds: Type = bool、時間境界のデータポイントを集計に含めるかどうかを示します。
配置: Type = DateTime?、時間平均など、時間を因子として含む集計の整列元となるタイムスタンプ。
TreatUncertainAsBad: Type = bool、品質が不確実なデータポイントを品質が悪いと見なすかどうかを示します。
UseUtcTimeForInterval: Type = bool、間隔にUTC時間を使用するかどうかを示します。
DataSource: Type = ProcessedSource、集計の処理元となるデータポイントのソース。
例
以下の StreamingReadProcessedAsync メソッドの例を参照してください。
メソッド StreamingReadProcessedAsync(Parameters, deadlineSeconds, Token)
このタグの一定期間に処理されたデータポイントを非同期的にストリーミングします。StreamingReadProcessedResult をラップする非同期読み取り操作を表すタスクを返します。Value は、StreamingDataPointSet が見つかった場合は保持し、そこからデータポイントをストリームとして読み取ることができます。
引数
パラメータ: Type = TagStreamProcessedParams、このタグのストリーミング処理データポイントの動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
Console.WriteLine("処理されたデータの最後の 10 分間をストリーミングし、2 分間隔で平均します");
var streamProcResult = await タグを使用します。StreamingReadProcessedAsync(
new TagStreamProcessedParams(
AggregateType.Average、
TimeSpan.FromMinutes(2)、
DateTime.UtcNow.AddMinutes(-10)、
DateTime.UtcNow));
if (streamProcResult.Status == ReadProcessedStatus.Successful)
{
await foreach (streamProcResult.Value.GetValues の DataPointDouble streamedVal
{
Console.WriteLine($"値: {streamedVal.Value}\tQuality: {streamedVal.Quality.Text}\tTimeStamp: {streamedVal.Time}");
}
}
メソッド TagStreamProcessedDirectionalParams(AggregateType、ProcessingInterval、Start、End、ReturnBounds、Alignment、TreatUncertainAsBad、UseUtcTimeForInterval、DataSource)
タグの処理されたデータポイントをストリームで読み取るためのパラメータ。
引数
AggregateType: Type = AggregateType、処理するアグリゲートのタイプ。
ProcessingInterval: タイプ = TimeSpan、データポイントが集計される期間。たとえば、処理間隔が 30 秒の時間平均は、データポイントの 30 秒ごとの時間平均を集計します。
開始: タイプ = DateTime、データポイントの読み取りを開始する開始タイムスタンプ。
終了: タイプ = DateTime、読み取り時間範囲の終了タイムスタンプ。
ReturnBounds: Type = bool、時間境界のデータポイントを集計に含めるかどうかを示します。
配置: Type = DateTime?、時間平均など、時間を因子として含む集計の整列元となるタイムスタンプ。
TreatUncertainAsBad: Type = bool、品質が不確実なデータポイントを品質が悪いと見なすかどうかを示します。
UseUtcTimeForInterval: Type = bool、間隔にUTC時間を使用するかどうかを示します。
DataSource: Type = ProcessedSource、集計の処理元となるデータポイントのソース。
例
以下の StreamingReadProcessedDirectionalAsync メソッドの例を参照してください。
メソッド StreamingReadProcessedDirectionalAsync(Parameters, deadlineSeconds, Token)
このタグの処理されたデータポイントを、指定された数のデータポイントが読み取られるか、それ以上データポイントが見つからなくなるまで、開始日時から前後に非同期的にストリーミングします。StreamingReadRawResult をラップする非同期読み取り操作を表すタスクを返します。Value は、StreamingDataPointSet が見つかった場合は保持し、そこからデータポイントをストリームとして読み取ることができます。
引数
パラメータ: Type = TagStreamProcessedDirectionalParams、このタグのストリーミング処理データポイントの動作を指定するパラメータ。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
Console.WriteLine("現在の時刻から逆算して、最新の 2 分間の平均データ ポイントを 3 つストリーミングします");
var streamProcBackwardsResult = await タグを使用します。StreamingReadProcessedDirectionalAsync(
新しい TagStreamProcessedDirectionalParams(
AggregateType.Average、
TimeSpan.FromMinutes(2)、
DateTime.UtcNow、
方向。後方、3));
if (streamProcBackwardsResult.Status == ReadProcessedStatus.Successful)
{
await foreach (streamProcBackwardsResult.Value.GetValues の DataPointDouble streamedVal
{
Console.WriteLine($"値: {streamedVal.Value}\tQuality: {streamedVal.Quality.Text}\tTimeStamp: {streamedVal.Time}");
}
}
メソッド TagDeleteRangeParams(StartTimestamp, EndTimestamp)
タグデータを削除するためのパラメータを設定します。
引数
StartTimestamp: タイプ = DateTime、データ削除の時間範囲の開始
EndTimestamp: タイプ = DateTime、データ削除の時間範囲の終了
例
以下の DeleteValuesAsync メソッドの例を参照してください。
メソッド DeleteValuesAsync(Parameters, deadlineSeconds, Token)
一定期間内のすべてのデータポイントを削除します。ReceivedDataStatus をラップする非同期削除操作を表すタスクを返します。
引数
パラメータ: Type = TagDeleteRangeParams、データ削除範囲パラメータを表します。
deadlineSeconds: Type = int?、リクエストをキャンセルするまでの最大秒数。指定しない場合は、StoreClient.DeadlineSeconds が使用されます。
トークン: タイプ = CancellationToken、操作のキャンセルに使用できるキャンセル トークン。指定しない場合、トークンは要求にアタッチされません。
例
var deleteResponse = await タグを使用します。DeleteValuesAsync(new TagDeleteRangeParams(DateTime.UtcNow.AddMinutes(-2), DateTime.UtcNow.AddSeconds(-30)));
メソッド Subscribe(TagIdentifier, publishInterval, dataMode, bufferMode)
タグまたはタグのリストを、新しい値で公開されたイベントにサブスクライブします。新しいサブスクリプション ID である uint をラップするタスクを返します。
引数
TagIdentifier: Type = TagQueryIdentifier、新しいイベントをサブスクライブするタグ。
IntervalSpan: タイプ = TimeSpan、これらのタグのイベントを発行する頻度。
PublishingDataMode: タイプ = PublishingDataMode、データが公開されるモード。
PublishingBufferMode: タイプ = PublishingBufferMode、パブリッシュ前にデータがバッファリングされるモード。
例
1 つのタグをサブスクライブします。
クライアント。Subscribe(タグ1.TagIdentifier、
TimeSpan.FromSeconds(10)、
DateTime.UtcNow、
PublishingDataMode.All、
PublishingBufferMode.AllValuesSinceLastUpdate、
uint subscriptionId1 を出します)。
タグのリストをサブスクライブします。
var tagIdentifiers = 新しいリスト
クライアント。Subscribe(tagIdentifiers、
TimeSpan.FromSeconds(10)、
DateTime.UtcNow、
PublishingDataMode.All、
PublishingBufferMode.AllValuesSinceLastUpdate、
アウトリスト