(57)【特許請求の範囲】
【請求項１】
ユーザプログラムに従って制御対象装置を制御するとともに、前記制御対象装置の制御において得られるデータをサンプリングするデータサンプリング処理を実行する駆動制御装置であって、
前記ユーザプログラムである第１ユーザプログラムと、前記データをサンプリングする条件を指定するデータサンプリング条件情報とに基づいて、前記データサンプリング条件情報で指定された条件における前記データサンプリング処理を前記第１ユーザプログラムに付加して第２ユーザプログラムを作成するプログラム作成部と、
前記第２ユーザプログラムに従って前記制御対象装置を制御する制御部と、
前記第２ユーザプログラムに従って前記データサンプリング処理を実行するデータサンプリング処理部と、
を有することを特徴とする駆動制御装置。
【請求項２】
前記データサンプリング条件情報は、前記第１ユーザプログラムにおいて、前記データサンプリング処理と並行して実行する制御処理のプログラムステップを指定するプログラムステップ指示情報を含むこと、
を特徴とする請求項１に記載の駆動制御装置。
【請求項３】
前記データサンプリング条件情報は、前記データサンプリング処理の開始のタイミングを前記制御処理の開始タイミングよりも前倒しする時間を指定する前倒し時間指定情報を含むこと、
を特徴とする請求項２に記載の駆動制御装置。
【請求項４】
前記データサンプリング条件情報は、前記データサンプリング処理の終了のタイミングを前記制御処理の開始タイミングよりも後倒しする時間を指定する後倒し時間指定情報を含むこと、
を特徴とする請求項２または３に記載の駆動制御装置。
【請求項５】
前記第１ユーザプログラムと前記データサンプリング条件情報とが、前記第１ユーザプログラムの作成を支援するプログラム作成支援装置において作成されて前記プログラム作成支援装置から前記駆動制御装置に入力されたものであること、
を特徴とする請求項１から４のいずれか１つに記載の駆動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象装置の制御を行うとともに制御対象装置の制御において得られるデータをサンプリングする駆動制御装置に関する。
【背景技術】
【０００２】
ファクトリーオートメーション（Factory  Automation:FA）システムにおいては、プログラマブルロジックコントローラ（Programmable  Logic  Controller:PLC）などの駆動制御装置を用いて制御対象装置の制御を行う製造装置が用いられている。なお、プログラマブルロジックコントローラは、ＰＬＣとも呼ばれる。製造装置の故障などのトラブルによる生産ラインの稼働停止は、企業に多大な損害を与える。このため、製造装置においては、トラブル発生時の迅速な原因調査が可能な機能が求められている。そこで、製造装置のトラブルの原因調査を行うために必要となる製造装置の稼働中のデータの収集が行われている。【０００３】
特許文献１には、指令速度と検出速度とのデータのサンプリングを担当するサンプリング部が設けられた、データサンプリング機能を有する数値制御装置が開示されている。サンプリング部は、ユーザが作成した加工プログラムに含まれるサンプリング開始指令またはサンプリング終了命令に従って、データサンプリングの実行を制御する。【０００４】
サンプリング部は、制御部からサンプリング開始の指令が送られてくると、数値制御装置内の指令速度のデータと検出速度のデータとをサンプリング用に割り当てられた記憶領域へ格納する。このデータサンプリング処理は、制御部がサンプリング開始の指令をサンプリング部に送信した以降、あらかじめ設定されたサンプリング周期毎に継続して行われる。そして、サンプリング部は、制御部からサンプリング終了の指令が送られてくると、記憶領域への指令速度のデータと検出速度のデータとの格納を終了する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１３７５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に開示されたデータサンプリング機能を実現するためには、データサンプリングの開始指令およびデータサンプリングの終了指令を含むプログラムをユーザ自身が作成する必要があり、ユーザのプログラム作成作業の負荷が大きい、という問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、ユーザがデータサンプリング機能を有する駆動制御装置に用いるプログラムを作成する際の、ユーザのプログラム作成作業の負荷を低減可能な駆動制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかる駆動制御装置は、ユーザプログラムに従って制御対象装置を制御するとともに、制御対象装置の制御において得られるデータをサンプリングするデータサンプリング処理を実行する駆動制御装置である。駆動制御装置は、ユーザプログラムである第１ユーザプログラムと、データをサンプリングする条件を指定するデータサンプリング条件情報とに基づいて、データサンプリング条件情報で指定された条件におけるデータサンプリング処理を第１ユーザプログラムに付加して第２ユーザプログラムを作成するプログラム作成部と、第２ユーザプログラムに従って制御対象装置を制御する制御部と、第２ユーザプログラムに従ってデータサンプリング処理を実行するデータサンプリング処理部と、を有する。
【発明の効果】
【０００９】
本発明にかかる駆動制御装置は、ユーザがデータサンプリング機能を有する駆動制御装置に用いるプログラムを作成する際の、ユーザのプログラム作成作業の負荷を低減可能である、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１にかかる制御システムの構成を示すブロック図
【図２】エンジニアリングツールソフトウェアを実行するコンピュータのハードウェア構成を示す図
【図３】エンジニアリングツールとして機能しているコンピュータを示す図
【図４】本発明の実施の形態１にかかるエンジニアリングツールの表示部に表示されるデータサンプリング設定画面の一例を示す図
【図５】本発明の実施の形態１にかかる制御システムにおけるＰＬＣとサーボアンプとセンサとの機能構成を示すブロック図
【図６】本発明の実施の形態１にかかる処理回路のハードウェア構成の一例を示す図
【図７】本発明の実施の形態１にかかるＰＬＣにおける第２ユーザプログラムの作成方法を説明するフローチャート
【図８】本発明の実施の形態１にかかるデータサンプリング条件情報の一例を示す図
【図９】本発明の実施の形態１にかかる第１ユーザプログラムの一例を示すイメージ図
【図１０】図８に示すデータサンプリング条件情報が図９に示す第１ユーザプログラムに埋め込まれて作成された第２ユーザプログラムを示すイメージ図
【図１１】本発明の実施の形態１にかかるデータサンプリング条件情報の一例を示す図
【図１２】図１１に示すデータサンプリング条件情報が図９に示す第１ユーザプログラムに埋め込まれて作成された第２ユーザプログラムを示すイメージ図
【図１３】本発明の実施の形態１にかかるサンプリングデータの一例を示す図
【図１４】本発明の実施の形態１において第２ユーザプログラムを作成するエンジニアリングツールとして機能しているコンピュータを示す図
【図１５】本発明の実施の形態１においてエンジニアリングツールが第２ユーザプログラムを作成する場合におけるＰＬＣとサーボアンプとセンサとの機能構成を示すブロック図
【図１６】本発明の実施の形態１においてエンジニアリングツールにおける第２ユーザプログラムの作成方法を説明するフローチャート
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態にかかる駆動制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明の実施の形態１にかかる制御システム１００の構成を示すブロック図である。制御システム１００は、ＦＡシステムである。制御システム１００は、エンジニアリングツール１と、ＰＬＣ２と、サーボアンプ３と、センサ５を備えるサーボモータ４と、を備える。
【００１３】
エンジニアリングツール１は、ＰＬＣ２と通信線６により接続されており、ＰＬＣ２と有線通信可能である。なお、エンジニアリングツール１とＰＬＣ２との通信は、無線通信であってもよい。なお、エンジニアリングツール１は、必要時にのみＰＬＣ２と接続される。
【００１４】
ＰＬＣ２は、サーボアンプ３と通信線７により接続されており、サーボアンプ３と有線通信可能である。なお、ＰＬＣ２とサーボアンプ３との通信は、無線通信であってもよい。
【００１５】
サーボアンプ３は、サーボモータ４と通信線８により接続されており、サーボモータ４と有線通信可能である。なお、サーボアンプ３とサーボモータ４との通信は、無線通信であってもよい。
【００１６】
エンジニアリングツール１は、ＰＬＣ２がサーボアンプ３を制御するために実行するプログラムであるユーザプログラムの作成を支援するプログラム作成支援装置である。エンジニアリングツール１は、汎用のコンピュータにエンジニアリングツールソフトウェア１０８をインストールすることによって構成される。図２は、エンジニアリングツールソフトウェア１０８を実行するコンピュータのハードウェア構成を示す図である。コンピュータ１１０は、ＣＰＵ（Central  Processing  Unit）１０１、ＲＡＭ（Random  Access  Memory）１０２、ＲＯＭ（Read  Only  Memory）１０３、記憶部１０４、入力部１０５、表示部１０６および通信Ｉ／Ｆ（Interface）１０７を有する。
【００１７】
ＣＰＵ１０１は、エンジニアリングツールソフトウェア１０８を実行する演算装置である。ＲＡＭ１０２は、ＣＰＵ１０１がプログラムを実行する際に用いるワークエリアである。ＲＯＭ１０３は、コンピュータ１１０の起動時にＣＰＵ１０１が実行するプログラムを不揮発に記憶する。記憶部１０４は、情報を不揮発に記憶する装置であり、ハードディスクドライブ（Hard  Disk  Drive）およびソリッドステートドライブ（Solid  State  Drive）などを適用可能である。
【００１８】
入力部１０５は、ユーザが情報を入力するためのユーザインタフェースであり、ポインティングデバイス（マウス、タッチパネル等）およびキーボードなどを適用可能である。表示部１０６は、情報を表示する装置であり、ＬＣＤ（Liquid  Crystal  Display）およびＯＬＥＤ（Organic  Light  Emitting  Display）などを適用可能である。通信Ｉ／Ｆ１０７は、通信線６を通じてＰＬＣ２と通信するためのインタフェースである。
【００１９】
図３は、エンジニアリングツール１として機能しているコンピュータを示す図である。コンピュータ１１０にインストールされたエンジニアリングツールソフトウェア１０８は、記憶部１０４に格納される。記憶部１０４に格納されたエンジニアリングツールソフトウェア１０８をＣＰＵ１０１が読み出して実行することにより、コンピュータ１１０はエンジニアリングツール１として機能している状態となる。エンジニアリングツール１は、ＣＰＵ１０１上にエディタ部１１１が形成されている。
【００２０】
エディタ部１１１は、表示部１０６にプログラム作成画面を表示させ、入力部１０５に対して行われたユーザの操作に対応して、後述する第１ユーザプログラム１３１を作成または編集する処理を行う。エディタ部１１１は、作成または編集した第１ユーザプログラム１３１を記憶部１０４に記憶する。エディタ部１１１におけるプログラムを作成および編集する機能は、一般的なエンジニアリングツールのエディタ機能と同様である。
【００２１】
図４は、本発明の実施の形態１にかかるエンジニアリングツール１の表示部１０６に表示されるデータサンプリング設定画面１２１の一例を示す図である。データサンプリング設定画面１２１は、データサンプリング条件情報１３２を設定するための設定画面である。エディタ部１１１は、図４に示すようなデータサンプリング設定画面１２１を表示部１０６に表示させ、入力部１０５に対して行われたユーザの操作に従って、データサンプリング条件情報１３２を記憶部１０４に設定して記憶する。
【００２２】
データサンプリング条件情報１３２は、後述するようにＰＬＣ２によるサーボモータ４の制御において得られるデータをサンプリングする条件を指定する指定情報である。データサンプリング設定画面１２１においては、データサンプリング条件情報１３２を自由に設定および変更可能である。データサンプリング条件情報１３２は、図４に示すように、サンプリングプログラムステップＮｏ．、サンプリング開始前倒しタイミング、サンプリング終了後倒しタイミング、サンプリング対象データ１およびサンプリング対象データ２などの情報が例示される。
【００２３】
サンプリングプログラムステップＮｏ．は、後述するように、第１ユーザプログラム１３１において、データサンプリング処理と並行して実行される制御処理のプログラムステップを指定するプログラムステップ指示情報である。ここで、ステップとは、プログラムの最小実行単位である。第１ユーザプログラム１３１は、ＰＬＣ２がサーボアンプ３を制御するために実行するプログラムであるユーザプログラムであり、ユーザによってエンジニアリングツール１において作成されたユーザプログラムである。すなわち、サンプリングプログラムステップＮｏ．は、第１ユーザプログラム１３１におけるデータサンプリング処理の開始位置を指定するサンプリング開始位置指定情報、および第１ユーザプログラム１３１におけるデータサンプリング処理の終了位置を指定するサンプリング終了位置指定情報を兼ねているといえる。
【００２４】
サンプリング開始前倒しタイミングは、前倒し時間を指定する前倒し時間指定情報である。前倒し時間は、サンプリングプログラムステップＮｏ．で指定される制御処理の開始タイミングよりもデータサンプリング処理の開始のタイミングを前倒しする時間である。
【００２５】
サンプリング終了後倒しタイミングは、後倒し時間を指定する後倒し時間指定情報である。後倒し時間は、サンプリングプログラムステップＮｏ．で指定される制御処理の終了タイミングよりもデータサンプリング処理の終了のタイミングを後倒しする時間である。
【００２６】
サンプリング対象データ１は、ＰＬＣ２がデータサンプリング処理においてサンプリングする対象データである第１のデータの種類を指定するサンプリングデータ指定情報である。サンプリング対象データ２は、ＰＬＣ２がデータサンプリング処理においてサンプリングする対象データである第１のデータの種類を指定するサンプリングデータ指定情報である。
【００２７】
図５は、本発明の実施の形態１にかかる制御システム１００におけるＰＬＣ２とサーボアンプ３とセンサ５との機能構成を示すブロック図である。
【００２８】
ＰＬＣ２は、制御対象装置であるサーボモータ４を制御する駆動制御装置である。ＰＬＣ２は、サーボアンプ３を制御するための駆動指令を生成してサーボアンプ３に送信し、サーボアンプ３を制御する。ＰＬＣ２は、ＰＬＣプログラムに基づいて動作する。ＰＬＣプログラムは、サーボアンプ３の制御およびＰＬＣ２全体の制御を実行するためのプログラムである。ＰＬＣプログラムには、ＰＬＣ２がサーボアンプ３を制御するために実行するプログラムであるユーザプログラムが含まれる。ＰＬＣプログラムの具体例は、ラダープログラムである。ＰＬＣ２は、ユーザプログラムに基づいてサーボアンプ３を介して被制御機器であるサーボモータ４を制御するとともにサーボアンプ３からサーボモータ４の制御に関わる種々の情報を収集する。
【００２９】
ＰＬＣ２は、ＰＬＣ通信部２１と、ＰＬＣ記憶部２２と、プログラム作成部２３と、ＰＬＣ制御部２４と、を有する。
【００３０】
ＰＬＣ通信部２１は、ＰＬＣ２の外部の装置と通信を行って情報の送受信を行う。ＰＬＣ通信部２１は、通信線６を介してエンジニアリングツール１との間で通信を行って情報の送受信を行う。ＰＬＣ通信部２１は、エンジニアリングツール１との間で通信を行って、第１ユーザプログラム１３１およびデータサンプリング条件情報１３２をエンジニアリングツール１から取得する。ＰＬＣ通信部２１は、エンジニアリングツール１から取得した情報をＰＬＣ制御部２４に送信する。
【００３１】
また、ＰＬＣ通信部２１は、通信線７を介してサーボアンプ３との間で通信を行って情報の送受信を行う。ＰＬＣ通信部２１は、サーボアンプ３を制御するための駆動指令をＰＬＣ制御部２４から受信してサーボアンプ３に送信する。また、ＰＬＣ通信部２１は、ＰＬＣ２によるサーボモータ４の制御において得られるデータをサーボアンプ３から受信する。ＰＬＣ通信部２１は、サーボアンプ３から取得した情報をＰＬＣ制御部２４に送信する。
【００３２】
ＰＬＣ記憶部２２は、ＰＬＣプログラム、ＰＬＣ２の制御に関わる情報、サーボアンプ３の内部に保持される各種の状態のデータを記憶する。ＰＬＣ記憶部２２は、第１ユーザプログラム記憶部２２１と、データサンプリング条件記憶部２２２と、第２ユーザプログラム記憶部２２３と、サンプリングデータ記憶部２２４と、を有する。
【００３３】
第１ユーザプログラム記憶部２２１は、エンジニアリングツール１から取得したユーザプログラムである第１ユーザプログラム１３１を記憶する。
【００３４】
データサンプリング条件記憶部２２２は、エンジニアリングツール１から取得したデータサンプリング条件情報１３２を記憶する。データサンプリング条件情報１３２は、第１ユーザプログラム記憶部２２１に記憶されている第１ユーザプログラム１３１であってデータサンプリング条件情報１３２に基づいて修正される特定の第１ユーザプログラム１３１と、関連付けられている。すなわち、データサンプリング条件情報１３２は、第１ユーザプログラム記憶部２２１に記憶されている特定の第１ユーザプログラム１３１と１対１で対応している。
【００３５】
第２ユーザプログラム記憶部２２３は、後述するプログラム作成部２３において修正されて作成された新たなユーザプログラムである第２ユーザプログラム１３３を記憶する。
【００３６】
サンプリングデータ記憶部２２４は、後述するデータサンプリング処理部２４１の制御によりデータサンプリング処理が行われて取得されたサンプリングデータ１３４を記憶する。サンプリングデータ１３４は、ＰＬＣ２によるサーボモータ４の制御において得られてサーボアンプ３の内部に保持される各種の状態のデータである。サンプリングデータ１３４には、たとえばサーボモータ４が動作した位置、速度、トルク等の、サーボモータ４の動作の状態の時系列データであるアナログデータ、およびサーボアンプ３における制御状態のデータが例示される。
【００３７】
時系列データは、サーボモータ４の制御において得られてサーボアンプ３の内部に保持される各種の状態のデータであり、時間の経過とともに変化していく現象を観測したデータである。時系列データは、サーボモータ４が動作した位置、速度、トルク等の、サーボモータ４の動作の状態を示すデータが例示される。
【００３８】
プログラム作成部２３は、エンジニアリングツール１から取得されて第１ユーザプログラム記憶部２２１に記憶された第１ユーザプログラム１３１と、エンジニアリングツール１から取得されてデータサンプリング条件記憶部２２２に記憶されたデータサンプリング条件情報１３２とに基づいて、ユーザプログラムを修正して新たなユーザプログラムを作成する。プログラム作成部２３は、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を第１ユーザプログラム１３１に付加して第２ユーザプログラム１３３を作成する。すなわち、プログラム作成部２３は、データサンプリング条件情報１３２で指定された条件をプログラムの形に書き換えてデータサンプリング処理のプログラムを作成して、第１ユーザプログラム１３１に埋め込んで第２ユーザプログラム１３３を作成する。プログラム作成部２３は、作成した新たなユーザプログラムである第２ユーザプログラム１３３を第２ユーザプログラム記憶部２２３に記憶させる。
【００３９】
ＰＬＣ制御部２４は、サーボアンプ３の制御およびＰＬＣ２全体の制御を行う。また、ＰＬＣ制御部２４は、上述したサーボアンプ３の内部に保持される各種の状態のデータをサーボアンプ３から採取してサンプリングデータ記憶部２２４に記憶させるデータサンプリング処理を実行するデータサンプリング処理部２４１を備える。
【００４０】
データサンプリング処理部２４１は、サーボアンプ３に保持される各種の状態のデータをサーボアンプ３からサンプリングするデータサンプリング処理を制御する。データサンプリング処理は、固定の周期では行われず、トランジェント伝送により行われる。データサンプリング処理部２４１は、第２ユーザプログラム１３３に従って、第２ユーザプログラム１３３において指定されている条件でデータサンプリング処理を行う。
【００４１】
また、ＰＬＣ制御部２４は、例えば、図６に示したハードウェア構成の処理回路として実現される。図６は、本発明の実施の形態１にかかる処理回路のハードウェア構成の一例を示す図である。ＰＬＣ制御部２４が図６に示す処理回路により実現される場合、ＰＬＣ制御部２４は、例えば、図６に示すメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、ＰＬＣ制御部２４の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ２０１およびメモリ２０２を用いて実現するようにしてもよい。
【００４２】
また、ＰＬＣ通信部２１を、同様にメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現されるように構成してもよい。また、ＰＬＣ通信部２１を実現するためのプロセッサおよびメモリは、ＰＬＣ制御部２４を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【００４３】
サーボアンプ３は、ＰＬＣ２から送信される駆動指令に基づいて、不図示の負荷装置を駆動する制御対象装置であるサーボモータ４の動作を制御する。サーボアンプ３は、サーボアンププログラムに基づいて動作する。サーボアンププログラムは、サーボアンプ３がサーボモータ４の動作の制御およびサーボアンプ３全体の制御を実行するためのプログラムである。サーボアンプ３は、複数のユニットが組み合わされて構成されている。
【００４４】
制御システム１００は、サーボアンプ３として、第１サーボアンプ３Ａと第２サーボアンプ３Ｂと第３サーボアンプ３Ｃとを備える。第１サーボアンプ３Ａは、ＰＬＣ２から送信される駆動指令に基づいて、第１サーボモータ４Ａの動作を制御する。第２サーボアンプ３Ｂは、ＰＬＣ２から送信される駆動指令に基づいて、第２サーボモータ４Ｂの動作を制御する。第３サーボアンプ３Ｃは、ＰＬＣ２から送信される駆動指令に基づいて、第３サーボモータ４Ｃの動作を制御する。なお、以下においては、第１サーボアンプ３Ａと第２サーボアンプ３Ｂと第３サーボアンプ３Ｃとを区別しない場合には、サーボアンプ３と呼ぶ。
【００４５】
サーボアンプ３は、ＰＬＣ２から送信される駆動指令に基づいて、サーボモータ４の動作を制御する。サーボアンプ３は、アンプ通信部３１と、アンプ記憶部３２と、アンプ制御部３３と、を有する。
【００４６】
アンプ通信部３１は、通信線７を介してＰＬＣ２との間で通信を行って情報の送受信を行う。また、アンプ通信部３１は、通信線８を介してサーボモータ４との間で通信を行って情報の送受信を行う。
【００４７】
アンプ記憶部３２は、サーボアンププログラム、サーボモータ４の動作の状態を示すデータ、サーボアンプ３の制御に関わる各種の状態のデータなどを記憶する。アンプ記憶部３２としては、サーボアンプ３への通電が断電された場合でも、記憶された情報が消去されないように、不揮発性の記憶装置が使用される。アンプ記憶部３２は、例えばメモリによって実現される。
【００４８】
アンプ制御部３３は、サーボモータ４の動作の制御およびサーボアンプ３全体の制御を行う。アンプ制御部３３は、サーボモータ４のセンサ５から送信される時系列データである検出結果をアンプ記憶部３２に記憶させる。また、アンプ制御部３３は、サーボアンプ３における制御状態のデータをアンプ記憶部３２に記憶させる。
【００４９】
また、アンプ制御部３３は、ＰＬＣ２によるサーボモータ４の制御において得られてサーボアンプ３の内部に保持されている各種の状態のデータをアンプ通信部３１を介してＰＬＣ制御部２４のデータサンプリング処理部２４１に送信する制御を行う。アンプ制御部３３は、制御システム１００の動作中、アンプ記憶部３２に記憶されている各種の状態のデータを予め決められた周期でＰＬＣ制御部２４のデータサンプリング処理部２４１に送信する制御を行う。
【００５０】
また、アンプ制御部３３は、例えば、図６に示したハードウェア構成の処理回路として実現される。アンプ制御部３３が図６に示す処理回路により実現される場合、アンプ制御部３３は、例えば、図６に示すメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、アンプ制御部３３の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ２０１およびメモリ２０２を用いて実現するようにしてもよい。
【００５１】
また、アンプ通信部３１を、同様にメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現されるように構成してもよい。また、アンプ通信部３１を実現するためのプロセッサおよびメモリは、アンプ制御部３３を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【００５２】
サーボモータ４は、生産システムにおける軸に動力を供給する装置であり、サーボアンプ３により動作が制御される被制御装置である。軸は、生産システムにおける機器の軸である。制御システム１００は、サーボモータ４として、第１サーボモータ４Ａと第２サーボモータ４Ｂと第３サーボモータ４Ｃとを備える。なお、以下においては、第１サーボモータ４Ａと第２サーボモータ４Ｂと第３サーボモータ４Ｃとを区別しない場合には、サーボモータ４と呼ぶ。
【００５３】
サーボモータ４は、センサ５を備えている。センサ５は、サーボモータ４の動作の状態を検出する。センサ５が検出する動作の状態とは、位置、速度、トルク、温度といった項目が該当する。センサ５は、制御システム１００の動作中、予め決められた周期でサーボモータ４の動作の状態を検出して、検出結果をサーボアンプ３に送信する。センサ５は、センサプログラムに基づいて動作する。センサプログラムは、センサ５全体の制御を実行するためのプログラムである。
【００５４】
制御システム１００は、センサ５として、第１センサ５Ａと第２センサ５Ｂと第３センサ５Ｃとを備える。第１センサ５Ａは、第１サーボモータ４Ａの動作の状態を検出して、通信線９を介して検出結果を第１サーボアンプ３Ａに送信する。第２センサ５Ｂは、第２サーボモータ４Ｂの動作の状態を検出して、通信線９を介して検出結果を第２サーボアンプ３Ｂに送信する。第３センサ５Ｃは、第３サーボモータ４Ｃの動作の状態を検出して、通信線９を介して検出結果を第３サーボアンプ３Ｃに送信する。なお、以下においては、第１センサ５Ａと第２センサ５Ｂと第３センサ５Ｃとを区別しない場合には、センサ５と呼ぶ。
【００５５】
センサ５は、サーボモータ４の動作の状態を検出して、検出結果をサーボアンプ３に送信する。センサ５は、センサ通信部５１と、検出部５２と、センサ記憶部５３と、センサ制御部５４と、を有する。
【００５６】
センサ通信部５１は、通信線９を介してサーボアンプ３との間で通信を行って情報の送受信を行う。
【００５７】
検出部５２は、サーボモータ４の動作の状態を予め決められた周期で検出する。
【００５８】
センサ記憶部５３は、センサプログラムおよびセンサ５の制御に関わる情報を記憶する。センサ記憶部５３としては、センサ５への通電が断電された場合でも、記憶された情報が消去されないように、不揮発性の記憶装置が使用される。センサ記憶部５３は、例えばメモリによって実現される。
【００５９】
センサ制御部５４は、センサ５全体の制御を行う。また、センサ制御部５４は、検出部５２で検出された検出結果を予め決められた周期でサーボアンプ３に送信する制御を行う。
【００６０】
また、センサ制御部５４は、例えば、図６に示したハードウェア構成の処理回路として実現される。センサ制御部５４が図６に示す処理回路により実現される場合、センサ制御部５４は、例えば、図６に示すメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、センサ制御部５４の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ２０１およびメモリ２０２を用いて実現するようにしてもよい。
【００６１】
また、センサ通信部５１を、同様にメモリ２０２に記憶されたプログラムをプロセッサ２０１が実行することにより、実現されるように構成してもよい。また、センサ通信部５１を実現するためのプロセッサおよびメモリは、センサ制御部５４を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【００６２】
つぎに、上記の構成を有するＰＬＣ２における第２ユーザプログラム１３３の作成方法について説明する。図７は、本発明の実施の形態１にかかるＰＬＣ２における第２ユーザプログラム１３３の作成方法を説明するフローチャートである。ここでは、ＰＬＣ２が第１サーボモータ４Ａを制御するための第２ユーザプログラム１３３の作成方法について説明する。なお、ＰＬＣ２が第２サーボモータ４Ｂを制御するための第２ユーザプログラム１３３またはＰＬＣ２が第３サーボモータ４Ｃを制御するための第２ユーザプログラム１３３を作成する場合も同様である。
【００６３】
ＰＬＣ２が第２ユーザプログラム１３３を作成する前段階の処理として、エンジニアリングツール１において、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とが作成される。すなわち、エンジニアリングツール１において、エディタ部１１１が、入力部１０５に対して行われたユーザの操作に従って、第１ユーザプログラム１３１を作成して記憶部１０４に記憶させる。また、エンジニアリングツール１において、エディタ部１１１が、入力部１０５を用いてデータサンプリング設定画面１２１に対して行われたユーザの操作に従って、データサンプリング条件情報１３２を記憶部１０４に設定して記憶させる。その後、入力部１０５に対して行われたユーザの操作に従って、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とがＰＬＣ２に送信される。
【００６４】
そして、ステップＳ１０において、ＰＬＣ２は、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とをエンジニアリングツール１から取得する。すなわち、ＰＬＣ２のＰＬＣ通信部２１は、エンジニアリングツール１から送信された第１ユーザプログラム１３１とデータサンプリング条件情報１３２とを受信してＰＬＣ制御部２４に送信する。ＰＬＣ制御部２４は、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とを受信すると、第１ユーザプログラム１３１を第１ユーザプログラム記憶部２２１に記憶させ、データサンプリング条件情報１３２をデータサンプリング条件記憶部２２２に記憶させる。そして、ＰＬＣ制御部２４が、プログラム作成部２３を起動させる。
【００６５】
つぎに、ステップＳ２０において、プログラム作成部２３は、起動後、未使用のデータサンプリング条件情報１３２があるか否かを判定する。すなわち、プログラム作成部２３は、データサンプリング条件記憶部２２２にデータサンプリング条件情報１３２が記憶されているか否かを判定する。
【００６６】
データサンプリング条件記憶部２２２にデータサンプリング条件情報１３２が記憶されていないと判定された場合は、ステップＳ２０においてＮｏとなり、プログラム作成部２３は一連の第２ユーザプログラム作成処理を終了する。データサンプリング条件記憶部２２２にデータサンプリング条件情報１３２が記憶されていると判定された場合は、ステップＳ２０においてＹｅｓとなり、ステップＳ３０に進む。
【００６７】
ステップＳ３０において、プログラム作成部２３は、データサンプリング条件記憶部２２２に記憶されているデータサンプリング条件情報１３２を取得して解析する。そして、ステップＳ４０において、プログラム作成部２３は、データサンプリング条件情報１３２が正常であるか否かを判定する。
【００６８】
データサンプリング条件情報１３２が正常でない場合は、ステップＳ４０においてＮｏとなり、プログラム作成部２３は一連の第２ユーザプログラム作成処理を終了する。データサンプリング条件情報１３２が正常である場合は、ステップＳ４０においてＹｅｓとなり、ステップＳ５０に進む。
【００６９】
ステップＳ５０において、プログラム作成部２３は、第１ユーザプログラム記憶部２２１に記憶されている第１ユーザプログラム１３１を取得する。そして、ステップＳ６０において、プログラム作成部２３は、取得した第１ユーザプログラム１３１においてデータサンプリング条件情報１３２の埋め込み先があるか否かを判定する。すなわち、プログラム作成部２３は、取得した第１ユーザプログラム１３１において、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を付加する適切な位置があるか否かを判定する。
【００７０】
データサンプリング条件情報１３２の埋め込み先が無い場合は、ステップＳ６０においてＮｏとなり、プログラム作成部２３は一連の第２ユーザプログラム作成処理を終了する。データサンプリング条件情報１３２の埋め込み先がある場合は、ステップＳ６０においてＹｅｓとなり、ステップＳ７０に進む。
【００７１】
ステップＳ７０において、プログラム作成部２３は、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を第１ユーザプログラム１３１に付加して第２ユーザプログラム１３３を自動で作成する。すなわち、プログラム作成部２３は、データサンプリング条件情報１３２で指定された条件におけるデータサンプリング処理のプログラムであるデータサンプリングプログラムを作成して、第１ユーザプログラム１３１に埋め込んで第２ユーザプログラム１３３を作成する。プログラム作成部２３は、作成した新たなユーザプログラムである第２ユーザプログラム１３３を第２ユーザプログラム記憶部２２３に記憶させる。
【００７２】
その後、プログラム作成部２３は、第１ユーザプログラム記憶部２２１に記憶された第１ユーザプログラム１３１と、データサンプリング条件記憶部２２２に記憶されたデータサンプリング条件情報１３２とを破棄する。
【００７３】
以上の処理が行われることにより、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とに基づいて、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理が付加された第２ユーザプログラム１３３が作成される。
【００７４】
なお、ステップＳ２０は、ＰＬＣ２の起動時に実施されてもよい。
【００７５】
その後、ＰＬＣ制御部２４がサーボモータ４の制御を開始すると、データサンプリング処理部２４１は、第２ユーザプログラム記憶部２２３に記憶された第２ユーザプログラム１３３を解析して、第２ユーザプログラム１３３において指定されている条件でデータサンプリング処理を行う。すなわち、データサンプリング処理部２４１は、サーボモータ４の制御中にサーボアンプ３からＰＬＣ２に周期的に送信されてくる各種の状態のデータから、第２ユーザプログラム１３３において指定されている条件データをサンプリングする。そして、サンプリングしたサンプリングデータ１３４をサンプリングデータ記憶部２２４に記憶させる。
【００７６】
図８は、本発明の実施の形態１にかかるデータサンプリング条件情報１３２の一例を示す図である。図９は、本発明の実施の形態１にかかる第１ユーザプログラム１３１の一例を示すイメージ図である。図１０は、図８に示すデータサンプリング条件情報１３２が図９に示す第１ユーザプログラム１３１に埋め込まれて作成された第２ユーザプログラム１３３を示すイメージ図である。
【００７７】
データサンプリング処理が第１ユーザプログラム１３１におけるステップＮｏ．２の処理と並行して実行されるように、図９に示す第１ユーザプログラム１３１に対して図８に示すデータサンプリング条件情報１３２を埋め込む場合について説明する。図８に示すデータサンプリング条件情報１３２では、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されていない。
【００７８】
この場合、図１０に示すように、データサンプリング処理の開始タイミングをステップＮｏ．２の処理の開始タイミングに合わせて、データサンプリングプログラムにおけるサンプリング開始のステップが生成されて第１ユーザプログラム１３１に埋め込まれる。また、データサンプリング処理の終了タイミングをステップＮｏ．２の処理の終了タイミングに合わせて、データサンプリングプログラムにおけるサンプリング終了のステップが生成されて第１ユーザプログラム１３１に埋め込まれる。
【００７９】
図１０では、ステップＮｏ．２の処理を開始したときにデータサンプリング処理が並行して開始されることを示している。また、図１０では、ステップＮｏ．２の処理を終了したときにデータサンプリング処理が並行して終了されることを示している。
【００８０】
上述したように、ＰＬＣ２は、データサンプリング処理の開始タイミングをステップＮｏ．２の処理の開始タイミングに合わせて第２ユーザプログラム１３３を作成することができる。
【００８１】
図１１は、本発明の実施の形態１にかかるデータサンプリング条件情報１３２の一例を示す図である。図１２は、図１１に示すデータサンプリング条件情報１３２が図９に示す第１ユーザプログラム１３１に埋め込まれて作成された第２ユーザプログラム１３３を示すイメージ図である。図１３は、本発明の実施の形態１にかかるサンプリングデータ１３４の一例を示す図である。
【００８２】
データサンプリング処理が第１ユーザプログラム１３１におけるステップＮｏ．２の処理と並行して実行されるように、図９に示す第１ユーザプログラム１３１に対して図１１に示すデータサンプリング条件情報１３２を埋め込む場合について説明する。図１１に示すデータサンプリング条件情報１３２では、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されている。
【００８３】
すなわち、サンプリング開始前倒しタイミングが、「１００ｍｓ前」と設定されている。このため、データサンプリングプログラムは、データサンプリング処理の開始のタイミングがステップＮｏ．２の処理の開始タイミングよりも「１００ｍｓ」だけ前倒しされて作成される。また、サンプリング終了後倒しタイミングが、「５０ｍｓ後」と設定されている。このため、データサンプリングプログラムは、データサンプリング処理の終了タイミングがステップＮｏ．２の処理の終了タイミングよりも「５０ｍｓ」だけ後倒しされて作成される。
【００８４】
この場合、図１２に示すように、データサンプリング処理の開始タイミングがステップＮｏ．２の処理の開始タイミングよりも「１００ｍｓ」だけ前倒しするようにデータサンプリングプログラムにおけるサンプリング開始のステップが生成されて、第１ユーザプログラム１３１に埋め込まれる。また、データサンプリング処理の終了タイミングがステップＮｏ．２の処理の終了タイミングよりも「５０ｍｓ」だけ後倒しするようにデータサンプリングプログラムにおけるサンプリング終了のステップが生成されて、第１ユーザプログラム１３１に埋め込まれる。
【００８５】
図１２では、ステップＮｏ．２の処理の開始タイミングよりも「１００ｍｓ」だけ前にデータサンプリング処理が開始されることを示している。また、図１２では、ステップＮｏ．２の処理の終了タイミングよりも「５０ｍｓ」だけ後にデータサンプリング処理が終了されることを示している。
【００８６】
上述したように、ＰＬＣ２は、データサンプリング条件情報１３２におけるサンプリング開始前倒しタイミングの情報を設定することにより、データサンプリング処理の開始タイミングをステップＮｏ．２の処理の開始タイミングよりも前倒しして第２ユーザプログラム１３３を作成することができ、柔軟にデータをサンプリングできる。すなわち、ＰＬＣ２は、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されることにより、第１ユーザプログラム１３１におけるデータサンプリングプログラムの埋め込み位置を調整して、データサンプリング処理が実施される期間を調整することができる。これにより、ＰＬＣ２におけるより柔軟なデータサンプリング機能を実現できる。
【００８７】
上述したステップＮｏ．２の処理は、特定のビットをオンする、サーボモータ４が駆動する不図示の負荷装置の動作を変更させるための条件を変更する処理、ＰＬＣ２のＰＬＣ記憶部２２が有するあるデバイスメモリにデバイス値を書き込む、などの処理が例示される。
【００８８】
デバイスメモリは、ＰＬＣ制御部２４がユーザプログラムを実行すると実行内容に従って値が更新される各種のデバイス値を保持するメモリである。デバイス値は、ＰＬＣ２が制御対象装置の制御で使用する制御情報の値を示す時系列データであり、制御対象装置の状態を示すデータである。また、デバイス値は、デバイスに記憶されている値である。デバイスは、ＰＬＣ２の共有メモリの領域であるデバイスメモリにおける領域を規定する名称である。
【００８９】
サーボモータ４が駆動する不図示の負荷装置の動作を変更させるための条件を変更する処理は、不図示の負荷装置である軸をＡポイントに位置決めさせるために条件を変更する処理が例示される。この場合、軸をＡポイントに位置決めする間に変化するデータは、軸の現在位置なので、軸の現在位置のデータをサンプリングする。また、軸をＡポイントに位置決めする間に軸の移動速度が変化するので、軸の移動速度のデータをサンプリングする。これにより、軸をＡポイントに位置決めする間に軸の現在位置および軸の移動速度がどのように変化していくかを把握することができる。
【００９０】
すなわち、ステップＮｏ．２の処理と並行してデータサンプリング処理を実行することにより、負荷装置の動作が変化するに伴って、負荷装置の動作に関連するデータがどのように変化していくかを把握することができる。
【００９１】
すなわち、負荷装置の動作の設定変更を行った場合のデータの推移を確認できる。また、負荷装置の動作の設定変更を行った場合に、狙いどおりに所望のデータが推移しているかどうかを確認できる。また、負荷装置の動作の設定変更を行った場合に、負荷装置が動作を繰り返すうちにデータの推移に乱れが生じないかを確認できる。
【００９２】
サーボアンプ３では、ステップＮｏ．２の処理を実行する前にサーボアンプ３内の制御状態における様々なステータスを変更している場合がある。データサンプリング処理の開始タイミングをステップＮｏ．２の処理の開始タイミングよりも前倒しすることにより、ステップＮｏ．２の処理を実行する前にステータスを変更していることを示すデータの情報も合わせて収集できる。
【００９３】
たとえばステップＮｏ．２の処理が、サーボモータ４が駆動する不図示の負荷装置の位置決め動作を制御する処理である場合、サーボモータ４が負荷装置の位置決め動作を行う前に、サーボモータ４が負荷装置の位置決め動作を行う条件が揃っているかの監視および確認を行うことができる。すなわち、サーボモータ４が位置決め動作を行う前に、必要なステータスが変化していることを監視および確認できる。
【００９４】
また、ＰＬＣ２は、データサンプリング条件情報１３２におけるサンプリング終了後倒しタイミングの情報を設定することにより、データサンプリング処理の終了タイミングをステップＮｏ．２の処理の終了タイミングよりも後倒しして第２ユーザプログラム１３３を作成することができ、柔軟にデータをサンプリングできる。
【００９５】
たとえば、ステップＮｏ．２の処理が、サーボモータ４が駆動する不図示の負荷装置の位置決め動作を制御する処理である場合、位置決め動作の完了後、位置決め動作が完了したことを証明するサーボアンプ３内の制御状態のステータスを変更する場合がある。データサンプリング処理の終了タイミングをステップＮｏ．２の処理の終了タイミングよりも後倒しすることにより、ステップＮｏ．２の処理を実行した後にステータスを変更していることを示すデータの情報も合わせて収集できる。これにより、位置決め動作の完了後、位置決め動作が完了したことを証明するサーボアンプ３内の制御状態のステータスが変更されているかの監視および確認を行うことができる。すなわち、サーボモータ４が位置決め動作を終了した後に、必要なステータスが変化していることを監視および確認できる。
【００９６】
また、位置決め動作の完了後、次の動作に移行するためのサーボアンプ３内の制御状態のステータスが変更されているかの監視および確認を行うことができる。すなわち、サーボモータ４が位置決め動作を終了した後に、必要なステータスが変化していることを監視および確認できる。
【００９７】
また、第１ユーザプログラム１３１においてステップＮｏ．２が複数回含まれている場合には、複数回のステップＮｏ．２毎にデータサンプリングプログラムが第１ユーザプログラム１３１に付加される。
【００９８】
また、ステップＳ１０において取得される第１ユーザプログラム１３１が、過去にデータサンプリングプログラムが付加された第２ユーザプログラム１３３が更新されたプログラムである場合も想定される。この場合も、上記と同様にして第２ユーザプログラム１３３が作成される。
【００９９】
ここで、プログラム作成部２３は、ステップＳ１０において取得される第１ユーザプログラム１３１に付加されているデータサンプリングプログラムを自動で消去する。これにより、過去にデータサンプリングプログラムが付加された第２ユーザプログラム１３３をユーザがエンジニアリングツール１で更新する際に付加されているデータサンプリングプログラムを自動で消去することが不要となる。
【０１００】
また、エンジニアリングツール１において作成された第１ユーザプログラム１３１とデータサンプリング条件情報１３２とは、端末装置などの他の装置を介してＰＬＣ２に送信されてもよい。
【０１０１】
また、ＰＬＣ２において作成された第２ユーザプログラム１３３をエンジニアリングツール１にバックアップすることも可能である。
【０１０２】
また、サーボモータ４がＰＬＣ２に直接接続される構成とすることも可能である。
【０１０３】
図１４は、本発明の実施の形態１において第２ユーザプログラム１３３を作成するエンジニアリングツール６１として機能しているコンピュータを示す図である。図１５は、本発明の実施の形態１においてエンジニアリングツール６１が第２ユーザプログラム１３３を作成する場合におけるＰＬＣ６２とサーボアンプ３とセンサ５との機能構成を示すブロック図である。図１６は、本発明の実施の形態１においてエンジニアリングツール６１における第２ユーザプログラム１３３の作成方法を説明するフローチャートである。エンジニアリングツール６１において作成された第２ユーザプログラム１３３をエンジニアリングツール６１からＰＬＣ６２へ送信するように構成することも可能である。
【０１０４】
図１４に示すエンジニアリングツール６１は、データサンプリング処理付加部を有することと、第２ユーザプログラム１３３を記憶部１０４に記憶可能であること以外は、基本的にエンジニアリングツール１と同じ構成および機能を有する。エンジニアリングツール６１は、エンジニアリングツール１と同様に、図２に示すコンピュータにおいてエンジニアリングツールソフトウェア１０８を実行することによって実現される。図１５に示すＰＬＣ６２は、第１ユーザプログラム記憶部２２１と、データサンプリング条件記憶部２２２と、プログラム作成部２３と、を備えないこと以外は、基本的にＰＬＣ２と同じ構成および機能を有する。
【０１０５】
この場合、図１４に示すように、エンジニアリングツール６１においてエンジニアリングツールソフトウェア１０８を実行するＣＰＵ１０１に、ＰＬＣ６２のプログラム作成部２３に対応するデータサンプリング処理付加部１１２が設けられている。すなわち、データサンプリング処理付加部１１２は、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を第１ユーザプログラム１３１に付加して第２ユーザプログラム１３３を作成する。データサンプリング処理付加部１１２で作成された第２ユーザプログラム１３３は、記憶部１０４に記憶される。
【０１０６】
一方、図１５に示すように、ＰＬＣ６２においては、ＰＬＣ６２に設けられているプログラム作成部２３は存在しない。
【０１０７】
この場合、ステップＳ１１０において、エンジニアリングツール６１が第２ユーザプログラム１３３を作成する前段階の処理として、エンジニアリングツール１の場合と同様に、エンジニアリングツール６１において、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とが作成され、記憶部１０４に記憶される。
【０１０８】
ステップＳ１２０において、データサンプリング処理付加部１１２が、未使用のデータサンプリング条件情報１３２があるか否かを判定する。すなわち、データサンプリング処理付加部１１２は、記憶部１０４にデータサンプリング条件情報１３２が記憶されているか否かを判定する。
【０１０９】
記憶部１０４にデータサンプリング条件情報１３２が記憶されていないと判定された場合は、ステップＳ１２０においてＮｏとなり、データサンプリング処理付加部１１２は一連の第２ユーザプログラム作成処理を終了する。記憶部１０４にデータサンプリング条件情報１３２が記憶されていると判定された場合は、ステップＳ１２０においてＹｅｓとなり、ステップＳ１３０に進む。
【０１１０】
ステップＳ１３０において、データサンプリング処理付加部１１２は、記憶部１０４に記憶されているデータサンプリング条件情報１３２を取得して解析する。そして、ステップＳ１４０において、データサンプリング処理付加部１１２は、データサンプリング条件情報１３２が正常であるか否かを判定する。
【０１１１】
データサンプリング条件情報１３２が正常でない場合は、ステップＳ１４０においてＮｏとなり、データサンプリング処理付加部１１２は一連の第２ユーザプログラム作成処理を終了する。データサンプリング条件情報１３２が正常である場合は、ステップＳ１４０においてＹｅｓとなり、ステップＳ１５０に進む。
【０１１２】
ステップＳ１５０において、データサンプリング処理付加部１１２は、記憶部１０４に記憶されている第１ユーザプログラム１３１を取得する。そして、ステップＳ１６０において、データサンプリング処理付加部１１２は、取得した第１ユーザプログラム１３１においてデータサンプリング条件情報１３２の埋め込み先があるか否かを判定する。すなわち、データサンプリング処理付加部１１２は、取得した第１ユーザプログラム１３１において、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を付加する適切な位置があるか否かを判定する。
【０１１３】
データサンプリング条件情報１３２の埋め込み先が無い場合は、ステップＳ１６０においてＮｏとなり、データサンプリング処理付加部１１２は一連の第２ユーザプログラム作成処理を終了する。データサンプリング条件情報１３２の埋め込み先がある場合は、ステップＳ１６０においてＹｅｓとなり、ステップＳ１７０に進む。
【０１１４】
ステップＳ１７０において、データサンプリング処理付加部１１２は、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理を第１ユーザプログラム１３１に付加して第２ユーザプログラム１３３を自動で作成する。すなわち、データサンプリング処理付加部１１２は、データサンプリング条件情報１３２で指定された条件におけるデータサンプリング処理のプログラムであるデータサンプリングプログラムを作成して、第１ユーザプログラム１３１に埋め込んで第２ユーザプログラム１３３を作成する。データサンプリング処理付加部１１２は、作成した新たなユーザプログラムである第２ユーザプログラム１３３を記憶部１０４に記憶させる。
【０１１５】
以上の処理が行われることにより、第１ユーザプログラム１３１とデータサンプリング条件情報１３２とに基づいて、データサンプリング条件情報１３２で指定された条件に対応するデータサンプリング処理が付加された第２ユーザプログラム１３３がエンジニアリングツール６１において作成される。
【０１１６】
その後、入力部１０５に対して行われたユーザの操作に従って、記憶部１０４に記憶された第２ユーザプログラム１３３がＰＬＣ６２に送信される。ＰＬＣ６２は、エンジニアリングツール６１から送信された第２ユーザプログラム１３３を受信して、第２ユーザプログラム記憶部２２３に記憶させる。
【０１１７】
その後、ＰＬＣ６２のＰＬＣ制御部２４がサーボモータ４の制御を開始すると、データサンプリング処理部２４１は、第２ユーザプログラム記憶部２２３に記憶された第２ユーザプログラム１３３を解析して、第２ユーザプログラム１３３において指定されている条件でデータサンプリング処理を行う。すなわち、データサンプリング処理部２４１は、サーボモータ４の制御中にサーボアンプ３からＰＬＣ６２に周期的に送信されてくる各種の状態のデータから、第２ユーザプログラム１３３において指定されている条件データをサンプリングする。そして、サンプリングしたサンプリングデータ１３４をサンプリングデータ記憶部２２４に記憶させる。
【０１１８】
上述したように本実施の形態１にかかるＰＬＣ２は、エンジニアリングツール１から取得したユーザプログラムとデータサンプリング条件情報１３２とに基づいて、ユーザが作成した第１ユーザプログラム１３１に対して、データサンプリング機能を実現するためのデータサンプリングプログラムを自動で付加することができる。そして、データサンプリング条件情報１３２の設定は、エンジニアリングツール１において完結する。
【０１１９】
このため、データサンプリング機能を含むユーザプログラムを作成する場合に、ユーザ自身がデータサンプリングプログラムを追加してユーザプログラムを修正するといった更新作業が不要になる。これにより、新規にユーザプログラムを作成する際の、ユーザのプログラム作成作業の負荷および作業コストが低減する。また、過去に作成済みのユーザプログラムにデータサンプリング機能を追加する更新を行う際の、ユーザのプログラム更新作業の負荷および作業コストが低減する。
【０１２０】
また、データサンプリングプログラムが組み込まれたユーザプログラムに変更を加える場合には、データサンプリングプログラム以外の部分の変更に併せてデータサンプリングプログラムも都度更新が必要になる。また、ユーザプログラムに不具合が生じた場合にユーザプログラムを修復する場合にも、データサンプリングプログラム以外の部分の修復に併せてデータサンプリングプログラムも都度更新が必要になる。そして、データサンプリングプログラムの更新の作業工数およびコストは、ユーザプログラムの規模に正比例する。したがって、上述した効果は、ユーザプログラムの規模が大きいほど大きくなる。
【０１２１】
また、データサンプリング条件情報１３２は、ＰＬＣ２のデータサンプリング機能において取得するデータの種類、データサンプリングの開始のタイミング、データサンプリングの終了のタイミングを任意の条件に設定可能である。すなわち、データサンプリング機能においてサンプリングするデータの種類および数量を自由に設定可能である。また、データサンプリング機能においてサンプリングしたいデータの種類および数量が変更になった場合には、データサンプリング条件情報１３２を自由に変更可能である。このため、ユーザの多様な要望に対応したユーザプログラムを作成することができる。これにより、ＰＬＣ２は、ユーザの多様な要望に柔軟に対応したデータサンプリングを実現することができる。
【０１２２】
したがって、本実施の形態１にかかるＰＬＣ２によれば、ユーザがデータサンプリング機能を有する駆動制御装置に用いるプログラムを作成する際の、ユーザのプログラム作成作業の負荷を低減できる、という効果を奏する。
【符号の説明】
【０１２３】
１，６１  エンジニアリングツール、２，６２  ＰＬＣ、３  サーボアンプ、３Ａ  第１サーボアンプ、３Ｂ  第２サーボアンプ、３Ｃ  第３サーボアンプ、４  サーボモータ、４Ａ  第１サーボモータ、４Ｂ  第２サーボモータ、４Ｃ  第３サーボモータ、５  センサ、５Ａ  第１センサ、５Ｂ  第２センサ、５Ｃ  第３センサ、６，７，８，９  通信線、２１  ＰＬＣ通信部、２２  ＰＬＣ記憶部、２３  プログラム作成部、２４  ＰＬＣ制御部、３１  アンプ通信部、３２  アンプ記憶部、３３  アンプ制御部、５１  センサ通信部、５２  検出部、５３  センサ記憶部、５４  センサ制御部、１００  制御システム、１０１  ＣＰＵ、１０２  ＲＡＭ、１０３  ＲＯＭ、１０４  記憶部、１０５  入力部、１０６  表示部、１０７  通信Ｉ／Ｆ、１０８  エンジニアリングツールソフトウェア、１１０  コンピュータ、１１１  エディタ部、１１２  データサンプリング処理付加部、１２１  データサンプリング設定画面、１３１  第１ユーザプログラム、１３２  データサンプリング条件情報、１３３  第２ユーザプログラム、１３４  サンプリングデータ、２０１  プロセッサ、２０２  メモリ、２２１  第１ユーザプログラム記憶部、２２２  データサンプリング条件記憶部、２２３  第２ユーザプログラム記憶部、２２４  サンプリングデータ記憶部、２４１  データサンプリング処理部。
【要約】
駆動制御装置は、ユーザプログラムに従って制御対象装置を制御するとともに、制御対象装置の制御において得られるデータをサンプリングするデータサンプリング処理を実行する駆動制御装置である。駆動制御装置は、ユーザプログラムである第１ユーザプログラム（１３１）と、データをサンプリングする条件を指定するデータサンプリング条件情報（１３２）とに基づいて、データサンプリング条件情報（１３２）で指定された条件におけるデータサンプリング処理を第１ユーザプログラム（１３１）に付加して第２ユーザプログラム（１３３）を作成するプログラム作成部（２３）と、第２ユーザプログラム（１３３）に従って制御対象装置を制御する制御部と、第２ユーザプログラム（１３３）に従ってデータサンプリング処理を実行するデータサンプリング処理部（２４１）と、を有する。【図１】
0006625303.tif 000002
【図２】
0006625303.tif 000003
【図３】
0006625303.tif 000004
【図４】
0006625303.tif 000005
【図５】
0006625303.tif 000006
【図６】
0006625303.tif 000007
【図７】
0006625303.tif 000008
【図８】
0006625303.tif 000009
【図９】
0006625303.tif 000010
【図１０】
0006625303.tif 000011
【図１１】
0006625303.tif 000012
【図１２】
0006625303.tif 000013
【図１３】
0006625303.tif 000014
【図１４】
0006625303.tif 000015
【図１５】
0006625303.tif 000016
【図１６】
0006625303.tif 000017