(57)【要約】【課題】１つのオブジェクトプログラムの命令から、複数の用途別のアプリケーションプログラムを作成するようにしたアプリケーションプログラムの作成方法を提供することを目的とする。【解決手段】プログラミングツール２は、コンパイラ２ｃを起動して、ソースプログラム２ａの１行で記述されたプログラムを、１つ、または、複数のアセンブラ言語の命令で記述されるオブジェクトプログラム２ｂを生成し、コントローラ１は、メモリ１２と、当該オブジェクトプログラムを実行して、前記プラント制御システムを制御するＣＰＵ１１と、を備え、ＣＰＵは、オブジェクトプログラムの一つのアセンブラ言語の命令について、用途別命令設定部３で設定される用途定義命令を、用途定義命令テーブル１２ｂを参照して求め、求めた用途定義命令を実行し、複数の用途別のアプリケーションプログラムを作成するようにしたことを特徴とする。【選択図】  図１
2014229025.tif 000002
【特許請求の範囲】
【請求項１】
プラント制御システムのアプリケーションプログラムの作成方法であって、
前記プラント制御システムは、前記アプリケーションプログラムのソースプログラム、及びそのオブジェクトプログラムを作成するプログラミングツールと、
前記オブジェクトプログラムをダウンロードし、前記プラント制御システムを制御するコントローラと、
前記オブジェクトプログラムの命令と予め用途別にプログラムされる用途定義命令との対応付けを指定する用途別命令設定部と、を備え、
前記プログラミングツールは、前記ソースプログラムから前記オブジェクトプログラムを作成するためのコンパイラを備え、当該コンパイラを起動して、前記ソースプログラムの１行で記述されたプログラムを、１つ、または、複数のアセンブラ言語の命令で記述される前記オブジェクトプログラムを生成し、
前記コントローラは、ダウンロードされた前記オブジェクトプログラムと、当該オブジェクトプログラムの前記アセンブラ言語の１つの命令をプログラムにより用途毎に定義した用途定義命令と、前記アセンブラ言語の個々の命令と前記用途定義命令とを用途毎に対応付けした用途定義命令テーブルと、を記憶するメモリと、
前記プログラミングツールから前記オブジェクトプログラムをダウンロードし、当該オブジェクトプログラムを実行して、前記プラント制御システムを制御するＣＰＵと、
を備え、
前記ＣＰＵは、前記オブジェクトプログラムを実行し、前記オブジェクトプログラムの１つのアセンブラ言語の命令について、前記用途別命令設定部で設定される前記用途定義命令を、前記用途定義命令テーブルを参照して求め、求めた前記用途定義命令を実行し、
１つのアプリケーションプログラムから複数の用途別のアプリケーションプログラムを作成するようにしたことを特徴とするプラント制御システムのアプリケーションプログラムの作成方法。
【請求項２】
前記アプリケーションプログラムは、高級言語で、前記オブジェクトプログラムはアセンブラ言語で、また、前記用途定義命令は、Ｃ言語、または、アセンブラ言語で記述したことを特徴とする請求項１に記載のプラント制御システムのアプリケーションプログラムの作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プラント制御システムのアプリケーションプログラムの作成方法に関する。
【背景技術】
【０００２】
プラント制御システムは、産業分野やその制御対象プロセスにより多様な制御要求がある。多様な制御要求を大別すると、制御速度、制御データの演算精度、及び制御データの信頼性に関する要求などが主なものである。
【０００３】
従来、プラント制御システムにおいては、この制御要求を満たすために、産業分野やその制御対象プロセス毎に、最適な処理速度のＣＰＵを備えるコントローラとアプリケーションプログラムとを選択してカスタマイズすることで対応して来た。
【０００４】
このような多種類のコントローラと多種類のソフトウェアによる対応は、一般的に、生産性が低下する問題だけでなく、製品の品質やアフターサービス品質の低下が生じる可能性が増す問題がある。
【０００５】
このような背景から、コンピュータのソフトウェアでは、アプリケーションプログラムの開発コストの低減とそのプログラム品質の向上を図るため、国際規格IEC 61131-3など、「標準化（部品化）、構造化によるコンピュータ言語の開発」が進められてきた。
【０００６】
また、多様な要求に対して、例えば、プラント制御用のアプリケーションプログラムは、複数の用途に対応するため、複数の構成オブジェクトがライブラリとして記憶され、１つ以上の構成オブジェクトが用途に応じて構成され、当該構成オブジェクトをプロセッサが実行する統合構成表示システムがある(例えば、特許文献１参照。)。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００７−５３８３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に示すような制御システムにおいては、多様な要求をアプリケーションプログラムとして記憶し、この複数のテンプレートオブジェクトから１つ以上の構成オブジェクトを選択して、構成された構成オブジェクトを実行するような構成するもので、多様な要求に対応するものではあるが、大規模な開発はコストがかかる問題がある。
【０００９】
近年、マイクロプロセッサの飛躍的な性能向上と国際規格IEC 61131-3などのソフトウェアの標準化の進展を背景にして、コントローラを変えることなく、多様な制御要求を満たす、コンパクトなアプリケーションプログラムの開発が望まれてきた。
【００１０】
本発明は上述した課題を解決するためになされたもので、開発規模をコンパクトにして、プラント制御システムの用途毎の異なる要求に対して、コントローラのソースプログラムを変更することなく、１つのオブジェクトプログラムの命令から、複数の用途別のアプリケーションプログラムを作成するようにしたアプリケーションプログラムの作成方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本実施形態のプラント制御システムのアプリケーションプログラムの作成方法は、プラント制御システムのアプリケーションプログラムの作成方法であって、前記プラント制御システムは、前記アプリケーションプログラムのソースプログラム、及びそのオブジェクトプログラムを作成するプログラミングツールと、前記オブジェクトプログラムをダウンロードし、前記プラント制御システムを制御するコントローラと、前記オブジェクトプログラムの命令と予め用途別にプログラムされる用途定義命令との対応付けを指定する用途別命令設定部と、を備え、前記プログラミングツールは、前記ソースプログラムから前記オブジェクトプログラムを作成するためのコンパイラを備え、当該コンパイラを起動して、前記ソースプログラムの１行で記述されたプログラムを、１つ、または、複数のアセンブラ言語の命令で記述される前記オブジェクトプログラムを生成し、前記コントローラは、ダウンロードされた前記オブジェクトプログラムと、当該オブジェクトプログラムの前記アセンブラ言語の１つの命令をプログラムにより用途毎に定義した用途定義命令と、前記アセンブラ言語の個々の命令と前記用途定義命令とを用途毎に対応付けした用途定義命令テーブルと、を記憶するメモリと、前記プログラミングツールから前記オブジェクトプログラムをダウンロードし、当該オブジェクトプログラムを実行して、前記プラント制御システムを制御するＣＰＵと、を備え、前記ＣＰＵは、前記オブジェクトプログラムを実行し、前記オブジェクトプログラムの１つのアセンブラ言語の命令について、前記用途別命令設定部で設定される前記用途定義命令を、前記用途定義命令テーブルを参照して求め、求めた前記用途定義命令を実行し、１つのアプリケーションプログラムから複数の用途別のアプリケーションプログラムを作成するようにしたことを特徴とする。
【図面の簡単な説明】
【００１２】
【図１】実施形態のアプリケーションプログラムを作成するプラント制御システムの構成図。
【図２】用途定義命令テーブル
【図３】アプリケーションプログラムの作成方法の説明図。
【図４】用途別定義命令の例。
【図５】用途別定義命令の例。
【図６】用途別定義命令の例。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。図１乃至図６を参照して実施形態のプラント制御システムのアプリケーションプログラムの作成方法について説明する。
【００１４】
先ず、図１を参照して、アプリケーションプログラムを作成するプラント制御システムの構成について説明する。プラント制御システムの構成は、アプリケーションプログラムのソースプログラム２ａ、及びそのオブジェクトプログラム２ｂを作成するプログラミングツール２と、オブジェクトプログラム２ｂをダウンロードし、プラント制御システムを制御するコントローラ１と、オブジェクトプログラム２ｂの命令と予め用途別に設定される用途定義命令との対応付けを指定する用途別命令設定部３と、を備える。
【００１５】
次に、夫々の構成について説明する。プログラミングツール２は、ソースプログラム２ａからオブジェクトプログラム２ｂを作成するためのコンパイラ２ｃを備え、当該コンパイラ２ｃを起動して、前記ソースプログラムの１行で記述されたプログラムを、１つ、または、複数のアセンブラ言語の命令で記述されるオブジェクトプログラム２ｂを生成する。
【００１６】
また、コントローラ１は、ダウンロードされたオブジェクトプログラム１２ａと、オブジェクトプログラム１２ａのアセンブラ言語の１つの命令をプログラムにより用途毎に定義した用途定義命令１２ｃと、アセンブラ言語の個々の命令と用途定義命令とを用途毎に対応付けした用途定義命令テーブル１２ｂと、を記憶するメモリ１２とを備える。
【００１７】
また、コントローラ１は、プログラミングツール２からオブジェクトプログラム２ｂをダウンロードし、オブジェクトプログラム１２ｂを実行して、プラント制御システムを制御するＣＰＵ１１と、を備える。
【００１８】
さらに、コントローラ１は、通信インタフェース１３を備え、プログラミングツール２で作成したオブジェクトプログラム２ｂ、及び用途別設定部３で設定される用途定義命令テーブル情報は、ＣＰＵ１１の要求でダウンロードする。
【００１９】
さらに、コントローラ１は、Ｉ／Ｏインタフェース１４を備え、プロセスの状態を検出する検出端部４からの信号を入力し、また、コントローラ１からの制御信号を操作端部５に出力する。
【００２０】
なお、コントローラ１は、プログラミングツール２を内蔵する構成であっても良く、プログラミングツール２は、ソースプログラム２ａ、及びここで定義するオブジェクトプログラム２ｂを作成するコンパイル機能を備えているものであれば良く、その構成はコントローラ１の機能の位置づけにより、適宜変更することが可能である。
【００２１】
次に、コントローラ１のハードウェアの詳細について説明する。メモリ１２は、ＲＯＭ、及びＲＡＭで構成され、一般に、都度更新されるオブジェクトプログラム１２ｂはＲＡＭで、予め設定される用途定義命令テーブル１２ｂ、用途定義命令１２ｂはＲＯＭで構成される。
【００２２】
次に、ソフトウェアの構成について図３を参照して説明する。図３は、プログラミングツール２に備えるソースプログラム２ａと、オブジェクトプログラム２ｂをダウンロードしたオブジェクトプログラム１２ａと、用途別命令設定部３で設定され、用途定義命令テーブル１２ｂから求められる用途定義命令１２ｃの夫々の対応付けの１例を示したものである。
【００２３】
先ず、用途定義命令テーブル１２ｃについて、図２を参照して説明する。図２に示す用途定義命令テーブル１２ｃは、コンパイルされたオブジェクトプログラム１２ｂのアセンブラ言語の個々の命令と、用途定義命令１〜Ｎとを用途毎に対応付けしたものである。
【００２４】
用途定義命令１〜Ｎは、用途毎の要求をプログラムしたもので、例えば、用途定義命令１は、高信頼処理を要求する用途に対応させるためのプログラムである。また、用途定義命令２は、高速処理を要求する用途に対応させるためのプログラムである。
【００２５】
このプログラム作成方法は、例えば、１つのＡＮＤ命令については、図３に示すように、高信頼処理型の用途定義命令１は、処理速度よりもデータの信頼性が要求されるため、加算する入力データの範囲、加算演算の値の範囲、これらのデータの値が異常の場合のエラー処理などが含まれる処理がプログラムされる。
【００２６】
一方、高速処理型の用途定義命令２のＡＮＤ命令の場合には、処理速度が優先するため、入力データの加算演算のみのプログラムとし、処理ステップ数を少なくして処理速度を早くする。
【００２７】
この他には、高速処理型よりは処理速度は遅くなるが、入出力データの信頼度のみの信頼性をチェックする中速度処理型の用途定義命令３や、高精度を要求される高精度演算型の用途定義命令Ｎなどがある。
【００２８】
高精度型の用途定義命令Ｎの場合には、データのサンプリング回数の増加などを考慮したプログラムが考えられる。
【００２９】
以下同様に、オブジェクトプログラム１２ｂのアセンブラ言語の個々の命令についても、同様の考え方で、データの信頼性を優先したプログラム、データの高速処理を優先したプログラム、また、高精度演算を優先したプログラムなどが定義される。
【００３０】
このようなアセンブラ言語の各命令をプログラムすれば、用途定義命令１では、制御周期が少なくとも１００ｍｓｅｃを要するが、高信頼性のデータ処理が可能となる。
【００３１】
一方、用途定義命令２では、入出力データの範囲チェックなどのデータの信頼性チェックは出来ないが、１ｍｓｅｃ以下の高速度の制御周期に対応することが出来る。
【００３２】
このような用途の要求に応じたプログラムを用意することで、１つのソースプログラムから、ＣＰＵを取り替えることなく、複数の用途に対応できるアプリケーションプログラムの構成が可能となる。
【００３３】
次に、このような予めプログラムされた用途定義命令を使用して構成されるアプリケーションプログラム２ａの詳細構成と作成方法について、再び、図３を参照して説明する。
【００３４】
先ず、ソースプログラム２ａは、プログラミングツール２で予め作成されるアプリケーションプログラムで、国際規格IEC 61131-3で規定されるPLCプログラミング言語で記述されたものであるが、Fortran、BASIC、などの高級言語で作成されるものでも良い。
【００３５】
本実施例では、国際規格IEC 61131-3で規定されるPLCプログラミング言語には、SFC（シーケンシャルファンクションチャート）、LD（ラダー図）、FBD（ファンクションブロック図）、IL（命令リスト）、ST（構造化テキスト）があるが、説明を容易にするために、ST（構造化テキスト）によるソースプログラムを例にして説明する。
【００３６】
また、コンパイラ２ｃによりコンパイルされ、ダウンロードされたオブジェクトプログラム１２ａは、図３に示すように、ソースプログラム２ａの１行で記述されたプログラムを、１つ、又は、複数のアセンブラ言語の命令で記述したものである。
【００３７】
また、用途定義命令１２ｃは、アセンブラ言語の一つの命令をプログラムにより用途毎に定義したもので、用途定義命令テーブル１２ｂは、図２に示すように、アセンブラ言語の個々の命令と用途定義命令１２ｃとを、用途毎に対応付けしてテーブル化したものである。
【００３８】
例えば、図３、ソースプログラム２ａの１つの加算式プログラム、
Ｃ＝Ａ＋Ｂ      （３−１）
は、
オブジェクトプログラム１２ｂのアセンブラ言語の命令では、
ＬＤ      Ａ    （３−３）
ＬＤ      Ｂ
ＡＤＤ          （３−４）
ＳＴ      Ｃ    （３−５）
のように、（３−３）〜（３−５）のような複数のアセンブラ言語の命令で記述（コンパイル）される。
【００３９】
このアセンブラ言語の加算命令、ＡＤＤ（３−４）に対応する用途定義命令は、用途定義命令テーブル１２ｃで求められ、求められた用途定義命令１〜ｎの何れかのプログラムの先頭のプログラムに飛び、この用途定義命令のプログラムの終了で、次のアセンブラ言語命令、ＳＴ（３−５）に復帰する。
【００４０】
図３（左部）には、オブジェクトプログラム１２ｂ、ＡＤＤ（３−４）に対応するＣ言語で記述された用途定義命令１と用途定義命令２の例を図示し、ＣＰＵ１１は、用途定義命令テーブル１２ｂを参照して、予め用途別命令設定部３で設定された用途定義命令１を求め、求めた用途定義命令１を実行する動作の対応を図示している。
【００４１】
同様に、ソースプログラム２ａの１つの除算式プログラム、
Ｄ＝Ｃ／Ｘ      （３−１４）
は、
ＳＴ      Ｃ    （３−５）
ＬＤ      Ｃ    
ＬＤ      Ｘ
ＤＩＶ          （３−２１）
のように、アセンブラ言語の命令で記述される。
【００４２】
このアセンブラ言語の除算命令ＤＩＶ（３−２１）に対応する用途定義命令は、用途定義命令テーブル１２ｂから求められ、求められた用途定義命令１〜ｎの何れかの先頭のプログラムに飛び、このプログラムの終了で、次のアセンブラ言語命令、ＳＴ  Ｄ（番号未記載）命令に復帰する。
【００４３】
図４、４．１には、アセンブラ言語の除算命令ＤＩＶ(３−２１)に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムを対比して図示している。
【００４４】
同様に、ソースプログラム２ａのＩＦプログラム、
ＩＦ  Ｄ＞０．０  （３−１５）
は、
ＩＦ              （３−２２）
ＬＤ      Ｄ
ＬＤ      ０．０
ＧＴ              （３−２３）
のように、アセンブラ言語の命令で記述される。
【００４５】
このＩＦ構文命令（３−１５）は、アセンブラ言語、ＩＦ（３−２２）命令と記述（コンパイル）され、この命令に対応する用途定義命令が用途定義命令テーブル１２ｂから求められ、求められた用途定義命令１〜ｎの何れかの先頭のプログラムに飛び、このプログラムの終了で、次のＬＤ  Ｄ（番号未記載）命令に復帰する。
【００４６】
図４、４．２には、アセンブラ言語のＩＦ命令（３−２２）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムを対比して示している。
【００４７】
また、同様に、ＩＦ構文、ＥＮＤＩＦ命令（３−３１）は、アセンブラ言語、ＥＮＤＩＦ（３−２７）命令と記述され、この命令に対応する用途定義命令が用途定義命令テーブル１２ｃで求められる。そして、求められた用途定義命令１〜ｎの何れかの先頭プログラムに飛び、その終了で図示しない次のオブジェクトプログラム１２ｂの命令に復帰する。
【００４８】
図４、４．３には、ＥＮＤＩＦ命令（３−２７）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムの例を対比して示している。
【００４９】
同様に、ＩＦ構文命令、ソースプログラム２ａのＴＨＥＮ命令（３−１６）は、アセンブラ言語、ＴＨＥＮ（３−２４）命令と記述され、この命令に対応する用途定義命令が予め用途定義命令テーブル１２ｃで求められる。そして、求められた用途定義命令１〜ｎの何れかの先頭プログラムに飛び、このプログラムこのプログラムの終了でＡＯ（３−２５）命令に復帰する。
【００５０】
図５、５．４には、ＴＨＥＮ命令（３−２４）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムを対比して示している。
【００５１】
同様に、ＩＦ構文の命令、ソースプログラム２ａのＥＬＳＥ命令（３−１８）は、アセンブラ言語、ＥＬＳＥ（３−２６）命令と記述され、この命令に対応する用途定義命令が用途定義命令テーブル１２ｃで求められる。そして、求められた用途定義命令１〜ｎの何れかの先頭のプログラムに飛び、このプログラムの終了で、ＥＮＤＩＦ命令（３−２７）に復帰する。
【００５２】
図５、５．５には、ＥＬＳＥ命令（３−２６）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２の例を図示している。
【００５３】
次に、アナログ出力処理命令、ソースプログラム２ａのAnalog Input(m)（３−１３）は、アセンブラ言語、ＡＩ（３−２５）命令で記述され、この命令に対応する用途定義命令が、用途定義命令テーブル１２ｃで求められる。そして、求められた用途定義命令１〜ｎの何れかの先頭のプログラムに飛び、このプログラムの終了でＬＤ（３−３）命令に復帰する。
【００５４】
図６、６．６には、ＡＩ命令（３−２０）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムを対比して示している
また、アナログ入力処理命令、ソースプログラム２ａのプログラムAnalog Output(m)（３−１７）は、アセンブラ言語、ＡＯ（３−２５）命令で記述され、この命令に対応する用途定義命令が、用途定義命令テーブル１２ｃで求められる。そして、求められた用途定義命令１〜ｎの何れかの先頭のプログラムに飛び、そのプログラムの終了でＥＬＳＥＦ命令（３−２６）に復帰する。
【００５５】
図６、６．７には、ＡＩ命令（３−２５）に対応する、Ｃ言語で記述された用途定義命令１と用途定義命令２のプログラムを対比して示している。
【００５６】
尚、用途定義命令は、全てＣ言語で記述した例を示したが、アセンブラ言語で記述しても良い。
【００５７】
次に、このように構成されたプラント制御システムのアプリケーションプログラムの作成方法の効果について説明する。
【００５８】
プログラミングツール２ではコンパイラ２ｃを起動して、ソースプログラム２ａの１行で記述されたプログラムを、１つ、または、複数のアセンブラプログラムに変換してオブジェクトプログラム２ｂを生成する。
【００５９】
そして、ＣＰＵ１１は、オブジェクトプログラム１２ａを実行し、用途別命令設定部３で設定される用途定義命令テーブル１２ｂを参照し、オブジェクトプログラム１２ａの命令に対応する用途定義命令を実行する。
【００６０】
したがって、ソースプログラム２ａの１行のプログラムから、複数の用途定義命令が選択的に求められるので、１つのアプリケーションプログラムから複数の用途別のアプリケーションプログラムを作成することが出来る。
【００６１】
また、高級言語で作成されたソースプログラムを変更することなく、コンパイルされた命令の用途定義命令を多様に作成することで多様な用途の要求に対応することが出来る。
【００６２】
また、構造化されたアプリケーションプログラムを作成することが出来るので、プログラム作成の生産性が向上し、その品質も向上することが可能となる。
【００６３】
したがって、このような本願構成に拠れば、開発規模をコンパクトにして、プラント制御システムの用途毎の異なる要求に対して、コントローラのソースプログラムを変更することなく、１つのオブジェクトプログラムの命令から、複数の用途別のアプリケーションプログラムを作成するようにしたアプリケーションプログラムの作成方法を提供することが出来る。
【００６４】
本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６５】
１  コントローラ
２  プログラミングツール
２ａ  ソースプログラム
２ｂ  オブジェクトプログラム
２ｃ  コンパイラ
３  用途別命令設定部
４  検出端部
５  操作端部
１１  ＣＰＵ
１２  メモリ
１２ａ  オブジェクトプログラム
１２ｂ  用途定義命令テーブル
１２ｃ  用途定義命令
１３  通信インタフェース
１４  Ｉ／Ｏインタフェース
【図１】
2014229025.tif 000003
【図２】
2014229025.tif 000004
【図３】
2014229025.tif 000005
【図４】
2014229025.tif 000006
【図５】
2014229025.tif 000007
【図６】
2014229025.tif 000008