Skip to main content

冗長制御システム

アクティブコントローラ (PLC) を冗長 PLC で保護することで、制御システムの信頼性を高めることができます。

冗長PLCは、実行中いつでもアプリケーションの実行を引き継ぐことができます。アクティブ PLC とスタンバイ PLC の役割は、2 つのコントローラ間で動的に切り替えることができます。これにより、システム障害を回避したり、その影響を大幅に軽減したりすることができます。冗長制御システムは、重要な産業プラントやさらに小型の機械の信頼性、可用性、運用継続性を向上させます。

rdncy_img_overview.png

この図は、開発環境、2台のPLCによる冗長制御システム、およびフィールドバスを介して接続された機械環境で構成される自動化シナリオを示しています。アプリケーションは2台のPLC上で並行して実行されます。1台のPLCはアクティブに動作しており(1)、もう1台のPLCはスタンバイモードにあります(2)。スタンバイモードのPLCも、接続されたフィールドバスシステム(この例ではEtherCAT)の入力を読み取り、冗長リンク(3)を介して稼働中のPLCと継続的に同期します。これにより、故障が発生した場合でも、スタンバイPLCは直ちに稼働状態に移行し、中断することなくフィールドバス(4)の制御を引き継ぐことができます。

冗長リンク(3)は、デフォルトでTCPまたはUDPを使用します。ただし、ご要望に応じて、メーカー固有の通信コンポーネントを介した通信も可能です。

さらに、ビジュアライゼーションを次のように実行すると、冗長制御システムに接続できます。 CODESYS WebVisu ブラウザで。ビジュアライゼーションクライアントは、スイッチオーバーが発生してもほとんど中断することなく稼働し続けます。

注記

YouTube-32x32.png Video clip "Redundancy using the example of two Raspberry Pis with CODESYS Control for Raspberry Pi SL"

このビデオは、この機能の概要を説明することを目的としています。の機能の範囲 CODESYS Redundancy Configuration ご覧のように、現在の機能範囲から逸脱する可能性があります。

機能の基本原則

アプリケーション開発者はまず、最初のPLCにアプリケーションをダウンロードし、そこでブートアプリケーションを作成します。起動時、2番目のPLCはこのコントローラと同期し、同様にブートアプリケーションを取得します。

ブートアプリケーションのダウンロードと初期化が完了すると、PLCは最初のタスクサイクルを実行する準備が整います。その後、登録済みのすべてのメモリ領域(すべてのIECデータ)が2台目のPLCに転送されます。この時点から冗長化機能が有効となり、両方のPLCがアプリケーションタスクを同期して実行します。タスクの実行は、各IECタスクの前後に冗長リンクを介して交換されるメッセージによって同期されます。

特定のPLCが優先的に動作するといった決まりはありません。動作モードは起動順序によって決定されます。つまり、最初に起動したPLCが冗長リンクを介して他のPLCにメッセージを送信します。応答がない場合、起動したPLCは引き続きブートアプリケーションをロードし、スタンドアロンモードで動作します。

スタンバイPLCが、設定された時間内にアクティブPLCからのメッセージを受信しなかった場合、アクティブPLCが故障したと判断し、スタンドアロンモードに切り替わります。これにより、フィールドバスI/Oの制御を引き継ぎます。逆に、アクティブPLCも、スタンバイPLCからのメッセージを受信しなかった場合、スタンドアロンモードに切り替わります。

最初のPLCを交換して再起動すると、上記のように現在スタンドアロンモードになっている他のPLCと同期し、スタンバイモードになります。

スタンバイ状態のPLCはシミュレーションモードに切り替えることができます。その間、冗長機能は無効になります。また、フィールドバスへの接続も(スタンバイモードと同様に)無効のままとなります。この間、アクティブなPLCはスタンドアロンモードに切り替わります。シミュレーションモードは、再同期または再起動を行うことで終了させることができます。シミュレーションモードで動作していたコントローラは、同期または再起動中にエラーが発生しなければ、スタンバイモードに戻ります。

ブートアプリケーションの更新中、登録済みメモリ領域の転送中、または冗長性サイクル中にエラーが発生した場合、PLCはエラーモードに移行します。その後、再同期または再起動が必要となります。

ユーザーインターフェース

アドオン: CODESYS Redundancy Configuration

rdncy_img_redundancy_ui.png
. 物体:
  • タブ: 冗長状態

    実行時には、 CODESYS 冗長システムを監視し、現在の状態を表示します。また、最も重要な冗長コマンドにアクセスしたり、状態間の切り替えを指示したりすることもできます

  • タブ: 冗長性設定

    ここでは、冗長リンクの通信設定を構成し、関連するタスクとウォッチドッグを定義できます。

  • タブ: 全般的

  • タブ: 視覚化

    ここでは、それぞれPLC上で稼働しているWebサーバー間の冗長リンクを設定できます。その結果、次のように実行されるビジュアライゼーションを接続できます CODESYS WebVisu ブラウザで、冗長制御システムを使用します。

  • タブ: 登録エリア

    ここでは、実行時に同期する必要があるデータと領域を管理できます。

  • タブ: ログ

    PLCのロガーからの履歴冗長イベントを一覧表示します

. 次のフィールドバスがサポートされています。
  • EtherCAT(CODESYS GmbH スタック)

  • プロフィネット

  • 開くことができます

フィールドバスを設定するには 冗長構成 上のオブジェクト 一般 の「」タブ 冗長設定 タブ。

詳細については、以下を参照してください。 全般的

ライブラリ:Redundancy

ザル Redundancy Implementation ライブラリには以下が含まれます。 Redundancy ライブラリ、次のような POU を提供します。 SwitchToActive または SwitchToStandby これにより、冗長コンポーネントにプログラムでアクセスできるようになります。たとえば、以下を使用できます SwitchToActive アクティブモードでの PLC の切り替えをプログラムします。

ライブラリ:VisuRedundancy

ザル VisuRedundancy ライブラリは視覚化のための冗長リンクを実装し、アクティビティを監視するなどの機能ブロックを提供します。

ランタイムシステム

インストール

ランタイムシステムには、制御システムの冗長動作のための 2 つの主要コンポーネントが用意されています。

  • 制御システムを二重化して運用するには、 CmpRedundancy 冗長コンポーネントと、冗長リンクを操作する追加コンポーネントは、 ランタイムシステム PLCの。この追加コンポーネントはデバイス固有ですが、IP リンクが通常です。 CmpRedundancyConnectionIP

    このコンポーネントは、役割分配 (アクティブ/スタンバイ)、データ同期、通信状態の監視など、冗長操作を管理するためのすべての機能を処理します。

  • 冗長リンク用コンポーネント

    このコンポーネントはデバイス固有で、2 つのコントローラ間の物理的および論理的な接続を確立します。ほとんどのデバイスは IP ベースの接続を使用します。IP ベースの接続は、 CmpRedundancyConnectionIP コンポーネント。

機能性

  • 2つのPLCを冗長システムにリンクします

  • 冗長データを同期します

  • PLCの動作状態を切り替えます

  • ロガーに冗長イベントを記録します

    注記

    実行時に発生するイベントは、ランタイムシステムのロガーによって両方のデバイスに記録されます。

1.

構成ファイル *.cfg の実行時間 CODESYS Control Win に保存されます ProgramData

[CmpRedundancyConnectionIP]
Link1.IpAddressLocal=192.168.56.1 ; IP address of redundancy link of local PLC
Link1.IpAddressPeer=192.168.56.101 ; IP address of redundancy link of peer PLC
Link1.Port=1205

[CmpRedundancy]
BootupWaitTime=5000
TcpWaitTime=2000
StandbyWaitTime=50 ; This timeout depends on the quality of real time task and communication system
LockTimeout=20 ; Maximum time of timer lock
Bootproject=Application ; Name of your CODESYS application
RedundancyTaskName=MainTask ; Task name in your CODESYS application
PlcIdent=1 ; PlcIdent=2 on other PLC



ブートアプリケーション

起動アプリケーションは、両方のPLCに同じように保存されます。ブートアプリケーションを更新する場合は、アクティブなPLCにダウンロードするだけで十分です。

アップデートを実行するには、新しいブートアプリケーションをアクティブなコントローラにロードするだけです。スタンバイコントローラは、同期中に自動的に更新バージョンを受け取ります。