JP5088490B2 - 二重化コントローラ - Google Patents

二重化コントローラ Download PDF

Info

Publication number
JP5088490B2
JP5088490B2 JP2008064599A JP2008064599A JP5088490B2 JP 5088490 B2 JP5088490 B2 JP 5088490B2 JP 2008064599 A JP2008064599 A JP 2008064599A JP 2008064599 A JP2008064599 A JP 2008064599A JP 5088490 B2 JP5088490 B2 JP 5088490B2
Authority
JP
Japan
Prior art keywords
unit
cpu unit
communication
cpu
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008064599A
Other languages
English (en)
Other versions
JP2009223418A (ja
Inventor
賀久 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2008064599A priority Critical patent/JP5088490B2/ja
Publication of JP2009223418A publication Critical patent/JP2009223418A/ja
Application granted granted Critical
Publication of JP5088490B2 publication Critical patent/JP5088490B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Description

この発明は、CPUユニットを2つ備えた二重化コントローラに関するもので、より具体的には、ツール装置とCPUユニットとの間の通信コマンドの送受システムの改良に関する。
FA(Factory Automation)におけるネットワークシステムは、生産設備内の入力機器及び出力機器の制御を司る1または複数のPLC(Programmable Logic Controller)と、そのPLCにより動作が制御される機器とが、制御系のネットワークに接続される。それらPLCと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、INデータ及びOUTデータ(以下I/Oデータという)の送受を行ない、生産設備を制御する。
PLCは、制御プログラムに基づいて演算実行するCPUユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、ネットワークに接続された他の装置とデータの送受を行なう通信ユニット、マスタスレーブ通信をするためのマスタユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。これらのユニットは、内部バスにより電気的に接続され、その内部バスを介して所定のユニット間でデータの送受を行なう。
このCPUユニットは例えば、INデータである入力機器のON信号またはOFF信号を入力し、入力したON/OFF情報をユーザプログラムによって論理演算し、演算結果であるOUTデータを出力機器へ出力する。その出力が出力機器に対する動作指示となって出力機器が動作するといった処理をサイクリックに繰り返し実行することにより、生産設備を制御する。
ところで、システムの安全性,信頼性を向上するため、PLCを構成する各ユニットを二重化することが行われる。例えば、本発明が対象とするCPUユニットを二重化する場合、CPUユニットを2個設けるとともに、それら2つのCPUユニットを内部バスにより接続する。それら2個のCPUユニットは、基本的に同一の機能を持ったものであり、同じユーザプログラムを実行する。
2台のCPUユニットのうち、一方が実行系のCPUユニットとなって、実際にサイクリックな処理を行い、メモリに対して読み書きを行なったり、外部のI/O機器等との間で制御データ(I/Oデータ)の送受を行なったりして、FAネットワークシステムの制御を司る。また、他方のCPUユニットは待機系のCPUユニットとなり、待機中は、実行系のユーザプログラムと同一のユーザプログラムを実行するものの、演算実行結果を出力ユニットを介して外部の出力機器へ出力することはない。そして、実行系のCPUユニットから処理結果等を受信し、待機系のCPUユニットのメモリの更新を行う。これにより、待機系のCPUユニットと実行系のCPUユニットのメモリの同一性が確保される。
実行系のCPUユニットが故障した場合には、待機系のCPUユニットが実行系のCPUユニットに切り替わって実際の制御等の動作を行う。従って、CPUユニットに故障が発生しても、すぐにシステムが停止することなく、継続して運転できるので信頼性が向上する。この種の二重化されたCPUユニットを備えたPLCは、たとえば特許文献1等に開示されている。
特開2006−260607号公報
ところで、CPUユニットにユーザプログラムをダウンロードしたり、CPUユニットのI/OメモリにアクセスしI/Oデータの読み書きをしたりするため、CPUユニットにツール装置を接続することがある。この接続形態としては、CPUユニットに直接通信用ケーブルを接続する場合と、通信ユニットに接続された通信ネットワーク経由で接続する場合がある。しかし、通信用ケーブルを直接接続する方式では、通信用ケーブルが接続されているCPUユニットにしかアクセスできなかったので、以下に示す問題を生じる。
ユーザが二重化PLCでプログラムのデバッグを実施する場合やトラブル発生時など、それぞれのCPUユニットが固有で持っている情報を読み出したい場合には、状態を確認したいCPUユニットに直接通信用ケーブルを接続する必要があった。したがって両方のCPUユニットの状態を確認するためには、一方のCPUユニットの状態を確認した後、もう一方のCPUユニットに通信用ケーブルをつなぎ変えなければならず、非常に手間がかかっていた。
また、プログラム変更やモード変更をしたいときには実行系(アクティブ側)から行う必要があるので、通信用ケーブルを接続しているCPUユニットが待機系(スタンバイ側)であれば、もう一方のCPUユニットに通信用ケーブルを接続しなおす必要があった。
また、通信ユニットは、実行系のCPUユニットとのみ通信が可能であるので、待機系のCPUユニットにはアクセスできなかった。その結果、待機系にアクセスするには、待機系のCPUユニットを実行系に切り替えるか、待機系のCPUユニットに通信用ケーブルを直接接続しなければならず、手間がかかる。よって、実行系のCPUユニットが待機系のCPUユニットの異常を検知したときに、ユーザは、ネットワーク経由で待機系のCPUユニットにアクセスできないので、ユーザは現場に出向かなければならず、復旧作業が完了するまでに時間がかかってしまうという問題があった。
本発明は、通信用ケーブルの非接続側のCPUユニットや、スタンバイ側のCPUユニットに対してもツール装置との間で通信コマンド(コマンド/レスポンス)の送受を行なうことができる二重化コントローラを提供することにある。
上記の目的を達成するため、本発明に係る二重化コントローラは、(1)二重化された2つのCPUユニットを備えた産業用コントローラであって、2つのCPUユニットのうちの少なくとも一方には、通信用ケーブルを接続するための通信ポートを備え、その通信ポートを備えたCPUユニットは、その通信ポートに接続された通信用ケーブルを介してツール装置と通信コマンドの送受を行なう機能を備える。通信ケーブルが接続されるCPUユニットは、ツール装置から送られてきたコマンドフレームの宛先を解析し、自己宛か否かを判断する宛先判断手段と、その宛先判断手段により自己宛と判断した場合には、コマンドフレームで指定される処理を実行するとともに、通信用ケーブルを経由してツール装置にレスポンスを返す機能と、その宛先判断手段により自己宛でないと判断した場合には、受信したコマンドフレームを他のCPUユニットに転送し、その転送した他のCPUユニットからのレスポンスフレームを受信すると、受信したそのレスポンスフレームを通信用ケーブルを経由してツール装置に送る機能と、を備える。通信ケーブルが接続されていないCPUユニットは、通信ケーブルが接続されるCPUユニットから転送されて来たコマンドフレームを受信すると、コマンドフレームで指定される処理を実行する機能と、送信元情報を記録したレスポンスヘッダ部と、その実行結果を格納したレスポンス部を備えたレスポンスフレームを作成し、通信ケーブルが接続されたCPUユニットに送る機能と、を備え、前記2つのCPUユニットは、左右いずれの側に位置しているかの位置情報を記憶保持し、前記ツール装置から送信される通信コマンドのコマンドヘッダ部に格納する宛先情報として、“右宛”か“左宛”かの区別情報を含み、前記宛先判断手段は、記憶保持する自己の位置情報と、前記区別情報とを比較し、受信した通信コマンドが自己宛か否かを判断するようにした。宛先判断手段は、実施形態では、処理ステップS12の分岐判断を実行するMPU21により実現される。また、各機能は、それぞれ図5に示すフローチャートにおける所定の処理ステップを実行するMPU21により実現される。ツール装置は、実施形態では、制御プログラム開発装置3に対応する。
(2)別の解決手段は、通信ネットワークに接続される通信ユニットと、二重化された2つのCPUユニットと、を備え、2つのCPUユニットは、一方がアクティブとなって実際の制御を実行し、他方はスタンバイとなり、通信ユニットはアクティブ側のCPUユニットと通信を行なうよう構成される産業用コントローラを前提とする。アクティブ側のCPUユニットは、ツール装置から通信ユニット経由で送られてきたコマンドフレームの宛先を解析し、自己宛か否かを判断する宛先判断手段と、その宛先判断手段により自己宛と判断した場合には、コマンドフレームで指定される処理を実行するとともに、その実行結果を格納したレスポンス部を備えたツール装置宛のレスポンスフレームを作成し、その作成したレスポンスフレームを前記通信ユニットに送る機能と、その宛先判断手段により自己宛でないと判断した場合には、受信したコマンドフレームをスタンバイ側のCPUユニットに転送し、そのスタンバイ側のCPUユニットからのレスポンスフレームを受信すると、受信したそのレスポンスフレームを通信ユニットに送る機能と、を備える。スタンバイ側のCPUユニットは、アクティブ側のCPUユニットから転送されて来たコマンドフレームを受信すると、コマンドフレームで指定される処理を実行する機能と、送信元情報を記録したレスポンスヘッダ部と、その実行結果を格納したレスポンス部を備えたレスポンスフレームを作成し、アクティブ側のCPUユニットに送る機能と、を備える。そして、通信ユニットは、アクティブ側のCPUユニットから送られてきたレスポンスフレームをツール装置へ送信するように構成し、前記2つのCPUユニットは、左右いずれの側に位置しているかの位置情報を記憶保持し、前記ツール装置から送信される通信コマンドのコマンドヘッダ部に格納する宛先情報として、“右宛”か“左宛”かの区別情報を含み、
前記宛先判断手段は、記憶保持する自己の位置情報と、前記区別情報とを比較し、受信した通信コマンドが自己宛か否かを判断するようにした。宛先判断手段は、実施形態では、処理ステップS42の分岐判断を実行するMPU21により実現される。また、各機能は、それぞれ図6,図7に示すフローチャートにおける所定の処理ステップを実行するMPU21により実現される。ツール装置は、実施形態では、制御プログラム開発装置3に対応する。
上記の(1),(2)の発明は、いずれも2つのCPUユニットは、左右いずれの側に位置しているかの位置情報を記憶保持し、ツール装置から送信される通信コマンドのコマンドヘッダ部に格納する宛先情報として、“右宛”か“左宛”かの区別情報を含み、宛先判断手段は、記憶保持する自己の位置情報と、区別情報とを比較し、受信した通信コマンドが自己宛か否かを判断するようにした。各CPUユニットに位置情報を認識させる仕組みとしては、例えば、各CPUユニットに設定スイッチを設け、コントローラを構成する際にその設置位置を設定スイッチにより設定したり、ツール装置により設定したりすることで対応できる。また、右用/左用のように専用のユニットを設けても良い。更に、下記(3)に示すように、二重化制御ユニットのようにその設置状態を認識し、自動的に各ユニット設定するようにしても良い。さらには、記憶保持するための物理的なメモリはCPUユニットの外部に設け、適宜のタイミングでその外部のメモリにアクセスして現在の自己の状態を認識するようにしても良い。
(3)2つのCPUユニットの間に、アクティブとスタンバイの切り替え制御を行なう二重化制御ユニットを備え、その二重化制御ユニットは、それら2つのCPUユニットが自己の左側と右側のいずれに存在しているかを認識し、その認識結果をそれぞれのCPUユニットに通知することで、各CPUユニットがそれぞれの位置情報を記憶保持するようにするとよい。係る認識処理は、例えば、実施形態のように、各CPUユニットをベースユニットに装着するタイプのコントローラの場合には、各CPUユニットを装着したスロット位置を認識し、いずれのCPUユニットが左側/右側に設置されているかを認識することができる。また、ベースユニットを用いない構成の場合、例えば、二重化制御ユニットの両側面にそれぞれのCPUユニットを連結することで、内部バス・コネクタの接続関係から、CPUユニットの左右を識別することができる。もちろん、他の方式により識別するのを妨げない。
この発明によれば、ユーザは左右どちらのCPUユニットに接続していても、アクティブ・スタンバイ両方にアクセスができるようになる。したがって、アクティブ・スタンバイを意識する必要はなくなり、右側でも左側でもどちらか一方のCPUユニットに接続すれば、途中で通信用ケーブルをつなぎかえる必要がなくなるため、デバッグ作業やトラブルシュートにおける手間が軽減される。また、通信ユニットを経由する場合でも左右両方のCPUユニットにアクセスできるので、アクティブ・スタンバイ両方の状態を遠隔地から確認することが可能となる。また、上記の(3)から(6)に示す各発明は、1つの産業用コントローラに対し、適宜の組み合わせにより組み込むとよい。
本発明では、通信用ケーブルの非接続側のCPUユニットや、スタンバイ側のCPUユニットに対しても、接続側のCPUユニットやアクティブ側のCPUユニットがコマンドフレームやレスポンスフレームを適宜転送するので、ツール装置との間で通信コマンド(コマンド/レスポンス)の送受を行なうことができる。
図1に示すように、本実施形態のPLC10は、複数のユニットを連結して構成されるビルディングブロックタイプである。図では、2つの電源ユニット11,11と、第1,第2CPUユニット12,12′と、二重化制御ユニット13と、通信ユニット14と、を示しているが、必要に応じて、I/Oユニット(入力ユニット、出力ユニット、入出力ユニットなど)や、高機能ユニット等も連結される。また、本実施形態では、これら各ユニットは、ベースユニット15に設けられた各スロットに装着することで、そのベースユニット15内に配線された内部バスを介してデータ通信を行なう。電源ユニット11からの各ユニットへの電源供給は、ベースユニット15内に配線された電源ラインを利用して行なう。また、2つのCPUユニット12,12′と、二重化制御ユニット13とを装着するスロット位置は決まっているが、他のユニットは任意のスロットに装着することができるようになっている。
電源ユニット11は、1つのベースユニット15上に2台装着する。これにより、一方の電源ユニットが故障してもシステム全体がダウンしないような構成としている。通信ユニット14は、通信ネットワーク2に接続された他の装置・機器と通信を行なうもので、本実施形態との関係でいうと、制御プログラム開発装置3等のツール装置との間で、通信コマンドのやりとりを行う。
第1,第2CPUユニット12,12′は、同一のユーザプログラムを実行するもので、実際のシステム稼動時には、何れか一方が実行系(アクティブ)となり、他方が待機系(スタンバイ)となる。そして、アクティブ側となったCPUユニットが行なったユーザプログラムの演算結果が、実際の制御に反映される。また、スタンバイ側のCPUユニットも同一のユーザプログラムは実行されるが、その実行結果はI/Oメモリの所定のエリアに書き込まれるだけで出力ユニットを介して外部の出力機器へは出力されない。さらに、スタンバイ側のCPUユニットは、アクティブ側のCPUユニットから実行結果を受け取り、自己のメモリの更新などの所定の処理を実行する。これにより、スタンバイ側のCPUユニットは、アクティブ側のCPUユニットと同じ状態を維持する。従って、アクティブ側のCPUユニットが異常によりダウンした場合には、直ぐにスタンバイ側であったCPUユニットがアクティブ側に切り替わり、制御動作を実行することができる。
また第1,第2CPUユニット12,12′は、RS232C等の通信ポート12aを有しており、その通信ポート12aに制御プログラム開発装置3に接続された通信用ケーブル1の一端のコネクタを装着することで、制御プログラム開発装置3との間で通信コマンドの送受を行なう。
図2,図3は、第1,第2CPUユニット12,12′の内部構造を示している。両CPUユニット12,12′とも、ハードウェア構成は同じである。すなわち、第1,第2CPUユニット12,12′は、MPU21と、ASIC22と、メモリ23と、シリアルインタフェース24と、を備える。MPU21とASIC22は、ユーザプログラムをサイクリックに演算実行し、ネットワークシステムを構成する各機器の制御等を司る。また、MPU21は、ネットワークに接続された他の装置・機器に対してメッセージを送り、当該装置・機器に記憶保持された情報を収集したり、制御プログラム開発装置3からの要求に従い、メモリ23の記憶情報を読み書きしたりする。
メモリ23は、より具体的には、図3に示すように、MPU21が演算実行する際に使用するワークメモリ(WRAM)23aと、ユーザプログラムを格納するユーザメモリ(UM)23bと、I/Oデータとパラメータを格納するI/Oメモリ(IOM)23cと、システムソフトウェアを格納するフラッシュメモリ(SROM)23dと、ユーザプログラムをバックアップするためのバックアップメモリ(B−UM)23eと、を備える。バックアップメモリ23eは、フラッシュメモリで構成されるため、電源OFF時もその内容を保持する。ユーザメモリ23bは、SRAMで構成され、電源OFF時は内容を保持することができないので、電源ON時にバックアップメモリ23eからデータが転送されることでユーザプログラムを記憶保持する。I/Oメモリ23cは、SRAMで構成されるが、電源OFF時はバッテリにより内容が保持される。
また、本発明との関係でいうと、ワークメモリ23aには、自己がアクティブとスタンバイのいずれであるかの識別情報と、設置位置情報(二重化制御ユニット13の左側/右側)が格納される。これらの情報は、二重化制御ユニット13からの指令に基づきMPU21がワークメモリ23aの該当領域に書き込むことで記憶される。いずれもフラグで管理される。第1,第2CPUユニット12,12′は、ワークメモリ23aの該当領域を確認することで、現在、アクティブとスタンバイのいずれであるかを認識し、それに応じた動作を行なう。また、MPU21は、自己のユニットで異常が発生した場合、二重化制御ユニット13に対してその旨を通知する機能を備える。また、第1,第2CPUユニット12,12′は、ベースユニット15に装着した際或いは電源投入時に、自己の存在を二重化制御回路13aに通知する機能を備える。なお、上述した構成は、基本的に従来のものと同様である。
二重化制御ユニット(DPLユニット)13は、第1,第2CPUユニット12,12′間のバス制御や、運転中の表示、アクティブ/スタンバイの切り替えなどを行なう。図2に示すように、二重化制御ユニット13は、二重化制御回路13aと、二重化ポート13bと、ディップスイッチ13cを備える。ディップスイッチ13cは、初期設定として起動時にどちらのCPUユニットをアクティブにするかを指定するスイッチである。
二重化制御回路13aは、第1,第2CPUユニット12,12′からの通知(ベースユニット15に接続されていることの通知)を受信することで、ベースユニット15のどのスロットにどのCPUユニットが接続されているかを認識することで、第1,第2CPUユニット12,12′がそれぞれ自己の左右いずれの側にいるかを認識し、二重化ポート13b、内部バス15aを介して、それぞれのCPUユニットに対して、設置位置情報(左側/右側)を通知する。更に二重化制御回路13aは、ディップスイッチ13cの状態を認識し、第1,第2CPUユニット12,12′(左右のCPUユニット)のいずれが初期状態でアクティブ/スタンバイになるかを認識し、二重化ポート13b、内部バス15aを介して、それぞれのCPUユニットに対して初期状態でいずれの状態になるかを通知する。これらの通知を受信した各CPUユニット12,12′は、ワークメモリ23aの所定領域にその状態を書き込む。
また、運転開始後は、上述したように各CPUユニットは、自己が故障・異常を生じたことを認識するとその旨を二重化制御ユニット13に通知してくるので、アクティブ側のCPUユニットから係る通知を受けた二重化制御回路13aは、アクティブとスタンバイを切り替えるべく、各CPUユニットのワークメモリ23aに格納された識別情報(アクティブ/スタンバイ)をそれぞれ書き替える要求を発行する。これを受けて、各CPUユニットのMPU21は、識別情報の書き替え更新をし、以後、スタンバイ側であったCPUユニットはアクティブ側に切り替わって動作する。また、アクティブ側であったCPUユニットはスタンバイ側になる。なお、これらの構成は、基本的に従来のものと同様である。
ここで本実施形態では、通信用ケーブルを接続していないCPUユニットや、スタンバイ側のCPUユニットに対しても制御プログラム開発装置3がアクセスすることができるようにするために、以下のように構成した。
まず、通信コマンドは、図4に示すフォーマットで構成されるようにした。まず、図4(a)に示すように、コマンドフレームは、コマンドヘッダ部とコマンド部と、を備える。コマンドヘッダ部には、宛先情報と送信元情報を含む。宛先情報には、宛先のアドレスを示す宛先アドレス情報と、PLCを構成する二つのCPUユニットの何れに接続するかを指定する区別情報が含まれる。宛先アドレス情報は、ネットワークアドレス、ノードアドレス、ユニットNO等から構成される。また、区別情報には、“接続先宛”、“非接続先宛”、“右宛”、“左宛”、“アクティブ宛”、“スタンバイ宛”のいずれかを特定する情報が含まれている。送信元情報には、送信元のアドレスを示す情報を付加する。アドレスを示す情報としては、ネットワークアドレス、ノードアドレス、ユニットNO等から構成される。
これにより、二重化された二つのCPUユニットを備えるPLCに対する宛先の指定は、通信用ケーブル1を接続した場合には、接続先宛/非接続先宛、右宛/左宛、アクティブ宛/スタンバイ宛の何れかの指定ができるようになる。また、ネットワーク接続により、通信ユニット14経由でCPUユニットにアクセスする場合、右宛/左宛、アクティブ宛/スタンバイ宛の何れかの指定ができるようになる。
コマンド部には、コマンド送信先のPLCが実行する処理の大分類を表す“コマンドコード”と、“コマンドに付随する情報”が格納される。つまり、具体的な処理内容を表すパラメータが、コマンド部に格納される。コマンドを受信したPLC(CPUユニット)は、このコマンド部に格納されている情報に従って処理を実行する。
一方、上記のコマンドを受信したCPUユニットから返信されるレスポンスフレームは、図4(b)に示すフォーマットで構成されるように、レスポンスヘッダ部とレスポンス部と、を備えるようにした。レスポンスヘッダ部には、コマンドヘッダ部と同様に宛先情報と送信元情報が含まれる。レスポンスヘッダ部の宛先情報に含まれる宛先アドレス情報には、レスポンスの最終的な送信先のアドレスを示す情報(コマンドヘッダ部の送信元情報)が格納される。レスポンスヘッダ部の宛先情報に含まれる区別情報には、コマンドヘッダ部の区別情報と同じものが格納される。また、レスポンスヘッダ部の送信元情報には、このレスポンスフレームの送信元を特定する情報が格納される。この宛先アドレス情報に従って、目的のプログラム開発装置3に送信される。
レスポンス部には、先に受信したコマンド部に格納されている情報に従ってCPUユニットが実行した結果が格納される。具体的には、PLCが実行したコマンドを表す“コマンドコード”と、正常/異常終了などの実行結果を表す“終了コード”と、CPUユニットのメモリから取得したデータが格納される“パラメータ”と、を備える。
上記のフォーマットからなるコマンド/レスポンスを用い、二重化PLCにおいて、通信用ケーブルを右側、もしくは左側のCPUユニットに接続したままで、接続し直すことなく両方のCPUユニットにアクセスできるようにするため、各CPUユニット12,12′のMPU21に、図5に示すフローチャートを実行する機能を備えた。
まず、制御プログラム開発装置3は、キーボードやポインティングデバイス等の入力装置を操作して行なわれるユーザ受付処理を実行する(S1)。つまり、ユーザは、入力装置を操作し、処理対象とするコマンドの送信先が、ケーブル接続側か非接続側か、あるいは右側のCPUユニットか左側のCPUユニットか、あるいはアクティブ側のCPUユニットかスタンバイ側のCPUユニットかを選択する。そこで、制御プログラム開発装置3は、上記の宛先の選択画面(図示省略)を表示し、入力を受け付ける。
次いで、制御プログラム開発装置3は、ユーザが指定した接続先がケーブル接続側か非接続側か、あるいは右側CPUユニットか左側CPUユニットか、あるいはアクティブ側のCPUユニットかスタンバイ側のCPUユニットかを解析する(S2)。そして、制御プログラム開発装置3は、解析結果に基づき、宛先情報、送信元情報を含むコマンドヘッダ部と、コマンド部を備える通信コマンドを作成する(S3)。
制御プログラム開発装置3は、通信用ケーブル1に接続されたCPUユニットに対し、通信コマンドを送信する(S4)。図1,図2に示す例では、制御プログラム開発装置3は、第1CPUユニット12に対して通信コマンドを送信する。
通信用ケーブル1が接続されたCPUユニット(図では、第1CPUユニット12)は、制御プログラム開発装置3から通信コマンドを受信すると(S11)、通信コマンドの宛先解析処理を実行する(S12)。つまり、コマンドヘッダ部に格納された宛先情報を抽出し、ユーザが指定した接続先が自機宛(自己宛)か他機宛(もう一方のCPUユニット宛))かを解析する。具体的には、まず、コマンドヘッダ部の宛先情報に含まれる宛先アドレス情報を抽出する。抽出した宛先アドレス情報のネットワークアドレスが「0」、ノードアドレスが「0」、ユニットNOが「0」の場合は、CPUユニット宛のコマンドフレームであると判断し、続いて、どちらのCPUユニット宛かを判断するために宛先情報に含まれる区別情報を抽出する。抽出した区別情報が“接続先宛”、“非接続先宛”、“右宛”、“左宛”、“アクティブ宛”、“スタンバイ宛”のいずれかであるかを認識し、“接続先宛”か“右宛”の場合には自機宛と判断し、“非接続先宛”か“左宛”の場合には他機宛と判断する。当然のことながら、第2CPUユニット12′に通信用ケーブル1が接続されている場合には、処理ステップS12の処理は、“接続先宛”か“左宛”の場合には自機宛と判断し、“非接続先宛”か“右宛”の場合には他機宛と判断する。区別情報が“アクティブ宛”または“スタンバイ宛”の場合は、自機がアクティブであるかスタンバイであるかに基づいて通信コマンドを自機宛か他機宛かを判断する。
自機宛の場合、ケーブルが接続されたCPUユニットは、受信した通信コマンドのコマンド部に格納されている情報に従って処理を実行し(S13)、その処理結果に伴いレスポンスフレームを作成し、接続されている制御プログラム開発装置3に向けて、当該レスポンスフレームを送信する(S14)。このレスポンスフレームのレスポンスヘッダには、“接続先宛”、“右宛”、自機がアクティブなら“アクティブ宛”、自機がスタンバイなら“スタンバイ宛”のいずれか(受信した通信コマンドのコマンドヘッダ部に格納された宛先情報と同じもの)が格納される。
一方、処理ステップS12の分岐判断で、宛先が他機宛と判断した場合、ケーブル接続側のCPUユニットは、ケーブル非接続側のCPUユニット(図1,図2では、第2CPUユニット12′)に向けて、通信コマンドを転送する(S15)。つまり、ケーブル接続側のCPUユニットは、CPUユニット間のバス(内部バス15a或いは専用バス)を介して他機へCPUユニット間I/Fコマンドとして転送する。その後、ケーブル接続側のCPUユニットは、ケーブル非接続側のCPUユニットからのレスポンスを待つ。
また、ケーブル非接続側のCPUユニットは、転送されてきた通信コマンドを受信すると(S21)、受信した通信コマンドのコマンド部に格納されている情報に従って処理を実行し(S22)、その処理結果に伴いレスポンスフレームを作成し、当該レスポンスフレームをケーブル接続側のCPUユニットに送信する(S23)。このレスポンスフレームのレスポンスヘッダ部には、“非接続先宛”、“左宛”、自機がアクティブなら“アクティブ宛”、自機がスタンバイなら“スタンバイ宛”(第2CPUユニットの場合:以下同じ)のいずれか(受信した通信コマンドのコマンドヘッダ部に格納された宛先情報と同じもの)が格納される。
ケーブル接続側のCPUユニットは、処理ステップS23の実行により送られてきたレスポンスフレームを受信したならば(S16)、処理ステップS14に進み、受信したレスポンスフレームを接続された制御プログラム開発装置3に送信する(S14)。このとき送信するレスポンスフレームは、ケーブル非接続側のCPUユニットが接続したものであるので、そのレスポンスヘッダ部には、非接続側のCPUユニットを特定する送信元情報である“非接続先宛”、“左宛”、自機がアクティブなら“アクティブ宛”、自機がスタンバイなら“スタンバイ宛”のいずれか(受信した通信コマンドのコマンドヘッダ部に格納された宛先情報と同じもの)が格納される。
制御プログラム開発装置3は、ケーブル接続側のCPUユニットから送られてくるレスポンスを受信すると(S5)、そのレスポンスの終了コードから正常/異常終了を判断し、S3で作成した通信コマンドに対する実行結果を表示装置に表示する(S6)。つまり、制御プログラム開発装置3は、正常終了の場合にはレスポンス部に格納された情報を表示し、異常終了の場合にはその旨を表示する。制御プログラム開発装置3は、ケーブル接続側のCPUユニットから受信したレスポンスであっても、そのレスポンスヘッダを解析することで、いずれのCPUユニットからのレスポンスであるかを認識できる。
図6,図7は、制御プログラム開発装置3が、通信ネットワーク2経由で通信ユニット14に接続されている場合における、所定CPUユニット対するコマンド/レスポンスを送受するための機能を示している。各ユニットのMPUが、対応するフローチャートの処理ステップを実行する機能を備える。通信ユニットは、アクティブ側のCPUユニットとのみ通信ができるので、アクティブ側のCPUユニットが、図5におけるケーブル接続側のCPUユニットと同様の処理を実行し、スタンバイ側のCPUユニットが図5におけるケーブル非接続側のCPUユニットと同様の処理を実行する。つまり、スタンバイ側のCPUユニット宛の通信コマンドは、アクティブ側のCPUユニット経由で伝わり、そのスタンバイ側のCPUユニットからのレスポンスは、アクティブ側のCPUユニット経由で通信ユニットに転送され、通信ネットワーク経由で制御プログラム開発装置3に伝えられる。
具体的には、まず、制御プログラム開発装置3は、キーボードやポインティングデバイス等の入力装置を操作して行なわれるユーザ受付処理を実行する(S1)。次いで、制御プログラム開発装置3は、ユーザが指定した接続先が右側CPUユニットか左側CPUユニットか、あるいはアクティブ側CPUユニットかスタンバイ側CPUユニットかを解析する(S2)。そして、制御プログラム開発装置3は、解析結果に基づき、宛先情報、送信元情報を含むコマンドヘッダ部と、コマンド部からなる通信コマンドを作成する(S3)。制御プログラム開発装置3は、通信ネットワーク2に通信コマンドを送信する(S4′)。
この送信された通信コマンドは、通信ネットワーク経由で通信ユニット14が受信する。そこで、通信ユニットは、受信した通信コマンドをアクティブ側のCPUユニットに対して内部バス15a経由で送信する(S31)。そして、その通信コマンドに対するレスポンスを待つ。
アクティブ側のCPUユニットは、通信ユニットから通信コマンドを受信すると(S41)、通信コマンドの宛先解析処理を実行する(S42)。つまり、コマンドヘッダ部に格納された宛先情報を抽出し、ユーザが指定した接続先が自機宛か他機宛を解析する。具体的には、まず、コマンドヘッダ部の宛先情報に含まれる宛先アドレス情報を抽出する。抽出した宛先アドレス情報のネットワークアドレスとノードアドレスの組み合わせが自ノードであり、かつ、ユニットNOが「0」の場合は、自ノードのCPUユニット宛のコマンドフレームであると判断し、続いて、どちらのCPUユニット宛かを判断するために宛先情報に含まれる区別情報を抽出する。抽出した区別情報が“接続先宛”、“非接続先宛”、“右宛”、“左宛”、“アクティブ宛”、“スタンバイ宛”のいずれかであるかを認識し、“アクティブ宛”か“自己の特定する位置情報(右宛 or 左宛)”の場合には自機宛と判断し、“スタンバイ宛”か“自己の位置宛でない”の場合には他機宛と判断する。なお、通信ネットワーク経由の場合は、制御プログラム発支援装置3のユーザが指定する接続先としては、ケーブル接続側か非接続側かの指定はないため通信コマンドの宛先情報を構成する区別情報に“接続先宛”や“非接続先宛”は格納されない。
自機宛の場合、アクティブ側のCPUユニットは、受信した通信コマンドのコマンド部に格納されている情報に従って処理を実行し(S43)、その処理結果に伴いレスポンスフレームを作成し、アクティブの通信ユニットに対し、当該レスポンスフレームを送信する(S44)。このレスポンスフレームのレスポンスヘッダには、“アクティブ宛”,“(右宛 or 左宛)”のいずれか(受信した通信コマンドのコマンドヘッダ部に格納された宛先情報と同じもの)が格納される。
一方、処理ステップS42の分岐判断で、宛先が他機宛と判断した場合、アクティブ側のCPUユニットは、スタンバイ側のCPUユニットに向けて、通信コマンドを転送する(S45)。つまり、アクティブ側のCPUユニットは、CPUユニット間のバス(内部バス15a或いは専用バス)を介してスタンバイ側のCPUユニットへCPUユニット間I/Fコマンドとして転送する。その後、アクティブ側のCPUユニットは、スタンバイ側のCPUユニットからのレスポンスを待つ。
また、スタンバイ側のCPUユニットは、転送されてきた通信コマンドを受信すると(S51)、受信した通信コマンドのコマンド部に格納されている情報に従って処理を実行し(S52)、その処理結果に伴いレスポンスフレームを作成し、当該レスポンスフレームをアクティブ側のCPUユニットに送信する(S53)。このレスポンスフレームのレスポンスヘッダ部には、“スタンバイ宛”か“位置情報を特定する右宛/左宛”のいずれか(受信した通信コマンドのコマンドヘッダ部に格納された宛先情報と同じもの)が格納される。
アクティブ側のCPUユニットは、処理ステップS53の実行により送られてきたレスポンスフレームを受信したならば(S56)、処理ステップS44に進み、受信したレスポンスフレームを通信ユニットに送信する(S54)。このとき送信するレスポンスフレームは、スタンバイ側のCPUユニットが接続したものであるので、そのレスポンスヘッダ部には、スタンバイ側のCPUユニットを特定する送信元情報が格納されている。
通信ユニット14は、アクティブ側のCPUユニットから送られてくるレスポンスフレームを受信したならば、当該レスポンスフレームを通信ネットワーク経由で制御プログラム開発装置3に向けて送信する(S32)。
制御プログラム開発装置3は、通信ネットワーク経由で送られてくるレスポンスを受信すると(S5′)、そのレスポンスの終了コードから正常/異常終了を判断し、S3で作成した通信コマンドに対する実行結果を表示装置に表示する(S6)。つまり、制御プログラム開発装置3は、正常終了の場合にはレスポンス部に格納された情報を表示し、異常終了の場合にはその旨を表示する。制御プログラム開発装置3は、ケーブル接続側のCPUユニットから受信したレスポンスであっても、そのレスポンスヘッダを解析することで、いずれのCPUユニットからのレスポンスであるかを認識できる。
なお、アクティブ・スタンバイが入れ替わっても各CPUユニットの位置(右/左)は変わらないので、通信コマンドに右宛、左宛という情報を付加することでアクティブ・スタンバイに関わらず特定のCPUユニットにアクセスすることが可能になり、必ず両方のPLCの情報を取得することができる。このように、右宛/左宛、アクティブ宛/スタンバイ宛という二種類の宛先指定を準備することで、ユーザはCPUユニットの位置を意識したアクセスと、アクティブ・スタンバイを意識したアクセスの2通りのアクセスが可能となる。
本発明の好適な一実施形態を示す図である。 CPUユニット並びに二重化制御回路の内部構成を示すブロック図である。 CPUユニットの内部構成を示すブロック図である。 コマンドフレーム並びにレスポンスフレームのフォーマットの一例を示す図である。 主にCPUユニットのMPUの機能を説明するフローチャートである。 主にCPUユニットのMPUの機能を説明するフローチャート(その1)である。 主にCPUユニットのMPUの機能を説明するフローチャート(その2)である。
符号の説明
1 通信用ケーブル
2 通信ネットワーク
3 制御プログラム開発装置(ツール装置)
10 PLC
12 第1CPUユニット
12a 通信ポート
12′ 第2CPUユニット
13 二重化制御ユニット
14 通信ユニット

Claims (3)

  1. 二重化された2つのCPUユニットを備えた産業用コントローラであって、
    前記2つのCPUユニットのうちの少なくとも一方には、通信用ケーブルを接続するための通信ポートを備え、
    その通信ポートを備えたCPUユニットは、その通信ポートに接続された通信用ケーブルを介してツール装置と通信コマンドの送受を行なう機能を備え、
    前記通信ケーブルが接続されるCPUユニットは、
    前記ツール装置から送られてきたコマンドフレームの宛先を解析し、自己宛か否かを判断する宛先判断手段と、
    その宛先判断手段により自己宛と判断した場合には、コマンドフレームで指定される処理を実行するとともに、前記通信用ケーブルを経由して前記ツール装置にレスポンスを返す機能と、
    その宛先判断手段により自己宛でないと判断した場合には、受信したコマンドフレームを他のCPUユニットに転送し、その転送した他のCPUユニットからのレスポンスフレームを受信すると、受信したそのレスポンスフレームを前記通信用ケーブルを経由して前記ツール装置に送る機能と、
    を備え、
    前記通信ケーブルが接続されていないCPUユニットは、
    前記通信ケーブルが接続されるCPUユニットから転送されて来たコマンドフレームを受信すると、コマンドフレームで指定される処理を実行する機能と、
    送信元情報を記録したレスポンスヘッダ部と、その実行結果を格納したレスポンス部を備えたレスポンスフレームを作成し、前記通信ケーブルが接続されたCPUユニットに送る機能と、
    を備え、
    前記2つのCPUユニットは、左右いずれの側に位置しているかの位置情報を記憶保持し、
    前記ツール装置から送信される通信コマンドのコマンドヘッダ部に格納する宛先情報として、“右宛”か“左宛”かの区別情報を含み、
    前記宛先判断手段は、記憶保持する自己の位置情報と、前記区別情報とを比較し、受信した通信コマンドが自己宛か否かを判断するようにしたことを特徴とする二重化コントローラ。
  2. 通信ネットワークに接続される通信ユニットと、二重化された2つのCPUユニットと、を備え、
    前記2つのCPUユニットは、一方がアクティブとなって実際の制御を実行し、他方はスタンバイとなり、前記通信ユニットは前記アクティブ側のCPUユニットと通信を行なうよう構成される産業用コントローラであって、
    前記アクティブ側のCPUユニットは、
    ツール装置から前記通信ユニット経由で送られてきたコマンドフレームの宛先を解析し、自己宛か否かを判断する宛先判断手段と、
    その宛先判断手段により自己宛と判断した場合には、コマンドフレームで指定される処理を実行するとともに、その実行結果を格納したレスポンス部を備えた前記ツール装置宛のレスポンスフレームを作成し、その作成したレスポンスフレームを前記通信ユニットに送る機能と、
    その宛先判断手段により自己宛でないと判断した場合には、受信したコマンドフレームを前記スタンバイ側のCPUユニットに転送し、そのスタンバイ側のCPUユニットからのレスポンスフレームを受信すると、受信したそのレスポンスフレームを、前記通信ユニットに送る機能と、
    を備え、
    前記スタンバイ側のCPUユニットは、
    前記アクティブ側のCPUユニットから転送されて来たコマンドフレームを受信すると、コマンドフレームで指定される処理を実行する機能と、
    送信元情報を記録したレスポンスヘッダ部と、その実行結果を格納したレスポンス部を備えたレスポンスフレームを作成し、前記アクティブ側のCPUユニットに送る機能と、
    を備え、
    前記通信ユニットは、前記アクティブ側のCPUユニットから送られてきたレスポンスフレームを前記ツール装置へ送信するように構成し、
    前記2つのCPUユニットは、左右いずれの側に位置しているかの位置情報を記憶保持し、
    前記ツール装置から送信される通信コマンドのコマンドヘッダ部に格納する宛先情報として、“右宛”か“左宛”かの区別情報を含み、
    前記宛先判断手段は、記憶保持する自己の位置情報と、前記区別情報とを比較し、受信した通信コマンドが自己宛か否かを判断するようにした
    ことを特徴とする二重化コントローラ。
  3. 前記2つのCPUユニットの間に、アクティブとスタンバイの切り替え制御を行なう二重化制御ユニットを備え、
    その二重化制御ユニットは、それら2つのCPUユニットが自己の左側と右側のいずれに存在しているかを認識し、その認識結果をそれぞれのCPUユニットに通知することで、各CPUユニットがそれぞれの位置情報を記憶保持するようにしたことを特徴とする請求項1または2に記載の二重化コントローラ。
JP2008064599A 2008-03-13 2008-03-13 二重化コントローラ Active JP5088490B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008064599A JP5088490B2 (ja) 2008-03-13 2008-03-13 二重化コントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064599A JP5088490B2 (ja) 2008-03-13 2008-03-13 二重化コントローラ

Publications (2)

Publication Number Publication Date
JP2009223418A JP2009223418A (ja) 2009-10-01
JP5088490B2 true JP5088490B2 (ja) 2012-12-05

Family

ID=41240161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064599A Active JP5088490B2 (ja) 2008-03-13 2008-03-13 二重化コントローラ

Country Status (1)

Country Link
JP (1) JP5088490B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103282845B (zh) * 2011-12-27 2016-04-06 三菱电机株式会社 电源装置
JP6984199B2 (ja) * 2017-07-07 2021-12-17 オムロン株式会社 制御システム、および、制御方法
JP7176204B2 (ja) 2018-03-12 2022-11-22 オムロン株式会社 演算ユニット、および制御装置
JP7143600B2 (ja) 2018-03-12 2022-09-29 オムロン株式会社 制御装置
JP2021105792A (ja) * 2019-12-26 2021-07-26 アズビル株式会社 コントローラ及び施設監視システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05244164A (ja) * 1992-02-28 1993-09-21 Fujitsu Ltd 二重化システムにおけるネットワーク識別子の動的割当て方式
JP3642594B2 (ja) * 1995-01-10 2005-04-27 オムロン株式会社 開発支援装置
JP3946312B2 (ja) * 1997-07-15 2007-07-18 富士電機ホールディングス株式会社 Pcのリモート支援システム及びその方法
JP3550677B2 (ja) * 1998-05-29 2004-08-04 オムロン株式会社 パーソナルコンピュータ、およびパーソナルコンピュータの通信方法
JP2004326531A (ja) * 2003-04-25 2004-11-18 Mitsubishi Electric Corp プログラマブルコントローラ及びプログラマブルコントローラの多重化システム
JP2006260607A (ja) * 2003-09-26 2006-09-28 Omron Corp プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法

Also Published As

Publication number Publication date
JP2009223418A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
US10019303B2 (en) Method for error monitoring, control and data transmission installation and control device
JP4220979B2 (ja) 制御装置の表示システム
JP3925660B2 (ja) 通信マスタ局の起動時制御方法
JP5088490B2 (ja) 二重化コントローラ
JP2003099102A (ja) 設定機能性、障害分離機能性、および冗長障害援助機能性を有する入出力デバイス
JP4888718B2 (ja) 分散型制御システム
US7246270B2 (en) Programmable controller with CPU and communication units and method of controlling same
JP2002237823A (ja) プロセス制御システムにおける冗長装置
RU2510932C2 (ru) Система автоматизации и способ управления системой автоматизации
JP5000620B2 (ja) プロセス制御システム
JP4001093B2 (ja) プログラマブルコントローラおよび二重化ネットワークシステム
JPWO2020090032A1 (ja) 通信システム、通信装置及びプログラム
KR20110123168A (ko) Hmi 이중화 장치
JP2006277733A (ja) プログラマブル・コントローラ・システム
JP2013168090A (ja) マルチコントローラシステム、制御方法及びプログラム
JP4788597B2 (ja) プログラマブルコントローラ二重化システム
CN111213344B (zh) 用于操作自动化技术设施的方法
JP4161620B2 (ja) プログラマブルコントローラ
JP4407838B2 (ja) 通信マスタ局の起動時制御方法
JP2007295608A (ja) プログラマブルコントローラおよび二重化ネットワークシステム
JP4809026B2 (ja) 電動開閉装置の制御システム
JP5900621B2 (ja) システムおよびシステムの制御方法
WO2013054725A1 (ja) コントローラ、監視ユニット、およびシーケンスプログラム更新方法
JP2737480B2 (ja) 二重化通信制御装置の切り替え方法及び装置
JP2000132210A (ja) 制御装置及び協調制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120314

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120815

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120828

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5088490

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150