(57)【特許請求の範囲】
【請求項１】
外部装置を制御する制御装置として使用可能なプログラマブル・ロジックコントローラであって、該プログラマブル・ロジックコントローラは、
前記外部装置を制御するユーザ・アプリケーションプログラムと、
前記プログラマブル・ロジックコントローラのハードウェアに依存する機能であり、前記ユーザ・アプリケーションプログラムから呼び出され前記プログラマブル・ロジックコントローラが実際に実行するオブジェクトコードおよび前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報で構成されたシステムライブラリと、
このシステムライブラリをプロテクト機能を有する記憶装置に格納する手段と、
を備え、
前記プログラム・ロジックコントローラの外部に設けられた支援ツールにおいて、前記記憶装置にプロテクトされて格納された前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報については、前記プログラマブル・ロジックコントローラからアップロードする手段と、
前記支援ツールにおいて、前記アップロードする手段によってアップロードされた前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報を参照しながら前記ユーザ・アプリケーションプログラムをコンパイルしてオブジェクトコードを生成し、該オブジェクトコードを前記ユーザ・アプリケーションプログラムとして前記プログラマブル・ロジックコントローラにダウンロードする手段と、
を有することを特徴とするプログラマブル・ロジックコントローラ。
【請求項２】
前記付属情報には、前記ユーザ・アプリケーションプログラムの、オブジェクトコードを論理的に編集する際に必要となるシステムライブラリのＡＰＩ（アプリケーションインタフェース）情報、グラフィックな言語によるグラフィックなプログラム編集の際に必要となるＦＢＤ(Function Block Diagram)を範疇に含む部品のグラフィック情報、及びシステムライブラリのプロパティ情報、が含まれていることを特徴とする請求項１記載のプログラマブル・ロジックコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブル・ロジックコントローラ（以下、単に「ＰＬＣ」と略称することがある）及びプログラマブル・ロジックコントローラのロジック更新支援ツール（以下、単に「支援ツール」と略称することがある）に関する。
【背景技術】
【０００２】
ＦＡ（ファクトリオートメーション）等の機械制御に使用されるＰＬＣは、リレー回路の代替回路として開発された経緯を有するものであり、ＭＰＵ（マイクロプロセッサ）を有してはいても、その動作の仕方は通常のコンピュータとは全く異なるものである。即ち、ＰＬＣは、スイッチやセンサなどの入力機器のＯＮ／ＯＦＦ情報を入力し、ラダー言語などで書かれたシーケンスプログラム（ユーザプログラム）に沿って論理演算を実行すると共に、その演算結果により、リレー、バルブ、アクチュエータなどの出力機器にＯＮ／ＯＦＦ情報の信号を出力することで、これらの機器の制御を行うことに使用されている。
【０００３】
ユーザプログラムを作成・編集する場合や、ユーザプログラムをＰＬＣの所定のメモリへ書き込む場合（以下、「ダウンロード」と呼称する）、或いはＰＬＣの所定のメモリからユーザプログラムを読み出す場合（以下、「アップロード」と呼称する）場合は、専用のロジック更新支援ツール（即ち支援ツール）が用いられている。
【０００４】
従来、このようなＰＬＣの１例として、各機能ごとに作成されたユニットを複数用意しておき、これらのユニットを電気・機械的に連結する構成のものが開発されている。なお、このようなユニットとしては、例えば、他のユニットに電源を供給する電源ユニット、ＩＮリフレッシュすることで入力した入力信号に基づいてプログラムメモリに記憶したユーザプログラムを実行するＣＰＵユニット，ＣＰＵユニットとバス通信可能で入力機器または出力機器を接続するＩ／Ｏユニット等がある。
【０００５】
また、最近では、このＩ／Ｏユニットにも、ＣＰＵ（ＭＰＵ）や、プログラムメモリを搭載すると共に、このプログラムメモリに所望のユーザプログラムを格納しておき、当該Ｉ／Ｏユニット側でも上記ユーザプログラムの演算実行をすることで、所定の制御を行えるように構成したものも開発されている。
【０００６】
なお、フラッシュメモリはツールでアクセスできないことに着目し、ＰＬＣに搭載するＩ／Ｏユニットのプログラムメモリとして、このようなフラッシュメモリを積載し、このフラッシュメモリに、ユーザプログラムの一部または全部をライブラリ化したものを格納することで、ローダ等のツールによる読み出しができないようにし、これにより、第三者による不正アクセスを防止する技術が開示されている（特許文献１参照）。
【０００７】
図６は、従来のＰＬＣ支援システムにおける支援端末装置（支援ツール）−ＰＬＣ間の情報の流れを示す説明図である。
同図に示すように、従来、ＰＬＣのアプリケーションプログラムで引用されて使用される機能ライブラリのオブジェクトコードは、後述するシステムライブラリの場合は固定組込情報９０１として、ＰＬＣ内部の不揮発メモリ（ＲＯＭ）に予め格納されているか、若しくは支援ツールでユーザ編集・作成情報８００が固定組込情報８０１を参照しながらコンパイル及びリンクされて生成されたものが、プログラマブルなアプリケーションプログラムの一部（ＰＬＣオブジェクト９００）として、ＰＬＣにダウンロードされる（ステップＰ９）。
【０００８】
オブジェクトコードが予めＰＬＣ本体に格納されている場合、このオブジェクトコードは基本的な機能を実現するものであることが多く、よって、「システムライブラリ」などと呼ばれている。他方、ユーザが、アプリケーションの一部として、サブルーチン群をライブラリ化し、ＰＬＣにダウンロードして使用する場合、このライブラリは「ユーザライブラリ」などと呼ばれている。
【０００９】
一方、支援ツール側には、プログラミングのために使用するシステムライブラリのアプリケーションインタフェース（ＡＰＩ）情報や、ＦＢＤ(Function Block Diagram)などのグラフィックな言語によるプログラム編集の際に必要となる、部品のグラフィック情報、プロパティ情報などがある。これらについては、従来技術では、予め支援ツールに、固定組込情報８０１として必要情報を保持しているか、若しくはユーザが所与の仕様に合せて作り込んでいた。
【００１０】
なお、システムライブラリ（即ち、ＰＬＣ本体に予め組み込まれた形で提供されるライブラリ）については、ＰＬＣ本体に、固定組込情報９０１として、そのオブジェクトコードが格納されており、支援ツールにおいて当該オブジェクトコードをプログラミングに使用する際に必要となる前述のグラフィック情報、及びプロパティ情報などは、支援ツール内に固定組込情報８０１（システムライブラリ情報）として組み込まれて提供されることが多かった。
【００１１】
近年、ＰＬＣのアプリケーション記述用言語は、従来のラダー言語のみではなく、例えば、近年流行している「ＩＥＣ６１１３１−３」に準拠したＰＬＣのアプリケーション記述用言語の場合は、通常のＣ言語を用いるプログラミングなどと同様に構造化プログラミングができるようになっている。ところで、この構造化可能なプログラミングにおいて、或る関数をシステムライブラリとする場合に必要となる情報には、
（１）オブジェクトコード（ＰＬＣが実際に実行するバイナリ・コード）、
（２）アプリケーションインタフエース（ＡＰＩ）情報（即ち、変数名、変数の型、変数の属性）などの情報、
（３）部品のグラフィック情報（即ち、プログラムを描画するためのグラフィック情報、
（４）プロパティ情報（即ち、ライブラリの製作者、作成時間、等の情報）、
などがある。
【００１２】
しかし、この内、（１）に示す情報は、ＰＬＣ本体が動作するために必要な情報であるが、（２）〜（４）に示す情報は、本来、ＰＬＣのアプリケーションを実行するに際しては不要な情報であり、しかしながら、支援ツール側には備えることができる情報であるので、従来は、（２）〜（４）に示す情報については、支援ツールに格納していた。
【特許文献１】特開２００４−５３８９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記背景技術で述べた従来のＰＬＣ及びその更新支援ツールにあっては、多様化するＰＬＣの各々について、システムライブラリ等の、本来ＰＬＣに付属させるべき固有情報まで、更新支援ツール側で逐一保持しており、このことは、更新支援ツールの記憶容量負担と、更新手続きの負担とを増大させることになるので、システム設計上、またシステムの機能性・運用性の面から好ましくないという問題点があった。
【００１４】
一般に、システムライブラリは、ＰＬＣなどの組み込み機器のハ−ドウェアに依存する機能を操作する機能群であることが多い。従って、ＰＬＣの或る製品群で、例えば、使用しているマイクロコントローラやＡＳＩＣが異なる場合、ユーザからのインタフェ−ス（ＡＰＩ）は変えずに、内部のオブジェクトコードをハードウェアに合せてモディファイしてから実装することが多い。ここで、システムライブラリとユーザライブラリの違いについて、さらに吟味すると、
（１）システムライブラリは、実行オブジェクがＰＬＣ本体側不揮発メモリなどに予め組み込まれているＰＬＣファームウェアと同等の機能群であるのに対し、ユーザライブラリはオブジェクトコードを含めユーザアプリケーションとして支援ツール側で編集、保持している。
（２）システムライブラリのオブジェクトは、例えばＣ言語など、ＰＬＣの内部機能を製作するプログラム言語で記述され、ハードウェア依存の機能などを操作できるのが一般的であるが、ユーザライブラリはＰＬＣのアプリケーション言語（ラダー、ＦＢＤなど）で記述され、操作・処理対象はＰＬＣのアクセス可能なメモリ空間である。
（３）システムライブラリは、コンパイル済みのオブジェクトのみがＰＬＣ本体側不揮発メモリ上などに存在するが、ユーザライブラリはソースが支援ツールに存在し、ＰＬＣのアプリケーションと同様、コンパイル、リンクしてＰＬＣにダウンロードして使用している。
【００１５】
このため、従来技術では、支援ツールは、ＰＬＣ本体側が製品として予め備えるシステムライブラリの品揃えが増える度に、それらを使用して編集機能を提供するために、支援側のシステムライブラリのアップデートを追従して行う必要性を有していた。本発明は、この点を解消することを課題の一つとしている。
【００１６】
なお、この課題は、従来の一般的な製品のように、システムライブラリが、予め埋め込まれた機能群として製品に付帯して販売されるものであれば、大きな問題点ではない。しかし、システムライブラリの機能群自体を、製品購入後に、ＰＬＣ本体のファームウェアの版数更新無しに、オンラインで更新できるような仕組みを持たせた場合を考えると、この場合、ＰＬＣ本体に格納される基本部分であるファームウェアは更新されないが、周辺的、付属的な機能群であるシステムライブラリは、必要に応じて更新されることになる。
【００１７】
このような場合、或るＰＬＣと、他のＰＬＣとで、それらの内部にそれぞれ格納されているシステムライブラリの機能群の内容が異なることが考えられる。
このような状態で、例えば支援ツールのバージョンが異なったりすると、ＰＬＣ本体側のシステムライブラリと、支援ツールの持つライブラリのための情報との不整合が起きやすくなる。
【００１８】
例えば、会社Ａの社員がＰＬＣのカスタマイズとして、システムライブラリを追加、若しくは更新し、それを基にしてプログラム製作を行なって装置を設置したとすると、その後、設備の保守を担当する会社Ｂの社員が、同一の支援ツールソフトウェアによってモニタをしようとした場合、ソフトウェアは同じであるのにも関わらず、ライブラリの不一致により、一部のモニタや、保守ができない、という事態が発生することが考えられる。
【００１９】
このような事態の発生を回避するため、システムライブラリのオブジェクトコードと共に、プログラミングのために使用する前述の情報、即ち、グラフィックな言語によるプログラム編集の際に必要となる部品のグラフィック情報、システムライブラリのアプリケーションインタフエ−ス（ＡＰＩ）情報、ＦＢＤ(Function Block Diagram)情報、及びシステムライブラリのプロパティ情報などを、全てＰＬＣ本体側に備えておき、ＰＬＣ本体側から支援ツールへアップロードするという方式も考えられる。
【００２０】
しかしながら、この方式の場合は、本来、予め組み込まれ、内部機能として隠蔽されるべき技術資産の側面も持つシステムライブラリ（及びその関連情報）が、一般的なユーザライブラリと同等の扱いになってしまうという問題点が生じる。このため、オブジェクトコードのブラインドコピーによる機器の複製や、またシステムライブラリの機能群のノウハウ流出が防止できないことになる。
【００２１】
本発明は、上記従来の問題点に鑑みてなされたものであり、システムライブラリのオブジェクトコードに対する不正アクセスを防止する手段を備えると共に、支援ツールでのシステムライブラリのプログラミングや編集の際に必要な情報については支援ツールにアップロードして使用させることができるプログラマブル・ロジックコントローラを提供することを目的としている。
【００２２】
本発明の他の目的は、システムライブラリの更新の際に必要な支援ツールのバージョンアップを不要にすることができるプログラマブル・ロジックコントローラを提供することにある。
【００２３】
本発明の他の目的は、プログラム開発環境として別途専用のものを用意することなく、ユーザが作成するプログラムの一部または全部に対するプロテクトを簡単かつ確実に掛けることができるプログラマブル・ロジックコントローラを提供することにある。
【００２４】
本発明の他の目的は、システムライブラリのオブジェクトコードに対する不正アクセスを防止する手段をＰＬＣに備えさせると共に、システムライブラリのプログラミングや編集の際に必要な情報はＰＬＣに配置したものをアップロードして使用できるようにしたプログラマブル・ロジックコントローラのロジック更新支援ツールを提供することにある。
【００２５】
本発明の他の目的は、ＰＬＣ本体側が備えるシステムライブラリの更新の際に必要なバージョンアップを不要にすることができるプログラマブル・ロジックコントローラのロジック更新支援ツールを提供することにある。
【課題を解決するための手段】
【００２６】
上記課題を解決するために、本発明に係るプログラマブル・ロジックコントローラは、外部装置を制御する制御装置として使用可能なプログラマブル・ロジックコントローラであって、該プログラマブル・ロジックコントローラは、前記外部装置を制御するユーザ・アプリケーションプログラムと、前記プログラマブル・ロジックコントローラのハードウェアに依存する機能であり、前記ユーザ・アプリケーションプログラムから呼び出され前記プログラマブル・ロジックコントローラが実際に実行するオブジェクトコードおよび前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報で構成されたシステムライブラリと、このシステムライブラリをプロテクト機能を有する記憶装置に格納する手段と、を備え、
前記プログラム・ロジックコントローラの外部に設けられた支援ツールにおいて、前記記憶装置にプロテクトされて格納された前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報については、前記プログラマブル・ロジックコントローラからアップロードする手段と、前記支援ツールにおいて、前記アップロードする手段によってアップロードされた前記ユーザ・アプリケーションプログラムの編集の際に必要となる付属情報を参照しながら前記ユーザ・アプリケーションプログラムをコンパイルしてオブジェクトコードを生成し、該オブジェクトコードを前記ユーザ・アプリケーションプログラムとして前記プログラマブル・ロジックコントローラにダウンロードする手段と、を有することを特徴とする。
【００２７】
ここで、前記プログラマブル・ロジックコントローラにおいて、前記付属情報には、前記ユーザ・アプリケーションプログラムの、オブジェクトコードを論理的に編集する際に必要となるシステムライブラリのアプリケーションインタフェース（以下、「ＡＰＩ」と略称する）情報、グラフィックな言語によるグラフィックなプログラム編集の際に必要となるＦＢＤ(Function Block Diagram)を範疇に含む部品のグラフィック情報、及びシステムライブラリのプロパティ情報、が含まれていることを特徴とする。
【００２８】
また、前記プログラマブル・ロジックコントローラにおいて、前記サブルーチン形式の機能ライブラリは、ラダー言語を範疇に含む一般的なＰＬＣアプリケーション記述言語で記述されることが好ましい。
【００２９】
さらに、前記プログラマブル・ロジックコントローラにおいて、前記サブルーチン形式の機能ライブラリは、Ｃ言語を範疇に含む言語、即ち一般的なＰＬＣのアプリケーション記述言語ではない、汎用言語のみで記述されることが好ましい。
【発明の効果】
【００３０】
以上説明したように、本発明のプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールによれば、ＰＬＣ内に格納されたサブルーチンライブラリのオブジェクト及びＡＰＩの情報を有しない支援ローダ環境であっても、アプリケーションの部分的編集が可能となり、支援ツールは、ＰＬＣ本体のシステムライブラリ群の機能更新に追従してアップデートなどを行なう必要がなく、また、プログラム上の不整合も起こらない。
【００３１】
また、オブジェクトコードへのインタフェ−スを保証するＡＰＩ情報と、システムライブラリとを使用してプログラム編集を行なうことにより、必要な情報のみを入手することが可能となり、ユーザへのノウハウ流出やブラインドコピーを防止できる効果がある。
【００３２】
さらに、システムライブラリを機能群に分けて追加・拡張できるように構成したことにより、システムライブラリ機能のうち、一部の内容を編集、機能追加したエンジニアにとっては、当該一部の存在を明確にすることができるので、その利用権を確立して公開することが可能となる効果がある。
【発明を実施するための最良の形態】
【００３３】
以下、本発明のプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールの最良の実施形態について、〔第１の実施形態〕〜〔第３の実施形態〕の順に図面を参照して詳細に説明する。
【００３４】
〔第１の実施形態〕
図１は、本発明の第１の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールを含むＰＬＣ支援システムの機能ブロックの構成を示すブロック図である。
【００３５】
同図において、本実施形態のＰＬＣ支援システムは、支援端末装置１（本実施形態に係るプログラマブル・ロジックコントローラのロジック更新支援ツール）と、ＰＬＣ２（本実施形態に係るプログラマブル・ロジックコントローラ）とを備えて構成される。
【００３６】
支援端末装置１の機能ブロックは、全体を制御する制御部１１と、キーボード、メモリスティック等の入力機器を制御して指令情報、データ、プログラム等を入力するデータ入力部１２と、コンパイラ等の処理プログラムを備えてデータのコンパイル、更新、編集、リンク付け等の処理を行う処理部１３と、ＲＡＭ，ＲＯＭ等の半導体記憶装置や、不揮発性半導体（フラッシュメモリ等）の情報記憶を制御する記憶部１４と、ＰＬＣとの間でデータやプログラムの送受信を行う送受信部１５と、を備える。
【００３７】
また、ＰＬＣ２の機能ブロックは、支援端末装置１を含む端末装置との間でデータやプログラムの送受信を行う通信ポート２２と、入力機器からの状態情報を入力する入力処理や、被制御系に属する出力機器へ指令情報を出力する出力処理を行う入出力ユニット２３と、ＲＡＭ，ＲＯＭ等の半導体記憶装置や、不揮発性半導体（フラッシュメモリ等）の情報記憶を制御する記憶部２４と、通信ポート２２を介する入出力情報の処理や、入力機器からの状態情報を解析・処理して出力機器への指令情報を生成する処理ユニット２５と、を備える。
【００３８】
支援端末装置１は、上記の他に、機能ブロックとして、他の端末装置との通信を担う通信部、ＬＡＮやインターネット網を含む通信回線を選択制御する回線制御部、インターネット網に公開するウェブページの管理を担うウェブサーバ部、保管するプログラムやデータのセキュリティ機能及び暗号化処理を担う不正アクセス防止部、等を備えることができる。
【００３９】
記憶部２４を不揮発性の半導体メモリであるフラッシュメモリで構成する場合は、簡単なツール等から記憶情報をプロテクトする機能、即ち、制御部２１により、オブジェクトプログラムの一部として実行される時以外の、読み出しを不可にする機能が発揮される。よって、後述するシステムライブラリのオブジェクトは、このようなフラッシュメモリに格納することが好ましい。
【００４０】
図２は、本発明の第１の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。
以下、図１、図２を参照しながら、支援端末装置１の動作を説明する。
【００４１】
支援端末装置１のデータ入力部から、ＰＬＣ２の記憶部２４（図１）が保管するＰＬＣ記憶情報２０（図２（ｂ））のＰＬＣオブジェクト２００（図２（ｂ））に対する更新コマンドが入力され、引き続き更新情報の中身となるＰＬＣソースプログラムの一部または全体が入力されると、制御部１１は、処理部１３を介し、この更新情報でもって、記憶部１４が保管するユーザ編集・作成情報１００の内容を更新する。次に、制御部１１は、ＰＬＣ２の記憶部２４（図１）が保管する組込情報２０１（図２（ｂ））のうち、システムライブラリに関連する「システムライブラリ・部品情報」、「システムライブラリ・ＡＰＩ情報」、「システムライブラリ・プロパティ情報」を、記憶部１４が制御する記憶装置に、アップロード情報としてアップロードする（ステップＰ１）。
【００４２】
この後、制御部１１は、処理部１３を介して、アップロード情報１０１及びユーザ編集・作成情報１００の一部情報を参照しながら、ユーザ編集・作成情報１００の「ＰＬＣユーザ・アプリケーションプログラム・ソースコード」に対して、編集、コンパイル、リンク付け（リンケージ）等の処理を行い、ＰＬＣユーザ・アプリケーションプログラム・オブジェクトコードで書かれた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を得る。最後に、制御部１１は、上記得られた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を、ＰＬＣ２の記憶部２４（図１）が制御する記憶装置に、ＰＬＣオブジェクト２００としてダウンロードする（ステップＰ２）。
【００４３】
本実施形態によれば、ＰＬＣ２内に格納されたサブルーチンライブラリのオブジェクト及びＡＰＩ情報を有しない支援ローダであっても、アプリケーションの部分的編集が可能となり、支援ツールは、ＰＬＣ２内のシステムライブラリ群の機能更新に追従してアップデートなどを行なう必要がなく、また、プログラム上の不整合も起こさない。
【００４４】
また、オブジェクトコードへのインタフェ−スを保証するＡＰＩ情報と、システムライブラリとを使用してプログラム編集を行なうことにより、必要な情報のみを提供することが可能となり、ユーザへのノウハウ流出やブラインドコピーを防止できる効果がある。
【００４５】
さらに、システムライブラリを機能群に分けて追加・拡張できるように構成したことにより、システムライブラリ機能のうち、一部の内容を編集、機能追加したエンジニアにとっては、当該一部の存在を明確にすることができるので、その利用権を確立して公開することが可能となる効果がある。
【００４６】
図３は、本発明の第１の実施形態に係るＰＬＣ支援システムの支援ツールの制御部１１の制御動作を示すフローチャート図である。
以下、図１，２を参照しながら、図３に示すフローチャートを使用して、本実施形態に係るＰＬＣ支援システムの支援ツールの制御部１１の制御動作を説明する。
【００４７】
ここでは、支援端末装置１に対して、ＰＬＣ２の記憶部２４（図１）が保管するＰＬＣ記憶情報２０のＰＬＣオブジェクト２００に対する更新コマンドが入力された以降の動作を説明する。
【００４８】
（ステップＳ１）
まず、ステップＳ１では、制御部１１は、更新情報の中身となるＰＬＣソースプログラムの一部または全体の入力をデータ入力部１２から受取り、一旦、記憶部１４に格納する。
【００４９】
（ステップＳ２）
次に、ステップＳ２では、制御部１１は、処理部１３を介し、前記受け取った更新情報でもって、記憶部１４が保管するユーザ編集・作成情報１００の内容を更新する。
【００５０】
（ステップＳ３）
次に、ステップＳ３では、制御部１１は、ＰＬＣ２の記憶部２４が保管する組込情報２０１のうち、システムライブラリに関連する「システムライブラリ・部品情報」、「システムライブラリ・ＡＰＩ情報」、「システムライブラリ・プロパティ情報」を、記憶部１４が制御する記憶装置に、アップロード情報としてアップロードする。
【００５１】
（ステップＳ４）
次に、ステップＳ４では、制御部１１は、処理部１３を介して、アップロード情報１０１及びユーザ編集・作成情報１００の一部情報を参照しながら、ユーザ編集・作成情報１００の「ＰＬＣユーザ・アプリケーションプログラム・ソースコード」に対して、編集、コンパイル、リンク付け（リンケージ）等の処理を行い、ＰＬＣユーザ・アプリケーションプログラム・オブジェクトコードで書かれた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を得る。
【００５２】
（ステップＳ５）
最後に、ステップＳ５では、制御部１１は、上記得られた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を、ＰＬＣ２の記憶部２４が制御する記憶装置に、ＰＬＣオブジェクト２００としてダウンロードする。
【００５３】
〔第２の実施形態〕
本発明の第２の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールにおける機能ブロックの構成は、本発明の第１の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールにおける機能ブロックの構成と同じであり、支援ツール−ＰＬＣ間の情報の流れを制御する制御部１１の制御機能だけが異なるので、図示は省略し、以下、本実施形態に係る支援ツール−ＰＬＣ間の情報の流れについて説明する。なお、以下の説明において、本実施例の支援ツールを支援ツールＡと表記することがあるが、これは支援ツールＡがシステムライブラリの編集・追加を主眼として使用していることを明確にする為であり、役割を分かり易く説明するものである。
【００５４】
図４は、本発明の第２の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。
以下、図１、図４を参照しながら、支援端末装置１（支援ツール）の動作を説明する。
【００５５】
ＰＬＣ２の記憶部２４（図１）が保管する組込情報４００（図４（ｂ））のシステムライブラリには、機能群１の情報４０１（オブジェクトコード）が予め組み込まれている。また、支援端末装置１の記憶部１４にも、機能群１の情報３０１（ソースコード形式）が予め組み込まれている。機能群１の情報４０１は、具体的には「システムライブラリ部品情報」、「システムライブラリＡＰＩ情報」、及び「システムライブラリ・プロパティ情報」、とする。ここで、支援端末装置１のデータ入力部から、システムライブラリの機能群の追加コマンドが入力され、引き続き、ＰＬＣ２に追加すべき機能群として機能群２の情報３０２（具体的には「システムライブラリ部品情報」、「システムライブラリＡＰＩ情報」の各ソースコード形式）が入力されると、制御部１１は、処理部１３を介し、機能群１の情報３０１と機能群２の情報３０２とを併せた情報に対して編集、コンパイル、リンク付け（リンケージ）等の処理を行い、システムライブラリ・オブジェクトを得る。その後、制御部１１は、このシステムライブラリ・オブジェクトを、ＰＬＣ２の記憶部２４にダウンロードし（ステップＰ３）、組込情報４００（図４（ｂ））のシステムライブラリを更新し、ＰＬＣ２のシステムライブラリとして、組込情報４００に、（機能群１の情報４０１）＋（機能群２の情報４０２）を新たに設定する。
【００５６】
本実施形態によれば、支援ツールＡは、システムライブラリ機能群２のＡＰＩ情報、部品情報、プロパティ情報などのソースコード形式を予め保持しておいて、予めＰＬＣ本体に組み込まれていたシステムライブラリ機能群１（ソースコード形式）に加え、システムライブラリ機能群２を編集、コンパイルし、さらにダウンロードすることで、システムライブラリオブジェクトを（システムライブラリ機能群１＋システムライブラリ機能群２）のオブジェクトに更新することができる。
【００５７】
〔第３の実施形態〕
本発明の第３の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールにおける機能ブロックの構成は、本発明の第１の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールにおける機能ブロックの構成と同じであり、支援ツール−ＰＬＣ間の情報の流れを制御する制御部１１の制御機能だけが異なるので、図示は省略し、以下、本実施形態に係る支援ツール−ＰＬＣ間の情報の流れについて説明する。
【００５８】
図５は、本発明の第３の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。本実施例では、先に説明した第２の実施例における支援ツールＡと区別する為に、支援ツールＢの表記を用いる。これは支援ツールＢがシステムライブラリを用いたプログラミングを主眼として使用していることを明確にする為である。
【００５９】
この実施形態では、まず、支援端末装置１Ａ（支援ツールＡ）−ＰＬＣ２間の情報のやり取りを行い、その後に、支援端末装置１Ｂ（支援ツールＢ）−ＰＬＣ２間の情報のやり取りを行う。
【００６０】
まず、図１、図４、図５を参照しながら、支援端末装置１Ａ（支援ツールＡ）−ＰＬＣ２間の情報の流れについて説明するが、基本的に先に説明した第２の実施例と同様である。
【００６１】
ＰＬＣ２の記憶部２４（図１）が保管する組込情報６１０（図５（ｂ））のシステムライブラリには、機能群１の情報６１１（オブジェクトコード）が予め組み込まれている。また、支援端末装置１Ａ（支援ツールＡ）の記憶部１４にも、機能群１の情報５１１（ソースコード形式）が予め組み込まれている。機能群１の情報６１１は、具体的には「システムライブラリ部品情報」、「システムライブラリＡＰＩ情報」、及び「システムライブラリ・プロパティ情報」、とする。ここで、支援端末装置１Ａのデータ入力部から、システムライブラリの機能群の追加コマンドが入力され、引き続き、ＰＬＣ２に追加すべき機能群として機能群２の情報５１２（具体的には「システムライブラリ部品情報」、「システムライブラリＡＰＩ情報」の各ソースコード形式）が入力されると、制御部１１は、処理部１３を介し、機能群１の情報５１１と機能群２の情報５１２とを併せた情報に対して編集、コンパイル、リンク付け（リンケージ）等の処理を行い、システムライブラリ・オブジェクトを得る。その後、制御部１１は、このシステムライブラリ・オブジェクトを、ＰＬＣ２の記憶部２４にダウンロードし（図４のステップＰ３参照）、組込情報６１０（図５（ｂ））のシステムライブラリを更新し、ＰＬＣ２のシステムライブラリとして、組込情報６１０に、（機能群１の情報６１１）＋（機能群２の情報６１２）を新たに設定する。
【００６２】
次に、図１、図５を参照しながら、支援端末装置１Ｂ（支援ツールＢ）−ＰＬＣ２間の情報の流れについて説明する。
支援端末装置１Ｂのデータ入力部から、ＰＬＣ２の記憶部２４（図１）が保管するＰＬＣ記憶情報６０（図５（ｂ））のＰＬＣオブジェクト６００（図５（ｂ））に対する更新コマンドが入力され、引き続き更新情報の中身となるＰＬＣソースプログラムの一部または全体が入力されると、制御部１１は、処理部１３を介し、この更新情報でもって、記憶部１４が保管するユーザ編集・作成情報５００の内容を更新する。次に、制御部１１は、ＰＬＣ２の記憶部２４（図１）が保管する組込情報６１０（図５（ｂ））のうち、機能群１の情報６１１及び機能群２の情報６１２のシステムライブラリに関連する「システムライブラリ・部品情報」、「システムライブラリ・ＡＰＩ情報」、「システムライブラリ・プロパティ情報」を、ライブラリアップデートなどのコマンドを発行することにより、記憶部１４が制御する記憶装置にアップロード情報としてアップロードする（ステップＰ５）。
【００６３】
この後、制御部１１は、処理部１３を介して、アップロード情報５１０及びユーザ編集・作成情報５００の一部情報を参照しながら、ユーザ編集・作成情報５００の「ＰＬＣユーザ・アプリケーションプログラム・ソースコード」に対して、編集、コンパイル、リンク付け（リンケージ）等の処理を行い、ＰＬＣユーザ・アプリケーションプログラム・オブジェクトコードで書かれた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を得る。最後に、制御部１１は、上記得られた「ＰＬＣユーザ・アプリケーションプログラム・オブジェクト」を、ＰＬＣ２の記憶部２４（図１）が制御する記憶装置に、ＰＬＣオブジェクト６００としてダウンロードする（ステップＰ４）。
【００６４】
本実施形態によれば、ＰＬＣ２に、支援ツールＡとの情報のやり取りにより、システムライブラリ機能群２の情報６１２が設定された後で、システムライブラリ機能群２の情報５１２を持たない支援ツールＢが接続された場合、支援ツールＢは、ライブラリアップデートなどのコマンドを発行することにより、ＰＬＣ本体側からシステムライブラリ機能群１の情報６１１、及びシステムライブラリ機能群２の情報６１２の、ＡＰＩ情報、部品情報、プロパティ情報のみを、機能群１の情報５１１、及び機能群２の情報５１２としてアップロードすることができる。支援ツールＡのようにソースコード形式で保持されていないので、支援ツールＢではシステムライブラリ機能群２の編集はできないが、それらを使用したＰＬＣアプリケーションのモニタや編集は可能となる効果がある。即ち、ソースコードは守秘しつつも機能の利用する環境を実現している。
【００６５】
なお、本発明に係る支援端末装置１の上記制御を、図３のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、ＣＤ−ＲＯＭや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ，パーソナルコンピュータ，汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
【図面の簡単な説明】
【００６６】
【図１】本発明の第１の実施形態に係るプログラマブル・ロジックコントローラ及びプログラマブル・ロジックコントローラのロジック更新支援ツールを含むＰＬＣ支援システムの機能ブロックの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。
【図３】本発明の第１の実施形態に係るＰＬＣ支援システムの支援ツールの制御部１１の制御動作を示すフローチャート図である。
【図４】本発明の第２の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。
【図５】本発明の第３の実施形態に係るＰＬＣ支援システムにおける支援ツール−ＰＬＣ間の情報の流れを示す説明図である。
【図６】従来のＰＬＣ支援システムにおける支援端末装置（支援ツール）−ＰＬＣ間の情報の流れを示す説明図である。
【符号の説明】
【００６７】
１      支援端末装置
２      ＰＬＣ
１０      支援ツール記憶情報
１１，２１      制御部
１２      データ入力部
１３      処理部
１４，２４      記憶部
１５      送受信部
２０      ＰＬＣ記憶情報
２２      通信ポート
２３      入出力ユニット
２５      処理ユニット
１００      ユーザ編集・作成情報
１０１      アップロード情報
２００      ＰＬＣオブジェクト
２０１      組込情報
【図１】
0004849078.tif 000002
【図２】
0004849078.tif 000003
【図３】
0004849078.tif 000004
【図４】
0004849078.tif 000005
【図５】
0004849078.tif 000006
【図６】
0004849078.tif 000007