(57)【要約】【課題】ＰＬＣによるデータ収集を行うためのプログラムの生成を容易にし、作業者の負担を軽減する。【解決手段】データ収集に関する各種処理に対応した雛形プログラムと、データ収集の対象となる対象機器毎に当該対象機器に対応した機器パラメータとを格納した機器情報ライブラリ（１１１）と、受け付けた対象機器に対応する雛形プログラムおよび機器パラメータを用いて、データ収集プログラムを生成するプログラム生成部（１１７）とを備える。【選択図】図１
2020057332.tif 000002
【特許請求の範囲】
【請求項１】
データ収集に関する処理をＰＬＣ（Programmable Logic Controller）に実行させるデータ収集プログラムを生成するプログラム生成装置であって、
前記データ収集に関する各種処理に対応した雛形プログラムと、データ収集の対象となる対象機器毎に当該対象機器に対応した機器パラメータと、を格納した記憶部と、
ユーザーから、前記対象機器の入力を受け付ける受付部と、
前記受付部で受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、前記ＰＬＣにより前記対象機器からデータを収集するためのデータ収集プログラムを生成するプログラム生成部と、を備える、
プログラム生成装置。
【請求項２】
前記雛形プログラムには、前記機器パラメータかまたは該機器パラメータに対応する処理を組入れる組入れ欄が設けられており、
前記プログラム生成部は、前記雛形プログラムの前記組入れ欄に前記機器パラメータかまたは該機器パラメータに対応する処理を組入れることにより前記データ収集プログラムを生成する、
請求項１に記載のプログラム生成装置。
【請求項３】
前記プログラム生成部は、前記対象機器からデータを取得するための通信を制御するプログラムを含めて前記データ収集プログラムを生成する、
請求項１または２に記載のプログラム生成装置。
【請求項４】
前記ＰＬＣから、該ＰＬＣと接続している中継装置の情報を取得し、当該中継装置に接続されうる機器を、前記対象機器の選択候補として表示部に表示する、
請求項１〜３のいずれか１項に記載のプログラム生成装置。
【請求項５】
前記選択候補から選択された前記対象機器に対応する前記機器パラメータに関する数値および文字列の少なくとも何れかの入力を受け付ける数値入力画面を表示する、
請求項４に記載のプログラム生成装置。
【請求項６】
前記プログラム生成部は、前記受付部で受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、収集したデータを格納するデータベースを定義するためのデータベース定義プログラムを生成する、
請求項１〜５のいずれか１項に記載のプログラム生成装置。
【請求項７】
前記受付部は、前記プログラム生成部が生成した前記データ収集プログラムに対する修正指示を受け付ける、
請求項１〜６のいずれか１項に記載のプログラム生成装置。
【請求項８】
データ収集に関する処理をＰＬＣ（Programmable Logic Controller）に実行させるデータ収集プログラムを生成するプログラム生成装置の制御方法であって、
前記データ収集に関する各種処理に対応した雛形プログラムと、データ収集の対象となる対象機器毎に当該対象機器に対応した機器パラメータとが記憶部に格納されており、
ユーザーから、前記対象機器の入力を受け付ける受付ステップと、
前記受付ステップで受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、前記ＰＬＣにより前記対象機器からデータを収集するためのデータ収集プログラムを生成するプログラム生成ステップと、を含む、
プログラム生成装置の制御方法。
【請求項９】
請求項１に記載のプログラム生成装置としてコンピュータを機能させるための制御プログラムであって、前記プログラム生成部としてコンピュータを機能させるための制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械を制御するＰＬＣのためのプログラムを自動生成する装置に関する。
【背景技術】
【０００２】
ＰＬＣ（Programmable Logic Controller、 プログラマブルロジックコントローラー）は、工場やプラントにおいて、制御対象機器に対し機械の加工を実行させたり、検出装置によって検出された情報を取得したりする制御装置である。ＰＬＣは、動作させる機器の種類、順序、タイミング等、パラメータを適宜設定する必要がある生産現場において、工場の自動化（ファクトリーオートメーション、ＦＡ）のため広く用いられている。
【０００３】
ＦＡ機器がＰＬＣに対して送信するデータは多種多様である。このような多種多様なデータをＰＬＣは統一して管理するため、受信したデータに線形変換等の変換を施し管理している。
【０００４】
また、任意の既設の環境上でＰＬＣからＦＡ機器を制御し、データを収集し、データベースへ送信するためには、当該ＰＬＣ上で動作するプログラムを作成する必要がある。
【０００５】
プログラムの作成に関し、特許文献１には、模範的なソースコードからソースコードテンプレートを生成するソースコードテンプレート生成装置が記載されている。また、特許文献２には、ＰＬＣのためのプログラムを、ユーザーによって選択されたプログラムコードを結合することにより自動生成する方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３０６０６号公報（２００９年１０月８日公開）
【特許文献２】特開２０１３−３３４７９号公報（２０１３年２月１４日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１および特許文献２に記載された技術を用いて、ＰＬＣによるデータ収集プログラムを生成する場合、ＦＡ機器毎に対応するパラメータを設定する必要がある。また、ＦＡ機器との通信のためのパラメータも設定する必要がある。
【０００８】
従って、上述した従来技術を用いてＰＬＣによりデータ収集プログラムを生成する場合、プログラムを生成する作業者に大きな負担をかけるという問題がある。また、生成されたプログラムには作業者の能力差に起因して品質水準にばらつきが生じるという問題や、更に出力されるデータの形式に属人的な違いが発生するという問題もある。
【０００９】
本発明は、一側面では、上記の問題に鑑みてなされたものであり、その目的は、ＰＬＣによるデータ収集を行うためのプログラムの生成を容易にし、作業者の負担を軽減したプログラム開発支援装置等を実現することにある。
【課題を解決するための手段】
【００１０】
本開示は、上述した課題を解決するために、以下の構成を採用する。
【００１１】
すなわち、本発明の一側面に係るプログラム生成装置は、データ収集に関する処理をＰＬＣ（Programmable Logic Controller）に実行させるデータ収集プログラムを生成するプログラム生成装置であって、前記データ収集に関する各種処理に対応した雛形プログラムと、データ収集の対象となる対象機器毎に当該対象機器に対応した機器パラメータと、を格納した記憶部と、ユーザーから、前記対象機器の入力を受け付ける受付部と、前記受付部で受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、前記ＰＬＣにより前記対象機器からデータを収集するためのデータ収集プログラムを生成するプログラム生成部と、を備える。
【００１２】
上記の構成によれば、対象機器を入力するのみでＰＬＣによるデータ収集プログラムを生成できる。よって、従来と比較して作業者の負担を大幅に軽減して、ＰＬＣによるデータ収集プログラムを一定の品質水準と統一された出力形式を担保して生成することができる。
【００１３】
前記一側面に係るプログラム生成装置では、前記雛形プログラムには、前記機器パラメータかまたは該機器パラメータに対応する処理を組入れる組入れ欄が設けられており、前記プログラム生成部は、前記雛形プログラムの前記組入れ欄に前記機器パラメータかまたは該機器パラメータに対応する処理を組入れることにより前記データ収集プログラムを生成するものであってもよい。
【００１４】
上記の構成によれば、雛形プログラムに機器パラメータかまたは該機器パラメータに対応する処理を組入れるだけでデータ収集プログラムを生成できるので、データ収集プログラムを容易に生成することができる。
【００１５】
前記一側面に係るプログラム生成装置では、前記プログラム生成部は、前記対象機器からデータを取得するための通信を制御するプログラムを含めて前記データ収集プログラムを生成するものであってもよい。
【００１６】
上記の構成によれば、対象機器との通信を制御するプログラムを含むので、データを出力するプロトコルが設定されていない対象機器からであっても、適切にデータを取得することができる。
【００１７】
前記一側面に係るプログラム生成装置では、前記ＰＬＣから、該ＰＬＣと接続している中継装置の情報を取得し、当該中継装置に接続されうる機器を、前記対象機器の選択候補として表示部に表示するものであってもよい。
【００１８】
上記の構成によれば、ＰＬＣと接続している中継装置に接続されうる機器を対象機器の選択候補とする。これにより対象機器となり得る機器のみを候補として表示し、ユーザーに選択させることができるので、ユーザーは対象機器の入力を容易に行うことができる。
【００１９】
前記一側面に係るプログラム生成装置では、前記選択候補から選択された前記対象機器に対応する前記機器パラメータに関する数値および文字列の少なくとも何れかの入力を受け付ける数値入力画面を表示するものであってもよい。
【００２０】
上記の構成によれば、機器パラメータに関する数値および文字列の少なくとも何れかの入力を受け付ける。これにより、対象機器の状況、現場の状況等に応じてきめ細やかに設定した機器パラメータを用いてデータ収集プログラムを生成することができる。なお、数値および文字列の入力は数字および文字列を直接、入力するものであってもよいし、スライダやアップダウンボタンによる入力でもよい。
【００２１】
前記一側面に係るプログラム生成装置では、前記プログラム生成部は、前記受付部で受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、収集したデータを格納するデータベースを定義するためのデータベース定義プログラムを生成するものであってもよい。
【００２２】
上記の構成によれば、処理の内容と対象機器とを入力するのみでデータベース定義プログラムを生成できる。よって、従来と比較して作業者の負担を大幅に軽減して、データベース定義プログラムを生成することができる。
【００２３】
前記一側面に係るプログラム生成装置では、前記受付部は、前記プログラム生成部が生成した前記データ収集プログラムに対する修正指示を受け付けるものであってもよい。
【００２４】
上記の構成によれば、プログラム生成部が生成したプログラムを修正することができる。よって、状況、機器、処理内容等により細かく対応したプログラムを生成することができる。
【００２５】
また、本発明の一側面に係るプログラム生成装置の制御方法は、データ収集に関する処理をＰＬＣ（Programmable Logic Controller）に実行させるデータ収集プログラムを生成するプログラム生成装置の制御方法であって、前記データ収集に関する各種処理に対応した雛形プログラムと、データ収集の対象となる対象機器毎に当該対象機器に対応した機器パラメータとが記憶部に格納されており、ユーザーから、前記対象機器の入力を受け付ける受付ステップと、前記受付ステップで受け付けた前記対象機器に対応する前記雛形プログラムおよび前記機器パラメータを用いて、前記ＰＬＣにより前記対象機器からデータを収集するためのデータ収集プログラムを生成するプログラム生成ステップと、を含む。
【００２６】
本発明の各側面に係るプログラム生成装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記プログラム生成装置備える各部（ソフトウェア要素）として動作させることにより前記プログラム生成装置をコンピュータにて実現させるプログラム生成装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２７】
本開示の一態様によれば、作業者の負担が少ないプログラム自動生成方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係るプログラム生成部の要部構成を示す機能ブロック図である。
【図２】本実施形態の全体概要を示す図である。
【図３】本実施形態に係る機器情報ライブラリを示す図である。
【図４】従来の作業ステップを示すフローチャート図である。
【図５】本実施形態における処理の流れを示すフローチャートである。
【図６】本実施形態において、処理が開始されるときのユーザーインターフェース画面の一例を示す図である。
【図７】上記インターフェース画面において、ネットワーク構成情報を取り込んだ例を示す図である。
【図８】上記インターフェース画面において、突合せ処理の結果、および工業値変換管理マップへの書込み結果の例を示す図である。
【図９】上記インターフェース画面において、ユーザーが修正入力を行う場合の例を示す図である。
【図１０】工業値変換管理マップからＰＬＣ制御プログラムおよびデータベース定義プログラムを作成する例を説明するための図である。
【図１１】（ａ）〜（ｃ）は、プログラムの生成処理の例を示す図である。
【図１２】校正値を反映する例を示す図である。
【発明を実施するための形態】
【００２９】
以下、本開示の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本開示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【００３０】
§１  適用例
まず、図２を用いて、本発明が適用される場面の一例について説明する。図２は、本実施形態の全体概要を示す図である。図２には、本実施形態に係るプログラム自動生成部（プログラム生成装置）１１０が適用される場面を示している。
【００３１】
図２に示す例では、生産システム２００に含まれるＰＬＣ２１０を制御する端末装置１００が記載されている。端末装置１００にはＰＬＣ２１０を制御するプログラムを生成するプログラム自動生成部１１０がふくまれる。
【００３２】
図２に示すように、プログラム自動生成部１１０は、ユーザーにより指定された機器に対応する、機器情報ライブラリ（記憶部）１１１に格納された雛形プログラムおよび機器パラメータを用いて、ＰＬＣ２１０が対象機器からデータを収集するためのデータ収集プログラムを生成するものである。ユーザーが対象機器を指定するのみで、当該対象機器からＰＬＣ２１０がデータを収集するためのデータ収集プログラムを生成できるので、ユーザーに負担をかけること無くデータ収集プログラムを自動で生成することができる。
【００３３】
そして、本実施形態に係る生産システム２００では、ＰＬＣ２１０は、プログラム自動生成部１１０で生成されたデータ収集プログラムを実行することにより、末端機器２３０から出力されたデータを、汎用センサや既設ＰＬＣなどの中継機器（中継装置）２２０を介して収集する。そして、ＰＬＣ２１０は、収集されたデータに例えば線形変換などの処理を行い、デバイス変数を工業量変数へと変換し、得られた工業量変数をデータベース４１０へ格納する。なお、本実施形態におけるデータ収集プログラムは、ＰＬＣ２１０が中継機器２２０等の対象機器からデータを取得し、取得したデータを変換するためのＰＬＣ制御プログラム、および変換後のデータをデータベース４１０に格納するためのデータベース定義プログラムを含む。
【００３４】
本実施形態では、プログラム自動生成部１１０のネットワーク構成インポート部１１２は生産システム２００のネットワーク構成情報をインポートする。インポートでは、中継機器２２０（通信ユニット、Ｉ／Ｏユニット）における設定済みの構成を取得することができる。そして、中継機器２２０以降の、末端機器２３０（センサ、アクチュエータ等）について、突合せ処理部１１５が候補を限定した選択肢をユーザーに提示し、選択させる。
【００３５】
これにより、ユーザーが、中継機器２２０（通信ユニット、Ｉ／Ｏユニット）までの構成を調査するといった手間を必要とすることなく、ネットワーク構成に合わせたデータ収集プログラムを作成することができる。また、末端機器２３０（センサ、アクチュエータ等）について、選択肢を選ぶのみでよいので、容易かつ迅速に、データ収集プログラムを作成することができる。
【００３６】
また、ネットワーク構成情報に基づき、機器同士の通信プログラムを生成することができ、データ取得のために通信処理プログラムを必要とする末端機器２３０のデータを、生成したデータ収集プログラムで取得することができる。
【００３７】
さらに、選択肢では提示できなかった要素について追加、修正を行うことが可能なので、環境や機器の個体差に応じてデータ収集プログラムを作成することができる。
【００３８】
また、機器情報ライブラリ１１１は、機器情報パラメータ１１１１と雛形プログラム１１１２とを分離して保持しているので、機器同士のインターフェースの違い等を気にすることなく、型式の異なる機器について、同様の方法でデータ収集プログラムを作成することができる。
【００３９】
なお、雛形プログラム１１１２には通信処理など工業値変換以外の処理を記述することもできる。これにより、工業値変換の前に通信処理などのプログラム処理が必要な機器についても、同様の方法でデータ収集プログラムを作成することができる。
【００４０】
§２  構成例
［ハードウェア構成］
＜生産システム＞
次に、図２を用いて、本実施形態に係る生産システムのハードウェア構成の一例について説明する。
【００４１】
図２に示す例では、本実施形態に係る生産システム２００は、ＰＬＣ２１０と中継機器２２０と末端機器２３０とを含む。中継機器２２０はＰＬＣ２１０に内蔵されていてもよい。末端機器２３０は、直接ワークや環境に作用しているＦＡ（Factory Automation）機器を含み、例えば種々の汎用センサ、アクチュエータ、シリアル機器であってよい。また、既設のＰＬＣも便宜上これに含んでよい。中継機器２２０は、ＰＬＣ２１０と末端機器２３０との間に入る機器を含み、例えば種々のＩ／Ｏユニット、通信ユニットであってよい。中継機器２２０と末端機器２３０との接続方式は、公知の技術を用いて動作可能に構成されたものでよい。
【００４２】
＜プログラム自動生成部＞
次に、本実施形態に係るプログラムを自動で生成するプログラム自動生成部１１０を含む端末装置１００について説明する。図２に示すように、本実施形態に係る端末装置１００は、プログラム自動生成部１１０、およびＰＬＣサポート部１５０を含む。端末装置１００は、例えばパーソナルコンピュータ（ＰＣ）である。端末装置１００は、ＰＬＣ２１０と例えばＵＳＢケーブルで接続されている。ＰＬＣ２１０からのセンサデータの取得、およびＰＬＣ２１０へのプログラムの書込みなどの通信は、ＵＳＢケーブルおよびＰＬＣサポート部１５０を通じて行われる。なお、ＵＳＢに代えてＥｔｈｅｒｎｅｔ（登録商標）で接続され、ＥｔｈｅｒｎｅｔケーブルおよびＬＡＮ機器を通じて通信が行われてもよい。
【００４３】
端末装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を含む。
【００４４】
＜データベース＞
ＰＬＣ２１０は、ＬＡＮネットワークを通じてデータベース格納装置４００のデータベース４１０へと接続し、データ収集プログラムによって収集したデータをデータベース４１０へと記録する。データベース格納装置４００は、例えばＰＣである。データベース４１０は、ＬＡＮネットワークで接続されているものに限られず、例えばインターネットで接続されたクラウド上に存在していてもよい。また、データベース４１０は、ＳＱＬＳｅｒｖｅｒなどのリレーショナルＤＢであってよいし、非リレーショナルＤＢであってもよい。
【００４５】
［機能構成］
次に、図１を参照して、本実施形態に係る端末装置１００のプログラム自動生成部１１０の機能構成について説明する。図１は、プログラム自動生成部１１０の要部構成を示す機能ブロック図である。
【００４６】
＜端末装置＞
端末装置１００は、プログラム自動生成部１１０、およびＰＬＣサポート部１５０を含む。ＰＬＣサポート部１５０は、ＰＬＣ２１０とプログラム自動生成部１１０との仲立ちを行う。例えば、ＰＬＣサポート部１５０は、ＰＬＣ２１０から、生産システム２００の既存のネットワーク構成情報を取得して、プログラム自動生成部１１０にインポートする、プログラム自動生成部１１０で生成されたデータ収集プログラムのＰＬＣ２１０へ書込む、などを行う。
【００４７】
＜プログラム自動生成部＞
図１に示す例では、プログラム自動生成部１１０は、機器情報ライブラリ１１１、ネットワーク構成インポート部１１２、機器情報ライブラリ検索部１１４、工業値変換管理マップ１１３、突合せ処理部１１５、修正入力受付部１１６、プログラム生成部１１７、ユーザーインターフェース部（受付部）１２０、およびプログラムエクスポート部１４０を含む。
【００４８】
機器情報ライブラリ１１１は、機器情報パラメータ１１１１と雛形プログラム１１１２とを含む。
【００４９】
図３は、機器情報ライブラリ１１１の内容を例示する図である。上述したように、機器情報ライブラリ１１１は、機器情報パラメータ１１１１と雛形プログラム１１１２とを保持している。機器情報パラメータ１１１１では、対象機器を特定するためのデバイスＩＤと当該対象機器のパラメータ名とデフォルト値とが対応付けられている。また、雛形プログラム１１１２には、ＰＬＣ２１０に実行させる処理内容が、対象機器に対応する箇所がプレースホルダ−となった状態で記載されている。より詳細には、雛形プログラム１１１２には、ＰＬＣ２１０がデータを収集し、収集したデータを工業値変換するためのデータ収集プログラムの雛形（テンプレート）と、得られた工業値をデータベース４１０に格納するためのデータベース定義プログラムのテンプレートとが含まれる。データ収集プログラムには、対象機器から送信されたデータを読込むプログラム、対象機器にデータの送信を行わせるためのプログラム、ＰＬＣ２１０と対象機器との通信を制御するためのプログラム等、データ収集に必要なプログラムが含まれる。
【００５０】
ネットワーク構成インポート部１１２は、ＰＬＣ２１０からネットワーク構成情報を取得し、工業値変換管理部１１８に送信する。ネットワーク構成情報とは、ＰＬＣ２１０に接続している機器の構成を示す情報である。
【００５１】
工業値変換管理マップ１１３は、ネットワーク構成情報、および、プログラム自動生成部１１０においてプログラムを生成するために必要な情報を格納している。プログラムを生成するために必要な情報には、各機器の型式、設定情報、メーカー名、工業値の単位、変換係数、デバイス変数名、工業量変数名などが含まれる。
【００５２】
工業値変換管理部１１８は、工業値変換管理マップ１１３への入出力を管理する。
【００５３】
機器情報ライブラリ検索部１１４は、機器情報ライブラリ１１１から機器情報パラメータ１１１１および雛形プログラム１１１２の読込みを行う。
【００５４】
突合せ処理部１１５は、ネットワーク構成情報と機器情報パラメータ１１１１とを突合せ、想定される機器型式の候補を絞り込む。突合せ処理部１１５は、選択肢提示部１１５１、および限定部１１５２を含む。
【００５５】
選択肢提示部１１５１は、絞り込まれた結果を選択肢としてユーザーに提示する。限定部１１５２は、末端機器として接続され得る機器のうち機器種別とメーカーとが指定された機器のみを絞り込んでユーザーに提示する。ユーザーは、提示された選択肢のうち最適と判断した機器を選択する。
【００５６】
修正入力受付部１１６は、工業値変換管理マップ中の値をユーザーが任意に編集するための入力を受け付ける。例えば、入出力の上限値や下限値の編集を受け付ける。
【００５７】
プログラム生成部１１７は、ユーザーによって選択された機器、工業値変換管理マップ１１３に入力された情報、および雛形プログラム１１１２に基づき、データ収集プロラムを生成する。なお、例えば、ユーザーはユーザーインターフェース画面上のプログラム生成ボタン（図示せず）をクリックし、当該クリックを受け付けると、ユーザーインターフェース部１２０はプログラム生成部１１７にプログラムの生成を開始させてもよい。
【００５８】
生成されたデータ収集プログラムは、プログラムエクスポート部１４０を介してエクスポートされ、ＰＬＣサポート部１５０によりＰＬＣ２１０に書き込まれる。なお、生成したデータ収集プログラムをそのまま使用するのではなく、必要に応じてデータ収集プログラムをチューニング（修正）してもよい。
【００５９】
ユーザーインターフェース部１２０は、ユーザーへの提示、およびユーザーからの入力を受け付ける機器を制御する。ユーザーインターフェース部１２０により制御される機器としては、例えば、ディスプレイ、タッチパネル、スピーカー、キーボード、マウス、マイク等が含まれる。
【００６０】
§３  動作例
まず、図４を参照して、従来の処理の流れを簡単に説明する。従来は、本実施形態に対応するデータ収集プログラムを生成する場合、
現場を担当する技術者が、対象機器の仕様を調査し（Ｓ９０１）、ユニット仕様を調査し（Ｓ９０３）、当該対象機器からデータを収集するためのサンプルプログラムを理解、検討し（Ｓ９０５）、データ収集プログラムを作成し（Ｓ９０７）、デバッグがあれば修正する（Ｓ９０９）という処理を繰り返していた。
【００６１】
そして、デバッグが無くなると、ＩＴ技術者に対し、対象機器から収集されるデータの形式について説明し（Ｓ９１１）、ＩＴ技術者が当該データ形式に対応するデータ変換プログラムを作成（Ｓ９１３）、デバッグがあれば修正する（Ｓ９１５）という処理を繰り返していた。そして、デバッグが無ければ、作成したデータ収集プログラムを用いる（Ｓ９１７）という流れになっていた。
【００６２】
よって、従来では、作業工程も多く、現場技術者とＩＴ技術者との間でやり取りも必要となり、作業者の負担は多大なものとなっていた。さらに、この処理で作成されたデータ収集プログラムは当該対象機器からデータを収集する場合にしか使えないというものであった。
【００６３】
次に、図５を用いて、プログラム自動生成部１１０の動作例を説明する。図５は、プログラム自動生成部１１０の処理の一例を示すフローチャートである。なお、以下で説明する処理は一例にすぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理について、実施の形態に応じて、適宜、ステップの省略、置換、および追加が可能である。
【００６４】
まず、ユーザーは、生産システム２００（ＰＬＣ２１０を含む）と端末装置１００とを接続する。次に、端末装置１００を起動し、起動した端末装置１００のＰＬＣサポート部１５０は、生産システム２００のネットワーク構成情報をプログラム自動生成部１１０にインポートする。そして、プログラム自動生成部１１０は、処理を開始する。
【００６５】
プログラム自動生成部１１０の処理が開始されるときのユーザーインターフェース画面の一例を図６に示す。図６に示すように、処理開始時のユーザーインターフェース画面では、左側に工業値変換管理マップ１１３が表示されている。右側はユーザーが機器を選択したり、機器パラメータに関する数値や文字列を入力する際に使用する領域であり、機器種別やメーカーを選択するためのボタンを含む。処理開始時には、工業値変換管理マップ１１３の内容は初期化されており、図６に示すようにユーザーインターフェース画面にも情報は入力されていない。なお、ソフトウェア設定や起動時に実行するスクリプトなどにより、前回終了時の工業値変換管理マップ１１３の内容などを自動的に読み込むものとしてもよい。
【００６６】
（ステップＳ１０１）
Ｓ１０１において、ユーザーは、図示しないネットワーク構成インポートメニューを使用し、現時点のネットワーク構成情報をインポートする操作を行う。プログラム自動生成部１１０のユーザーインターフェース部１２０はこの操作を受け付ける。これにより、ネットワーク構成インポート部１１２はその時点における生産システム２００のネットワーク構成情報を取り込み、工業値変換管理マップ１１３へ入力する。なお、ソフトウェア設定や起動時に実行するスクリプトなどにより、指定済みのネットワーク構成情報を自動的に取り込むものとしてもよい。
【００６７】
図７は、取り込み結果を示すイメージ図である。破線で囲む領域７０１に示す機器型式のカラムやデバイス変数のカラム領域に、取り込まれた値が入力され表示されている。
【００６８】
（ステップＳ１０３）
図８を参照して、Ｓ１０３について説明する。Ｓ１０１に続いてユーザーは、ユーザーインターフェース画面左側の工業値変換管理マップ１１３を表示する領域のうち、破線で図示した末端機器を示す領域８０１をクリックすることにより末端機器２３０を選択する。そして、突合せ処理部１１５は、選択された末端機器２３０とＰＬＣ２１０との間に位置する中継機器２２０の型式と、機器情報パラメータ１１１１とを突合せ、末端機器２３０として接続され得る候補を絞り込む。
【００６９】
（ステップＳ１０５）
Ｓ１０５において、選択肢提示部１１５１は、絞り込んだ結果に基づいてユーザーインターフェース画面の右側に候補機器を提示する。次いで、ユーザーは、右側の領域のうち機器種別を選択するプルダウンメニュー（入力領域）をクリックし、例えば、「流量センサ」を選択する。これにより、突合せ処理部１１５は、末端機器２３０として接続され得る機器のうち流量センサを表示する。次いで、ユーザーは、メーカーを選択するプルダウンメニューをクリックし、例えば「○×株式会社」を選択する。これにより、限定部１１５２は、末端機器２３０として接続され得る機器のうち機器種別とメーカーとが指定された値である機器のみを絞り込んで表示する。
【００７０】
（ステップＳ１０７）
Ｓ１０７において、ユーザーは、ステップＳ１０５で絞り込まれた候補のうちから、実際に生産現場で使用されている機器が表示されている行８１１（ハッチングで示す）を選択し、左端の矢印ボタンをクリックすることにより、実在する末端機器２３０を選択する。
【００７１】
（ステップＳ１０９）
Ｓ１０９において、突合せ処理部１１５は、選択された行が示す末端機器２３０に基づき、工業値変換管理マップ１１３に、具体的な機器型式（形式およびリビジョン）を入力する。また、物理量、機器設定の値等を、当該機器型式に対応する機器情報パラメータ１１１１に基づいて、工業値変換管理マップ１１３へと入力する。
【００７２】
（ステップＳ１１１）
図９を参照して、ユーザーが修正入力を行う場合の処理の流れを示す。Ｓ１１１において、ユーザーは、ステップＳ１０９によって得られた工業値変換管理マップ１１３を確認し、現場の環境や機器の個体差に合わせ、必要に応じ修正入力を行う。また、Ｓ１１１では、入出力の上限値や下限値の編集を行うことができる。ユーザーが編集した結果、工業値変換管理マップ１１３は更新され、破線で囲まれた領域９０１のように更新後の値が表示される。
【００７３】
すなわち、修正入力受付部１１６は、プログラム生成部１１７が生成したデータ収集プログラムに対する修正指示を受け付け、プログラム生成部１１７は、修正入力受付部１１６が受け付けた修正内容を生成したデータ収集プログラムに反映させる。
【００７４】
（ステップＳ１１３）
Ｓ１１３において、修正入力受付部１１６は、ユーザーが入力した前記修正入力値を受け付け、工業値変換管理マップ１１３へ入力する。
【００７５】
（ステップＳ１１５）
Ｓ１１５において、ユーザーは、ユーザーインターフェース画面における図示しないメニューを用いて、プログラム自動作成指示を行う。なお、Ｓ１１５を省略し、Ｓ１０７にて機器が選択された後、またはＳ１１１にて修正入力がされた後、自動でプログラムの生成が開始されてもよい。
【００７６】
（ステップＳ１１７）
Ｓ１１７において、プログラム生成部１１７は、工業値変換管理マップ１１３に入力された値と、機器情報ライブラリ１１１に含まれる雛形プログラムとに基づき、データ収集プログラムを生成する。図１０を参照して、プログラムの自動生成について説明する。
【００７７】
図１０は、データ収集プログラムの自動生成について説明するための図である。図１０に示すように、プログラム生成部１１７は、工業値変換管理マップ１１３に入力されたデバイス変数、工業値変数、入出力の上限値や下限値などを用いて雛形プログラム中のプレースホルダを置き換え、ＰＬＣ制御プログラムを作成する。図１０に示すデータ収集プログラム例“current := N1_input * LREAL#0.001 +LREAL#0;”では、“():= () * LREAL#() +LREAL#();”が雛形プログラムに対応し、“current”、“N1_input”、“0.001”、“0”の部分がプレースホルダとなる。
【００７８】
すなわち、雛形プログラム１１１２には、機器情報パラメータ１１１１を組入れる組入れ欄（プレースホルダ）が設けられており、プログラム生成部１１７は、雛形プログラム１１１２の組入れ欄に機器情報パラメータ１１１１を組入れることによりデータ収集プログラムを生成する。また、プログラムの生成においてはプレースホルダの単なる置き換えだけでなく、パラメータによって分岐や繰り返し処理（機器情報パラメータ１１１１に対応する処理）を行ってもよい。図１１にプログラムの生成処理の例を示す。図１１の（ａ）は、雛形プログラム１１１２の組入れ欄に機器情報パラメータ１１１１を組入れることによりデータ収集プログラムを生成する例であり、整数で取得されたデータの小数点を移動して実数に変換することによりデータ収集プログラムを生成している。また、図１１の（ｂ）は、機器情報パラメータ１１１１によって分岐する（パラメータの値に応じて出力する処理を変更する）例であり、サイズ（データ長）と符号の有無に応じたキャスト処理によりデータ収集プログラムを生成している。また、図１１の（ｃ）は、繰り返し（パラメータで指定した回数だけ繰り返し処理を出力する）の例であり、プロセスデータ長に応じたエンディアン変換を行いデータ収集プログラムを生成している。
【００７９】
また、プログラム生成部１１７は、工業値変数、物理量に基づいてデータベース定義プログラムを作成する。すなわち、プログラム生成部１１７は、末端機器２３０に対応する雛形プログラム１１１２および機器情報パラメータ１１１１を用いて、収集したデータを格納するデータベースを定義するためのデータベース定義プログラムを生成する。
【００８０】
（ステップＳ１１９）
Ｓ１１９において、プログラム生成部１１７は、自動生成されたプログラムを、プログラムエクスポート部１４０を介してＰＬＣ２１０にエクスポートする。自動生成されたプログラムは、例えばＳＴ言語などＰＬＣ制御のためのプログラミング言語を用いて記述されている。
【００８１】
（ステップＳ１２１）
Ｓ１２１において、ユーザーは、自動生成されたプログラムを編集し、現場の状況に合わせて修正してもよい。現場の環境や機器の個体差に応じて、パラメータを修正することができる他、データベース定義や通信制御プログラムを編集してもよい。
【００８２】
図１２は、自動生成されたプログラムに対し値を構成した場合の例を示す図である。例えば、作業者は現場の状況に応じ、線形変換時に一定の値０．０２を加える事が適当と判断した場合、変数Currentに値を代入する式の最も右の項で０．０２を可算するように式を編集することができる。
【００８３】
以上のように、本実施形態では、容易にデータ収集プログラムを生成できるので、作業者の負担を軽減することができる。
【００８４】
［作用・効果］
上述したように本実施形態に係るプログラム自動生成部１１０は、データ収集に関する処理をＰＬＣ２１０に実行させるデータ収集プログラムを生成するプログラム自動生成部１１０であって、データ収集に関する各種処理に対応した雛形プログラム１１１２と、データ収集の対象となる末端機器２３０毎に当該末端機器２３０に対応した機器情報パラメータ１１１１とを格納した機器情報ライブラリ１１１と、ユーザーから、末端機器２３０の入力を受け付けるユーザーインターフェース部１２０と、ユーザーインターフェース部１２０で受け付けた末端機器２３０に対応する雛形プログラム１１１２および機器情報パラメータ１１１１を用いて、ＰＬＣ２１０により末端機器２３０からデータを収集するためのデータ収集プログラムを生成するプログラム生成部１１７と、を備える構成である。
【００８５】
このように、本実施形態では、データ収集プログラムの生成に必要な雛形プログラム１１１２と機器情報パラメータ１１１１とを分けて機器情報ライブラリ１１１に格納している。機器情報パラメータ１１１１を分けることにより、末端機器２３０がアナログ機器かデジタル機器か等の違いを考慮して末端機器２３０ごとに機器情報パラメータ１１１１を設定することができる。これにより、ユーザーは末端機器２３０を選択するのみで、当該末端機器２３０に適したデータ収集プログラムを生成させることができる。
【００８６】
また、データ収集プログラムは、末端機器２３０との通信制御も含めた制御プログラムなので、末端機器２３０との通信に関する設定を別途行う必要もない。
【００８７】
また、プログラム自動生成部１１０は、ＰＬＣ２１０から、ＰＬＣ２１０と接続している中継機器２２０の情報（ネットワーク構成情報）を取得し、当該中継機器２２０に接続されうる機器を、末端機器２３０の選択候補として表示部に表示する。
【００８８】
これにより、選択候補となる末端機器２３０が限定して表示される。ユーザーは限定された表示の中から対象機器となる末端機器２３０を選択すればよく、対象機器を容易に選択することができる。
【００８９】
さらに、プログラム自動生成部１１０は、選択候補から選択された末端機器２３０に対応する機器情報パラメータ１１１１に関する数値の入力を受け付ける数値入力画面を表示させる。
【００９０】
これにより、ユーザーは、機器情報パラメータ１１１１に関する数値を入力することができるので、末端機器２３０の状況、現場の状況等に合わせた細かい設定を行うことが可能となる。
【００９１】
§４  変形例
以上、本開示の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本開示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【００９２】
＜４．１＞
例えば、機器情報ライブラリ１１１は、図２に示されるとおり、プログラム自動生成部１１０と同様に端末装置１００の内部に存在するように構成されている。しかしながら、機器情報ライブラリを備える端末の構成はこのような例に限定される必要はなく、実施の形態に応じて適宜選択されてよい。例えば、機器情報ライブラリ１１１は端末装置１００の外部の装置に存在し、ＬＡＮやインターネットなどネットワーク経由で接続され、機器情報ライブラリ検索部１１４はネットワーク経由で機器情報ライブラリ１１１へ接続するという構成を採用してもよい。
【００９３】
または、機器情報ライブラリ１１１が端末装置１００外のサーバーデータベースと端末装置１００内のローカルデータベースとに分けられ、端末装置１００内のローカルデータベースが適宜、作成および更新される構成としてもよい。ローカルデータベースが保持する情報はサーバーデータベースの一部であってもよいし、全部であってもよい。機器情報ライブラリ１１１の更新のタイミング、プログラム自動生成部１１０が使用するデータベースの優先度、サーバーデータベースとローカルデータベースとの関係などは実施の形態に応じて適宜変更されても良い。
【００９４】
＜４．２＞
また、図１に示すプログラム自動生成部１１０のうち機器情報ライブラリ１１１以外の各要素も同一端末上で実行されるように構成されている。換言すれば、ユーザーが操作する端末上でプログラム自動生成部の各要素が実行されるように構成されているが、一部の要素を別の装置で実行する構成としてもよい。例えば、プログラム生成部１１７が、ＬＡＮやインターネットなどネットワークを経由する他の装置、例えばクラウド上の装置で実行されてもよい。この場合、プログラム自動生成部１１０は、工業値変換管理マップ１１３に含まれる情報などプログラム生成に必要な情報を送信し、プログラムを生成させる。
【００９５】
また、例えば、ユーザーインターフェースに係る要素と他の要素とをフロントエンド部とバックエンド部とに分割し、バックエンド部がネットワークを経由する他の装置上で実行される構成としてもよい。この場合、フロントエンド部にはユーザーインターフェース部１２０の機能が含まれ、フロントエンド部からの入力指示に応じて、バックエンド部は動作を実行する。
【００９６】
＜４．３＞
また、上記実施形態では、図２に示されるとおり、データベース４１０は端末装置１００とは別の装置に格納されるように構成されている。換言すれば、生産システム２００にデータベース格納装置４００が接続されており、端末装置１００が生産システム２００のＰＬＣ２１０と接続している。しかし、データベース４１０は、データベース４１０への保存を行うＰＬＣ２１０の制御プログラムおよびデータベース定義プログラムを送信可能な装置にあればよく、例えば端末装置１００の内部にデータベース４１０が配置されてもよい。
【００９７】
また、変形例＜４．１＞および＜４．２＞に示すように、端末装置１００はフロントエンド部のみを備える構成としてもよく、例えば生産システム２００およびデータベース格納装置４００とが接続されたネットワーク経由に端末装置１００を接続する構成としてもよい。この場合、バックエンド部、機器情報ライブラリ１１１、およびデータベース４１０はデータベース格納装置４００に格納され、バックエンド部はデータベース格納装置４００上で実行される。
【００９８】
＜４．４＞
また、上記実施形態では、図２に示されるとおり、プログラム自動生成部１１０はＰＬＣサポート部１５０とは別のアプリケーションとして実装されているが、ＰＬＣサポート部１５０の機能の一部としてプログラム自動生成部１１０の機能が実行されてもよい。
【００９９】
〔ソフトウェアによる実現例〕
端末装置１００のプログラム自動生成部（特に機器情報ライブラリ検索部１１４、突合せ処理部１１５、プログラム生成部１１７、および工業値変換管理部１１８）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１００】
後者の場合、端末装置１００は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本開示の目的が達成される。前記プロセッサとしては、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本開示の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１０１】
本開示は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本開示の技術的範囲に含まれる。
【符号の説明】
【０１０２】
１００  端末装置
１１０  プログラム自動生成部（プログラム生成装置）
１１１  機器情報ライブラリ（記憶部）
１１２  ネットワーク構成インポート部
１１１１  機器情報パラメータ
１１１２  雛形プログラム
１１３  工業値変換管理マップ
１１４  機器情報ライブラリ検索部
１１５  突合せ処理部
１１６  修正入力受付部
１１７  プログラム生成部
１２０  ユーザーインターフェース部（受付部）
２００  生産システム
２１０  ＰＬＣ
２２０  中継機器（中継装置）
２３０  末端機器
４００  データベース格納装置
４１０  データベース
【図１】
2020057332.tif 000003
【図２】
2020057332.tif 000004
【図３】
2020057332.tif 000005
【図４】
2020057332.tif 000006
【図５】
2020057332.tif 000007
【図６】
2020057332.tif 000008
【図７】
2020057332.tif 000009
【図８】
2020057332.tif 000010
【図９】
2020057332.tif 000011
【図１０】
2020057332.tif 000012
【図１１】
2020057332.tif 000013
【図１２】
2020057332.tif 000014