Skip to main content

制限事項

ランタイムシステムのバージョン

ブートプロジェクトは両方のコントローラーでロード可能でなければなりません。以下の方法により、コントローラーの異なるランタイムバージョンでのシームレスなランタイムシステム更新が可能になります CODESYS Redundancy Configuration 機能。

リアルタイムでのタスクとコミュニケーション

周期的なタスクのみが許可されます。タイプのタスク イベントステータス、または フリーホイーリング 同期できません。

CODESYS Redundancy Configuration この機能は 1 つのタスクだけを同期します (冗長タスク)。他のタスクやアプリケーションも可能ですが、両方の PLC で非同期に実行されます。

さらに、タスクの実行と通信に影響を与える冗長システムは、特定のリアルタイム要求を満たす必要があります。冗長通信のメッセージ(要求と応答)の実行時間は、事前に定義された時間間隔内に存在する必要があり、タスクジッターを考慮する必要があります。この目的で使用されるリンクは、冗長通信にのみ使用してください。

リアルタイムタスク実行とは、冗長性によって制御されるアプリケーションタスクのジッターが制限されていることを意味します。リアルタイム通信とは、冗長リンクによって送信されたメッセージを、特定の時間内に他のPLCが受信する必要があることを意味します。

タスク実行時間

メッセージング期間(要求と応答の時間)により、タスクの実行時間が長くなります。冗長性を使用すると、タスクの合計実行時間が長くなります。

アプリケーション名とタスク名の変更

冗長アプリケーションまたは冗長タスクの名前を変更することは大きな変更であり、変更することはできません。 中に 冗長モード。このような変更を行った後は、両方の PLC を再設定する必要があります。で説明されているとおり はじめに セクション (「冗長システムの設定」の下)

タイムアウトの値

タイムアウトに指定する値は、タスクジッター時間と最大通信ジッター時間の合計より大きくなければなりません。

どちらの時間もシステムに依存します。特定の最大タイムアウト時間を指定するには、リアルタイムタスクとリアルタイム通信の両方の機能が必要です。実行時、タスクのジッタが大きく、メッセージ転送が遅延すると、タイムアウトが発生します。相手側のPLCからのメッセージを待機している間、システムは相手側のPLCが動作を停止したと判断します。その結果、待機側のPLCと送信側のPLCはスタンドアロンモードに切り替わります。これにより、同期が失われ、フィールドバス上で通信の問題が発生します。

重要

場合によっては、両方の冗長コントローラーが予期せずシミュレーションモードに切り替わることがあります。

原因:アクティブコントローラでの冗長タスクの実行が中断されたり、大幅に遅延したりすると、タイムアウトが切れるまで同期メッセージがスタンバイコントローラに届かないことがあります。

結果として生じる動作は、以下によって異なります。 AutoSyncEnable フラグ:

  • もし AutoSyncEnable = 0そして、2 番目のコントローラーがスタンドアロンモードに切り替わります。

  • もし AutoSyncEnabled = 1 適用すると、2 番目のコントローラは最初にスタンドアロンモードになります。このコントローラが遅延メッセージを受信すると、シミュレーションモードに移行し、その後、再度接続を試みます。

解決策:

  • この問題を回避するには、中断や遅延のリスクを最小限に抑えるために、冗長タスクに高い優先順位を割り当てる必要があります。

  • 代替方法:冗長タイムアウトよりも小さいタイムアウト値でウォッチドッグタスクを有効にします。

  • 代替方法:コントローラーを手動で同期します。

アクティブな PLC がスタンドアロンモードに切り替わるときのタイムアウトは、 冗長構成 エディタの 将軍 の「」タブ 冗長設定 タブ。さらに、値はランタイム設定ファイルに保存されます (例: CODESYSControl.cfg) エントリ付き StandbyWaitTime

さらに、値はランタイム設定ファイルに保存されます (例: CODESYSControl.cfg) エントリ付き StandbyWaitTime

IEC タイマー

両方のPLCで実行時間が異なると、PLCを切り替えるときに「バンプ」(出力値のずれ)が発生する可能性があります。これを防ぐために、IECタスクの実行中にIECタイマー値が凍結されます。 IECタイマーからの呼び出し(例:関数 TON)したがって、IECタスクを実行すると、物理時間が実行され続けても、常に同じタイマー値になります。したがって、実装は非アクティブに(おそらくループで)待機する必要があります。これは、IECタイマー値が現在のタスクスキャンで変更されないためです。

ポインター、リファレンス、インターフェイス

ザル POINTER TOREFERENCE TO、および INTERFACE アプリケーションユニット間の関係を表すステートメント (およびインターフェイスインスタンス) は、同期された冗長アプリケーションでは機能しません。

POINTER 冗長性によって制御されるデータ領域で変数を宣言してはなりません。これは、同期中に冗長制御されたデータが他のPLCに送信されるためです。ただし、他のPLCには別のメモリレイアウトが配置されている可能性があるため、ポインタは他のPLCでは無効です。

コンパイル時に、冗長機能は、ポインターが冗長制御された領域にあることを確認します。そこにあるポインタごとに警告が表示されます。このチェックは、次のエントリを使用してデバイス記述ファイルで非アクティブ化できます。

<Device>
    <Custom>
        <Redundancy DisablePointerChecks="true">

EtherCAT DC

この冗長性の拡張は、工場の自動化よりもプロセス業界を対象としています。このため、分散クロックを備えたEtherCATドライブはサポートされていません。ただし、EtherCAT I / Oはサポートされています。

詳細については、以下を参照してください。 リアルタイムでのタスクとコミュニケーション

Map on Existing

既存の変数へのマッピング

I/O マッピング方法「Map on Existing」(I/O を既存の変数にマッピングする) は、 CODESYS Redundancy Configuration。これらの種類の変数は、入力データ領域または出力データ領域には格納されませんが、宣言された場所に格納されます。その結果、動作中に同期されません。

ネットワーク変数

複数の書き込みテレグラムが同時に送信されるため、書き込み権限のあるネットワーク変数は使用しないでください。読み取り権限のあるネットワーク変数は許可されています

ファイルアクセス

異なるファイルデータは、切り替え時に異なるPLCで「バンプ」を引き起こす可能性があるため、ファイルアクセスを使用しないでください。

ファイルを使用する場合は、冗長制御の対象とならないデータ領域でそれぞれのファイルハンドルを宣言する必要があります。各 PLC はファイルを互いに独立して開きます。共有ハンドルはサポートされていません。PLC で作成されたファイルハンドルには以下が必要です いいえ 他の PLC 上のファイルまたはローカル PC 上のファイルへのアクセスに使用されます。

コンパイル時に、 CODESYS Redundancy Configuration 変数を処理するチェック (RTS_IEC_HANDLECAA.HANDLE) は、冗長制御エリアに配置されています。このような領域で検出されたハンドル変数ごとに警告が発行されます。

オンラインセキュリティユーザー管理

オンラインセキュリティユーザー管理を使用する場合は、両方の PLC に同じユーザー名とパスワードを設定する必要があります。それ以外の場合は、次のようなオンラインサービスが必要になります write variable または online change スタンバイPLCには送信されません。

SoftMotion

CODESYS SoftMotionCODESYS Redundancy Configuration 組み合わせることはできません。 SoftMotionの時間要件 できません 冗長性を使用するときに満たされます。