(57)【特許請求の範囲】
【請求項１】
ユーザプログラムがＪａｖａと、Ｊａｖａ以外の言語のプログラム言語で構成され、
前記各プログラム言語で構成されたユーザプログラムをそれぞれ格納するＪａｖａ用ユーザプログラム記憶手段およびＪａｖａ以外の言語用ユーザプログラム記憶手段と、
それら複数のユーザプログラム記憶手段に記憶された各ユーザプログラムをそれぞれ実行するＪａｖａ用プログラム管理手段およびＪａｖａ以外の言語用プログラム管理手段と、
前記ユーザプログラムを実行中に参照するデータを記憶するデータ記憶手段とを備え、
前記データ記憶手段は、同一のデータフォーマットで作成したデータが記憶され、
前記Ｊａｖａ用プログラム管理手段並びに前記Ｊａｖａ以外の言語用プログラム管理手段から前記データ記憶手段に対するアクセスが、中継手段を介して行うようにするとともに、その中継手段は、前記データ記憶手段に格納されたデータを各プログラム言語に対応するように変換する機能を備え、
前記同一のデータフォーマットは、前記Ｊａｖａ或いは前記Ｊａｖａ以外の言語のうちの１つのプログラム言語で作成されたユーザプログラムからは通常のプログラム実行によりアクセス可能なデータフォーマットであり、
前記変換する機能は、少なくとも、前記データフォーマットに対応していないプログラム言語のユーザプログラムと、前記データ記憶部に格納されたデータを関連づけたテーブルを備え、前記データフォーマットに対応していないプログラム言語用のプログラム管理手段からユーザプログラムの実行に伴う前記データ記憶手段のデータの要求を受けた際に、前記テーブルを参照して前記データ記憶手段にアクセスし、該当するデータを抽出して前記プログラム管理手段に返送する処理を行なうように構成したことを特徴とするコントロール制御装置。
【請求項２】
Ｊａｖａと、Ｊａｖａ以外の言語のプログラム言語で構成されたユーザプログラムを格納するユーザプログラム記憶手段と、
そのユーザプログラム記憶手段に記憶されたＪａｖａで構成されたユーザプログラムを実行するＪａｖａ用プログラム管理手段と、
前記ユーザプログラム記憶手段に記憶されたＪａｖａ以外の言語で構成されたユーザプログラムを実行するＪａｖａ以外の言語用プログラム管理手段と、
前記ユーザプログラムを実行中に参照するデータを記憶するデータ記憶手段と、
前記各プログラム管理手段から前記データ記憶手段に対するアクセス並びに前記ユーザプログラムメモリと前記各プログラム管理手段間のアクセスを司る中継手段を備え、
前記中継手段には、異なる言語で構成されたユーザプログラムにアクセスする際のメソッドを定義した管理データＩ／Ｆクラスを備え、
前記Ｊａｖａ用プログラム管理手段並びに前記Ｊａｖａ以外の言語用プログラム管理手段には、前記管理データＩ／Ｆクラスをインポートし、そのクラスで定義されたメソッドを用いて別のプログラム管理手段にアクセスし、その別のプログラム管理手段を介して別のプログラム言語で構成されたユーザプログラムを動作させる管理データ手段を備えて構成されていることを特徴とするコントロール制御装置。
【請求項３】
前記Ｊａｖａ以外の言語は、ラダーであり、
前記ユーザプログラムのうち、数値計算を主とする機能部分をＪａｖａ言語で構成し、接点のオン／オフを制御するような制御系をラダー言語で構成したことを特徴とする請求項１または２に記載のコントロール制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＰＬＣ，ＰＣ等のコントロール制御装置に関するもので、特にそのコントロール制御装置を動作するプログラムの改良に関する。
【０００２】
【従来の技術】
従来のＰＬＣ（プログラマブルロジックコントローラ）は、図１に示すように、ハードウエア１ａは、ユーザプログラム１ｂにより規定される各種の動作をオペレーティングシステム（ＯＳ）１ｃを介して制御され、実行されるようになっている。そして、ユーザプログラム１ｂの言語は、ラダーが用いられている。
【０００３】
そのため、ユーザプログラム１ｂとＯＳ１ｃとの間には、ラダーで組まれたプログラムを理解し、実行させるための専用のユーザプログラム解釈・実行部１ｄさらには制御装置システム部１ｅを介在することにより構成される。
【０００４】
【発明が解決しようとする課題】
従来のＰＬＣは、専用言語であるラダーのみを用いてユーザプログラム１ｂの開発を行っていたため、以下に示す種々の問題を有していた。すなわち、例えばＰＬＣによる制御対象・内容を変える必要がある場合、それに対応してユーザプログラムを修正したり、新たに作成したりする必要が出てくる。しかし、そのようにプログラムに対して修正等するためには、そのプログラム言語に精通している必要があり、ラダーは専用言語であるので、開発者育成が容易ではなかった。よって、ユーザ側で簡単に修正等することはできなかった。
【０００５】
また、ユーザプログラム解釈・実行部１ｄは、各メーカーがそれぞれ独自のものを作成し、ＰＬＣに実装していたため、異なるメーカーのＰＬＣを用意し、それらを用いて各種制御をすることは非情に困難であった。また、同様の理由から、他社からの切り替えも容易ではなくなる。
【０００６】
さらに、制御プログラムの中には、ある接点のＯＮ／ＯＦＦを制御するといった制御系の他に、管理系、情報系と称される数値計算を主とする部分があり、後者の管理系・情報系はラダーとしては不得意な部分である。そのため、当該部分を開発するのが困難で、多大な労力もかかる。
【０００７】
さらにまた、通常ユーザプログラムは、ラダーで組まれしかも、単一のプログラムにより構成されている。つまり、複数個のプログラムが相互に稼動しながら一連の処理を実行するという技術思想はなく、拡張性・汎用性に欠けるという問題も有している。
【０００８】
本発明は、上記した背景に鑑みてなされたもので、その目的とするところは、上記した問題を解決し、汎用性を有しプログラム開発が容易に行え、ユーザ側の開発効率を向上することができ、機能が向上し、システム構成も簡易となるコントロール制御装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記した目的を達成するために、本発明に係るコントロール制御装置では、ユーザプログラムがＪａｖａと、Ｊａｖａ以外の言語のプログラム言語で構成され、前記各プログラム言語で構成されたユーザプログラムをそれぞれ格納するＪａｖａ用ユーザプログラム記憶手段およびＪａｖａ以外の言語用ユーザプログラム記憶手段と、それら複数のユーザプログラム記憶手段に記憶された各ユーザプログラムをそれぞれ実行するＪａｖａ用プログラム管理手段およびＪａｖａ以外の言語用プログラム管理手段と、前記ユーザプログラムを実行中に参照するデータを記憶するデータ記憶手段とを備える。そして、前記データ記憶手段は、同一のデータフォーマット（実施の形態では、「Ｊａｖａオブジェクト」）で作成したデータが記憶され、前記Ｊａｖａ用プログラム管理手段並びに前記Ｊａｖａ以外の言語用プログラム管理手段から前記データ記憶手段に対するアクセスが、中継手段（実施の形態では、「Ｉ／Ｆ部１６」に相当）を介して行うようにするとともに、その中継手段は、前記データ記憶手段に格納されたデータを各プログラム言語に対応するように変換する機能を備える。さらに、前記同一のデータフォーマットは、前記Ｊａｖａ或いは前記Ｊａｖａ以外の言語のうちの１つのプログラム言語で作成されたユーザプログラムからは通常のプログラム実行によりアクセス可能なデータフォーマットであり、前記変換する機能は、少なくとも、前記データフォーマットに対応していないプログラム言語のユーザプログラムと、前記データ記憶部に格納されたデータを関連づけたテーブルを備え、前記データフォーマットに対応していないプログラム言語用のプログラム管理手段からユーザプログラムの実行に伴う前記データ記憶手段のデータの要求を受けた際に、前記テーブルを参照して前記データ記憶手段にアクセスし、該当するデータを抽出して前記プログラム管理手段に返送する処理を行なうように構成した。係る変換する機能は、実施の形態では、「論理メモリＩ／Ｆクラス」により実現されている。
【００１０】
このように、ユーザプログラムをＪａｖａで構成することにより、プログラム開発が容易に行え、ユーザ側の開発効率を向上することができる。つまり、すべてのユーザプログラムを汎用言語でＪａｖａで構築すると、新たに、専門言語を習得することなくシステム開発が行える。また、請求項２でも規定するように一部をＪａｖａで構成し、他の別のプログラム言語で構成するようにした場合には、その別のプログラム言語が専門言語とすると係る言語については習得する必要があるが、ユーザプログラムのすべてを専門のプログラム言語で構成する場合に比べると、習得するのに必要な知識は少なくて済む。よって、やはり従来に比べて開発効率が向上する。
【００１２】
なお、複数のユーザプログラム記憶手段は、物理的に複数個のメモリ等を有している必要はなく、１つのメモリのある領域がＪａｖａプログラムが格納され、他の領域に別のプログラムが格納されるようにしてもよい。
【００１３】
このように形成すると、複数のプログラム言語のうちの１つがＪａｖａで構成されるので、請求項１と同様に、開発効率が向上する。しかも、各プログラム言語は、実行するのに得意／不得意な分野があるので、複数のプログラム言語を用いて開発すると、各プログラム言語で得意な分野の処理を担当するようにすることにより、性能が向上し、システム構成も簡易となる。
【００１４】
そして、本発明では、Ｊａｖａ用と、Ｊａｖａ以外の言語用の各プログラム管理手段が中継手段を介して同一のデータ記憶手段にアクセスできるようにしたため、あるプログラム言語で作成されたユーザプログラムで処理して生成されたデータを別のプログラム言語で作成されたユーザプログラムで参照したりすることができるので、そのように複数種のプログラム言語によりコントロール制御装置を機能させることができる。
【００１５】
さらにまた、別の解決手段としては、Ｊａｖａと、Ｊａｖａ以外の言語のプログラム言語で構成されたユーザプログラムを格納するユーザプログラム記憶手段と、そのユーザプログラム記憶手段に記憶されたＪａｖａで構成されたユーザプログラムを実行するＪａｖａ用プログラム管理手段と、前記ユーザプログラム記憶手段に記憶されたＪａｖａ以外の言語で構成されたユーザプログラムを実行するＪａｖａ以外の言語用プログラム管理手段と、前記ユーザプログラムを実行中に参照するデータを記憶するデータ記憶手段と、前記各プログラム管理手段から前記データ記憶手段に対するアクセス並びに前記ユーザプログラムメモリと前記各プログラム管理手段間のアクセスを司る中継手段を備え、前記中継手段には、異なる言語で構成されたユーザプログラムにアクセスする際のメソッドを定義した管理データＩ／Ｆクラスを備え、前記Ｊａｖａ用プログラム管理手段並びに前記Ｊａｖａ以外の言語用プログラム管理手段には、前記管理データＩ／Ｆクラスをインポートし、そのクラスで定義されたメソッドを用いて別のプログラム管理手段にアクセスし、その別のプログラム管理手段を介して別のプログラム言語で構成することである。
【００１６】
実施の形態では、中継手段（Ｉ／Ｆ部１６），データ記憶手段（「Ｊａｖａオブジェクト」のデータフォーマットでデータ格納），プログラム管理手段並びにユーザプログラム記憶手段（Ｊａｖａプログラムメモリ）をＪａｖａで形成しているが、例えばユーザプログラムはラダーなどのＪａｖａ以外のプログラム言語で作成することもできる。もちろん、それ以外の部分でもＪａｖａ以外で組むことができる。
【００１７】
そして、請求項２のように構成すると、Ｊａｖａで組んだ部分は、汎用性がある言語で構築されるので、比較的簡単に作成することができる。さらに、本発明のように、各部分を部品化することにより、拡張も容易にできる。つまり、実施の形態で示すように、ユーザプログラム記憶手段たるユーザプログラムメモリを複数にすることにより、請求項２のように異なるプログラム言語をそれぞれ格納し、各プログラムに適材適所の処理をさせることができる。また、本発明では、複数のプログラム記憶手段を設けたとしても、各記憶手段に異なるプログラム言語で形成したユーザプログラムを格納する必要はなく、例えばともにラダーなど同一言語で作成した各プログラムをそれぞれ別々のユーザプログラム記憶手段に格納することもできる。この場合に、同一種類のプログラム言語で形成された各プログラムは、中継手段，プログラム管理手段を介して相手側のプログラムにアクセスできる。つまり、従来できなかった複数のプログラムで一連の処理をすることができ、プログラムの部品化ができる。
中継手段は、異なる言語で作成された各部間のアクセスを許容するため、相手側のプログラム言語等を意識しないでデータの送受等を行うための中継機能を有する。
【００１８】
上記した各発明を前提とし、前記Ｊａｖａ以外の言語は、ラダーであり、前記ユーザプログラムのうち、数値計算を主とする機能部分をＪａｖａ言語で構成し、接点のオン／オフを制御するような制御系をラダー言語で構成するとよい。
【００１９】
なお、本発明で言うコントロール制御装置とは、例えばＰＬＣ（プログラマブルロジックコントローラ）や、ＰＣ（プログラマブルコントローラ）と称させる各種の機器の動作をコントロールするための装置である。
【００２０】
また、各請求項に記載の発明は、少なくとも一部にＪａｖａを用いている点で共通し、また、ユーザプログラム記憶手段とそれに格納されたユーザプログラムを実施するプログラム管理手段と、そのプログラム管理手段で実行されるユーザプログラムが参照するデータを記憶するデータ記憶手段と、中継手段を備えたことを基本構成としている点で、主要部が共通する。
【００２１】
【発明の実施の形態】
図２は、本発明に係るコントロール制御装置であるＰＬＣの好適な一実施の形態を示している。本実施の形態では、ユーザプログラムの言語を、Ｊａｖａとラダーの２種類の言語を用いて構成したことを特徴としている。これにより、ユーザが実現したい機能に対し、適切なプログラム言語を用いて開発することにより、開発効率を大幅に向上することができる。また、そのようにして形成されたユーザプログラムは、各プログラム言語で得意な処理を担当することにより、より高性能なＰＬＣを構築できる。一例を示すと、管理系，情報系と称される数値計算を主とする機能部分をＪａｖａプログラムにより実現し、接点のオン／オフを制御するような制御系をラダープログラムで実現することができる。そして、係る機能を実現するための構成として、例えば図２に示すような構成をとることができる。
【００２２】
すなわち、同図に示すように、ユーザプログラム記憶手段として、第１ユーザプログラムメモリ１１と第２ユーザプログラムメモリ１２を有している。本例では、第１ユーザプログラムメモリ１１にはラダープログラム（制御系）を格納し、第２ユーザプログラムメモリ１２にはＪａｖａプログラム（管理系／情報系）を格納するようにしている。
【００２３】
そして、それら第１，第２ユーザプログラムメモリ１１，１２に格納された各プログラムは、それぞれラダープログラム管理部１３，Ｊａｖａプログラム管理部１４により管理され、各プログラムの解析・実行やプログラム内で使用するデータの管理を行うようになっている。そして、プログラムで使用するデータは、データ記憶部１５に格納されている。つまり、各プログラムは、データ記憶部１５へのアクセス、並びに他のプログラムに対する動作命令等は、すべて対応するプログラム管理部１３，１４を介して行うようになっている。
【００２４】
さらに本形態では、各プログラムが相互に実行することにより一連の処理をすることになるが、このとき、参照するデータは、ともに同一のデータを参照するようにし、また、互いに相手のプログラムを実行させたりすることができるようになっている。つまり、ある接点のオン／オフの制御タイミングについてデータが格納されている場合に、ラダープログラムを稼動させ、データを読み込み所定のタイミングで接点のオン／オフを制御する。そして、その接点のオン／オフの回数や時間間隔などから故障診断をしたり、故障時期を予測するなどの処理をＪａｖａで実行するようにしている。
【００２５】
ところで、ラダー用のデータは、メモリ上に一連の連続した状態で記憶する必要があり、また、Ｊａｖａ用のデータは、変数で管理され、メモリ上のどこにあるかは問わない（物理的に連続して配置されているとは限らない）。そこで、本形態では、データ記憶部１５に格納するデータは、Ｊａｖａ用（Ｊａｖａオブジェクト）の形式で保存し、しかもラダープログラムから見た場合には、そのＪａｖａ用データがラダー用に見えるようにする機能を付加するようにした。もちろん、Ｊａｖａプログラムがデータを参照する場合には、通常の処理をすればよい。これにより、各プログラムが同一のデータ記憶部１５に格納されたデータを相互に使用することができるようにし、係る２つのプログラムが相互に関連して実行することによりある制御を行えるようにした。
【００２６】
そして、このように異なるプログラム言語を相互に扱うことができるようにするため、本形態では、中継手段たるＩ／Ｆ部１６を設け、そのＩ／Ｆ部１６を介してすべての動作が行われるようにした。つまり、上記変換処理や、上記した各部間でのデータの送受は、Ｉ／Ｆ部１６を介して行うようになっている。このＩ／Ｆ部１６は、より具体的には、ユーザプログラムとそれに対応する管理部の間のやりとり、両プログラム管理部１３，１４同士のやりとり並びにデータ記憶部１５へのアクセスを管理する。
【００２７】
そして、Ｉ／Ｆ部１６にラダープログラムとデータ記憶部（記憶部内のＪａｖａオブジェクト）を関連付けたテーブルや、Ｊａｖａプログラムとデータ記憶部を関連付けたテーブルなどを持たせておき、例えばラダー管理部１３からはＩ／Ｆ部１６に対して「変数ａ」を要求すると、Ｉ／Ｆ部１６ではそのテーブルからその変数ａが格納されているＪａｖａオブジェクト（ｍｅｍＯｂｊ．ａ）を取得し、それをキーにデータ記憶部１５にアクセスして実際の変数ａを抽出しそれをラダー管理部１３に返送するような処理が行われる。
【００２８】
なお、図２は、本発明との関係において重要な構成要素を示したもので、これ以外にも図示省略するが、ＰＬＣの全体的な動作を制御するシステム・プログラムが格納されたシステムプログラムメモリや、制御対象機器と接続し、信号の送受を行うＩ／Ｏユニットなどの基本機能が組み込まれる。
【００２９】
また、上記図２に示す構成は、より具体的には図３に示すような構成により実現できる。まず、Ｉ／Ｆ部１６について説明すると、データ記憶部１５に格納されたデータを参照するための論理メモリＩ／Ｆクラス記憶部１６ａと、プログラム間の通信を行うための管理データＩ／Ｆクラス記憶部１６ｂとを有している。論理メモリＩ／Ｆクラス記憶部１６ａに格納される論理メモリＩ／Ｆクラスは、データ記憶部１５内に格納されたラダーｃｏｎｆｉｇデータ１５ａから作成される。つまり、ラダーｃｏｎｆｉｇデータは、ユーザプログラムを実行する際に必要となるデータをラダーで作成したもので、従来は、そのままラダープログラムを実行する際に直接参照されていたデータに対応する。
【００３０】
そして、プログラマ等がこのラダーで作成したデータ（例えば、変数「ａ」）を、本実施の形態でユーザプログラムを実行する際に参照するデータ（Ｊａｖａオブジェクト：参照変数ｍｅｍＯｂｊとしたら、例えば「ｍｅｍＯｂｊ．ａ」）に変換したものを作成し、データ記憶部１５内の論理メモリ１５ｂに記憶する。このとき、この論理メモリ１５ｂは、ラダーデータに合わせて連続領域として確保されている。
【００３１】
そして、論理メモリＩ／Ｆクラスは、上記データ変換した際の変数名とそのデータ記憶部内に格納したアドレスの割り付けを関連付けたものを、それぞれのユーザプログラムに対して行う。これにより、上記したようにラダープログラムとデータ記憶部（記憶部内のＪａｖａオブジェクト）１５を関連付けたテーブルや、Ｊａｖａプログラムとデータ記憶部１５を関連付けたテーブルが記憶・保持される。なお、このクラスもプログラマが作成するのである。
【００３２】
一方、管理データＩ／Ｆクラスは、他のユーザプログラム等にアクセスする際のメソッド（例えば、ｓｔｏｐＰｒｏｇ０，ｓｔａｒｔＰｒｏｇ０等）を定義したものが記憶されている。
【００３３】
また、ラダープログラム管理部１３は、さらに管理データ部１３ａとラダー解釈実行部１３ｂとを有している。この管理データ部１３ａは、ＰＬＣを制御する上で必要となる状態、すなわち、サイクルタイムや実行回数などを管理するデータが管理され、その管理データ部１３ａを介してＪａｖａプログラム側にアクセスするようになっている。つまり、データ記憶部１５内の管理データＩ／Ｆクラスをインポートし、そのクラスで定義されたメソッドを用いてＪａｖａプログラムへアクセスする。より具体的には、Ｊａｖａ管理部１４内の管理データ部１４ａに対してアクセスし、その管理データ部１４ａを介してＪａｖａプログラムを動作させるようになっている。
【００３４】
また、ラダー解釈実行部１３ｂは、Ｊａｖａで作成されたインタプリタシステムプログラム（これにより汎用性ができ、他社のＰＬＣとの協調も可能となる）であり、ラダープログラム上のメモリアクセスを論理メモリＩ／Ｆクラスを介して論理メモリ内のデータをアクセスするようにインタプリタ実行するように構成されている。つまり、例えばラダー管理部１３内のラダー解釈実行部１３ｂがＩ／Ｆ部１６を介して第１ユーザプログラムメモリ１１に格納されたラダープログラムをインタプリタ方式で順次実行していき、そのプログラム中にメモリアクセス（データ参照）があると、Ｉ／Ｆ部１６内の論理メモリＩ／Ｆクラスに対してその参照するデータ（例えば「変数ａ」）を要求する。すると、これを受けた、Ｉ／Ｆ部１６では自己が有するラダープログラムと論理メモリのテーブルからその変数ａが格納されているＪａｖａオブジェクト（ｍｅｍＯｂｊ．ａ）のアドレスを取得し、それをキーにデータ記憶部１５内の論理メモリ１５ａにアクセスして実際の変数ａを取得する。そして、取得した変数ａをラダー解釈実行部１３ａに返送するように動作する。これにより、ラダー解釈実行部１３ｂが、変数ａを取得できるので、必要に応じて、それに基づいて所定の処理をする。なお、実行形式はインタプリタに限ることはなく、例えば、ＪＩＴ（Ｊｕｓｔ  Ｉｎ  Ｔｉｍｅ  ｃｏｍｐｉｌｅｒ）や、Ｊａｖａ→Ｃ変換後のＮａｔｉｖｅ  Ｃｏｄｅ  実行などでも実現できる。
【００３５】
また、Ｊａｖａ管理部１４は、第２ユーザプログラムメモリ１２に格納されたＪａｖａプログラムを読み出し、インタプリタ方式で実行する機能を有し、従来と同様に、Ｊａｖａプログラム上を実行中にメモリアクセスが要求される場合に論理メモリＩ／Ｆクラスを介して論理メモリ内のデータをアクセスするようになる。さらに、Ｊａｖａ管理部１４は、管理データ部１４ａを有している。この管理データ部１４ａは、上記したラダー管理部１３内の管理データ部１３ａと同様に、Ｊａｖａプログラムがラダープログラムに対して要求をだす場合に、管理データＩ／Ｆクラスで定義されたメソッドを用いて当該ラダープログラムへアクセスするようになる。これも、実際にはラダー管理部１３内の管理データ１３ａに対してアクセスし、このアクセスを受けた管理データ１３ａがラダープログラムに対して所定の処理を実行させることになる。
【００３６】
上記のように構成すると、制御処理をする場合には、ラダープログラムを実行し、また、管理・情報処理する場合にはＪａｖａプログラムを実行することにより、制御対象の機器を動作させることができるので、より効率で高性能な制御が可能となる。このとき、各ユーザプログラムは、ともに対応するプログラム管理部１３，１４により実行され、各ユーザプログラムを実行中にデータ（変数）参照が必要になった場合には、それぞれＩ／Ｆ部１６（論理メモリＩ／Ｆクラス）を介して同一のデータ記憶部１５にアクセスして必要なデータを取得することができる。
【００３７】
そして、Ｉ／Ｆ部１６より具体的には論理メモリＩ／Ｆクラスを設けたことにより、Ｊａｖａオブジェクトで記憶された論理メモリに対して、ラダープログラムはラダー用のデータが格納されているように見えるので、同質のデータに対して異なるユーザプログラムがアクセスすることができ、データの共通化ができる。よって、例えば、一方のユーザプログラムにより記録されたデータを別のユーザプログラムが参照することにより、制御機器に対する制御・管理をすることができる。
【００３８】
また、管理データＩ／Ｆクラスを設けたことにより、異なるユーザプログラムに対して、処理の実行要求等をすることができる。これにより、複数のユーザプログラムが相互に協力しながら、ＰＬＣを動作することができる。
【００３９】
なお、上記した実施の形態では、データ記憶部１５に格納するデータをＪａｖａに合わせたが、本発明はこれに限ることはなく、ラダー用に形成し、ラダープログラム側からは通常のプログラム実行方法でデータ参照等をし、Ｊａｖａ側から所定の変換テーブルにしたがってデータをアクセスするようにしてももちろんよい。また、本形態では、先にまずラダー形式でデータ（ラダーＣｏｎｆｉｇデータ）を作成し、それからＪａｖａオブジェクトを作成するようにしたが、直接Ｊａｖａオブジェクトを作成してもよい。さらに、本形態では、ラダーＣｏｎｆｉｇデータをデータ記憶部内に格納したままとしているが、システム構築後は削除してももちろんよい。
【００４０】
また、上記した実施の形態では、ラダープログラムとＪａｖａプログラムの２種類のプログラム言語を用いてユーザプログラムを構築したが、本発明はこれに限ることはなくユーザプログラムが少なくともＪａｖａで構成していればよいので、Ｊａｖａと対となるプログラム言語は、ラダーに限ることはなく、別のプログラム言語を用いてもよい。また、図４に示すように３つ以上のプログラム言語（図示では３個）によりユーザプログラムを構築するようにしてもよいなど、各種の変更実施が可能である。
【００４１】
なおまた、ユーザプログラムは、図示省略するプログラミングツールで作成され、従来と同様にシリアル通信ラインを介してインストールしたり、或いはＰＬＣにネットワーク接続する機能を持たせた場合、接続されたネットワークを介してインストールするようにしてもよく、各種の手段がとれる。
【００４２】
【発明の効果】
以上のように、本発明に係るコントロール制御装置では、請求項１のように構成すると、ユーザプログラムが汎用言語のＪａｖａを用いて構成できるので、プログラム開発が容易に行え、ユーザ側の開発効率を向上することができる。
【００４３】
また、請求項２のように構成すると、請求項１の効果に加えさらに、Ｊａｖａの不得手な分野の処理は、別のプログラム言語を用いてユーザプログラムを開発すればよいので、システム全体の性能が向上し、システム構成も簡易となる。
【００４４】
さらに、請求項３のように構成すると、各部を部品化し、汎用性や拡張性をもたたせることができる。また、各部を異なる言語で作成することもでき、従来のように全体をラダーで統一して作成する必要もなく、さらには、複数のプログラムでユーザプログラムを構築することも可能となる。
【図面の簡単な説明】
【図１】従来のＰＬＣを示す図である。
【図２】本発明に係るコントロール制御装置（ＰＬＣ）の好適な一実施の形態を示すブロック図である。
【図３】その詳細な内部構造を示すブロック図である。
【図４】変形例を示すブロック図である。
【符号の説明】
１１  第１ユーザプログラムメモリ（ラダープログラムを格納）
１２  第２ユーザプログラムメモリ（Ｊａｖａプログラムを格納）
１３  ラダープログラム管理部
１４  Ｊａｖａプログラム管理部
１５  データ記憶部
１６  Ｉ／Ｆ部（中継手段）
【図１】
0003548777.tif 000002
【図２】
0003548777.tif 000003
【図３】
0003548777.tif 000004
【図４】
0003548777.tif 000005