(57)【要約】      （修正有）【課題】ＰＬＣプログラムと、ＰＬＣプログラムから呼び出される１又は複数のアプリケーションプログラムとを纏めて作成することができる技術を提供する。【解決手段】統合コントローラ１００は、第１プログラムと、第２プログラムとを、１つの開発環境で編集可能な開発ツールを提供する編集部１５４と、第１プログラムと、第２プログラムとを一括でビルドするプログラム管理部１５６と、所定の制御周期毎に第１プログラムを実行する第１実行部１５０と、第２プログラムに含まれる複数の命令文を逐次実行する第２実行部１６０とを備える。【選択図】図３
2020021124.tif 000002
【特許請求の範囲】
【請求項１】
実行毎に全体がスキャンされる第１プログラムと、前記第１プログラムから呼び出され逐次実行される第２プログラムとを、並行して１つの開発環境で編集可能な開発ツールを提供する編集部と、
前記第１プログラムと、前記第２プログラムとを一括でビルドするプログラム管理部と、
所定の制御周期毎に前記第１プログラムを実行することで、該制御周期毎に第１駆動装置を制御する指令を生成する第１実行部と、
前記第２プログラムに含まれる複数の命令文を逐次実行することで、第２駆動装置を制御する指令を逐次生成する第２実行部とを備える、制御装置。
【請求項２】
前記編集部は、前記開発環境として、プログラムツリーを表示する第１エリアと、選択されたプログラムのソースコードを表示するための第２エリアとを含む編集ウィンドウを提供し、
前記プログラムツリーには、前記第２駆動装置を制御するためのサンプルプログラムが含まれており、
ユーザが前記サンプルプログラムを選択すると、前記編集部は、選択された該サンプルプログラムを前記第２プログラムとして使用可能とする、請求項１に記載の制御装置。
【請求項３】
ユーザが、前記第１プログラムにおける位置を指定し、かつ、前記サンプルプログラムを選択すると、前記編集部は、前記第１プログラムにおける指定された位置から、選択された前記サンプルプログラムを呼び出すよう設定し、かつ、選択された前記サンプルプログラムのコードを編集可能にする、請求項２に記載の制御装置。
【請求項４】
前記第２実行部は、前記第２プログラムの実行中に、前記第２プログラムの中のいずれの命令文を実行しているかを表示させる、請求項１から３のいずれか一項に記載の制御装置。
【請求項５】
前記プログラム管理部は、
前記第１プログラムを実行形式に変換し、
前記第２プログラムを複数の中間コードに変換し、
前記第２実行部は、前記複数の命令文に対応する前記複数の中間コードを逐次実行する、請求項１から４のいずれか一項に記載の制御装置。
【請求項６】
前記編集部は、前記開発環境として、プログラムツリーを表示する第１エリアと、選択されたプログラムのソースコードを表示するための第２エリアとを含む編集ウィンドウを提供し、
前記プログラムツリーは、前記第１プログラムと、前記第１プログラムから呼び出される前記第２プログラムとを含み、
前記編集部は、前記編集ウィンドウにおいて、前記第１プログラムから呼び出される前記第２プログラムを、前記第１プログラムの中のブロックとして表示し、
ユーザが、前記第２プログラムを示すブロックまたは前記第２プログラムを示すタブを選択すると、前記編集部は、前記第２エリアに前記第２プログラムのソースコードを表示させる、請求項１に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象の制御を実行する制御装置に関する。
【背景技術】
【０００２】
従来、製造現場において用いられる工作機械やロボットなどの複数の制御アプリケーション同士がどのように連携するかの使用を決定し、その使用を実現するためのラダープログラムが工作機械メーカにより提供されている。これらのラダープログラムは、ユーザによる編集ができず、ユーザが機能の追加を望む場合には、ラダープログラムの改造を工作機械メーカに依頼する必要があった。また、制御アプリケーション毎にプログラムが独立しており、制御アプリケーション同士が連携動作を行うような場合には、それぞれのプログラムから、各制御アプリケーションがどのような動作を理解する必要があった。
【０００３】
そこで、制御アプリケーション同士の連携動作を、ユーザが加工プログラムで決定することができるように技術が提供されている（例えば、特許文献１参照）。特許文献１に記載の技術では、工作機械用命令文と、ロボット用命令文とを含む加工プログラムをユーザが工作機械と、ロボットとを制御する制御装置に入力可能である。そして、制御装置は、加工プログラムに含まれている工作機械用命令文を工作機械制御手段に転送し、ロボット用命令文をロボット制御手段へ転送する。これにより、工作機械とロボットとを連携するためのラダープログラムを必要とせず、工作機械とロボットとをユーザ定義の加工プログラムにより連携可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２４１０１８号公報（２０１４年１２月２５日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、生産現場においてＰＬＣ（Programmable Logic Controller）により、生産全体が監視および管理されている場合には、ＰＬＣプログラムと、ＮＣプログラムやロボットプログラム等のアプリケーションプログラムとの両方に制御信号のやり取りに関する記述を行う必要がある。しかしながら、ＰＬＣプログラム、ＮＣプログラム、ロボットプログラムのそれぞれは、異なる言語により記述されている。また、ＰＬＣプログラムと、アプリケーションプログラムとでは制御周期が異なる。
【０００６】
このため、ＰＬＣにより生産全体を監視および管理し、生産ラインと各制御アプリケーションとのタイミングを合わせるための、ＰＬＣプログラム、およびアプリケーションプログラムとは、上述のような従来技術では、纏めて作成することはできなかった。
【０００７】
本発明の一態様は、上述した事情に鑑みてなされたものであり、ＰＬＣプログラムと、ＰＬＣプログラムから呼び出される１又は複数のアプリケーションプログラムとを纏めて作成することができる技術を実現することを目的とする。
【課題を解決するための手段】
【０００８】
前記の課題を解決するために、本発明の一態様に係る制御装置は、実行毎に全体がスキャンされる第１プログラムと、前記第１プログラムから呼び出され逐次実行される第２プログラムとを、並行して１つの開発環境で編集可能な開発ツールを提供する編集部と、前記第１プログラムと、前記第２プログラムとを一括でビルドするプログラム管理部と、所定の制御周期毎に前記第１プログラムを実行することで、該制御周期毎に第１駆動装置を制御する指令を生成する第１実行部と、前記第２プログラムに含まれる複数の命令文を逐次実行することで、第２駆動装置を制御する指令を逐次生成する第２実行部とを備える構成である。
【０００９】
前記の構成によれば、第１プログラム（ＰＬＣプログラム）と、第１プログラムから呼び出される第２プログラムとを、を同一の開発環境において纏めて作成または編集し、ビルドすることができる。これにより、ユーザは、各々異なる言語で記述され、かつ、各々異なるスケジューリング方式で実行される第１プログラムと、第２プログラムとを同一の開発環境において簡単に作成または編集することができる。よって、例えば、制御周期が異なる、生産ラインを制御するための第１プログラムと、複数の制御対象（制御アプリケーション）のそれぞれを制御するための複数のアプリケーションプログラムとを、容易に作成または編集して、ユーザ定義のプログラムによって同期制御させることができる。
【００１０】
また、本発明の一態様に係る制御装置は、前記の構成において、前記編集部は、前記開発環境として、プログラムツリーを表示する第１エリアと、選択されたプログラムのソースコードを表示するための第２エリアとを含む編集ウィンドウを提供し、前記プログラムツリーには、前記第２駆動装置を制御するためのサンプルプログラムが含まれており、ユーザが前記サンプルプログラムを選択すると、前記編集部は、選択された該サンプルプログラムを前記第２プログラムとして使用可能とする構成である。
【００１１】
前記の構成によれば、ユーザは、第１プログラムと、第２プログラムとの処理の流れを同一の編集ウィンドウで一度に確認することができる。また、ユーザは、当該編集ウィンドウにおいて、直観的な操作で、第１プログラムと、第１プログラムから呼び出される第２プログラムとを、作成または編集することができる。また、当該編集ウィンドウには、ユーザによって編集可能なサンプルプログラムが提供されるため、ユーザは、容易にユーザ定義のプログラムを作成することができる。
【００１２】
また、本発明の一態様に係る制御装置は、前記の構成において、ユーザが、前記第１プログラムにおける位置を指定し、かつ、前記サンプルプログラムを選択すると、前記編集部は、前記第１プログラムにおける指定された位置から、選択された前記サンプルプログラムを呼び出すよう設定し、かつ、選択された前記サンプルプログラムのコードを編集可能にする構成である。
【００１３】
前記の構成によれば、ユーザは、直観的な操作で、第１プログラムと、第１プログラムから呼び出す第２プログラムとを定義することができ、かつ、第１プログラムと、第２プログラムとを同期させることができる。また、ユーザは、編集したい位置を選択するという簡単な操作で、選択したサンプルプログラムのコードを編集することができる。
【００１４】
また、本発明の一態様に係る制御装置は、前記の構成において、前記第２実行部は、前記第２プログラムの実行中に、前記第２プログラムの中のいずれの命令文を実行しているかを表示させる構成である。
【００１５】
前記の構成によれば、ユーザは、第２プログラムの実行中に、いずれの命令文が実行されているのかを表示されている情報から確認することができる。よって、ユーザは定義した命令文により、制御アプリケーションが意図した動作を行っているのかを容易に確認することができ、適宜に命令文の作成または編集を行うことができる。
【００１６】
また、本発明の一態様に係る制御装置は、前記の構成において、前記プログラム管理部は、前記第１プログラムを実行形式に変換し、前記第２プログラムを複数の中間コードに変換し、前記第２実行部は、前記複数の命令文に対応する前記複数の中間コードを逐次実行する構成である。
【００１７】
前記の構成によれば、プログラムのビルド時に、第１プログラムは実行形式に変換され、第２プログラムは複数の中間コードに変換される。プログラムの実行時に中間コードに変換する方式では、プログラム実行時に第２プログラムを解読し、中間コードを生成し、中間コードを一旦キューイングして実行するため、処理に遅延が生じる。本実施形態によれば、プログラム実行時に中間コードへの変換が必要ないので、高速にアプリケーションプログラムを実行することができる。
【００１８】
また、本発明の一態様に係る制御装置は、前記の構成において、前記編集部は、前記開発環境として、プログラムツリーを表示する第１エリアと、選択されたプログラムのソースコードを表示するための第２エリアとを含む編集ウィンドウを提供し、前記プログラムツリーは、前記第１プログラムと、前記第１プログラムから呼び出される前記第２プログラムとを含み、前記編集部は、前記編集ウィンドウにおいて、前記第１プログラムから呼び出される前記第２プログラムを、前記第１プログラムの中のブロックとして表示し、ユーザが、前記第２プログラムを示すブロックまたは前記第２プログラムを示すタブを選択すると、前記編集部は、前記第２エリアに前記第２プログラムのソースコードを表示させる構成である。
【００１９】
前記の構成によれば、ユーザは、直観的な操作で、第１プログラムと、第１プログラムから呼び出す第２プログラムとを定義することができ、かつ、第１プログラムと、第２プログラムとを同期させて、プログラムを作成または編集することができる。また、ユーザは、編集したいプログラムを示すブロックまたはタブを選択するという簡単な操作で、選択したサンプルプログラムのコードを編集することができる。
【発明の効果】
【００２０】
本発明の一態様によれば、ＰＬＣプログラムと、ＰＬＣプログラムから呼び出される１又は複数のアプリケーションプログラムとを纏めて作成することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態１に係る統合コントローラが使用されるシステム環境の概要を示す図である。
【図２】統合コントローラの要部構成を示すブロック図である。
【図３】統合コントローラの機能構成の一例を示す模式図である。
【図４】編集ウィンドウの一例を示す図である。
【図５】編集ウィンドウの変形例を示す図である。
【図６】編集ウィンドウの変形例を示す図である。
【図７】統合コントローラの処理の流れを示すフローチャートである。
【図８】統合コントローラの処理実行のタイミングチャートである。
【図９】アプリケーションプログラム実行中の表示例を示す図である。
【図１０】中間コードを概念的に示す模式図である。
【図１１】中間コードの生成例を説明するための模式図である。
【図１２】変形例の統合コントローラの要部構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００２３】
§１  適用例
図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御装置の一例である統合コントローラ１００が使用されるシステム環境の概要を示す図である。統合コントローラ１００は、モーションネットワークケーブル２を介してロボット５２０や工作機械５３０等の制御対象に接続されている。また、統合コントローラ１００は、イーサネット（登録商標）等によるネットワーク６を介してサーバ装置３００に接続されている。
【００２４】
統合コントローラ１００は、ロボット５２０や工作機械５３０等の制御対象を統括的に制御する装置である。また、統合コントローラ１００は、各種センサ入力に応じて、ベルトコンベア５４４のサーボモータ５４２を駆動するサーボドライバ５４０を制御するＰＬＣ（Programmable Logic Controller）としても機能する。
【００２５】
統合コントローラ１００は、ＰＬＣプログラムと、ロボット５２０や工作機械５３０等の制御アプリケーションのそれぞれを制御するためのアプリケーションプログラムとを統合的に実装した装置である。統合コントローラ１００は、制御対象に応じたプログラムを実行し、これらの制御対象を制御することで、生産ラインと各制御アプリケーションとを同期制御する。
【００２６】
ＰＬＣプログラムは、ラダー言語により記述されたプログラムであり、実行毎に全体がスキャンされる。ＰＬＣプログラムは、例えば、国際電気標準会議（International Electrotechnical Commission：ＩＥＣ）によって規定された国際規格ＩＥＣ６１１３１−３に従って記述されている。
【００２７】
ロボット５２０を制御するためのロボットプログラムは、一般的に体系化された所謂ロボット用言語により記述されている。
【００２８】
工作機械５３０を制御するためのＮＣプログラムは、一般的にＩＳＯによって規格化されたＧ−コードにより記述されている。
【００２９】
統合コントローラ１００によって実行されるこれらのプログラムのそれぞれは、ユーザによって作成、または編集可能である。統合コントローラ１００は、ＰＬＣプログラム、およびアプリケーションプログラムを１つの開発環境で編集可能とする開発ツールをユーザに提供する。また、統合コントローラ１００は、ＰＬＣプログラムと、アプリケーションプログラムとを、一括でビルドし、管理する。
【００３０】
このように、統合コントローラ１００は、生産ラインと各制御アプリケーションとを同期制御するとともに、各制御対象に応じたプログラムを１つの開発環境で編集可能とする開発ツールをユーザに提供する。これによりユーザは、ＰＬＣプログラムと、ＰＬＣプログラムから呼び出される、ロボット５２０や工作機械５３０等の制御アプリケーションのアプリケーションプログラムとを纏めて作成することができる。
【００３１】
§２  構成例
〔統合コントローラ１００の構成について〕
図１、図２、および図３に基づいて、本発明の実施形態に係る統合コントローラ１００の構成について詳細に説明する。図１は、統合コントローラ１００が使用されるシステム環境の概要を示す図である。図２は、統合コントローラ１００の要部構成を示すブロック図である。図３は、統合コントローラ１００の機能構成の一例を示す模式図である。
【００３２】
統合コントローラ１００は、産業用コントローラであり、制御対象の装置を制御する。統合コントローラ１００は、モーションネットワークケーブル２を介して１または複数のフィールド機器５００と接続されフィールド機器５００との間でデータを遣り取りする。
【００３３】
また、統合コントローラ１００は、タッチパネル１４６を備える。タッチパネル１４６は、統合コントローラ１００に対するユーザ操作を受け付ける入力部として機能するとともに、統合コントローラ１００による演算結果を表示する表示部として機能する。
【００３４】
モーションネットワークケーブル２は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００３５】
フィールド機器５００は、生産ラインなどで用いられるリモートＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）装置５１０、ロボット５２０、ロボットコントローラ５２２、工作機械５３０、サーボドライバ５４０、およびサーボモータ５４２等である。フィールド機器５００のそれぞれは、統合コントローラ１００によって生成される指令に応じて、例えば以下のように動作する。サーボモータ５４２は、コンベア５４４を駆動して、ＮＣ工作機械５３０の前に配置されたワークテーブル５４６にワークＷを搬送する。ロボット５２０は、ワークテーブル５４６上の処理前のワークＷをＮＣ工作機械５３０内に配置し、ＮＣ工作機械５３０での処理済ワークＷを取り出してワークテーブル５４６上に配置する。
【００３６】
なお、統合コントローラ１００は、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期でフィールド機器５００との間でデータを遣り取りし、フィールド機器５００に対する制御指令などのデータを送信する。
【００３７】
また、統合コントローラ１００は、ネットワーク６を介して、サーバ装置３００や、１または複数の表示装置４００に接続されている。ネットワーク６には、一般的なネットワークプロトコルであるイーサネット（登録商標）やＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）が採用されてもよい。
【００３８】
サーバ装置３００は、データベースシステムや、製造実行システム（ＭＥＳ：Manu
facturing Execution System）などである。サーバ装置３００は、フィールド機器５００のそれぞれから情報を取得して、生産全体を監視および管理する機能を有していてもよく、オーダ情報、品質情報、出荷情報などを扱うこともできる。
【００３９】
表示装置４００は、統合コントローラ１００に対するユーザ操作に応じた内容を表示する。また、表示装置４００は、統合コントローラ１００による演算結果等をグラフィカルに表示する。
【００４０】
〔統合コントローラ１００のハードウェア構成例〕
図２は、統合コントローラ１００のハードウェア構成例を示すブロック図である。図２に示すように、統合コントローラ１００は、プロセッサ１０２、チップセット１０４、主メモリ１０６、およびストレージ１０８を備えている。また、統合コントローラ１００は、上位ネットワークコントローラ１１０、メモリカードインタフェース１１４、内部バスコントローラ１２０、およびフィールドネットワークコントローラ１３０を含んでいる。また、統合コントローラ１００は、タッチパネル１４６を備えている。
【００４１】
プロセッサ１０２は、ＣＰＵユニットと称される演算処理部であり、図示は省略するが、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などで構成されている。プロセッサ１０２としては、複数のコアを有する構成を採用してもよいし、プロセッサ１０２を複数配置してもよい。すなわち、統合コントローラ１００は、１または複数のプロセッサ１０２、および／または、１または複数のコアを有するプロセッサ１０２を有している。プロセッサ１０２は、ストレージ１０８に格納された各種プログラムを読出して、主メモリ１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００４２】
チップセット１０４は、プロセッサ１０２およびその周辺エレメントを制御することで、統合コントローラ１００全体としての処理を実現する。
【００４３】
主メモリ１０６は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成されている。
【００４４】
ストレージ１０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置で構成されている。ストレージ１０８には、統合コントローラ１００が基本的な機能を実現するためのシステムプログラム３４が格納されている。また、ストレージ１０８には、統合コントローラ１００の制御対象の装置に応じて作成されるシーケンスプログラム３０、および１または複数のアプリケーションプログラム３２が格納されている。
【００４５】
シーケンスプログラム３０は、ＰＬＣプログラムであり、一定の制御周期毎に実行される。また、シーケンスプログラム３０は、実行毎に全体がスキャンされる。シーケンスプログラム３０を実行することで、統合コントローラ１００は、センサ入力に応じ駆動装置（サーボモータ）を制御する等の、対象装置の状態やセンサ等の信号に基づいたシーケンス制御を行う。
【００４６】
アプリケーションプログラム３２は、ロボット５２０や工作機械５３０等の制御アプリケーションを制御するプログラムであり、ロボット５２０を制御するためのロボットプログラムや、工作機械５３０を制御するためのＮＣプログラムである。アプリケーションプログラム３２は、シーケンスプログラム３０から呼び出されて逐次実行される。以下の説明において、シーケンスプログラム３０を第１のプログラム、アプリケーションプログラム３２を第２のプログラムとも称する。
【００４７】
上位ネットワークコントローラ１１０は、上位ネットワーク６を介して、サーバ装置３００や表示装置４００などとの間のデータの遣り取りを制御する。
【００４８】
メモリカードインタフェース１１４は、メモリカード１１６が着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データを読出すことが可能になっている。
【００４９】
内部バスコントローラ１２０は、統合コントローラ１００に装着されるＩ／Ｏユニット１２２との間のデータの遣り取りを制御する。
【００５０】
フィールドネットワークコントローラ１３０は、モーションネットワークケーブル２を介して接続されたフィールドデバイスとの間のデータの遣り取りを制御する。
【００５１】
なお、プロセッサ１０２がプログラムを実行することで必要な機能を提供する構成に限らず、提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。また、統合コントローラ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５２】
タッチパネル１４６は、統合コントローラ１００の入出力部として機能する。
【００５３】
〔統合コントローラ１００の機能構成について〕
図３は、統合コントローラ１００の機能構成の一例を示す模式図である。図３に示すように、統合コントローラ１００は、編集部１５４、プログラム管理部１５６、入力部１５８、および表示部１５９を備えている。また、統合コントローラ１００は、ＩＥＣプログラム処理部１５０、フィールドネットワークインタフェース１８０、上位ネットワークインタフェース１８２、および第１制御アプリケーション処理部１６１、第２制御アプリケーション処理部１６２、・・・（以下、「制御アプリケーション処理部１６０」とも総称する。）を含んでいる。なお、ＩＥＣプログラム処理部１５０を第１実行部、制御アプリケーション処理部１６０を第２実行部とも称する。
【００５４】
編集部１５４は、統合コントローラ１００で実行されるシーケンスプログラム３０、およびアプリケーションプログラム３２とを、並行して１つの開発環境で作成または編集可能な開発ツールを提供する。編集部１５４によって作成または編集されたシーケンスプログラム３０、およびアプリケーションプログラム３２は、ストレージ１０８に格納される。また、編集部１５４は、統合コントローラ１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境を提供してもよい。
【００５５】
プログラム管理部１５６は、編集部１５４によって作成または編集されたシーケンスプログラム３０と、アプリケーションプログラム３２とを、一括してコンパイルし、リンクすることで、ビルドする。
【００５６】
プログラム管理部１５６は、シーケンスプログラム３０と、アプリケーションプログラム３２とを、一括してビルドすることで、シーケンスプログラム３０を実行形式に変換し、アプリケーションプログラム３２を複数の中間コードに変換する。このように、プログラム管理部１５６は、シーケンスプログラム３０と、アプリケーションプログラム３２とを、一括してビルドするとともに、アプリケーションプログラム３２を、実行前に予め、中間コードに変換する。
【００５７】
プログラム管理部１５６は、ビルドされたシーケンスプログラム３０、アプリケーションプログラム３２、および中間コードを、ストレージ１０８に格納する。なお、中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、１または複数の命令、あるいは、１または複数の関数を含む。
【００５８】
入力部１５８は、ユーザ操作の入力を受けつける。表示部１５９は、入力部１５８に対するユーザ操作に応じた画面を表示する。なお、本実施形態では、図１に示したタッチパネル１４６が、入力部１５８と、表示部１５９との機能を兼ねている。詳細については後述するが、ユーザは、タッチパネル１４６への操作によって、編集部１５４によるシーケンスプログラム３０、およびアプリケーションプログラム３２の編集を実行することが出来る。
【００５９】
ＩＥＣプログラム処理部１５０は、予め定められた所定の制御周期毎にシーケンスプログラム３０を実行（スキャン）することで、シーケンスプログラム３０に含まれるモーション命令に従って、当該制御周期毎に、ＰＬＣプログラムにより制御されるサーボドライバ５４０などの駆動装置（第１駆動装置）を制御する１または複数の指令を生成し、出力する。ＩＥＣプログラム処理部１５０は、シーケンスプログラム３０に含まれる各入力条件（センサー入力値等）が成立しているか否かを所定の制御周期毎（例えば、１μ秒毎）に判定する。ＩＥＣプログラム処理部１５０から出力された指令は、主メモリ１０６に格納される。
【００６０】
制御アプリケーション処理部１６０は、シーケンスプログラム３０から呼び出されたアプリケーションプログラム３２に含まれる複数の命令文の各行を逐次実行することで、ロボット５２０や工作機械５３０などの制御アプリケーション（第２駆動装置）を制御する指令を逐次生成する。ＩＥＣプログラム処理部１５０は、シーケンスプログラム３０に含まれる入力条件が成立している場合に、該入力条件に対応するアプリケーションプログラム３２を呼び出す。
【００６１】
つまり、制御アプリケーション処理部１６０は、ＩＥＣプログラム処理部１５０による演算処理と同期して、指令値の演算処理を実行する。制御アプリケーション処理部１６０は、ストレージ１０８に予め格納されている中間コード３５に従って、指令を生成し、生成した指令を主メモリ１０６に対して出力する。
【００６２】
ＩＥＣプログラム処理部１５０は、主メモリ１０６に格納された制御アプリケーション処理部１６０による処理結果を参照することができる。
【００６３】
フィールドネットワークインタフェース１８０は、ＩＥＣプログラム処理部１５０により生成された１または複数の指令（基本的には、論理値）と、制御アプリケーション処理部１６０により生成された１または複数の指令（基本的には、数値）とを制御周期毎にフィールド機器５００へ出力する。
【００６４】
〔編集部のユーザインタフェースについて〕
図４は、編集部１５４が提供する、シーケンスプログラム３０と、アプリケーションプログラム３２とを編集する開発ツールのユーザインタフェースの一例である編集ウィンドウ６０１を示す図である。編集ウィンドウ６０１は、表示部１５９の機能により、タッチパネル１４６に表示され、ユーザのタッチ位置に応じた入力が入力部１５８により検出される。
【００６５】
図４に示すように、編集ウィンドウ６０１は、第１エリア６１１と、第２エリア６１２と、を含んでいる。第１エリア６１１には、プログラムツリーが表示される。第２エリア６１２には、プログラムツリーから選択されたプログラムのソースコードが表示される。また、第２エリア６１２には、プログラム編集エリア６１４に表示されたプログラムを編集するために用いるツールを含むツールボックス６１５が表示されている。ユーザはツールボックス６１５内のツールを例えば、ドラックアンドドロップによってプログラム編集エリア６１４に導入して、シーケンスプログラム３０の作成または編集を行うことができる。
【００６６】
第１エリア６１１に表示されたプログラムツリーには、シーケンスプログラム３０のロジック（例えばプログラムＡ，プログラムＢ）と、ロボット５２０や工作機械５３０等の第２駆動装置を制御するためのアプリケーションプログラム３２（例えば、ＲＣ１，ＲＣ２，ＲＣ＿Ｓａｍｐｌｅ，ＮＣ１，ＮＣ２，ＮＣ＿Ｓａｍｐｌｅ）と、が含まれている。
【００６７】
プログラムツリーに含まれているアプリケーションプログラム３２のうち、ＲＣ１，ＲＣ２，ＮＣ１，ＮＣ２等は、ユーザにより作成されたプログラムである。また、プログラムツリーに含まれているアプリケーションプログラム３２のうち、ＲＣ＿ＳａｍｐｌｅやＮＣ＿Ｓａｍｐｌｅは、例えば統合コントローラ１００のメーカにより予め用意されているサンプルプログラムである。サンプルプログラムのＮＣ＿Ｓａｍｐｌｅは、例えば、ＩＳＯによって規格化されているＧコードに基づいたソースコードである。
【００６８】
ユーザが、第１エリア６１１においてプログラムツリーの中から、サンプルプログラムを選択すると、編集部１５４は、選択されたサンプルプログラムを、編集可能なアプリケーションプログラム３２として使用可能とする。
【００６９】
また、編集部１５４は、ユーザによってロジックが選択されると、選択されたロジックに応じたシーケンスプログラム３０、およびアプリケーションプログラム３２を第２エリア６１２のプログラム編集エリア６１４に表示する。図４は、ユーザが、第１エリア６１１においてＰＬＣプログラムのプログラムＡを選択した場合の例を示している。なお、第２エリア６１２には、各ＰＬＣプログラムＡ，Ｂ・・・が、タブ６１３ａ，６１３Ｂ・・・にそれぞれ表示され、タブ６１３ａ，６１３Ｂ・・を切り替えることで、プログラム編集エリア６１４に表示されるプログラムを切り替えることができてもよい。
【００７０】
プログラム編集エリア６１４には、ラダー言語で記述された縦に長いシーケンスプログラム３０の一連のロジック６２０と、ロジック６２０の各条件（Ｘ１，Ｘ２，・・・）が成立している場合に実行されるアプリケーションプログラム３２の中身が記述されているプログラミングブロック６２１，６２２，・・・とが表示される。
【００７１】
図４の例では、シーケンスプログラム３０のＸ１の条件が成立している場合に実行されるプログラミングブロック６２１の中身は、Ｇコードで記述されたＮＣプログラムである。また、シーケンスプログラム３０のＸ２の条件が成立している場合に実行されるプログラミングブロック６２２の中身は、ロボット言語で記述されたロボットプログラムである。
【００７２】
このように、編集部１５４は、ラダー言語で記述されたＰＬＣプログラムと、Ｇコードで記述されたＮＣプログラムと、ロボット言語で記述されたロボットプログラムとを、１つの開発環境で編集可能とする。すなわち、編集部１５４は、制御スケジュール、制御対象の装置、およびプログラミング言語が互いに異なる複数のプログラムを、１つの開発環境で編集可能とする。
【００７３】
具体例を説明すると、例えば、ユーザは、第１エリア６１１、または第２エリア６１２においてシーケンスプログラム３０（ロジック）における編集位置を指定し、かつ、使用するサンプルプログラムを選択する。ユーザによって、シーケンスプログラム３０における編集位置が指定され、かつ、使用するサンプルプログラムが選択されると、編集部１５４は、シーケンスプログラム３０における指定された位置から、選択されたサンプルプログラムを呼び出すよう設定し、かつ、選択されたサンプルプログラムのコードを編集可能にプログラム編集エリア６１４に表示する。
【００７４】
例えば、ユーザが、ロジックからプログラムＡのＸ１の右側を編集位置として指定し、かつ、使用するサンプルプログラムとしてＮＣ＿Ｓａｍｐｌｅを選択すると、プログラミングブロック６２１が設けられ、プログラミングブロック６２１の中にＮＣ＿Ｓａｍｐｌｅのソースコードが展開される。プログラミングブロック６２１はソースコードを編集可能なサブウィンドウ（スクロールバー含む）としても機能する。
【００７５】
サンプルプログラムには、複数の命令文が含まれている。図４に示した例では、プログラムＡにおいて、Ｘ１の条件が成立した場合には、Ｇ０１Ｘ１００Ｙ１００，Ｇ０１Ｘ２００Ｙ１００・・・の複数の命令文が逐次実行されるプログラムが示されている。また、プログラムＡにおいて、Ｘ２の条件が成立した場合には、ＭＯＶＥＰ１，ＭＯＶＥＰ２・・・の複数の命令文が逐次実行されるプログラムが示されている。ユーザは、プログラム編集エリア６１４の各ブロック６２１，６２２内に表示された命令文を記述された言語を用いて編集することができる。
ユーザは、プログラム編集エリア６１４において編集した命令文を含むアプリケーションプログラムを新たなアプリケーションプログラムとして保存することもでき、既存のアプリケーションプログラムを上書きして保存することもできる。このように、ユーザによって定義されたプログラム、および、予め用意されたサンプルプログラムは、流用性が高いものであり、ユーザは、ユーザ定義のプログラムを容易に作成することができる。
【００７６】
〔編集部のユーザインタフェースの変形例〕
【００７７】
図５、および図６は、編集部１５４が提供する、ユーザインタフェースの別の例である編集ウィンドウ６０２を示す図である。図５に示すように、編集ウィンドウ６０２は、第１エリア６１１と、第２エリア６１２と、を含んでいる。第１エリア６１１には、プログラムツリーが表示される。第２エリア６１２には、プログラムツリーから選択されたプログラムのソースコードが表示される。
【００７８】
第１エリア６１１に表示されたプログラムツリーには、シーケンスプログラム３０のロジック（例えばプログラムＡ，プログラムＢ）と、シーケンスプログラム３０から呼び出されるアプリケーションプログラム３２（例えば、ＲＣ１，ＲＣ２，ＲＣ＿Ｓａｍｐｌｅ，ＮＣ１，ＮＣ２，ＮＣ＿Ｓａｍｐｌｅ）とを含んでいる。
【００７９】
編集部１５４は、編集ウィンドウ６０２のプログラム編集エリア６１４に、ユーザによって選択されたシーケンスプログラム３０の一連のロジック６３０を表示する。また編集部１５４は、プログラム編集エリア６１４に、シーケンスプログラム３０から呼び出されるアプリケーションプログラム３２を、シーケンスプログラム３０の中のブロック６３１，６３２として表示する。また、編集部１５４は、プログラム編集エリア６１４に、ユーザによって選択されたシーケンスプログラム３０と、当該シーケンスプログラム３０から呼びされるアプリケーションプログラム３２とのそれぞれに対応するタブ６１３ａ，６１３ｂ，６１３ｃを表示する。編集部１５４は、プログラム編集エリア６１４に現在表示されているタブをハイライト表示することで、現在選択されているタブをユーザに明示することができてもよい。
【００８０】
ユーザが、シーケンスプログラム３０の中のブロックとして表示されたアプリケーションプログラム３２、または当該アプリケーションプログラムを示すタブを選択すると、編集部１５４は、プログラム編集エリア６１４に選択されたアプリケーションプログラム３２のソースコードを表示させる。
【００８１】
図６は、ユーザが、ブロック６３１、またはタブ６１３ｂを選択した場合の編集ウィンドウ６０２の表示例を示している。図６に示すように、編集部１５４は、ユーザによって選択されたブロック６３１、またはタブ６１３ｂに応じたロボットプログラムであるＲＣ１のソースコードを、編集可能にプログラム編集エリア６１４に表示する。ユーザは、プログラム編集エリア６１４に表示されたソースコードを記述された言語を用いて編集することができる。
【００８２】
なお、編集部１５４は、プログラム編集エリア６１４において選択されているタブをハイライト表示するとともに、選択中のプログラムを、第１エリア６１１に表示されたプログラムツリーにおいてハイライト表示することができてもよい。
【００８３】
〔統合コントローラ１００の処理フローについて〕
図７は、プログラムが作成または編集される場合の、統合コントローラ１００の処理の流れを示すフローチャートである。ユーザによって、編集部１５４が提供する編集ウィンドウ６０１，６０２において、プログラムの作成が行われる（ステップＳ１１）。ステップＳ１１において、ユーザは、編集部１５４が提供する編集ウィンドウ６０１，６０２において、シーケンスプログラム３０の作成または編集（ステップＳ１１ａ）、および当該シーケンスプログラム３０から呼び出されるアプリケーションプログラム３２の作成または編集（ステップＳ１１ｂ）を、上述のように１つの開発環境において並行して行うことができる。
【００８４】
プログラム管理部１５６は、ユーザによってプログラムの作成や編集が行われると、作成または編集されたプログラムに応じた、シーケンスプログラム３０と、当該シーケンスプログラムから呼び出されるアプリケーションプログラム３２とを、一括して文法チェックおよびコンパイルし、ビルドする（ステップＳ１２）。プログラム管理部１５６は、シーケンスプログラム３０を実行形式に変換し、アプリケーションプログラム３２を複数の中間コードに変換する。
【００８５】
プログラム管理部１５６は、ビルドしたシーケンスプログラム３０、およびアプリケーションプログラム３２をストレージ１０８に格納する。プログラム管理部１５６は、ビルドされたシーケンスプログラム３０を実行形式と、ソースコードとの両形式でストレージに格納する。また、プログラム管理部１５６は、ビルドされアプリケーションプログラム３２の中間コードと、ソースコードとを対応付けて、両方をストレージ１０８に格納する。
【００８６】
ＩＥＣプログラム処理部１５０は、ストレージ１０８に格納されたシーケンスプログラム３０の全体を所定の制御周期毎にスキャンし、対象装置への制御信号を生成する。制御アプリケーション処理部１６０は、シーケンスプログラム３０に呼び出されたアプリケーションプログラム３２の、複数の命令文に対応する複数の中間コードを一行（１つの命令文）ずつ逐次実行し（ステップＳ１３）、対象装置への制御信号を生成する。
【００８７】
このように、本実施形態では、プログラムのビルド時にアプリケーションプログラム３２の命令語が中間コードに変換されるため、プログラムの実行中に中間コードに変換する必要がなく、アプリケーションプログラム３２の実行が高速になる。
【００８８】
〔統合コントローラ１００における処理実行のタイミング〕
図８は、統合コントローラ１００における処理実行のタイミングの一例を示すタイミングチャートである。図８に示すように、統合コントローラ１００は、制御周期Ｔ１毎に、シーケンスプログラム３０を実行する。また、統合コントローラ１００は、アプリケーション実行周期Ｔ２１毎に、アプリケーションプログラム３２の１つであるアプリケーションプログラム１を実行する。また、統合コントローラ１００は、アプリケーション実行周期Ｔ２２毎に別のアプリケーションプログラム３２であるアプリケーションプログラム２を実行する。
【００８９】
統合コントローラ１００は、ＩＥＣプログラム処理部１５０の機能により、シーケンスプログラム３０を高優先タスクとして実行する。高優先タスクでは、各制御周期Ｔ１内において、入出力リフレッシュ処理１０と、シーケンスプログラムに含まれるシーケンス命令に従う制御指令値を出力する出力処理１２と、シーケンスプログラムに含まれるモーション命令に従う制御指令値を出力する出力処理１６と、アプリケーションプログラム１に従う制御指令値を出力する出力処理１４−１と、アプリケーションプログラム２に従う制御指令値を出力する出力処理１４−２とが行われる。
【００９０】
アプリケーションプログラム１およびアプリケーションプログラム２の実行は、それぞれ低優先タスク１，２として設定されている。第１制御アプリケーション処理部１６１は、アプリケーション実行周期Ｔ２１（図８に示す例では、制御周期Ｔ１の２倍）毎に、アプリケーションプログラム１の命令文に対応する複数の中間コードを逐次実行する。また、第２制御アプリケーション処理部１６２は、アプリケーション実行周期Ｔ２２（図８に示す例では、制御周期Ｔ１の３倍）毎に、アプリケーションプログラム２の命令文に対応する複数の中間コードを逐次実行する。
【００９１】
低優先タスクの各々は、制御周期Ｔ１より長いアプリケーション実行周期Ｔ２１またはアプリケーション実行周期Ｔ２２内に処理を完了できればよい。複数の低優先タスクを同時実行できない場合には、図８に示したように、一方の低優先タスクは中断（サスペンド）状態で待機させてもよい。本実施形態では、アプリケーションプログラム１およびアプリケーションプログラム２をそれぞれ処理する互いに独立した２つのアプリケーション処理部１６１，１６２が備えられているため、一方の低優先タスクを中断状態で待機させることなく、並行して処理してもよい。
【００９２】
高優先タスクの出力処理１４−１、および出力処理１４−２においては、第１制御アプリケーション処理部１６１、および第２制御アプリケーション処理部１６２により、シーケンスプログラム３０に呼び出された命令文に対応する中間コードが逐次実行され、制御指令値が算出される。
【００９３】
なお、アプリケーション実行周期Ｔ２１が制御周期Ｔ１の２倍であり、アプリケーション実行周期Ｔ２２が制御周期Ｔ１の３倍である場合を例示したが、これに限られるものではない。アプリケーション実行周期Ｔ２１，Ｔ２２は、対象となるアプリケーションプログラム３２の種類に応じて、制御周期Ｔ１の整数倍として設定でき、制御周期Ｔ１と同じ長さに設定することもできる。また、複数のアプリケーションプログラム３２が存在する場合には、ユーザは、どのアプリケーションプログラム３２を実行するか、および低優先タスク１、または低優先タスク２の何れで実行するかを、設定画面を使って設定できる構成であってもよい。
【００９４】
図９は、アプリケーションプログラム３２の実行中に、表示部１５９に表示される情報の一例を示す図である。図９に示すように、表示部１５９には、アプリケーションプログラム３２の中のいずれの命令文が実行されているのかが表示される。上述したように、プログラム管理部１５６によってビルドされたアプリケーションプログラム３２は、中間コードと、ソースコードとが対応付けてストレージ１０８に記憶されている。これにより、制御アプリケーション処理部１６０は、アプリケーションプログラム３２の実行中に、アプリケーションプログラム３２の中のいずれの命令文を実行しているかを表示させることが出来る。制御アプリケーション処理部１６０は、アプリケーションプログラム３２に含まれる複数の命令文を表示部に表示すると共に、実行中の命令文をハイライトする、または枠で囲む等の方法により、いずれの命令文を実行しているかをユーザに提示してもよい。
【００９５】
〔中間コードについて〕
次に、プログラム管理部１５６によって、アプリケーションプログラム３２の命令文が変換されて生成された中間コードの一例について説明する。
【００９６】
図１０は、統合コントローラ１００において生成される中間コードを概念的に示す模式図である。図１０に示すように、アプリケーションプログラム３２は、逐次実行される命令文を含んでおり、各命令文を逐次実行した場合に必要となる時間は、各命令文の内容に応じて変化する。そのため、制御周期毎に指令値を演算することが容易ではない。なお、図１０には、アプリケーションプログラム３２の一例として、ＣＮＣで用いられるＧ言語にて記述されたコードを示す。
【００９７】
本実施の形態では、プログラム管理部１５６は、アプリケーションプログラム３２に記述された１または複数の命令文を解釈し、その解釈された内容に基づいて、制御周期毎に指令値を演算するための中間コード３５を生成する。中間コード３５は、アプリケーションプログラム３２に記述された１または複数の命令文毎に生成されるので、１つのアプリケーションプログラム３２から１または複数の中間コード３５が生成される。
【００９８】
中間コード３５の各々においては、制御周期の時刻（あるいは、時間）を入力として、指令値を演算できる関数が規定されていてもよい。すなわち、中間コード３５は、制御アプリケーション処理部１６０が制御周期毎に指令値を演算するための関数であってもよい。このような関数を用いることで、制御アプリケーション処理部１６０は、中間コード３５を逐次実行して、各制御周期における指令値を演算できる。
【００９９】
例えば、１番目の中間コード１が制御周期の１０倍分の期間に亘って指令値を規定するものであるとすると、制御アプリケーション処理部１６０は、中間コード１を用いて、１０制御周期分の期間に亘って指令値を周期的に演算する。同様に、他の中間コード２および中間コード３についても、基本的には、複数の制御周期に亘って指令値を演算できるものとなる。
【０１００】
プログラム管理部１５６は、シーケンスプログラム３０と、アプリケーションプログラム３２とを一括してビルドする際に、アプリケーションプログラム３２から中間コードを生成する。これにより、ＩＥＣプログラム処理部１５０によるシーケンスプログラム３０の実行と同期して、アプリケーションプログラム３２を実行させることができる。
【０１０１】
図１１は、統合コントローラ１００における中間コードの生成例を説明するための模式図である。図１１に示すように、例えば、動作すべき軌道を規定するアプリケーションプログラム３２が逐次実行されると、まず、アプリケーションプログラム３２に含まれる命令文が一行ずつ解釈され（（１）プログラム解釈）、規定された軌道が内部的に生成される（（２）軌道生成）。これらの軌道と制御周期毎の位置との関係が決定された上で、統合コントローラ１００の内部的に生成された軌道を示す１または複数の関数が生成される（（３）区間毎の関数生成）。プログラム管理部１５６は、中間コード３５の一例として、このように、制御周期の時間を入力とし、指令値を出力とする関数を用いる構成であってもよい。
【０１０２】
また、図１１に示した例では、統合コントローラ１００の内部的に生成された軌道は、直線の組み合わせであるので、直線区間毎（区間１〜区間３）の軌道を時間と速度との関係を示す関数ｆ１（ｔ），ｆ２（ｔ），ｆ３（ｔ）が出力される。プログラム管理部１５６は、このように出力される関数ｆ１（ｔ），ｆ２（ｔ），ｆ３（ｔ）を中間コード３５としてもよい。なお、プログラム管理部１５６は、図１１に示す軌道を規定する単一の関数を中間コードとして出力してもよい。プログラム管理部１５６が、どのような中間コード３５を出力するのかについては、要求される制御周期の時間幅などを考慮して、適宜設計されてもよい。
【０１０３】
なお、上述の図１０および図１１においては、一例として、Ｇ言語を用いたアプリケーションプログラムについて説明したが、これに限らず、任意のロボット言語などのインタプリタ方式で逐次実行されるプログラムであれば、どのような言語を用いてもよい。また、プログラム管理部１５６は、アプリケーションプログラムで用いられている言語に応じて、任意の関数を中間コード３５として出力するようにしてもよい。
【０１０４】
〔変形例〕
図１２は、変形例の統合コントローラ１００の機能構成を示す図である。統合コントローラ１００の機能構成は、図３を用いて説明した構成に限られるものではない。統合コントローラ１００は、上述したように、入力部１５８と、表示部１５９とを一体に備えた構成であってもよいし、図１２に示すように、入力部１５８、および表示部１５９を備えない構成であってもよい。
【０１０５】
例えば、統合コントローラ１００の編集部１５４は、上位ネットワークインタフェース１８２を介してネットワーク６に接続された表示装置４００に編集ウィンドウ６０１を表示することができてもよい。そして、ユーザは、表示装置４００に表示された編集ウィンドウ６０１を参照して、表示装置４００に設けられたタッチパネルや、表示装置４００に接続されたＰＣなどから、プログラムの編集や作成を行うことができてもよい。統合コントローラ１００の編集部１５４は、ネットワーク６を介して、表示装置４００からユーザ入力を受け取り、表示装置４００に開発環境を表示させる。表示装置４００は、図３に示す入力部１５８および表示部１５９として機能する。このように統合コントローラ１００の編集部１５４は、統合コントローラ１００上で実行されるプログラムを、オンラインで作成または編集する機能を提供することができてもよい。
【０１０６】
また、制御アプリケーション処理部１６０は、アプリケーションプログラムの実行中に、アプリケーションプログラムの中のいずれの命令文を実行しているかを、表示装置４００に表示させることができてもよい。
【０１０７】
〔ソフトウェアによる実現例〕
統合コントローラ１００の制御ブロック（特に編集部１５４、プログラム管理部１５６、制御アプリケーション実行部１６１，１６２、およびＩＥＣプログラム処理部１５０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１０８】
後者の場合、統合コントローラ１００は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１０９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１１０】
３０  シーケンスプログラム（第１プログラム、ＰＬＣプログラム）
３２  アプリケーションプログラム（第２プログラム）
３４  中間コード
１００  統合コントローラ
１４６  タッチパネル
１５０  ＩＥＣプログラム処理部（第１実行部）
１５４  編集部
１５６  プログラム管理部
１５８  入力部
１５９  表示部
１６０  制御アプリケーション処理部（第２実行部）
１６１  第１制御アプリケーション処理部（第２実行部）
１６２  第２制御アプリケーション処理部（第２実行部）
５００  フィールド機器（制御アプリケーション）
５２０  ロボット
５３０  工作機械
５４０  サーボドライバ
６０１、６０２  編集ウィンドウ
６１１  第１エリア
６１２  第２エリア
６１３ａ、６１３ｂ、６１３ｃ  タブ
６２１、６２２、６３１、６３２  ブロック
【図１】
2020021124.tif 000003
【図２】
2020021124.tif 000004
【図３】
2020021124.tif 000005
【図４】
2020021124.tif 000006
【図５】
2020021124.tif 000007
【図６】
2020021124.tif 000008
【図７】
2020021124.tif 000009
【図８】
2020021124.tif 000010
【図９】
2020021124.tif 000011
【図１０】
2020021124.tif 000012
【図１１】
2020021124.tif 000013
【図１２】
2020021124.tif 000014