(57)【要約】【課題】ＰＬＣのファームウェアを更新することなく、管理対象として接続されたノード毎に電文を作成・送信できるプログラマブルコントローラおよび電文作成方法を提供することである。【解決手段】提案するプログラマブルコントローラ２０は、通信機器にプログラマブルコントローラ２０が送信するデータである電文を作成するのに使用するデータを定義設定ローダ３０から受信して、前記電文を作成するのに使用するデータを用いて前記通信機器に送信する電文を作成して、前記作成した電文を前記通信機器に送信するものである。【選択図】  図１
2010152558.tif 000002
【特許請求の範囲】
【請求項１】
外部の通信機器に電文を送信するプログラマブルコントローラにおいて、
前記通信機器のそれぞれに対応して、該各通信機器に送信する電文を作成するのに使用するデータを定義情報として外部から受信する受信部と、
該受信した定義情報を記憶する記憶部と、
該記憶部に記憶されている定義情報を用いて、送信相手の通信機器に送信する電文を作成する電文作成部と、
前記作成した電文を、前記送信相手の通信機器に送信する送信部と、を有することを特徴とするプログラマブルコントローラ。
【請求項２】
前記電文を作成するのに使用するデータは、作成すべき電文に埋め込むべきデータ、または、該埋め込むべきデータの格納先の識別情報の少なくとも１つを含み、
前記電文を作成するのに使用するデータを先頭から順に解釈して、前記通信機器に送信する電文に順次前詰めで埋め込むことにより、前記通信機器に送信する電文を作成することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記作成すべき電文に埋め込むべきデータは、ヘッダ、フッタ、または、コマンドであり、前記埋め込むべきデータの格納先の識別情報は、前記通信機器に出力するユーザデータであることを特徴とする請求項２記載のプログラマブルコントローラ。
【請求項４】
通信機器毎の電文送信要求を記憶した情報を参照して、電文送信要求があった通信機器に対して電文を作成して送信することを特徴とする請求項１または２記載のプログラマブルコントローラ。
【請求項５】
通信機器と第１のネットワークを介して接続されるとともに、定義設定ローダとは第２のネットワークを介して接続されたプログラマブルコントローラが実行する電文作成方法において、
前記通信機器に前記プログラマブルコントローラが送信するデータである前記電文を作成するのに使用するデータを前記定義設定ローダから前記第２のネットワークを通して前記プログラマブルコントローラが受信するステップと、
前記電文を作成するのに使用するデータを用いて、前記通信機器に送信する電文を作成するステップと、
前記作成した電文を前記第１のネットワークを通して前記通信機器に送信するステップと、を有することを特徴とする電文作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラによるノードに送信するデータすなわち電文の作成方法に関する。
【背景技術】
【０００２】
シーケンス制御などの各種制御システムにおいて、プログラマブルコントローラ（以下、ＰＬＣという）が広範に用いられている。このようなＰＬＣは例えば上位の通信機器などとデータのやり取りを行って制御動作を実行する。
【０００３】
従来、通信機器（以下では、ノードということもある）に送信するデータ（電文）をＰＬＣで作成している。
一例として、あるノードに対して、図６に示すように、送信先ノード情報として、ノード番号１０１（ここでは“３”）を第１の固定部格納テーブル１０２から取得し、作成する電文１００の先頭行に転送（コピー）して、固定部作成（１）を行なう。続けて、図７に示すように、送信先ノードコマンド情報として、コマンド番号１０３（ここでは“２”）を第２の固定部格納テーブル１０４から取得し、作成する電文１００の２行目に転送（コピー）して、固定部作成をさらに行なう。
【０００４】
また、図８に示すように、データ領域種別（入出力メモリ、非保持メモリ、保持メモリなど）の値（すなわち、メモリ種別を表す識別子）、相対アドレスの値、データサイズの値から構成されるパケットデータ１０８により、送信先ノードのユーザデータの場所が設定された定義情報テーブル１０６をランダムに検索して、（２）でユーザデータを取得し、それらを、作成する電文１００の３行目以降に転送（コピー）して、（３）でユーザデータ部を作成し、（４）で電文１００を該当するノードに送信している。
【０００５】
なお、ＰＬＣが電文を作成するに際して、ユーザデータを収集する処理を容易にするために、図８に示したようなフォーマットを有する定義情報テーブル１０６が一般的に使用されている。
【０００６】
しかし、図６〜図８に示した電文作成処理はＰＬＣのファームウェアにより従来実行されている。そして、ノード毎に、作成する電文のフォーマット自体も異なるために、例えば、どのノードに対しても図６〜図８に示した手順で電文を作成することができる訳でもない。その結果、例えば、ＰＬＣに、既存のノードのいずれとも異なる電文フォーマットを有するノードが新規に接続された場合、その新規接続したノードに対する処理をファームウェアに追加しなければならないため、ファームウェアを更新する必要がある。
【０００７】
しかし、ＰＬＣは制御盤の奥や遠隔地に設置されていることが多く、ファームウェアの更新作業が困難なものとなっている。
なお、周辺技術として、特許文献１には、複数のアプリケーション間のデータ転送を仲介するアプリケーション仲介部を有するシステムが示されている。
【特許文献１】特開２００１−２１６２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、以上の問題点を考慮してなされたものであり、ＰＬＣのファームウェアを更新することなく、管理対象として接続されたノード毎に電文を作成・送信できるプログラマブルコントローラおよび電文作成方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
提案するプログラマブルコントローラは、通信機器と第１のネットワークを介して接続されるとともに、定義設定ローダとは第２のネットワークを介して接続されたプログラマブルコントローラであり、前記通信機器に前記プログラマブルコントローラが送信するデ
ータである電文を作成するのに使用するデータを前記定義設定ローダから前記第２のネットワークを通して前記プログラマブルコントローラが受信して、前記電文を作成するのに使用するデータを用いて前記通信機器に送信する電文を作成して、前記第１のネットワークを通して前記作成した電文を前記通信機器に送信するものである。
【発明の効果】
【００１０】
提案するプログラマブルコントローラによれば、定義設定ローダから電文を作成するのに使用するデータを受信して、それを例えば先頭から順に解釈して、電文を作成し、該当する通信機器に送信している。このため、ノード毎の電文フォーマットの差分調整部分を、ソフトウェアの更新が一層容易である定義設定ローダ側の処理として実行することにより、制御盤の奥や遠隔地に設置されたプログラマブルコントローラのファームウェアを更新する場合の負担をなくすことができる。
【発明を実施するための最良の形態】
【００１１】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
図１は、本発明の一実施形態に係る電文送受信システムの構成を示すブロック図である。
【００１２】
図１に示すように、この電文送受信システムでは、プログラマブルコントローラ（以下、ＰＬＣという）２０が、複数台（図では３台）の外部通信機器３４−１、３４−２、３４−３と第１のネットワーク（例えば専用ネットワーク）３１を介して接続されるとともに、定義設定ローダ３０とは第２のネットワーク（例えば汎用ネットワーク）３２を介して接続されている。
【００１３】
ＰＬＣ２０は、ＣＰＵ（Central Processing Unit）モジュール１０を有する。このＣＰＵモジュール１０は、ＣＰＵ１１、ドライバ／レシーバ１３、ＰＬＣ固有バスインターフェース１４、システムプログラムメモリ（ＦＬＡＳＨ）１５、システムワークメモリ（ＲＡＭ（Random Access Memory））１６、ユーザプログラムメモリ（ＲＡＭ）１７、ユーザデータメモリ（ＲＡＭ）１８、を有し、それらがバス１９により接続されている。また、ＣＰＵモジュール１０は、ＰＬＣ固有バスインターフェース１４を通して通信モジュール２３と接続される。
【００１４】
図２は、本実施形態のパケット生成部の構成を示すブロック図である。
図２に示すように、パケット生成部４０は、ヘッダ部転送部４１、コマンド部転送部４２、パケットデータ構築部４３、により構成される。
【００１５】
ヘッダ部転送部４１およびコマンド部転送部４２は、ノードへの電文を作成する際に使用する定義情報を参照して、通信を行なうノードに対する電文内の固定データ部を作成する処理を行なう。パケットデータ構築部４３は、ノードへの電文を作成する際に使用する定義情報を参照して、ユーザデータを図１のユーザデータメモリ１８内から収集し、ノードに送信する電文内に設定する処理を行なう。なお、ユーザデータとは例えば、ノードに設定される動作パラメータである。また、定義情報は、本実施形態では、定義設定ローダ３０により作成され、ＰＬＣ２０に送信されるものとする。
【００１６】
なお、本実施形態では、図２の各部はソフトウェアにより実現される。このソフトウェアは、図１のシステムプログラムメモリ１５に格納され、そのシステムプログラムメモリ１５からシステムワークメモリ１６に読み出されて、ＣＰＵ１１により実行される。
【００１７】
図３は、本実施形態で使用する情報資源を示す図である。
図３において、フォーマットの定義情報５１は、上述したように、定義設定ローダ３０側で作成された、電文を作成するのに使用する情報である。この定義情報５１を先頭から順に読み込んでその指示内容を実行することにより、電文を作成することができる。その意味で、定義情報５１はフォーマットの定義情報であるということができる。また、定義情報５１は、送信先のノード毎にあるものであり、当然のこととして、送信先のノードを識別する情報を、例えばその先頭位置に持っている。ＰＬＣ２０は、この定義情報５１を定義設定ローダ３０から受信すると図１のシステムワークメモリ１６に格納する。
【００１８】
ユーザデータは図１のユーザデータメモリ１８内に、例えばメモリ種別毎に複数の（図３では３つの）データ領域５２、５３、５４に分割して格納される。ユーザデータにアクセスするためには、データ領域の種別、そのデータ領域の先頭からの相対アドレス、データ長（データサイズ）を指定する。
【００１９】
図２に示したパケット生成部４０による処理が定義情報５１を参照して実行され、データ領域から必要なユーザデータの収集が行われて、出力情報資源すなわち、ノードに送信する電文５５が作成される。
【００２０】
図４は、電文の作成方法を詳細に示す図である。
図４の左側には、定義情報６１が示され、右上には電文６２が示され、右下にはユーザデータ６４が格納されたデータ領域６３が示されている。
【００２１】
定義情報６１の先頭行（一番上の位置）にはノード識別情報６６が設定されている。ノード識別情報６６は、“％”＋“シリアル番号”（図４では、％１）という形式を有している。
【００２２】
図４の定義情報６１の２番目の行には、コピー指示の識別情報（その値は例えば＄１である）６８が設定されている。コピー指示が設定された行の次行以降には、通常ヘッダ、フッタ、あるいは、コマンドが設定される。図２のパケット生成部４０は、データ形式に応じて、次行以降に設定されたものが、ヘッダ、フッタ、コマンドのいずれであるかを判断し、判断結果に応じて、ヘッダ部転送部４１およびコマンド部転送部４２のいずれかを起動して、次行以降の該当部分を電文６２に前詰め（先頭詰め）でコピー（転送）する。図４の例ではヘッダ７１が“Ａ１”として表記されており、ヘッダ部転送部４１が起動されて、これが、電文６２の先頭行にコピーされている。なお、フッタと判断された場合にも、ヘッダ部転送部４１により処理するものとする。
【００２３】
図４の定義情報６１では、ヘッダ７１に続いて、パケットデータ７３が設定されている。パケットデータ７３は、データ領域の識別情報（その値は例えば＄２である）７５＋データ領域種別の値（その値は図では“１０”である）７６＋相対アドレスの識別情報（その値は例えば＄３である）７７＋相対アドレスの値（その値は図では“１０００”である）７８＋データサイズの識別情報（その値は例えば＄４である）８１＋データサイズの値（その値は図では“１６”である）８２、という形式をしている。
【００２４】
図２のパケット生成部４０は、データ領域の識別情報７５を検出すると、パケットデータ構築部４３に起動指示を出す。パケットデータ構築部４３は、データ領域の種別の値７６から、そのデータ領域がデータ領域６３であることを特定し、相対アドレスの値７８およびデータサイズの値８２からデータ領域６３内のユーザデータ６４を収集対象として特定し、そのユーザデータ６４（ここでは“５”）を電文６２の２行目にコピーしている。
【００２５】
また、図４において、符号８４はコピー指示の識別情報、符号８５はフッタ、符号８６は定義情報６１の終わりを示す識別情報である。
図５は、電文作成処理を含む全体処理のフローチャートである。このフローチャートのステップＳ１、Ｓ２、Ｓ９は、図２に示したパケット生成部４０より上位の処理部（上位のプログラム、不図示）により実行される。この上位の処理部が実行する処理の１つとして、図５のフローチャートが示されているために、図５のフローチャートは破線に始まり、破線に終わっている。また、残りのステップは、図２のパケット生成部４０により実行される。なお、ステップＳ９は、パケット生成部４０により実行されてもよい。
【００２６】
図５において、ステップＳ１で上位の処理部によりパケットデータすなわち電文の送信要求有無が判別される。この判別処理は例えば、図１のシステムワークメモリ１６内に格納された定義情報とは別個の情報であるノード毎の電文送信要求を記憶した情報（すなわち、今、どのノードに電文を送信すべきかを示す情報）を参照することにより実行される。
【００２７】
ステップＳ１で電文の送信要求が無しであると判別された場合、このフローチャートにおける一連の処理を終了する。
ステップＳ１で電文の送信要求が有りであると判別された場合、ステップＳ２で、送信先ノードに対する定義情報が、図１のシステムワークメモリ１６から取得され、その取得
した定義情報を用いて、電文を作成する指示により、上位の処理部が図２のパケット生成部４０を起動する。なお、通常、いずれか１つのノードに対する送信要求のみが有りとなる。
【００２８】
ステップＳ２に続くステップＳ３では、パケット生成部４０により、作成部判別処理が実行される。この作成部判別処理は、図４を参照して上述したように、定義情報の現在位置からデータ（行）を読み込み、その行がコピー指示の識別情報６８であるか、または、データ領域の識別情報７５であるかを判別し、また、その行がコピー指示の識別情報６８であった場合、後続のデータ（行）のデータ形式からヘッダ（フッタ）であるか、コマンドであるかを判別することにより行われる。
【００２９】
ステップＳ３でデータ領域の識別情報７６が読み込まれてパケットデータ構築部４３が起動されるものと判別された場合、ステップＳ５において、パケットデータ部の構築処理、すなわち、データ領域の種別、相対アドレス、データサイズの組により指定されるデータを収集し、それを電文に前詰めで転送（コピー）する処理が実行され、ステップＳ８に進む。
【００３０】
ステップＳ３でコピー指示の識別情報６８が読み込まれて、後続のデータのデータ形式からコマンドであり、コマンド部転送部４２が起動されるものと判別された場合、ステップＳ６でその後続のデータであるコマンドを電文に前詰めで転送（コピー）する処理が実行され、ステップＳ８に進む。
【００３１】
ステップＳ３でコピー指示の識別情報６８が読み込まれて、後続のデータのデータ形式からヘッダまたはフッタであり、ヘッダ部転送部４１が起動されるものと判別された場合、ステップＳ７でその後続のデータであるヘッダまたはフッタを電文に前詰めで転送（コピー）する処理が実行され、ステップＳ８に進む。
【００３２】
ステップＳ８では、定義情報の次の行を先読みし、それがデータの終わりの識別情報８６であるかどうかを判別することで、データ（電文）の生成が終了したかどうかを判別している。
【００３３】
ステップＳ８でデータ生成が終了したと判別された場合、制御がパケット生成部４０から上位の処理部に渡り、ステップＳ９において、その上位の処理部により、作成された電文が該当するノード宛に送信される。
【００３４】
ステップＳ８でデータ生成が終了していないと判別された場合、ステップＳ３に戻り、そのステップＳ８で先読みした次行以降の処理が続行される。
以上説明したように、本実施形態のプログラマブルコントローラによれば、定義設定ローダから電文を作成するのに使用するデータを受信して、それを例えば先頭から順に解釈して、電文を作成し、該当する通信機器（ノード）に送信している。このため、ノード毎の電文フォーマットの差分調整部分を、ソフトウェアの更新が一層容易である定義設定ローダ側の処理として実行することができ、制御盤の奥や遠隔地に設置されたプログラマブルコントローラのファームウェアを更新する場合の負担をなくすことができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係る電文送受信システムの構成を示すブロック図である。
【図２】本実施形態のパケット生成部の構成を示すブロック図である。
【図３】本実施形態で使用する情報資源を示す図である。
【図４】電文の作成方法を詳細に示す図である。
【図５】電文作成処理を含む全体処理のフローチャートである。
【図６】従来の電文作成方法を示す図（その１）である。
【図７】従来の電文作成方法を示す図（その２）である。
【図８】従来の電文作成方法を示す図（その３）である。
【符号の説明】
【００３６】
１０  ＣＰＵモジュール
１１  ＣＰＵ
１３  ドライバ／レシーバ
１４  ＰＬＣ固有バスインターフェース
１５  システムプログラムメモリ
１６  システムワークメモリ
１７  ユーザプログラムメモリ
１８  ユーザデータメモリ
１９  バス
２０  プログラマブルコントローラ
２３  通信モジュール
３０  定義設定ローダ
３１  第１のネットワーク
３２  第２のネットワーク
３４−１、３４−２、３４−３  外部通信機器（ノード）
４０  パケット生成部
４１  ヘッダ部転送部
４２  コマンド部転送部
４３  パケットデータ構築部
５１、６１  定義情報
５２、５３、５４、６３  データ領域
５５、６２  電文
６４  ユーザデータ
６６  ノード識別情報
６８、８４  コピー指示の識別情報
７１  ヘッダ
７３  パケットデータ
７５  データ領域の識別情報
７６  データ領域の種別の値
７７  相対アドレスの識別情報
７８  相対アドレスの値
８１  データサイズの識別情報
８２  データサイズの値
８５  フッタ
８６  データの終わりの識別情報
【図１】
2010152558.tif 000003
【図２】
2010152558.tif 000004
【図３】
2010152558.tif 000005
【図４】
2010152558.tif 000006
【図５】
2010152558.tif 000007
【図６】
2010152558.tif 000008
【図７】
2010152558.tif 000009
【図８】
2010152558.tif 000010