以下に、本発明の実施の形態に係るプログラム作成装置、プログラム作成方法及びプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係るプログラム作成装置によって作成された制御プログラムが適用される制御システム1の一例を示す図である。実施の形態1に係る制御システム1は、SCADA(Supervisory Control And Data Acquisition)と呼ばれる監視制御システムである。監視制御システムは、産業制御システムの一種であり、コンピュータによるシステム監視とプロセス制御とを行う。監視制御システムの対象は、工場の生産工程及び各種のインフラ設備に関するものである。制御システム1は、監視制御システムに限定されるものではない。
制御システム1は、工場及び各種のインフラ設備において、これらを構成する機器14を制御するために用いられる。制御システム1は、監視制御装置11、プログラム作成装置12、制御装置13、機器14及び通信回線15を含む。監視制御装置11は、制御装置13を介して機器14を制御するとともに、制御装置13から機器14の状態に関する情報を取得して、機器14を監視する。
プログラム作成装置12は、制御装置13が機器14を制御するために実行するコンピュータプログラムを作成する。実施の形態1において、監視制御装置11及びプログラム作成装置12は、パーソナルコンピュータのような汎用のコンピュータである。実施の形態1において、監視制御装置11及びプログラム作成装置12はそれぞれ別個のコンピュータであるが、両者は同一のコンピュータで実現されてもよい。すなわち、1台のコンピュータが、監視制御装置11及びプログラム作成装置12を実現してもよい。
実施の形態1において、制御装置13は、プログラマブルコントローラ(Programmable
Logic Controllers(PLC))である。プログラマブルコントローラは、JIS(日本工業規格) B 3502:2011により規定されたものである。制御装置13は、機器14を制御する装置であればよく、プログラマブルコントローラに限定されるものではない。
制御装置13は、通信回線15を介して機器14と接続されている。実施の形態1において、制御装置13は、プログラム作成装置12によって作成されたプログラムを実行することにより、機器14を制御する。機器14は、工場の生産工程及び各種のインフラ設備を構成する機器である。機器14としては、工作機械、組立装置、搬送装置、仕分装置、室外機、室内機、ポンプ、バルブ及びファンが例示されるが、これらに限定されるものではない。実施の形態1において、1台の制御装置13が複数の機器14を制御するが、これに限定されない。1台の制御装置13が1台の機器14を制御してもよい。この場合、制御装置13と機器14とがそれぞれ1台のみであってもよいし、制御装置13と機器14とがそれぞれ複数かつ同数であってもよい。
図2は、実施の形態1に係るプログラム作成装置12の機能ブロック図である。プログラム作成装置12は、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35を含む。プログラム作成装置12は、さらに表示部37及び入力部38を含む。ラベル管理部31は、機器14を制御する制御装置13が機器14を制御するために実行する制御プログラムの入出力変数を変数ラベルと対応付けて管理する。より詳細には、ラベル管理部31は、工場又は各種のインフラ設備を構成する機器14の構成に応じて、機器14の名前と制御プログラムの入出力変数に対応する変数ラベルのリストとを組み合わせた入出力ラベルリストを作成する。
入出力変数は、機器14の種類によって異なるが、機器14がポンプである場合、駆動馬力、消費電力及び吐出量が例示され、機器14がバルブである場合、バルブ開度指令及びバルブ開度が例示され、機器14がファンである場合、回転速度指令が例示され、機器14が電動機である場合、トルク指令及び回転速度指令が例示される。入出力変数はこれらに限定されるものではない。ラベル管理部31は、作成した入出力ラベルリストを、表示部37に表示させる。
実施の形態1において、制御プログラムの入出力変数とは、制御プログラムに与えられる変数と、制御プログラムによる演算又は計算により制御プログラムから出力される変数との両方を含む。変数ラベルとは、入出力変数を区別するために、入出力変数のデータの項目に付される文字列である。
数式管理部32は、制御装置13が実行する計算プログラムに使用される数式を構成する数式フレームを管理する。より詳細には、数式管理部32は、複数の数式を含む数式のリストを表示部37に表示させる。数式のリストに含まれる数式は、制御装置13が実行する制御プログラムの入出力変数を、制御装置13が計算処理する際に用いられる。実施の形態1において、数式は、数式フレームを含む。実施の形態1において、数式フレームとは、演算子、関数名及び計算で使用する変数を用いて記述された数式である。以下において、数式のリストを、適宜数式フレームリストと称する。
設定部33は、入力部38を介して入力された指令に基づいて、変数ラベル及び数式を選択する。入力部38は、プログラム作成装置12へ指令及びデータを入力するための装置である。
プログラム作成部34は、変数ラベル及び数式の選択情報を元に、制御装置13が実行する計算プログラムを作成する。詳細には、プログラム作成部34は、数式管理部32が管理する数式を選択し、選択した数式で使用する変数ラベルをラベル管理部31が管理する変数ラベルから選択し、選択した数式及び変数ラベルに基づいて計算プログラムを作成する。また、プログラム作成部34は、制御装置13が機器14を制御する際に実行する制御プログラムを作成する。
選択情報は、プログラム作成装置12のユーザが、複数の変数ラベル及び複数の数式から、どの変数ラベル及び数式を選択したかを示す情報である。ラベル管理部31が作成したラベルリスト及び数式管理部32が作成した数式フレームリストから、ユーザが変数ラベル及び数式を選択すると、選択情報が生成される。
プログラム出力部35は、作成した計算プログラムを、制御装置13の制御プログラムに出力する。詳細には、プログラム出力部35は、作成した計算プログラムを、プログラム作成装置12の記憶部に制御装置13の制御プログラムの一部として記憶させる。
図3及び図4は、実施の形態1に係るプログラム作成装置12のハードウェア構成を示す図である。プログラム作成装置12は、表示部37である表示装置21、入力部38である入力装置22、プロセッサ23及びメモリ24を含む。表示装置21は、情報を表示する装置であり、液晶ディスプレイが例示されるがこれに限定されるものではない。入力装置22は、プログラム作成装置12に指令及びデータを入力する装置である。キーボード、マウス、ポインティングデバイス及びタッチパネルが例示されるが、これらに限定されるものではない。
プログラム作成装置12が有するラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の機能は、プロセッサ23によって実現される。プロセッサ23は、CPU(Central Processing Unit:中央処理装置)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)ともいう。
この場合、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組合せにより実現される。ソフトウェア及びファームウェアはプログラムとして記述され、メモリ24に記憶される。プロセッサ23は、メモリ24に記憶されたプログラムを読み出して実行することにより、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の機能を実現する。
これらのプログラムは、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35が実行する手順及び実施の形態1に係るプログラム作成方法をコンピュータに実行させるものであるともいえる。
メモリ24は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリー、EPROM(Erasable Programmable Read Only Memory)、及びEEPROM(Electrically Erasable Programmable Read Only Memory)といった揮発性又は不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、及びDVD(Digital Versatile Disc)が該当する。
実施の形態1において、メモリ24は、RAMのような揮発性記憶装置24Vと、ROMのような不揮発性記憶装置24UVとを有する。不揮発性記憶装置24UVには、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の機能を実現するためのプログラムと、制御プログラム及び計算プログラムの作成時に用いられる設定データとが記憶される。プロセッサ23が処理を実行する際のワークメモリとして、揮発性記憶装置24Vが適宜使用される。
プログラム作成装置12が有するラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の機能は、専用のハードウェアである処理回路25によって実現されてもよい。この場合、処理回路25は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらを組み合わせたものが該当する。ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35のそれぞれの機能を異なる処理回路25が実現してもよいし、それぞれの機能をまとめて1つの処理回路25が実現してもよい。
ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の各機能は、一部が専用のハードウェアで実現され、一部がソフトウェア又はファームウェアで実現されてもよい。このように、プログラム作成装置12は、ハードウェア、ソフトウェア、ファームウェア又はこれらの組合せによって、ラベル管理部31、数式管理部32、設定部33、プログラム作成部34及びプログラム出力部35の各機能を実現することができる。監視制御装置11のハードウェア構成は、プログラム作成装置12と同様である。
図5は、実施の形態1に係るプログラム作成装置12のメモリ24が記憶するライブラリ41を示す図である。図6及び図7は、実施の形態1に係るプログラム作成装置12が表示装置21に表示する画面の一例を示す図である。図8は、実施の形態1に係るプログラム作成装置12によって作成された計算プログラム48及び計算結果ラベル49を示す図である。
メモリ24の不揮発性記憶装置24UV内に記憶されるライブラリ41は、制御プログラム42及び入出力ラベルリスト43を含む。制御プログラム42は、図1に示される制御装置13が機器14を制御する際に実行するプログラムである。入出力ラベルリスト43は、制御プログラム42の入出力変数に対応する変数ラベルLVのリストである。実施の形態1において、変数ラベルLVは、入出力ラベルリスト43に含まれる、Status,Powerといった文字列である。実施の形態1において、%1で表される入出力変数は機器14の運転状態であり、%2で表される入出力変数は機器14の消費電力を示す。入出力ラベルリスト43は、変数ラベルLVと入出力変数とを対応付けて格納さする。入出力ラベルリスト43は、1以上の変数ラベル及び入出力変数を含む。
実施の形態1においては、複数の機器14を制御するための制御プログラム42P,42V及び複数の機器14の入出力ラベルリスト43P,43Vがライブラリ41に含まれている。図5に示される例では、ポンプ(Pump)の制御プログラム42Pと、バルブ(Valve)の制御プログラム42Vとがライブラリ41に含まれる。これらを区別しない場合、制御プログラム42と称する。制御プログラム42は、機器14毎に用意される。同じ種別の機器14は、同じ制御プログラム42によって制御される。このように、制御プログラム42は、同じ種別の機器14に対して汎用性を有する。以下において、制御プログラム42を、適宜、汎用制御プログラム42と称する。
図5に示される例では、ポンプ(Pump)の入出力ラベルリスト43Pと、バルブ(Valve)の入出力ラベルリスト43Vとがライブラリ41に含まれる。これらを区別しない場合、入出力ラベルリスト43と称する。入出力ラベルリスト43は、機器14毎に用意される。同じ種別の機器14は、同じ入出力ラベルリスト43が適用される。このように、入出力ラベルリスト43は、同じ種別の機器14に対して汎用性を有する。以下において、入出力ラベルリスト43を、適宜、汎用入出力ラベルリスト43と称する。
プログラム作成装置12がプログラムを作成する場合、プログラム作成装置12のプロセッサ23は、図6に示される機器構成設定画面21MSを表示装置21に表示させる。ユーザは、機器構成設定画面21MSが表示装置21に表示された状態で入力装置22を操作し、機器構成設定画面21MSの入力可能な領域に機器種別MS及び機器名MNを入力することにより、機器構成44を設定する。機器構成44は、図1に示される制御システム1に含まれる機器14の一覧であり、機器種別MSと機器14の名前、すなわち機器名MNとの組合せで表される。機器名MNは、同一種類の機器14が複数存在する場合、それぞれの機器14を区別するためのものである。機器構成44が設定されたら、プロセッサ23は、設定された機器構成44を、メモリ24の揮発性記憶装置24Vの記憶領域に一時的に記憶させる。
プロセッサ23は、図7に示される計算プログラム設定画面21PSを表示装置21に表示させる。計算プログラム設定画面21PSは、計算名45と、ラベルリスト46と、数式リスト47とを含む。計算名45は、ユーザによってプログラム作成装置12に入力される文字列であり、プログラム作成装置12が作成する計算プログラムの出力データ名となる。ラベルリスト46は、制御システム1に含まれる機器14の機器名MNと、機器名MNに対応する変数ラベルLVとの関係が記述されたリストである。
ラベル管理部31は、機器名MNと、機器14を制御する制御装置13が実行する汎用制御プログラム42の入出力変数に対応する変数ラベルLVのリスト、すなわち汎用入出力ラベルリスト43とを機器構成44に応じて組み合わせることにより、ラベルリスト46を作成する。このとき、ラベル管理部31は、揮発性記憶装置24Vから機器構成44を読み出し、機器構成44の機器名MNに対応する機器種別MSの汎用入出力ラベルリスト43を、ライブラリ41から取得する。そしてラベル管理部31は、取得した汎用入出力ラベルリスト43とこれに対応する機器名MNとを組み合わせる。ラベル管理部31は、機器構成44に含まれるすべての機器名MNに対して汎用入出力ラベルリスト43をライブラリ41から取得して組み合わせて一覧を作成することにより、ラベルリスト46を作成する。ラベル管理部31は、作成したラベルリスト46を、表示装置21に表示させる。
数式リスト47は、制御装置13が実行する計算プログラムに使用される数式のリストである。数式リスト47は、数式名ENと数式EXPとが対応付けられたリストである。数式リスト47は、メモリ24の不揮発性記憶装置24UVに記憶されている。前述したように、数式EXPは、数式フレーム、すなわち演算子、関数名及び計算で使用される変数を含む数式であってもよい。数式EXPは、算術計算が記述されたものであってもよいし、論理計算が記述されたものであってもよい。
ユーザは、計算プログラム設定画面21PSに表示された数式リスト47に含まれる数式EXPを選択し、入力装置22を介して選択した数式EXPを示す文字列をプログラム作成装置12に入力する。設定部33は、入力装置22を介して入力された指令、すなわち数式EXPを選択する指令に基づいて数式EXPを選択する。
プログラム作成部34は、制御プログラムPGCを作成する。詳細には、プログラム作成部34は、機器名MNに対応する機器種別MSの汎用制御プログラム42をライブラリ41から読み出して前述の機器名MNを対応付ける。また、プログラム作成部34は、機器名MNに対応する汎用入出力ラベルリスト43に前述の機器名MNと対応付ける。このようにして、プログラム作成部34は、汎用制御プログラム42及び汎用入出力ラベルリスト43を、個別の制御プログラム42及び入出力ラベルリスト43として識別できるようにする。また、プログラム作成部34は、計算名45と、変数ラベルLV及び数式EXPの選択情報とに基づき、計算プログラム48及び計算結果ラベル49を作成する。計算結果ラベル49は計算名45、すなわち計算名45を表す文字列である。
プログラム出力部35は、機器名MNと対応付けられた汎用制御プログラム42及び汎用入出力ラベルリスト43を制御プログラムPGCに出力する。また、プログラム出力部35は、プログラム作成部34によって作成された計算プログラム48及び計算結果ラベル49を制御プログラムPGCに出力する。このようにして、プログラム作成装置12は、制御装置13が制御システム1に含まれる機器14を制御するための制御プログラムPGCを作成する。制御プログラムPGCの入出力変数は、汎用制御プログラム42の入出力変数でもある。
図9は、実施の形態1に係る数式フレームリスト50を示す図である。数式フレームリスト50は、数式フレーム52を含む。詳細には、数式フレームリスト50は、数式名51と数式フレーム52との組合せを複数含むリストである。数式名51がExpressionAの文字列で表される数式フレーム52は、演算子として加算の演算子+、乗算の演算子*を有し、関数として合計の関数Sumを有し、計算で使用する変数として$1,$2,$3,$4を有する。数式名51がExpressionBの文字列で表される数式フレーム52は、演算子として加算の演算子+、乗算の演算子*を有し、計算で使用する変数として$1,$2,$3,$4を有する。数式フレーム52は、プログラム作成装置12が有するメモリ24の不揮発性記憶装置24UVに記憶される。計算で使用する変数を、以下においては適宜、数式変数と称する。実施の形態1において、数式フレームリスト50は、数式EXPを含んでいてもよい。
図10は、実施の形態1に係る計算プログラム設定データ60のデータ構成を示す図である。計算プログラム設定データ60は、計算名データ61と、数式データ62と、数式パラメータリスト63とを有する。計算名データ61は、ユーザによってプログラム作成装置12に入力される計算名45を示す情報である。数式データ62は、ユーザによって選択された数式EXP及び数式フレーム52の少なくとも一方を含む情報である。数式パラメータリスト63は、数式データ62と、数式EXPで使用する変数及び変数ラベルLVの選択情報とを含む情報である。
数式パラメータリスト63は、複数の入力を持つ関数を計算するため、1つの数式変数について複数の数式変数を選択することができるデータ形式、例えば、配列で構成される。図10に示される例では、数式変数$4については$4[0],$4[1],$4[2]の3個が設定されている。
図11は、実施の形態1に係るプログラム作成装置12が制御プログラムを作成する処理の一例を示すフローチャートである。この処理は、実施の形態1に係るプログラム作成方法である。工程S101において、プログラム作成装置12のプロセッサ23は、図6に示される機器構成設定画面21MSを表示装置21に表示させる。ユーザは、機器構成設定画面21MSが表示装置21に表示された状態で入力装置22を操作し、機器構成設定画面21MSの入力可能な領域に機器種別MS及び機器名MNを入力することにより、図1に示される制御システム1に含まれる機器14をプログラム作成装置12に入力することにより、図6に示される機器構成44を設定する。プログラム作成装置12のプロセッサ23は、この入力を受け付けて、設定された機器構成44を、メモリ24の揮発性記憶装置24Vの記憶領域に一時的に記憶させる。
工程S102において、プロセッサ23は、図7に示される計算プログラム設定画面21PSを表示装置21に表示させる。ユーザは、入力装置22により計算プログラム設定画面21PSの計算名45に計算プログラムの出力データ名となる文字列を入力する。この入力を受け付けて、数式管理部32は、図10に示される計算プログラム設定データ60の計算名データ61の計算名45に、入力された文字列を設定する。
工程S103において、数式管理部32は、メモリ24の不揮発性記憶装置24UVに記憶された数式フレームリスト50を、計算プログラム設定画面21PSに表示させる。このとき、数式管理部32は、数式リスト47も計算プログラム設定画面21PSに表示させてもよい。数式フレームリスト50が計算プログラム設定画面21PSに表示されると、ユーザは、計算プログラム48が計算する数式フレーム52及び数式EXPの少なくとも一方を、数式フレームリスト50から選択する。数式リスト47が計算プログラム設定画面21PSに表示されている場合、ユーザは、計算プログラム48が計算する数式EXPを、数式リスト47から選択してもよいし、選択した複数の数式を組み合わせて数式フレーム52を作成してもよい。
数式フレーム52及び数式EXPの少なくとも一方が選択されると、工程S104において、設定部33は、計算プログラム設定データ60の数式データ62に、選択された数式フレーム52及び数式EXPの少なくとも一方とその数式名51とを設定する。数式EXPが選択された場合、設定部33は、計算プログラム設定データ60の数式データ62に、選択された数式EXPとその数式名ENとを設定する。
工程S105において、ラベル管理部31は、設定された機器構成44に応じて、機器名MNと、汎用制御プログラム42の入出力変数に対応する汎用入出力ラベルリスト43とを組み合わせることにより、ラベルリスト46を作成し、計算プログラム設定画面21PSに表示する。
ラベルリスト46が表示されると、ユーザは、数式フレーム52又は数式EXPで使用される数式変数として、ラベルリスト46から変数ラベルLVを選択する。このとき、ユーザは、どの数式変数にどの変数ラベルLVを用いるか、すなわち数式変数と変数ラベルLVとの対応関係をプログラム作成装置12に与える。工程S105は、工程S101と工程S102との間であってもよい。
工程S106において、設定部33は、選択された変数ラベルLVを、数式変数に対応付けて数式パラメータリスト63に設定する。工程S107において、プログラム作成部34は、機器構成44に従い、ライブラリ41に記憶されている汎用制御プログラム42及び汎用入出力ラベルリスト43に対し、機器名MNを与えて特定するか、又は機器名MNに基づく唯一の名前を与えて特定する。
工程S108において、プログラム作成部34は、計算プログラム設定データ60の数式パラメータリスト63に基づき、計算プログラム48を作成する。計算プログラム48は、特定された変数ラベルLV、すなわち機器名MNが与えられた変数ラベルLVを入力とし、計算名データ61に設定された計算名45の文字列の計算結果ラベル49を出力とするプログラムである。数式データ62に設定された数式フレーム52及び数式EXPの数式変数に、数式パラメータリスト63で対応付けられた変数ラベルLVが与えられたものが、計算プログラム48となる。制御装置13が計算プログラム48を実行すると、機器名MNが与えられた変数ラベルLVを数式変数として、数式データ62に設定された数式フレーム52及び数式EXPが計算される。この計算結果は、計算結果ラベル49と対応付けられる。
工程S109において、プログラム出力部35は、機器名MNと対応付けられた汎用制御プログラム42、汎用入出力ラベルリスト43、作成された計算プログラム48、及び作成された計算結果ラベル49を制御プログラムPGCに出力する。このようにして、プログラム作成装置12は、制御プログラムPGCを作成する。
プログラム作成装置12は、計算プログラム48に用いられる数式フレーム52及び数式EXPの少なくとも一方と、変数ラベルLVとをメモリ24に記憶しておき、計算プログラム48で用いられる数式フレーム52及び数式EXPの少なくとも一方と、変数ラベルLVとをユーザに選択させる。そして、プログラム作成装置12は、数式フレーム52及び数式EXPの少なくとも一方と、変数ラベルLVとの選択情報、及び制御システム1の機器14の構成に基づき、計算プログラム48を作成する。すなわち、プログラム作成装置12は、予めメモリ24に記憶された数式フレーム52及び数式EXPと、数式変数となる変数ラベルLVとをユーザに選択させ、選択結果に基づいて計算プログラム48を作成する。このため、制御プログラムPGCを作成する毎又は計算プログラム48を作成する毎に、ユーザ自身が数式フレーム52又は数式EXPを作成する必要はない。その結果、プログラム作成装置12は、制御装置13が実行するプログラムを作成する工数を抑制し、ユーザの入力間違いによるプログラムの間違いを抑制することができる。
数式フレーム52及び数式EXPは、計算プログラム48を構成する要素であり、制御システム1の機器14の構成に応じて数式変数を設定できる。プログラム作成装置12は、複数の数式フレーム52及び数式EXPをメモリ24に記憶しているので、様々な計算プログラム48に対応することができる。このため、プログラム作成装置12は、様々な機器14の構成に対応することができ、汎用性が高い。PLCで用いられるラダープログラムは、C言語とは異なり、計算プログラム48を簡単に作成することは困難であるが、プログラム作成装置12は、ラダープログラムにおける計算プログラム48を容易に作成できるとともに、間違いを抑制することができる。
実施の形態1で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態2.
図12は、実施の形態2に係るプログラム作成装置12aの機能ブロック図である。図13は、実施の形態2に係る数式フレームリスト50aを示す図である。プログラム作成装置12aは、実施の形態1のプログラム作成装置12に加えて、数式作成部36を有する。他の構成は実施の形態1と同様である。プログラム作成装置12aのハードウェア構成も、実施の形態1のプログラム作成装置12と同様である。数式作成部36は、図3に示されるプロセッサ23及びメモリ24又は図4に示される処理回路25により実現される。
数式作成部36は、入力、より詳細にはユーザの入力に応じて数式フレーム52を作成又は編集する。数式作成部36は、数式EXPを作成又は編集してもよい。数式管理部32は、数式作成部36が作成又は編集した数式フレーム52又は数式EXPを数式フレームリスト50aに追加する。図13に示される例では、文字列ExpressionCで表される数式名51の数式フレーム52が数式フレームリスト50aに追加されている。
ユーザが数式フレーム52又は数式EXPを定義する場合、図3又は図4に示される入力装置22を用いて、数式フレームリスト50aに保持されている数式フレーム52又は数式EXPを編集したり、新たな数式フレーム52又は数式EXPを作成したりする。数式作成部36は、ユーザによる編集又は新規のフレーム52の作成についての指令を入力装置22から取得すると、取得した指令に応じて数式フレーム52又は数式EXPを編集したり、新たな数式フレーム52又は数式EXPを作成したりする。数式管理部32は、編集が完了した数式フレーム52又は数式EXPを数式フレームリスト50aに書き込んだり、新たに作成した数式フレーム52数式EXPを、数式フレームリスト50aに書き込んだりする。
ユーザが数式フレーム52又は数式EXPを編集する場合、数式作成部36は、表示装置21の画面に編集対象の数式フレーム52又は数式EXPを表示させる。このようにすることで、ユーザは数式フレーム52又は数式EXPを容易に編集できる。
このような処理により、数式管理部32は、計算プログラム設定画面21PSに、計算プログラム48に用いられる数式フレーム52及び数式EXPの候補として、ユーザによって定義された数式フレーム52及び数式EXPを含む数式フレームリスト50aを表示させることができる。設定部33は、ユーザによって定義された数式フレーム52又は数式EXPが選択された場合、これを数式データ62に設定することができる。プログラム作成部34はユーザによって定義された数式フレーム52及び数式EXPを用いる計算プログラム48を作成することができる。その結果、プログラム作成装置12aは、ユーザによって設定された計算を行わせるための計算プログラム48を作成することができる。
実施の形態2で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態3.
実施の形態3において、前述したプログラム作成装置12,12aのラベル管理部31は、複数の変数ラベルLVをフィルタリングして表示装置21に表示させること、及びソートして表示装置21に表示させることの少なくとも一方を実行する。変数ラベルLVのフィルタリング及びソートには、機器名MN、変数ラベルLVの名前及び機器種別MSの少なくとも1つが用いられる。
図14は、実施の形態3に係るラベルリスト80を示す図である。図15及び図16は、実施の形態3に係るラベルリスト80をフィルタリングしたラベルリスト80a,80bを示す図である。図17及び図18は、実施の形態3に係るラベルリスト80をソートしたラベルリスト80c,80dを示す図である。次に、フィルタリング及びソートの例を説明する。
ラベル管理部31は、図14に示されるラベルリスト80を、機器種別MSがPumpでフィルタリングすることにより、機器種別MSがPumpの変数ラベルLVを抽出して、図15に示されるラベルリスト80aを作成する。ラベル管理部31は、作成されたラベルリスト80aを、ユーザが変数ラベルLVを選択する際に表示装置21に表示させる。実施の形態3において、機器種別MSは、機器名MNの数字を除いた文字列の部分である。また、ラベル管理部31は、図14に示されるラベルリスト80を、Powerを含む変数ラベルLVの名前でフィルタリングすることにより、名前にPowerを含む変数ラベルLVを抽出して、図16に示されるラベルリスト80bを作成する。ラベル管理部31は、作成されたラベルリスト80bを、ユーザが変数ラベルLVを選択する際に表示装置21に表示させる。
ラベル管理部31は、図14に示されるラベルリスト80を、機器名MNを示す文字列の最初の文字の昇順にソートすることにより、図17に示されるラベルリスト80cを作成する。ラベル管理部31は、作成されたラベルリスト80cを、ユーザが変数ラベルLVを選択する際に表示装置21に表示させる。また、ラベル管理部31は、図14に示されるラベルリスト80を、機器名MNを示す文字列の最初の文字の降順にソートすることにより、図18に示されるラベルリスト80dを作成する。ラベル管理部31は、作成されたラベルリスト80dを、ユーザが変数ラベルLVを選択する際に表示装置21に表示させる。
実施の形態3のラベル管理部31は、ラベルリスト80の項目の絞込み及び並びの変更を可能とする。その結果、ラベル管理部31は、ラベルリスト80をユーザが選択しやすい形態に変更することができるので、ユーザが変数ラベルLVを選択する際の利便性を向上させることができ、また変数ラベルLVの選択の間違いを低減させることができる。
実施の形態3で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態4.
図19は、実施の形態4に係る制御プログラムPGCb,PGCaを示す図である。実施の形態4において、前述したプログラム作成装置12,12aのプログラム作成部34によって作成された制御プログラムPGCb,PGCaに含まれる制御プログラム91b,91a、計算プログラム98b,98a及びラベルリスト92b,92aには、コメントCMを付すことができるようになっている。コメントCMには、プログラム作成部34によって作成されたことを示す識別子も含まれる。このため、制御プログラム91b,91a、計算プログラム98b,98a及びラベルリスト92b,92aには、プログラム作成部34によって作成されたことを示す識別子を付すことができるようになっている。この識別子を、以下においては適宜、識別用コメントと称する。実施の形態4においては、少なくとも計算プログラム98b,98aに識別用コメントが付されるようになっていればよい。
識別用コメントは、図19に示される[!!]である。プログラム出力部35は、識別用コメント[!!]により、プログラム作成部34によって作成された制御プログラム91b、91aを、ユーザが作成した制御プログラムであるユーザプログラム95と区別することができる。計算プログラム98b,98a及びラベルリスト92b,92aも同様に、ユーザが作成した計算プログラムであるユーザ計算プログラム及びユーザが作成したラベルリストであるユーザラベルリスト92iと区別される。
実施の形態4において、制御プログラムPGCbが作成された後に、新たな制御プログラムPGCaが作成される場合、プログラム作成装置12,12aのプログラム出力部35は、識別用コメント[!!]が付されている制御プログラム91b、計算プログラム98b及びラベルリスト92bを制御プログラムPGCbから削除する。削除後の制御プログラムPGCiには、ユーザプログラム95及びユーザラベルリスト92iが残る。ユーザ計算プログラムが制御プログラムPGCbに含まれていれば、削除後の制御プログラムPGCiにはユーザ計算プログラムも残る。
プログラム出力部35は、ユーザプログラム95及びユーザラベルリスト92iが残る制御プログラムPGCiに、プログラム作成部34によって作成された新たな制御プログラム91a、計算プログラム98a及びラベルリスト92aを出力する。このようにして、プログラム作成装置12,12aは、新たな制御プログラムPGCaを作成する。
図20は、実施の形態4において、プログラム作成装置12,12aが実行する処理の手順を示すフローチャートである。工程S201において、プログラム出力部35は、既に作成された制御プログラムPGCbに識別用コメント[!!]があった場合(工程S201においてYes)、工程S202において、識別用コメント[!!]が付されている制御プログラム91b、計算プログラム98b及びラベルリスト92bを制御プログラムPGCbから削除する。工程S203において、プログラム出力部35は、削除後の制御プログラムPGCiを用いて、新たな制御プログラムPGCaを作成する。プログラム出力部35は、既に作成された制御プログラムPGCbに識別用コメント[!!]がない場合(工程S201においてNo)、工程S203において、既に作成された制御プログラムPGCbに、プログラム作成部34によって作成された新たな制御プログラム91a、計算プログラム98a及びラベルリスト92aを出力して、新たな制御プログラムPGCaを作成する。このようにして、プログラム作成装置12,12aは、新たな制御プログラムPGCaを作成する。
このように、プログラム作成装置12,12aは、既に作成された制御プログラムPGCbを利用して新たな制御プログラムPGCaを作成することができる。また、プログラム作成装置12,12aは、計算プログラム98b及び制御プログラム98bを変更する場合、既存の計算プログラム98b及び制御プログラム91bを削除して新たな計算プログラム98b及び制御プログラム98bとする。このため、プログラム作成装置12,12aは、既存の計算プログラム98b及び制御プログラム91bを容易に変更できる。
実施の形態4で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態5.
図21は、実施の形態5に係る不揮発性記憶装置24UVに記憶されている適用元プロジェクトデータ104、適用先プロジェクトデータ107及びライブラリ100を示すブロック図である。実施の形態5において、プログラム作成装置12,12aは、計算プログラム48の生成に用いられた変数ラベルLVと、数式フレーム52と、機器14の構成とが対応付けられたテンプレート101を記憶する記憶部を有する。この記憶部は、メモリ24であり、より詳細には不揮発性記憶装置24UVである。テンプレート101の数式フレーム52は、数式EXPであってもよい。
ユーザは、制御プログラムPGCを作成するため、プログラム作成装置12,12aが必要とするすべてのデータを適用元プロジェクトデータ104として作成する。適用元プロジェクトデータ104は、メモリ24の不揮発性記憶装置24UVに記憶される。設定部33は、適用元プロジェクトデータ104に入力された機器構成105と計算プログラム設定データ106とを、ライブラリ100のテンプレート101として記憶させる。テンプレート101は、機器構成102と計算プログラム設定データ103とを有する。作成されたテンプレート101は、メモリ24の不揮発性記憶装置24UVに記憶されているライブラリ100に書き込まれる。
機器構成105,102は、機器種別MSと機器名MNとの組合せであり、実施の形態1で説明された機器構成44と同様の構成である。計算プログラム設定データ106,103は、実施の形態1で説明された計算プログラム設定データ60と同様の構成である。
設定部33は、適用先プロジェクトデータ107とテンプレート101とを比較する。比較の結果、テンプレート101の機器構成102と適用先プロジェクトデータ107の機器構成108とが同じ場合、設定部33は、テンプレート101の計算プログラム設定データ103を適用先プロジェクトデータ107の計算プログラム設定データ109としてライブラリ100から読み出す。そして、設定部33は、読み出したテンプレート101の計算プログラム設定データ103を、適用先プロジェクトデータ107の計算プログラム設定データ109に設定する。
このような処理により、実施の形態5においては、プログラム作成装置12,12aに一度入力された計算プログラム48の設定に関する情報、より詳細には計算プログラム設定データ103を再利用することができるので、入力の手間が低減される。実施の形態5で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態6.
図22は、実施の形態6に係るラベルリスト110を示す図である。ラベルリスト110は、実施の形態1から実施の形態5に係るラベルリスト46に、通信属性BGが追加されたものである。通信属性BGは、プログラム作成部34によって作成された計算プログラム48に用いられた変数ラベルLVを監視制御装置11へ送信するか否かを示す情報である。
図1に示される監視制御装置11は、計算プログラム48からの計算結果が得られれば、数式フレーム52又は数式EXPで使用した変数ラベルLVは不要となる場合がある。そのため、実施の形態6は、ラベルリスト46に通信属性BGを追加して、ラベル管理部31が通信属性BGを変数ラベルLVに付与することで、監視制御装置11が変数ラベルLVを送受信するか否かを設定できるようにする。
図22に示される例では、通信属性BGがONである場合、プログラム作成装置12,12aは変数ラベルLVを監視制御装置11へ送信する。通信属性BGがOFFである場合、プログラム作成装置12,12aは変数ラベルLVを監視制御装置11へ送信しない。実施の形態6は、通信属性BGにより不要な情報の送受信を低減できるので、制御装置13と監視制御装置11との間におけるデータ通信のパフォーマンスを向上させることができる。
実施の形態6で開示された構成は、以下の実施の形態においても適宜適用できる。
実施の形態7.
図23は、実施の形態7に係る数式フレームリスト123及び計算プログラム設定データ126を示す図である。実施の形態7に係る数式フレームリスト123は、実施の形態1に係る数式フレームリスト50に、数式フレーム52及び数式EXPで使用される変数ラベルLVを選択するための情報であるパラメータ選択条件CDCを加えたものである。すなわち、数式フレームリスト123は、パラメータ選択条件CDCを含む。詳細には、数式フレームリスト123は、数式名51と、数式フレーム52と、パラメータ選択条件CDCとの組合せを含むリストである。数式フレームリスト123の数式フレーム52は、数式EXPであってもよい。数式フレームリスト123は、記憶部であるメモリ24の不揮発性記憶装置24UVに記憶される。パラメータ選択条件CDCは、コメントCM、変数ラベルLV及び変数ラベルLVの名前が挙げられるが、これらに限定されるものではない。
ライブラリ120に記憶されているラベルリスト121は、実施の形態1に係る入出力ラベルリスト43にコメントCMが追加されたものである。ラベルリスト121を用いることにより、変数ラベルLVにコメントCMを付すことができる。
設定部33は、数式フレームリスト123から数式フレーム52又は数式EXPがユーザに選択されると、計算プログラム設定データ126の数式データ124に、選択された数式フレーム52又は数式EXPとその数式名51とを設定する。次に、設定部33は、選択された数式フレーム52又は数式EXP及びその数式名51に対応するパラメータ選択条件CDCを用いて、機器構成122に基づき、ライブラリ120に記憶されたラベルリスト121の変数ラベルLVの名前及びコメントCMの少なくとも一方をキーワード検索する。そして、設定部33は、キーワードに対応する変数ラベルLVをラベルリスト121から選択して、数式フレーム52又は数式EXPで使用される数式変数として数式パラメータリスト125に設定する。
数式名51が文字列ExpAで表される数式フレーム52が選択された場合、この数式フレーム52に対応付けられたパラメータ選択条件CDCは「コメント」になる。「コメント」は、キーワード検索する対象の項目である。設定部33は、選択された、数式名51が文字列ExpAで表される数式フレーム52に対応するパラメータ選択条件CDCである「コメント」を数式フレームリスト123から取得する。
設定部33は、機器構成122を参照し、機器名MNに対応する機器種別MSのラベルリスト121のコメントCMをキーワード検索する。機器名MNがPump1である場合、これに対応する機器種別MSはPumpであるので、設定部33は、ポンプ(Pump)のラベルリスト121のコメントCMをキーワード検索する。キーワード検索に用いられるキーワードは、数式名51、並びに数式フレーム52又は数式EXPに含まれる演算子、関数名及び数式変数が挙げられる。
設定部33は、キーワードとして数式名51である文字列ExpAを用いてポンプ(Pump)のラベルリスト121のコメントCMをキーワード検索すると、文字列Powerで表される変数ラベルLVを選択することができる。この場合、キーワードは数式フレームリスト123中の数式名51である。設定部33は、検索により選択した文字列Powerで表される変数ラベルLVを、文字列Pump1で表される機器名MNに対応する数式変数として、数式パラメータリスト125の変数ラベルLVに設定する。
数式名51が文字列ExpBで表される数式フレーム52が選択された場合、この数式フレーム52に対応付けられたパラメータ選択条件CDCは「変数ラベル」になる。設定部33は、選択された、数式名51が文字列ExpBで表される数式フレーム52に対応するパラメータ選択条件CDCである「変数ラベル」を数式フレームリスト123から取得する。
設定部33は、機器構成122を参照し、機器名MNに対応する機器種別MSのラベルリスト121の変数ラベルLVをキーワード検索する。機器名MNがPump1である場合、これに対応する機器種別MSはPumpであるので、設定部33は、ポンプ(Pump)のラベルリスト121の変数ラベルLVをキーワード検索する。キーワード検索に用いられるキーワードは、数式名51、並びに数式フレーム52又は数式EXPに含まれる演算子、関数名及び数式変数が挙げられる。
設定部33は、キーワードとして数式名51である文字列ExpBを用いてポンプ(Pump)のラベルリスト121の変数ラベルLVをキーワード検索すると、文字列ExpB_Param1で表される変数ラベルLVを選択することができる。設定部33は、検索により選択した文字列Powerで表される変数ラベルLVを、文字列Expに対応した数式フレーム52で用いられる数式変数として、数式パラメータリスト125の変数ラベルLVに設定する。
このように、設定部33は、パラメータ選択条件CDCに対応したラベルリスト121の項目をキーワード検索して選択した変数ラベルLVを、計算プログラム設定データ126の数式データ124に設定された数式フレーム52又は数式EXPで用いられる数式変数として設定する。このような処理により、プログラム作成装置12,12aのユーザは、数式フレーム52又は数式EXPの選択のみで、計算プログラム48を作成することができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。