(58)【調査した分野】(Int.Cl.,DB名)
前記支援装置が、前記送信された識別情報と順序情報とを用いて前記複数のスレーブ装置からなるシステムの構成が予め指定された構成であると判断したことを条件に、前記制御手段は、前記支援装置から各前記設定情報を取得する、請求項1に記載の通信カプラ。
【発明を実施するための形態】
【0019】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0020】
<A.PLCシステムの全体構成>
本実施の形態に係るPLC(Programmable Logic Controller)は、モータの運動を制御するためのモーション制御機能を有する。まず、
図1を参照して、本実施の形態に係るPLC1のシステム構成について説明する。
【0021】
図1は、本発明の実施の形態に係るPLCシステムの概略構成を示す模式図である。
図1を参照して、PLCシステムSYSは、PLC1と、PLC1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10などを介してPLCサポート装置8が接続される。
【0022】
メイン装置であるPLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。
【0023】
IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
【0024】
特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
【0025】
フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用のイーサネット(登録商標)を用いることができる。
【0026】
なお、
図1には、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボモータドライバ3をPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行なうようにしてもよい。
【0027】
サーボモータドライバ3は、フィールドネットワーク2を介してCPUユニット13と接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4を駆動する。より具体的には、サーボモータドライバ3は、PLC1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ3は、サーボモータ4の軸に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、トルクといったサーボモータ4の動作に係る実測値を取得する。そして、サーボモータドライバ3は、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ3は、実測値が目標値に近づくようにサーボモータ4を駆動するための電流を調整する。なお、サーボモータドライバ3は、サーボモータアンプと称されることもある。
【0028】
また、
図1には、サーボモータ4とサーボモータドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【0029】
図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行なうための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、以下に説明するように、システムバス(内部バス)であるリモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
【0030】
通信カプラ52は、主として、IOユニット53の動作(IOデータの更新タイミングなど)を制御するとともに、PLC1との間のデータ伝送を制御する。通信カプラ52は、PLC1のCPUユニット13とフィールドネットワーク2を介して接続されている。通信カプラ52の詳細については、後述する。
【0031】
IOユニット53は、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当する。また、IOユニット53は、通信カプラ52とリモートIOターミナルバス51を介してデータ伝送する機能に加えて、一般的な入出力処理の機能を有する。典型的には、IOユニット53は、オン/オフといった2値化されたデータを入力/出力する。例えば、IOユニット53は、検出センサから、何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット53は、リレーやアクチュエータといった出力先に対して、アクティブ化(活性化)するための指令(オン)および非アクティブ化(非活性化)するための指令(オフ)のいずれかを与える。
【0032】
なお、リモートIOターミナル5は、通信カプラ52および1つ以上のIOユニット53以外にも、通信カプラのスレーブ装置としての他の種別のユニット(特殊ユニット、モーションユニット、通信用のユニット)を備えていてもよい。ただし、以下では、説明の便宜上、リモートIOターミナル5が、通信カプラ52と1つ以上のIOユニット53とを含み、上記他の種別のユニットを含まないものとして説明する。
【0033】
<B.処理の概要>
(b1.設定情報の引き継ぎ)
通信ユニットである通信カプラ52は、リモートIOターミナル5においてマスタ装置として機能し、予め定められた設定情報に基づいて動作するIOユニット53とリモートIOターミナルバス51によって通信可能に接続されている。通信カプラ52は、各IOユニット53用の設定情報を格納する。通信カプラ52は、通信カプラ52が各IOユニット53と通信可能な状態になると、格納された各設定情報を、対応するIOユニット53に送信する。「通信カプラ52が各IOユニット53と通信可能な状態になる」ときとしては、たとえば、通信カプラ52に対して給電が開始されたとき、あるいは、通信カプラ52をリセットするための指示が通信カプラ52に入力されたときが挙げられる。なお、以下では、通信カプラ52が各IOユニット53と通信可能な状態になった場合として、通信カプラ52に対して給電が開始されたときを例に挙げて説明する。
【0034】
上記の構成によれば、各IOユニット53は、通信カプラ52に対して給電が開始されると、通信カプラ52から設定情報を受信することができる。つまり、通信カプラ52とシステムバスであるリモートIOターミナルバス51によって接続されたIOユニット53の設定情報を、マスタ装置の起動の都度、IOユニット53において設定可能となる。
【0035】
さらに、通信カプラ52に給電がなされていない場合においては、各IOユニット53は、設定情報を記憶しておく必要がない。つまり、各IOユニット53は、常に、自ユニットの設定情報を記憶しておく必要がなくなる。
【0036】
より具体的には、通信カプラ52は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、各設定情報を対応するIOユニット53に送信する。なお、各設定情報は、各IOユニット53の設定値を記述したものである。
【0037】
(b2.設定情報の引き継ぎを許可するための条件)
通信カプラ52は、IOユニット53毎の各設定情報を含む、複数のIOユニット53からなるシステムの構成を表したユニット構成情報D60(
図6参照)を少なくとも格納する。より正確には、通信カプラ52は、IOユニット53毎の各設定情報を含む、通信カプラ52と複数のIOユニット53とからなるシステムの構成を表したシステム構成情報(図示せず)を少なくとも格納する。
【0038】
通信カプラ52は、格納された各設定情報を、対応するIOユニット53に送信する機能を有する。通信カプラ52は、通信カプラ52に対して給電が開始されると、各IOユニット53の識別情報を各IOユニット53装置から取得する。また、通信カプラ52は、リモートIOターミナルバス51における各IOユニット53の接続順序を検出する。さらに、通信カプラ52は、各識別情報と接続順序とに基づいて、システムの構成が構成情報に基づいた構成となっているかを判断する。通信カプラ52は、システム構成が構成情報に基づいた構成となっていると判断すると、各IOユニット53に対して当該IOユニット53の設定情報を送信し、各IOユニット53に予め定められた処理を開始させる。当該予め定められた処理は、たとえば、IOユニット53に通信接続された外部装置との間の入出力処理である。なお、識別情報の詳細については、後述する(
図6の識別情報D61)。
【0039】
上記の構成によれば、PLCシステムSYSのユーザによって、IOユニット53の接続順序が変更されたり、あるいはIOユニット53が識別情報(詳しくは、製品コード(商品型式)およびシリアル番号)が異なるIOユニットに置換されたりすると、通信カプラ52は、設定情報を各IOユニット53に送信しない。つまり、リモートIOターミナル5におけるIOユニット53が予め定められたシステム構成とは異なる構成となった場合には、各IOユニット53は設定情報を取得できない。なお、シリアル番号は、製品コードが共通の複数のIOユニット53の各々に固有の番号である。このため、通信カプラ52は、シリアル番号を利用しなくても、同じ型式のIOユニット53への置換か否かは判断できる。ただし、通信カプラ52は、以前と同じIOユニット53が設置されたか否かについては判断できない。このようなことから、通信カプラ52は、製品コードのみを利用して予め定められたシステム構成となっているか否かを判断すればよい場合もあるし、製品コードとシリアル番号とを利用して予め定められたシステム構成となっているか否かを判断する場合もある。シリアル番号を利用するか否かは、用途に応じて適宜選択される。
【0040】
このように、通信カプラ52とシステムバスであるリモートIOターミナルバス51によって接続されたIOユニット53の設定情報を、複数のIOユニット53からなるシステムの構成が予め定められた構成となっていることを条件に、各IOユニット53において設定可能となる。
【0041】
したがって、各IOユニット53は、上記システムの構成が予め定められた構成となっていない場合には、予め定められた処理を実行することはない。それゆえ、上記の構成によれば、リモートIOターミナル5において、ユーザにとって予期せぬ動作が発生することを防止することができる。
【0042】
以下では、以上のような処理を実現するためのPLCシステムSYSの具体的構成について説明する。さらに、以下では、上記の処理以外の処理についても適宜説明する。
【0043】
<C.リモートIOターミナル5のハードウェア構成>
次に、本実施の形態に係るPLCシステムSYSの一部を構成する制御装置であるリモートIOターミナル5のハードウェア構成について説明する。
【0044】
図2は、本発明の実施の形態に係るリモートIOターミナル5の接続構成を示す模式図である。
図3は、本発明の実施の形態に係るリモートIOターミナル5を構成する通信カプラ52のハードウェア構成を示す模式図である。
図4は、本発明の実施の形態に係るリモートIOターミナル5のIOユニット53のハードウェア構成を示す模式図である。
【0045】
(c1.接続構成)
図2を参照して、リモートIOターミナル5では、通信カプラ52および1つ以上のIOユニット53−1,53−2,53−3(以下「IOユニット53」と総称する場合もある。)が通信ラインであるリモートIOターミナルバス51(ダウンリンク511およびアップリンク512)を介して互いにデータ伝送可能になっている。すなわち、リモートIOターミナル5は、通信ラインを介して接続される複数のユニット(通信カプラ52およびIOユニット53)を含む。
【0046】
一例として、ダウンリンク511およびアップリンク512では、シリアル通信が採用されており、対象のデータは、時系列に一列に並べられた形で伝送する。より具体的には、ダウンリンク511では、マスター制御部として機能する通信カプラ52からスレーブ制御部として機能するIOユニット53へ向けて、ダウンリンク511を介して一方向にデータが送信される。一方、アップリンク512では、いずれかのIOユニット53から通信カプラ52へ向けて、アップリンク512を介して一方向にデータが送信される。
【0047】
本実施の形態においては、データは、ヘッダ情報を含むフレームとして送信される。各フレームは、1または複数のブロックから構成される。ヘッダ情報は、当該フレーム内のデータの優先度を示す情報を含む。また、ヘッダ情報は、当該フレームの長さに関する情報を含む。フレームの構造などの詳細については後述する。
【0048】
IOユニット53の各々は、ダウンリンク511またはアップリンク512を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、IOユニット53の各々は、フレームを再生成した上で、次段のIOユニット53へ再送信(フォワード)する。
【0049】
データを含むフレームのこのような順次転送を実現するために、各IOユニット53は、ダウンリンク511に関して、受信部(以下「RX」とも記す。)210aおよび送信部(以下「TX」とも記す。)210bを含むとともに、アップリンク512に関して、受信部220aおよび送信部220bを含む。受信部210aおよび220aは、通信ラインであるリモートIOターミナルバス51を介して他のユニットからフレームとして送信されるデータを受信する。送信部210bおよび220bは、通信ラインであるリモートIOターミナルバス51を介して他のユニットへフレームとしてデータを送信する。
【0050】
各IOユニット53は、制御部であるプロセッサ200を含み、プロセッサ200がこれらのデータの処理を制御する。
【0051】
通信カプラ52は、プロセッサ100と、フィールドバス制御部110と、受信部112と、送信部114と、内部バス制御部130とを含む。すなわち、通信カプラ52は、リモートIOターミナルバス51(ダウンリンク511およびアップリンク512)と接続されるだけではなく、受信部112および送信部114を介して、上位通信ネットワークであるフィールドネットワーク2とも接続される。フィールドバス制御部110は、フィールドネットワーク2を介したデータ伝送を管理し、内部バス制御部130は、リモートIOターミナルバス51を介したデータ伝送を管理する。
【0052】
(c2.通信カプラ52の構成)
図3を参照して、リモートIOターミナル5の通信カプラ52は、プロセッサ100と、不揮発性メモリ101と、フィールドバス制御部110と、受信部112と、送信部114と、内部バス制御部130とを含む。
【0053】
受信部112は、PLC1からフィールドネットワーク2を介して送信される上位通信フレームを受信してデータへ復号した上で、フィールドバス制御部110へ出力する。送信部114は、フィールドバス制御部110から出力されるデータから上位通信フレームを再生成してフィールドネットワーク2を介して再送信(フォワード)する。
【0054】
フィールドバス制御部110は、受信部112および送信部114と協働して、フィールドネットワーク2を介して予め定められた制御周期毎に他の装置(PLC1および他のリモートIOターミナル5)との間でデータを送受信する。より具体的には、フィールドバス制御部110は、上位通信コントローラ120と、メモリコントローラ122と、FIFO(First In First Out)メモリ124と、受信バッファ126と、送信バッファ128とを含む。
【0055】
上位通信コントローラ120は、PLC1からフィールドネットワーク2を介して送信されるコマンドなどを解釈して、フィールドネットワーク2を介した通信を実現するために必要な処理を実行する。また、上位通信コントローラ120は、FIFOメモリ124に順次格納される上位通信フレームからのデータコピー、および上位通信フレームに対するデータ書込みの処理を行う。
【0056】
メモリコントローラ122は、DMA(Dynamic Memory Access)などの機能を実現する制御回路であり、FIFOメモリ124、受信バッファ126および送信バッファ128などへのデータの書込み/読出しを制御する。
【0057】
FIFOメモリ124は、フィールドネットワーク2を介して受信された上位通信フレームを一時的に格納するとともに、その格納された順序に従って上位通信フレームを順次出力する。受信バッファ126は、FIFOメモリ124に順次格納される上位通信フレームに含まれるデータのうち、自装置に接続されているIOユニット53の出力部から出力すべき状態値を示すデータを抽出して一時的に格納する。送信バッファ128は、IOユニット53の入力部で検出された状態値を示すプロセスデータであって、FIFOメモリ124に順次格納される上位通信フレームの所定領域に書込むべきデータを一時的に格納する。
【0058】
プロセッサ100は、フィールドバス制御部110および内部バス制御部130に対して指示を与えるとともに、フィールドバス制御部110と内部バス制御部130との間のデータ転送などを制御する。
【0059】
不揮発性メモリ101は、各IOユニット53用の設定情報を格納する。詳しくは、不揮発性メモリ101は、ユニット構成情報D60を含むシステム構成情報を格納する。
【0060】
内部バス制御部130は、リモートIOターミナルバス51(ダウンリンク511およびアップリンク512)を介してIOユニット53との間でフレーム(データ)を送受信する。
【0061】
より具体的には、内部バス制御部130は、内部バス通信コントローラ132と、送信回路142と、受信回路144と、記憶装置160とを含む。
【0062】
内部バス通信コントローラ132は、リモートIOターミナルバス51を介したデータ伝送を主体的に(マスターとして)管理する。
【0063】
送信回路142は、内部バス通信コントローラ132からの指示に従って、リモートIOターミナルバス51のダウンリンク上を流れるフレームを生成して送信する。受信回路144は、リモートIOターミナルバス51のアップリンク上を流れるフレームを受信して、内部バス通信コントローラ132へ出力する。
【0064】
記憶装置160は、リモートIOターミナルバス51を伝送するフレーム(データ)を格納するバッファメモリに相当する。より具体的には、記憶装置160は、共有メモリ162と、受信バッファ164と、送信バッファ166とを含む。共有メモリ162は、フィールドバス制御部110と内部バス制御部130との間で遣り取りされるデータを一時的に格納する。受信バッファ164は、リモートIOターミナルバス51を介してIOユニット53から受信したデータを一時的に格納する。送信バッファ166は、フィールドバス制御部110で受信された上位通信フレームに含まれるデータを一時的に格納する。
【0065】
(c3.IOユニット53の構成)
図4を参照して、リモートIOターミナル5のIOユニット53の各々は、逆シリアル変換器(de-serializer:以下「DES部」とも称す。)212,222と、シリアル変換器(SER:serializer:以下「SER部」とも称す。)216,226と、フォワードコントローラ214,224とを含む。さらに、IOユニット53の各々は、バス250を介して互いに接続された、受信処理部230と、送信処理部240と、プロセッサ200と、共有メモリ202と、IOモジュール206と、メモリ208とを含む。メモリ208は、一例として、揮発性メモリと不揮発性メモリとを有する。
【0066】
DES部212、フォワードコントローラ214およびSER部216は、
図2に示すダウンリンク511についての受信部210aおよび送信部210bに対応する。すなわち、これらの部分は、ダウンリンク511を流れるフレームの送受信に係る処理を実行する。同様に、DES部222、フォワードコントローラ224およびSER部226は、
図2に示すアップリンク512についての受信部220aおよび送信部220bに対応する。すなわち、これらの部分は、アップリンク512を流れるフレームの送受信に係る処理を実行する。
【0067】
受信処理部230は、復号部232と、CRCチェック部234とを含む。復号部232は、受信されたフレームを所定のアルゴリズムに従ってデータへ復号する。CRCチェック部234は、フレームの最後に付加されるフレームチェックシーケンス(Frame Check Sequence:FCS)などに基づいて誤りチェック(例えば、CRC(Cyclic Redundancy Check)符号)を行う。
【0068】
送信処理部240は、フォワードコントローラ214および224に接続され、プロセッサ200などからの指示に従って、次段のIOユニット53へ再送信(フォワード)するフレームの生成およびタイミング制御などを行う。また、送信処理部240は、プロセッサ200などと協働して、次段のIOユニット53へ送信すべきデータを生成する。すなわち、送信処理部240は、データ生成部の少なくとも一部を構成する。より具体的には、送信処理部240は、CRC生成部242と、符号化部244とを含む。CRC生成部242は、プロセッサ200などからのデータに対して誤り制御符号(CRC)を算出して、当該データを格納するフレームに付加する。符号化部244は、CRC生成部242からのデータを符号化し、対応するフォワードコントローラ214または224へ出力する。
【0069】
プロセッサ200は、IOユニット53を主体的に制御する演算主体である。より具体的には、プロセッサ200は、予め格納されたプログラムなどを実行することによって、受信処理部230を介して受信されたフレームを共有メモリ202に格納し、あるいは共有メモリ202から所定のデータを読み出して送信処理部240へ出力し、フレームを生成させる。
【0070】
共有メモリ202は、受信処理部230を介して受信されたフレームを一時的に格納するための受信バッファ203と、送信処理部240へ介して送信するためのフレームを一時的に格納するための送信バッファ204とを含む。また、共有メモリ202は、各種データを格納するための領域を含む。
【0071】
IOモジュール206は、外部のスイッチやセンサからの入力信号を受信し、その値を共有メモリ202に書込むとともに、共有メモリ202の対応する領域に書込まれた値に従って、その信号を外部のリレーやアクチュエータへ出力する。すなわち、IOモジュール206は、外部入力される信号の状態値(INデータ)を収集する入力部、および、指定された状態値(OUTデータ)の信号を出力する出力部の少なくとも一方を含む。
【0072】
メモリ208は、各種データを格納する。たとえば、メモリ208における揮発性メモリは、設定情報を保持する。なお、メモリ208における不揮発性メモリが設定情報を保持するように、IOユニット53を構成してもよい。当該設定情報は、上述したように、通信カプラ52に給電が開始されると、通信カプラ52から送信されてくる情報である。つまり、設定情報は、通信カプラ52に給電がなされる度に、メモリ208に新たに格納される情報である。
【0073】
<D.PLCサポート装置>
図5は、本発明の実施の形態に係るCPUユニット13に接続して用いられるPLCサポート装置8のハードウェア構成を示す模式図である。
図5を参照して、PLCサポート装置8は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【0074】
図5を参照して、PLCサポート装置8は、OSを含む各種プログラムを実行するCPU81と、BIOSや各種データを格納するROM(Read Only Memory)82と、CPU81でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM83と、CPU81で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)84とを含む。
【0075】
PLCサポート装置8は、さらに、ユーザからの操作を受け付けるキーボード85およびマウス86と、情報をユーザに提示するためのディスプレイ87とを含む。さらに、PLCサポート装置8は、PLC1(CPUユニット13)などと通信するための通信インターフェイス(IF)を含む。
【0076】
後述するように、PLCサポート装置8で実行される各種プログラムは、CD−ROM9に格納されて流通する。このCD−ROM9に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ88によって読取られ、ハードディスク(HDD)84などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【0077】
本実施の形態では、PLCサポート装置8によって設定情報が生成される。具体的には、PLCシステムSYSのユーザが、PLCサポート装置8を用いて各設定情報を生成する。PLCサポート装置8は、生成された設定情報を通信カプラ52に送信する。なお、、通信カプラ52は、PLCサポート装置8との通信に利用する通信インターフェイスを備えている。
【0078】
上記においては、各設定情報がPLCサポート装置8で生成される構成を例に挙げて説明したが、これに限定されるものではない。各設定情報がPLCサポート装置8以外の装置によって生成され、当該装置から各設定情報が通信カプラ52に送信される構成であってもよい。
【0079】
<E.データ>
図6は、通信カプラ52に格納されるユニット構成情報D60の概要を表した図である。
図6を参照して、ユニット構成情報D60は、識別情報D61と、設定情報D62とを含む。識別情報D61は、製品コードと、シリアル番号と、ユニットバージョンとの情報を含む。設定情報D62は、ユニット番号と、ユニット無効化設定の情報とを含む。
【0080】
シリアル番号は、製品(IOユニット53)固有の番号である。シリアル番号は、通信カプラ52においてシリアル番号照合機能が有効となっている場合に利用される。なお、PLCサポート装置8がサポートソフトウェアの実行により得られる実構成を通信カプラ52にアップロードすることにより、通信カプラ52は各IOユニット53のシリアル番号を取得できる。
【0081】
なお、サポートソフトウェアは、エディタプログラムと、コンパイラプログラムと、デバッガプログラムと、シミュレーション用シーケンス命令演算プログラムと、シミュレーション用モーション演算プログラムと、通信プログラムとを含む。サポートソフトウェアに含まれるそれぞれのプログラムは、典型的には、CD−ROM等の記録媒体に格納された状態で流通して、PLCサポート装置8にインストールされる。ユーザは、サポートプログラムを持ちて、ユーザプログラムを生成する。PLCサポート装置8は、当該生成されたユーザプログラムを、通信プログラムを用いてCPUユニット13に送信する。
【0082】
ユニットバージョンは、各IOユニット53におけるシステムプログラムのバージョンを表したバージョン情報である。ユニットバージョンは、メジャーバージョン、マイナーバージョン、リビジョン、またはリザーブのいずれかを表す。
【0083】
ユニット番号は、通信カプラ52に接続される順番に昇順に採番される。無効化されたユニットにもユニット番号が付与される。ユニット無効化設定は、0または1により、IOユニットが無効化されているか否かを表す。
【0084】
<F.機能的構成>
図7は、通信カプラ52の機能的構成およびIOユニット53の機能的構成を説明するためのブロック図である。
【0085】
(f1.通信カプラ52の機能的構成)
図7を参照して、通信カプラ52は、記憶部521と、制御部522とを備える。制御部522は、取得部5221と、検出部5222と、判断部5223と、通信制御部5224とを含む。
【0086】
(1)記憶部521は、通信カプラ52のスレーブ装置であるIOユニット53−1,53−2,…用の各設定情報D62−1,D62−2,…を格納している。当該各設定情報の取得の仕方については、後述する(
図8)。制御部522は、通信カプラ52に対して給電が開始されると、格納された各設定情報を、対応するIOユニット53に送信する。より具体的には、通信カプラ52は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、各設定情報を対応するIOユニット53に送信する。
【0087】
(2)詳しくは、記憶部521は、IOユニット53毎の各設定情報を含む、複数のIOユニット53からなるシステムの構成を表したユニット構成情報D60(
図6参照)を少なくとも格納する。より正確には、記憶部521は、IOユニット53毎の各設定情報を含む、通信カプラ52と複数のIOユニット53とからなるシステムの構成を表したシステム構成情報を少なくとも格納する。なお、上述したように、システム構成情報は、ユニット構成情報D60を含んで構成される。
【0088】
制御部522は、記憶部521に格納された各設定情報を、対応するIOユニット53に送信する機能を有する。
【0089】
取得部5221は、通信カプラ52に対して給電が開始されると、各IOユニット53の識別情報を各IOユニット53装置から取得する。検出部5222は、リモートIOターミナルバス51における各IOユニット53の接続順序を検出する。判断部5223は、各識別情報と接続順序とに基づいて、システムの構成がユニット構成情報D60に基づいた構成となっているかを判断する。通信制御部5224は、システム構成が構成情報に基づいた構成となっていると判断すると、各IOユニット53に対して当該IOユニット53の設定情報を送信し、各IOユニット53に予め定められた処理を開始させる。
【0090】
(3)さらに詳しくは、記憶部521は、各IOユニット53におけるシステムプログラムのバージョンを表したバージョン情報(ユニットバージョン(
図6参照))をさらに格納している。取得部5221は、通信カプラ52への給電が開始されると、各IOユニット53から当該IOユニット53におけるシステムプログラムのバージョン情報を取得する。判断部5223は、取得したバージョン情報に示されたバージョンが、格納されたバージョン情報に示されたバージョンよりも低くないかを、IOユニット53毎に判断する。通信制御部5224は、複数のIOユニット53の各々について、上記取得したバージョン情報に示されたバージョンが格納されたバージョン情報に示されたバージョンよりも低くないと判断すると、各設定情報を各IOユニット53に送信し、各IOユニット53に入出力処理を開始させる。
【0091】
上記の構成によれば、IOユニット53の接続順序が変更されていなくても、あるいはIOユニット53が識別情報が異なるIOユニットに置換されていなくても、IOユニット53のシステムプログラムのバージョンがユーザの操作等によってダウンしているときには、各IOユニット53は設定情報を取得できない。したがって、各IOユニット53は、予め定められた処理を実行することはない。それゆえ、上記の構成によれば、リモートIOターミナル5のハードウェア構成の変更がない場合であっても、ユーザにとって予期せぬ動作が発生することを防止することができる。
【0092】
(4)通信カプラ52が記憶部521に設定情報を記憶させる過程について述べれば、以下のとおりである。
【0093】
通信カプラ52の制御部522は、以下の処理を行なう。取得部5221は、各IOユニット53の識別情報D61を各IOユニット53から取得する。検出部5222は、リモートIOターミナルバス51における各IOユニット53の接続順序を検出する。制御部522は、IOユニット53毎の識別情報D61と上記接続順序を表す順序情報とを、設定情報を作成する機能を有するPLCサポート装置8に送信した後に、IOユニット53毎の設定情報をPLCサポート装置8から取得する。制御部522は、取得した各設定情報を記憶部521に記憶させる。
【0094】
上記の構成によれば、PLCサポート装置8は、リモートIOターミナルバス51における実際のユニット構成(接続順序、接続されているIOユニット53等)を知ることができる。それゆえ、PLCサポート装置8は、PLCサポート装置において予め指定されたリモートIOターミナルバス51におけるユニット構成(ソフトウェア上の構成)と、実際のユニット構成(実ユニット構成)とが一致しているかを判断することができる。
【0095】
また、ソフトウェア上の構成と実ユニット構成とが一致していることを条件に、PLCサポート装置8が設定情報を通信カプラ52に送信する構成とすることもできる。つまり、送信された識別情報D61と順序情報とを用いて複数のIOユニット53からなるシステムの構成が予め指定された構成であると判断したことを条件に、制御部522は、PLCサポート装置8から各設定情報を取得するように、PLCサポート装置8を構成できる。
【0096】
(f2.IOユニット53の機能的構成)
各IOユニット53−1,53−2,…は、記憶部531と、通信制御部532とを含む。
【0097】
通信制御部532は、通信カプラ52からの指示に基づき、識別情報を通信カプラ52に送信する。また、記憶部531には、通信カプラ52に給電が開始されたことに基づき通信カプラ52から送信されてくる設定情報が格納される。たとえば、IOユニット53−1の記憶部531には、設定情報D62−1が格納され、IOユニット53−2の記憶部531には、設定情報D62−2が格納される。
【0098】
<G.制御構造>
図8は、PLCシステムSYSにおける処理を説明するための1つ目のシーケンスチャートである。具体的には、
図8は、通信カプラ52が設定情報を記憶部521(つまり、、不揮発性メモリ101(
図3)に格納するまでの処理を説明するためのシーケンスチャートである。
【0099】
図8を参照して、シーケンスSQ2において、PLCサポート装置8は、ユーザの操作に基づいて、予め定められた設定指示を通信カプラ52に送信する。シーケンスSQ4において、通信カプラ52は、識別情報要求をIOユニット53−1に送信する。シーケンスSQ6において、識別情報要求をIOユニット53−2に送信する。通信カプラ52は、他のIOユニットに対しても識別情報要求を送信する。
【0100】
シーケンスSQ8において、IOユニット53−1は、IOユニット53−1に記憶されている自ユニットの識別情報を通信カプラ52に送信する。シーケンスSQ10において、IOユニット53−2は、IOユニット53−2に記憶されている自ユニットの識別情報を通信カプラ52に送信する。他のIOユニット53−3,…についても、同様の処理を行なう。シーケンスSQ12において、通信カプラ52は、複数のIOユニット53の接続順序を検出する。シーケンスSQ14において、通信カプラ52は、検出した接続順序を表す順序情報と、各IOユニット53から取得した識別情報とを、PLCサポート装置8に送信する。
【0101】
シーケンスSQ16において、PLCサポート装置8は、比較処理を行なう。具体的には、PLCサポート装置8は、送信された各識別情報と順序情報とを用いて複数のIOユニット53からなるシステムの構成が予め指定された構成であるか否かを判断する。予め定められら構成であると判断された場合、シーケンスSQ18において、PLCサポート装置8は、PLCサポート装置で作成された各IOユニット53の設定情報D62を、通信カプラ52に送信する。シーケンスSQ20において、通信カプラ52は、受信した設定情報を不揮発性メモリ101(記憶部521)に格納する。
【0102】
図9は、PLCシステムSYSにおける処理を説明するための2つ目のシーケンスチャートである。具体的には、
図9は、設定情報を格納した通信カプラ52が、各IOユニット53に設定情報を送信するときの処理を説明するためのシーケンスチャートである。
【0103】
図9を参照して、シーケンスSQ102において、通信カプラ52に給電が開始される。シーケンスSQ104において、通信カプラ52は、識別情報要求をIOユニット53−1に送信する。シーケンスSQ106において、識別情報要求をIOユニット53−2に送信する。通信カプラ52は、他のIOユニットに対しても識別情報要求を送信する。
【0104】
シーケンスSQ108において、IOユニット53−1は、IOユニット53−1に記憶されている自ユニットの識別情報を通信カプラ52に送信する。シーケンスSQ110において、IOユニット53−2は、IOユニット53−2に記憶されている自ユニットの識別情報を通信カプラ52に送信する。他のIOユニット53−3,…についても、同様の処理を行なう。
【0105】
シーケンスSQ112において、通信カプラ52は、複数のIOユニット53の接続順序を検出する。シーケンスSQ114において、通信カプラ52は、システム構成の適否を判断する。具体的には、通信カプラ52は、各識別情報と接続順序とに基づいて、システムの構成がユニット構成情報D60に基づいた構成となっているかを判断する。
【0106】
システム構成が適切であると判断された場合、シーケンスSQ116において、通信カプラ52は、通信カプラ52の不揮発性メモリ101から各設定情報を読み出す。シーケンスSQ118において、通信カプラ52は、読み出したIOユニット53−1用の設定情報を、IOユニット53−1に送信する。シーケンスSQ120において、IOユニット53−1は、受信した設定情報を揮発性メモリに格納する。シーケンスSQ122において、通信カプラ52は、読み出したIOユニット53−2用の設定情報を、IOユニット53−2に送信する。シーケンスSQ124において、IOユニット53−2は、受信した設定情報を揮発性メモリに格納する。他のIOユニット53−3,…においても、同様の処理が繰り返される。
【0107】
図10は、通信カプラ52における処理の流れを表したフローチャートである。具体的には、
図10は、設定情報を格納した通信カプラ52が、各IOユニット53に設定情報を送信するときの処理の流れを説明するためのフローチャートである。
図10のフローチャートは、
図9のシーケンスチャートにおける通信カプラ52の処理に対応する。
【0108】
図10を参照して、ステップS2において、通信カプラ52への給電が開始される。ステップS4において、通信カプラ52のプロセッサ100は、各IOユニット53に対して、識別情報要求を送信する。ステップS6において、プロセッサ100は、各IOユニット53から識別情報を受信する。ステップS8において、プロセッサ100は、接続順序の検出を行なう。
【0109】
ステップS10において、プロセッサ100は、システム構成が適切か否かを判断する。具体的には、プロセッサ100は、IOユニット53の接続順序が、予め設定された接続順序と同じであるか否かを判断する。また、プロセッサ100は、シリアル番号照合機能が有効化されている場合には、シリアル番号が一致しているか否かをIOユニット53毎に判断する。また、プロセッサ100は、上述したバージョン情報(ユニットバージョン(
図6参照))の照合も行なう。詳しくは、プロセッサ100は、IOユニット53から取得したバージョン情報に示されたバージョンが、予め格納されたバージョン情報に示されたバージョンよりも低くないかを、IOユニット53毎に判断する。
【0110】
プロセッサ100は、ステップS10において肯定的な判断がなされた場合(YESの場合)、ステップS12において、不揮発性メモリ101から設定情報D62をIOユニット53毎に読み出す。ステップS14において、プロセッサ100は、各設定情報D62−1,62−2,…を、対応するIOユニット53に送信し、各IOユニット53に予め定められた処理を実行させる。プロセッサ100は、ステップS10において否定的な判断がなされた場合(NOの場合)、設定情報を送信することなく、一連の処理を終了する。
【0111】
<H.PLCサポート装置8におけるUI>
図11は、PLCサポート装置8のディスプレイ87における画面を表した図である。具体的には、
図11は、通信カプラ52が設定情報をPLCサポート装置8から取得する前に行なわれる比較処理を説明するための図である。
【0112】
図11を参照して、PLCサポート装置8は、ユーザがサポートソフトウェアを用いて設定したリモートIOターミナル5におけるユニット構成(ソフトウェア上の構成)と、実際のリモートIOターミナル5の構成(実ユニット構成)とを表示する。また、PLCサポート装置8は、ソフトウェア上の構成と実ユニット構成とを比較した結果も表示する。
【0113】
なお、ソフトウェア上の構成とは、詳しくは、ユーザがPLCサポート装置8内でサポートソフトウェアを用いて生成したリモートIOターミナル5についての仮想的構成である。それに対し、実ユニット構成とは、装置として現に存在しているリモートIOターミナル5の構成である。つまり、実ユニット構成とは、ユーザがIOユニット53をスロットに設置すること等により構成された実機そのものの構成である。通常、ユーザは、サポートソフトウェアを用いて、実ユニット構成に則したユーザプログラムを作成する。
【0114】
図11に示す場合には、ソフトウェア上の構成と、実ユニット構成とが一致していない。この場合には、PLCサポート装置8は、IOユニット53毎の各設定情報D62を通信カプラ52には送信しない。したがって、この場合には、通信カプラ52は、ソフトウェア上の構成として示されたIOユニット53の設定情報を、PLCサポート装置8からは取得できない。
【0115】
一方、ソフトウェア上の構成と実ユニット構成とが一致している場合には、PLCサポート装置8は、IOユニット53毎の各設定情報D62を通信カプラ52には送信する。したがって、この場合には、通信カプラ52は、ソフトウェア上の構成(つまり、実ユニット構成)として示されたIOユニット53の設定情報を、PLCサポート装置8から取得できる。
【0116】
<I.変形例>
上記においては、リモートIOターミナル5における設定情報の引き継ぎについて説明した。つまり、通信カプラ52に給電が開始される度に、通信カプラ52に格納された各設定情報が、対応するIOユニット53に送信される構成を説明した。しかしながら、上述した設定情報の引き継ぎ処理等は、リモートIOターミナル5だけではなく、PLC1においても適用できる。それゆえ、以下では、PLC1のハードウェア構成等について説明する。
【0117】
図12は、本発明の実施の形態に係るPLC1の接続構成を示す模式図である。
図13は、本発明の実施の形態に係るPLC1を構成するCPUユニット13のハードウェア構成を示す模式図である。
【0118】
図12を参照して、PLC1においても、上述のリモートIOターミナル5(
図2参照)と同様に、CPUユニット13および1つ以上のIOユニット14−1,14−2,14−3(以下「IOユニット14」と総称する場合もある。)が通信ラインであるリモートIOターミナルバス51(ダウンリンク611およびアップリンク612)を介して互いにデータ伝送可能になっている。すなわち、PLC1は、通信ラインを介して接続される複数のユニット(CPUユニット13およびIOユニット14)を含む。
【0119】
IOユニット14の各々は、ダウンリンク611またはアップリンク612を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、IOユニット14の各々は、フレームを再生成した上で、次段のIOユニット14へ再送信(フォワード)する。各IOユニット14は、ダウンリンク611に関して、受信部(RX)210aおよび送信部(TX)210bを含むとともに、アップリンク612に関して、受信部220aおよび送信部220bを含む。
【0120】
CPUユニット13は、プロセッサ150と、フィールドバス制御部110と、受信部112と、送信部114と、内部バス制御部130とを含む。
【0121】
図13を参照して、PLC1のCPUユニット13は、プロセッサ150と、主メモリ152と、不揮発性メモリ154と、フィールドバス制御部110と、受信部112と、送信部114と、内部バス制御部130とを含む。CPUユニット13のデータ伝送に係る基本的な構成は、上述の通信カプラ52(
図2)と同様であるので、対応する部分(同一の参照符号を付している)についての説明は繰り返さない。
【0122】
CPUユニット13のプロセッサ150は、対象の制御に係るユーザプログラムを実行する。より具体的には、CPUユニット13は、不揮発性メモリ154などからユーザプログラム156を読み出すとともに、主メモリ152に展開して実行する。このユーザプログラムの実行によって、IOユニット14の入力部によって検出された状態値に基づいて、IOユニット14の出力部から出力すべき状態値が順次算出される。
【0123】
PLC1のIOユニット14の構成については、上述したリモートIOターミナル5のIOユニット53の構成(
図4参照)と同様であるので、詳細な説明は繰り返さない。
【0124】
このような構成のPLC1では、リモートIOターミナル5の場合と同様に、以下の処理等が行なわれる。
【0125】
(i1.設定情報の引き継ぎ)
CPUユニット13は、PLC1においてマスタ装置として機能し、予め定められた設定情報に基づいて動作するIOユニット14とリモートIOターミナルバス51によって通信可能に接続されている。CPUユニット13は、各IOユニット14用の設定情報を格納する。CPUユニット13は、CPUユニット13に対して給電が開始されると、格納された各設定情報を、対応するIOユニット14に送信する。より具体的には、CPUユニット13は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、設定情報をIOユニット14に送信する。
【0126】
(i2.設定情報の引き継ぎの条件)
CPUユニット13は、IOユニット14毎の各設定情報を含む、複数のIOユニット14からなるシステムの構成を表したユニット構成情報を少なくとも格納する。より正確には、CPUユニット13は、IOユニット14毎の各設定情報を含む、CPUユニット13と複数のIOユニット14とからなるシステムの構成を表したシステム構成情報を少なくとも格納する。
【0127】
CPUユニット13は、格納された各設定情報を、対応するIOユニット14に送信する機能を有する。CPUユニット13は、CPUユニット13に対して給電が開始されると、各IOユニット14の識別情報を各IOユニット14装置から取得する。また、CPUユニット13は、リモートIOターミナルバス51における各IOユニット14の接続順序を検出する。さらに、CPUユニット13は、各識別情報と接続順序とに基づいて、システムの構成が構成情報に基づいた構成となっているかを判断する。CPUユニット13は、システム構成が構成情報に基づいた構成となっていると判断すると、各IOユニット14に対して当該IOユニット14の設定情報を送信し、各IOユニット14に予め定められた処理を開始させる。
【0128】
このように、リモートIOターミナル5で実行された設定情報の引き継ぎ処理等は、PLC1においても適用できるため、PLC1においても、リモートIOターミナル5で得られたのと同様を効果を得ることができる。
【0129】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。