CODESYS (Virtual) Safe Time Provider
ザ・ CODESYS (仮想) Safe Time Provider は、ユーザーがセカンドタイムベースと外部タイムベースを転送するために使用できる標準インターフェースです。 CODESYS (仮想) セーフコントロール SL。
実装はクライアントとして行われ、独立したタイムベースを持つ別のシステム上で実行する必要があります。
注記
次のセクションは、のネイティブバージョンと仮想バージョンの両方に関するものです。 CODESYS (仮想) セーフコントロール SL と CODESYS (仮想) セーフタイムプロバイダー。機能は基本的に同じです。
インストール
ザ・ CODESYS Virtual Safe Time Provider SL と CODESYS Safe Time Provider SL は経由でインストールされます。 CODESYS Control SL Deploy Tool。
詳細については CODESYS Virtual Safe Time Provider 以下を参照してください。 「セーフハウス」シナリオ:vPLC + vSafe + ProfiSafe + タイムプロバイダー + ライセンスサーバー。
詳細については CODESYS Safe Time Provider 以下を参照してください。 「ネイティブセーフハウス」シナリオ: PLC + セーフ + ProfiSafe + タイムプロバイダー。
重要
そのCODESYS Virtual Safe Time Provider SLは、CODESYS Virtual Safe Control SL。
機能性
そのTime Provider 2番目の時間情報源として機能しますCODESYS Virtual Safe Control SL は、定義された間隔でネットワーク経由でタイムスタンプをメッセージとして送信します。
このメッセージは、さまざまな受信者によって受信され、評価されます(CODESYS Virtual Safe Control l SL、冗長Time Provider)。
そのCODESYS Virtual Safe Control SL は、外部タイマーからの少なくとも 1 つのタイムスタンプが到着する必要がある定義されたサイクル タイムでアプリケーションを実行します。
重要
送信間隔はTime Providerアプリケーションのサイクルタイムの半分未満になるように構成する必要があります。

ネットワークやスケジュールの問題による安定性を高めるためTime Providerそして、CODESYS Virtual Safe Control SL、Time Provider冗長的に実行できます。
2 つのタイプが区別されます。
Time Provider冗長性
の場合Time Provider冗長性、2 Time Providerインスタンスは2つの独立したホスト上で実行されます。1つのインスタンスはアクティブな送信者として機能し、もう1つのインスタンスはタイムスタンプの送信をパッシブに監視します。
アクティブインスタンスのタイムスタンプの送信が遅れたり、行われなかったりすると、パッシブインスタンスはアクティブインスタンスの最新の既知のオフセットを使用して送信を直ちに引き継ぎます。つまり、CODESYS Virtual Safe Control SL。両方のインスタンスが同じネットワーク上で実行されることが重要です。そうすることで初めて、パッシブインスタンスはアクティブインスタンスから送信されたメッセージを監視できるようになります。
重要
この機能を使用するには、2 つの Time Provider インスタンスを起動する必要があります。タイムプロバイダーの冗長性パラメーター-r/--redundancy) を次のように設定する必要があります TRUE どちらの場合も。

重要
アクティブなTime Providerネットワークがバス上で別のアクティブなインスタンスを検出すると、最も優先度の高い IP アドレスを持つインスタンスがアクティブなままになり、他のすべてのインスタンスはパッシブ モードになります。
ネットワークの冗長性
ネットワーク冗長性の場合、Time Providerインスタンスはそれぞれ独自のネットワークを使用する。Time Provider冗長性。しかし、受動的なTime Provider遅延や障害が発生した場合に送信を引き継ぐために、アクティブなインスタンスからメッセージを受信するためのインスタンス。
重要
この機能を使用するには、冗長ルートの IP アドレスをパラメータ () で設定する必要があります。-a2/--address2).)。

構成
次のものを使用できます Deploy Tool を設定するには Time Provider。
詳細については CODESYS Virtual Safe Time Provider 以下を参照してください。 リナックスホスト PC 2。
詳細については CODESYS Safe Time Provider 以下を参照してください。 LinuxホストPC 2。
を設定して操作することもできます Time Provider コマンドラインから。
Python 呼び出しに対応する引数は、以下の表にあります。
オプション | 説明 | デフォルト値 |
|---|---|---|
| ターゲットIPアドレス | 127.0.0.1 (ローカルホスト) |
| 冗長ルートのターゲット IP アドレス | 無効 |
| ターゲットポート | 60000 |
| 送信間隔Time Providerタイムスタンプ(ミリ秒) | 3 |
| SCHED_FIFO スケジューリング優先度 | 55 |
| CPUピンニング すべてのスレッドは、値 0 から始まる定義済みの CPU に固定されます。 | 0 |
| 冗長モード ディセーブルにすると、 Time Provider タイムスタンプを直ちに送信します。 有効にすると、 Time Provider 他に優先順位の高いものがない場合にのみ送信します。 Time Provider 送信中です。 詳細については、以下を参照してください。 Time Provider冗長性 | 無効 |
| のログ記録 | 無効 |
| 診断間隔(秒) | 60 |
重要
IPアドレスのデフォルト値は127.0.0.1(localhost)です。この値は試運転とテストにのみ使用してください。Time Provider独立したタイムベースを提供するため、ローカルで操作することはできません。デフォルト値を使用する場合は、Time Provider警告を発します。
診断
ページのタイムスタンプを評価する際に発生する可能性のあるエラーは、CODESYS Virtual Safe Control SL:
設定されたポートはすでに使用されています。
設定されたポートがすでに使用されており、開くことができない場合は、次のメッセージが発行されます。
Could not open port <Port number> it is already in use!アクティブインスタンスでのタイムスタンプの送信が遅延されるか、行われません。
アクティブ送信者のタイムスタンプが遅れたり送信されなかったりして、パッシブTime Providerインスタンスが送信を引き継ぐと、次の診断メッセージが発行されます。
Started sending: take over from higher priority time provider <priority>優先度の高いTime Providerインスタンスが再び利用可能になり、以前のパッシブ インスタンスから送信を引き継ぐと、次のメッセージが発行されます。
Stopped sending: higher priority time provider is active: <priority>タイムスタンプの周期的な統計(アクティブインスタンス/送信者)
送信されたタイムスタンプの統計は、設定された間隔で発行されます(
-stat_print_timeオプション)はマイクロ秒単位(us)で指定します。送信間隔の最小値と最大値、および設定された期間における平均値が出力されます。Statistics: min: <minimum sending interval>, max: <maximum sending interval>, avg: <average sending interval> - send time intervalタイムスタンプの周期的な統計(パッシブインスタンス/レシーバー)
パッシブ インスタンスはアクティブ インスタンスから送信されたタイムスタンプを受信するため、受信した情報を診断目的で評価できます。
統計は設定された間隔で発行されます(
-stat_print_timeオプション)は、マイクロ秒[us]とパーセンテージ[%]の分解能で表示されます。最小間隔と最大間隔、および設定された期間の平均値が表示されます。
Statistics: min: <minimum deviation>, max: <maximum deviation>, avg: <average deviation> - remote to sample time deviationStatistics: min: <minimum sample interval>, max: <maximum sample interval>, avg: <average sample interval> - sample time intervalStatistics: min: <minimum remote interval>, max: <maximum remote interval>, avg: <average remote interval> - remote time interval失われたメッセージのカウンター
アクティブインスタンスによってタイムスタンプが送信されない場合、カウンターが増分され、出力されます。
Statistics: lost messages: <number of lost messages>