(58)【調査した分野】(Int.Cl.,DB名)
ユーザプログラムに従って制御対象装置を制御するとともに、前記制御対象装置の制御において得られるデータをサンプリングするデータサンプリング処理を実行する駆動制御装置であって、
前記ユーザプログラムである第1ユーザプログラムと、前記データをサンプリングする条件を指定するデータサンプリング条件情報とに基づいて、前記データサンプリング条件情報で指定された条件における前記データサンプリング処理を前記第1ユーザプログラムに付加して第2ユーザプログラムを作成するプログラム作成部と、
前記第2ユーザプログラムに従って前記制御対象装置を制御する制御部と、
前記第2ユーザプログラムに従って前記データサンプリング処理を実行するデータサンプリング処理部と、
を有することを特徴とする駆動制御装置。
前記データサンプリング条件情報は、前記第1ユーザプログラムにおいて、前記データサンプリング処理と並行して実行する制御処理のプログラムステップを指定するプログラムステップ指示情報を含むこと、
を特徴とする請求項1に記載の駆動制御装置。
前記データサンプリング条件情報は、前記データサンプリング処理の開始のタイミングを前記制御処理の開始タイミングよりも前倒しする時間を指定する前倒し時間指定情報を含むこと、
を特徴とする請求項2に記載の駆動制御装置。
前記データサンプリング条件情報は、前記データサンプリング処理の終了のタイミングを前記制御処理の開始タイミングよりも後倒しする時間を指定する後倒し時間指定情報を含むこと、
を特徴とする請求項2または3に記載の駆動制御装置。
前記第1ユーザプログラムと前記データサンプリング条件情報とが、前記第1ユーザプログラムの作成を支援するプログラム作成支援装置において作成されて前記プログラム作成支援装置から前記駆動制御装置に入力されたものであること、
を特徴とする請求項1から4のいずれか1つに記載の駆動制御装置。
【発明を実施するための形態】
【0011】
以下に、本発明の実施の形態にかかる駆動制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0012】
実施の形態1.
図1は、本発明の実施の形態1にかかる制御システム100の構成を示すブロック図である。制御システム100は、FAシステムである。制御システム100は、エンジニアリングツール1と、PLC2と、サーボアンプ3と、センサ5を備えるサーボモータ4と、を備える。
【0013】
エンジニアリングツール1は、PLC2と通信線6により接続されており、PLC2と有線通信可能である。なお、エンジニアリングツール1とPLC2との通信は、無線通信であってもよい。なお、エンジニアリングツール1は、必要時にのみPLC2と接続される。
【0014】
PLC2は、サーボアンプ3と通信線7により接続されており、サーボアンプ3と有線通信可能である。なお、PLC2とサーボアンプ3との通信は、無線通信であってもよい。
【0015】
サーボアンプ3は、サーボモータ4と通信線8により接続されており、サーボモータ4と有線通信可能である。なお、サーボアンプ3とサーボモータ4との通信は、無線通信であってもよい。
【0016】
エンジニアリングツール1は、PLC2がサーボアンプ3を制御するために実行するプログラムであるユーザプログラムの作成を支援するプログラム作成支援装置である。エンジニアリングツール1は、汎用のコンピュータにエンジニアリングツールソフトウェア108をインストールすることによって構成される。
図2は、エンジニアリングツールソフトウェア108を実行するコンピュータのハードウェア構成を示す図である。コンピュータ110は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、記憶部104、入力部105、表示部106および通信I/F(Interface)107を有する。
【0017】
CPU101は、エンジニアリングツールソフトウェア108を実行する演算装置である。RAM102は、CPU101がプログラムを実行する際に用いるワークエリアである。ROM103は、コンピュータ110の起動時にCPU101が実行するプログラムを不揮発に記憶する。記憶部104は、情報を不揮発に記憶する装置であり、ハードディスクドライブ(Hard Disk Drive)およびソリッドステートドライブ(Solid State Drive)などを適用可能である。
【0018】
入力部105は、ユーザが情報を入力するためのユーザインタフェースであり、ポインティングデバイス(マウス、タッチパネル等)およびキーボードなどを適用可能である。表示部106は、情報を表示する装置であり、LCD(Liquid Crystal Display)およびOLED(Organic Light Emitting Display)などを適用可能である。通信I/F107は、通信線6を通じてPLC2と通信するためのインタフェースである。
【0019】
図3は、エンジニアリングツール1として機能しているコンピュータを示す図である。コンピュータ110にインストールされたエンジニアリングツールソフトウェア108は、記憶部104に格納される。記憶部104に格納されたエンジニアリングツールソフトウェア108をCPU101が読み出して実行することにより、コンピュータ110はエンジニアリングツール1として機能している状態となる。エンジニアリングツール1は、CPU101上にエディタ部111が形成されている。
【0020】
エディタ部111は、表示部106にプログラム作成画面を表示させ、入力部105に対して行われたユーザの操作に対応して、後述する第1ユーザプログラム131を作成または編集する処理を行う。エディタ部111は、作成または編集した第1ユーザプログラム131を記憶部104に記憶する。エディタ部111におけるプログラムを作成および編集する機能は、一般的なエンジニアリングツールのエディタ機能と同様である。
【0021】
図4は、本発明の実施の形態1にかかるエンジニアリングツール1の表示部106に表示されるデータサンプリング設定画面121の一例を示す図である。データサンプリング設定画面121は、データサンプリング条件情報132を設定するための設定画面である。エディタ部111は、
図4に示すようなデータサンプリング設定画面121を表示部106に表示させ、入力部105に対して行われたユーザの操作に従って、データサンプリング条件情報132を記憶部104に設定して記憶する。
【0022】
データサンプリング条件情報132は、後述するようにPLC2によるサーボモータ4の制御において得られるデータをサンプリングする条件を指定する指定情報である。データサンプリング設定画面121においては、データサンプリング条件情報132を自由に設定および変更可能である。データサンプリング条件情報132は、
図4に示すように、サンプリングプログラムステップNo.、サンプリング開始前倒しタイミング、サンプリング終了後倒しタイミング、サンプリング対象データ1およびサンプリング対象データ2などの情報が例示される。
【0023】
サンプリングプログラムステップNo.は、後述するように、第1ユーザプログラム131において、データサンプリング処理と並行して実行される制御処理のプログラムステップを指定するプログラムステップ指示情報である。ここで、ステップとは、プログラムの最小実行単位である。第1ユーザプログラム131は、PLC2がサーボアンプ3を制御するために実行するプログラムであるユーザプログラムであり、ユーザによってエンジニアリングツール1において作成されたユーザプログラムである。すなわち、サンプリングプログラムステップNo.は、第1ユーザプログラム131におけるデータサンプリング処理の開始位置を指定するサンプリング開始位置指定情報、および第1ユーザプログラム131におけるデータサンプリング処理の終了位置を指定するサンプリング終了位置指定情報を兼ねているといえる。
【0024】
サンプリング開始前倒しタイミングは、前倒し時間を指定する前倒し時間指定情報である。前倒し時間は、サンプリングプログラムステップNo.で指定される制御処理の開始タイミングよりもデータサンプリング処理の開始のタイミングを前倒しする時間である。
【0025】
サンプリング終了後倒しタイミングは、後倒し時間を指定する後倒し時間指定情報である。後倒し時間は、サンプリングプログラムステップNo.で指定される制御処理の終了タイミングよりもデータサンプリング処理の終了のタイミングを後倒しする時間である。
【0026】
サンプリング対象データ1は、PLC2がデータサンプリング処理においてサンプリングする対象データである第1のデータの種類を指定するサンプリングデータ指定情報である。サンプリング対象データ2は、PLC2がデータサンプリング処理においてサンプリングする対象データである第1のデータの種類を指定するサンプリングデータ指定情報である。
【0027】
図5は、本発明の実施の形態1にかかる制御システム100におけるPLC2とサーボアンプ3とセンサ5との機能構成を示すブロック図である。
【0028】
PLC2は、制御対象装置であるサーボモータ4を制御する駆動制御装置である。PLC2は、サーボアンプ3を制御するための駆動指令を生成してサーボアンプ3に送信し、サーボアンプ3を制御する。PLC2は、PLCプログラムに基づいて動作する。PLCプログラムは、サーボアンプ3の制御およびPLC2全体の制御を実行するためのプログラムである。PLCプログラムには、PLC2がサーボアンプ3を制御するために実行するプログラムであるユーザプログラムが含まれる。PLCプログラムの具体例は、ラダープログラムである。PLC2は、ユーザプログラムに基づいてサーボアンプ3を介して被制御機器であるサーボモータ4を制御するとともにサーボアンプ3からサーボモータ4の制御に関わる種々の情報を収集する。
【0029】
PLC2は、PLC通信部21と、PLC記憶部22と、プログラム作成部23と、PLC制御部24と、を有する。
【0030】
PLC通信部21は、PLC2の外部の装置と通信を行って情報の送受信を行う。PLC通信部21は、通信線6を介してエンジニアリングツール1との間で通信を行って情報の送受信を行う。PLC通信部21は、エンジニアリングツール1との間で通信を行って、第1ユーザプログラム131およびデータサンプリング条件情報132をエンジニアリングツール1から取得する。PLC通信部21は、エンジニアリングツール1から取得した情報をPLC制御部24に送信する。
【0031】
また、PLC通信部21は、通信線7を介してサーボアンプ3との間で通信を行って情報の送受信を行う。PLC通信部21は、サーボアンプ3を制御するための駆動指令をPLC制御部24から受信してサーボアンプ3に送信する。また、PLC通信部21は、PLC2によるサーボモータ4の制御において得られるデータをサーボアンプ3から受信する。PLC通信部21は、サーボアンプ3から取得した情報をPLC制御部24に送信する。
【0032】
PLC記憶部22は、PLCプログラム、PLC2の制御に関わる情報、サーボアンプ3の内部に保持される各種の状態のデータを記憶する。PLC記憶部22は、第1ユーザプログラム記憶部221と、データサンプリング条件記憶部222と、第2ユーザプログラム記憶部223と、サンプリングデータ記憶部224と、を有する。
【0033】
第1ユーザプログラム記憶部221は、エンジニアリングツール1から取得したユーザプログラムである第1ユーザプログラム131を記憶する。
【0034】
データサンプリング条件記憶部222は、エンジニアリングツール1から取得したデータサンプリング条件情報132を記憶する。データサンプリング条件情報132は、第1ユーザプログラム記憶部221に記憶されている第1ユーザプログラム131であってデータサンプリング条件情報132に基づいて修正される特定の第1ユーザプログラム131と、関連付けられている。すなわち、データサンプリング条件情報132は、第1ユーザプログラム記憶部221に記憶されている特定の第1ユーザプログラム131と1対1で対応している。
【0035】
第2ユーザプログラム記憶部223は、後述するプログラム作成部23において修正されて作成された新たなユーザプログラムである第2ユーザプログラム133を記憶する。
【0036】
サンプリングデータ記憶部224は、後述するデータサンプリング処理部241の制御によりデータサンプリング処理が行われて取得されたサンプリングデータ134を記憶する。サンプリングデータ134は、PLC2によるサーボモータ4の制御において得られてサーボアンプ3の内部に保持される各種の状態のデータである。サンプリングデータ134には、たとえばサーボモータ4が動作した位置、速度、トルク等の、サーボモータ4の動作の状態の時系列データであるアナログデータ、およびサーボアンプ3における制御状態のデータが例示される。
【0037】
時系列データは、サーボモータ4の制御において得られてサーボアンプ3の内部に保持される各種の状態のデータであり、時間の経過とともに変化していく現象を観測したデータである。時系列データは、サーボモータ4が動作した位置、速度、トルク等の、サーボモータ4の動作の状態を示すデータが例示される。
【0038】
プログラム作成部23は、エンジニアリングツール1から取得されて第1ユーザプログラム記憶部221に記憶された第1ユーザプログラム131と、エンジニアリングツール1から取得されてデータサンプリング条件記憶部222に記憶されたデータサンプリング条件情報132とに基づいて、ユーザプログラムを修正して新たなユーザプログラムを作成する。プログラム作成部23は、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を第1ユーザプログラム131に付加して第2ユーザプログラム133を作成する。すなわち、プログラム作成部23は、データサンプリング条件情報132で指定された条件をプログラムの形に書き換えてデータサンプリング処理のプログラムを作成して、第1ユーザプログラム131に埋め込んで第2ユーザプログラム133を作成する。プログラム作成部23は、作成した新たなユーザプログラムである第2ユーザプログラム133を第2ユーザプログラム記憶部223に記憶させる。
【0039】
PLC制御部24は、サーボアンプ3の制御およびPLC2全体の制御を行う。また、PLC制御部24は、上述したサーボアンプ3の内部に保持される各種の状態のデータをサーボアンプ3から採取してサンプリングデータ記憶部224に記憶させるデータサンプリング処理を実行するデータサンプリング処理部241を備える。
【0040】
データサンプリング処理部241は、サーボアンプ3に保持される各種の状態のデータをサーボアンプ3からサンプリングするデータサンプリング処理を制御する。データサンプリング処理は、固定の周期では行われず、トランジェント伝送により行われる。データサンプリング処理部241は、第2ユーザプログラム133に従って、第2ユーザプログラム133において指定されている条件でデータサンプリング処理を行う。
【0041】
また、PLC制御部24は、例えば、
図6に示したハードウェア構成の処理回路として実現される。
図6は、本発明の実施の形態1にかかる処理回路のハードウェア構成の一例を示す図である。PLC制御部24が
図6に示す処理回路により実現される場合、PLC制御部24は、例えば、
図6に示すメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、PLC制御部24の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ201およびメモリ202を用いて実現するようにしてもよい。
【0042】
また、PLC通信部21を、同様にメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現されるように構成してもよい。また、PLC通信部21を実現するためのプロセッサおよびメモリは、PLC制御部24を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【0043】
サーボアンプ3は、PLC2から送信される駆動指令に基づいて、不図示の負荷装置を駆動する制御対象装置であるサーボモータ4の動作を制御する。サーボアンプ3は、サーボアンププログラムに基づいて動作する。サーボアンププログラムは、サーボアンプ3がサーボモータ4の動作の制御およびサーボアンプ3全体の制御を実行するためのプログラムである。サーボアンプ3は、複数のユニットが組み合わされて構成されている。
【0044】
制御システム100は、サーボアンプ3として、第1サーボアンプ3Aと第2サーボアンプ3Bと第3サーボアンプ3Cとを備える。第1サーボアンプ3Aは、PLC2から送信される駆動指令に基づいて、第1サーボモータ4Aの動作を制御する。第2サーボアンプ3Bは、PLC2から送信される駆動指令に基づいて、第2サーボモータ4Bの動作を制御する。第3サーボアンプ3Cは、PLC2から送信される駆動指令に基づいて、第3サーボモータ4Cの動作を制御する。なお、以下においては、第1サーボアンプ3Aと第2サーボアンプ3Bと第3サーボアンプ3Cとを区別しない場合には、サーボアンプ3と呼ぶ。
【0045】
サーボアンプ3は、PLC2から送信される駆動指令に基づいて、サーボモータ4の動作を制御する。サーボアンプ3は、アンプ通信部31と、アンプ記憶部32と、アンプ制御部33と、を有する。
【0046】
アンプ通信部31は、通信線7を介してPLC2との間で通信を行って情報の送受信を行う。また、アンプ通信部31は、通信線8を介してサーボモータ4との間で通信を行って情報の送受信を行う。
【0047】
アンプ記憶部32は、サーボアンププログラム、サーボモータ4の動作の状態を示すデータ、サーボアンプ3の制御に関わる各種の状態のデータなどを記憶する。アンプ記憶部32としては、サーボアンプ3への通電が断電された場合でも、記憶された情報が消去されないように、不揮発性の記憶装置が使用される。アンプ記憶部32は、例えばメモリによって実現される。
【0048】
アンプ制御部33は、サーボモータ4の動作の制御およびサーボアンプ3全体の制御を行う。アンプ制御部33は、サーボモータ4のセンサ5から送信される時系列データである検出結果をアンプ記憶部32に記憶させる。また、アンプ制御部33は、サーボアンプ3における制御状態のデータをアンプ記憶部32に記憶させる。
【0049】
また、アンプ制御部33は、PLC2によるサーボモータ4の制御において得られてサーボアンプ3の内部に保持されている各種の状態のデータをアンプ通信部31を介してPLC制御部24のデータサンプリング処理部241に送信する制御を行う。アンプ制御部33は、制御システム100の動作中、アンプ記憶部32に記憶されている各種の状態のデータを予め決められた周期でPLC制御部24のデータサンプリング処理部241に送信する制御を行う。
【0050】
また、アンプ制御部33は、例えば、
図6に示したハードウェア構成の処理回路として実現される。アンプ制御部33が
図6に示す処理回路により実現される場合、アンプ制御部33は、例えば、
図6に示すメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、アンプ制御部33の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ201およびメモリ202を用いて実現するようにしてもよい。
【0051】
また、アンプ通信部31を、同様にメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現されるように構成してもよい。また、アンプ通信部31を実現するためのプロセッサおよびメモリは、アンプ制御部33を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【0052】
サーボモータ4は、生産システムにおける軸に動力を供給する装置であり、サーボアンプ3により動作が制御される被制御装置である。軸は、生産システムにおける機器の軸である。制御システム100は、サーボモータ4として、第1サーボモータ4Aと第2サーボモータ4Bと第3サーボモータ4Cとを備える。なお、以下においては、第1サーボモータ4Aと第2サーボモータ4Bと第3サーボモータ4Cとを区別しない場合には、サーボモータ4と呼ぶ。
【0053】
サーボモータ4は、センサ5を備えている。センサ5は、サーボモータ4の動作の状態を検出する。センサ5が検出する動作の状態とは、位置、速度、トルク、温度といった項目が該当する。センサ5は、制御システム100の動作中、予め決められた周期でサーボモータ4の動作の状態を検出して、検出結果をサーボアンプ3に送信する。センサ5は、センサプログラムに基づいて動作する。センサプログラムは、センサ5全体の制御を実行するためのプログラムである。
【0054】
制御システム100は、センサ5として、第1センサ5Aと第2センサ5Bと第3センサ5Cとを備える。第1センサ5Aは、第1サーボモータ4Aの動作の状態を検出して、通信線9を介して検出結果を第1サーボアンプ3Aに送信する。第2センサ5Bは、第2サーボモータ4Bの動作の状態を検出して、通信線9を介して検出結果を第2サーボアンプ3Bに送信する。第3センサ5Cは、第3サーボモータ4Cの動作の状態を検出して、通信線9を介して検出結果を第3サーボアンプ3Cに送信する。なお、以下においては、第1センサ5Aと第2センサ5Bと第3センサ5Cとを区別しない場合には、センサ5と呼ぶ。
【0055】
センサ5は、サーボモータ4の動作の状態を検出して、検出結果をサーボアンプ3に送信する。センサ5は、センサ通信部51と、検出部52と、センサ記憶部53と、センサ制御部54と、を有する。
【0056】
センサ通信部51は、通信線9を介してサーボアンプ3との間で通信を行って情報の送受信を行う。
【0057】
検出部52は、サーボモータ4の動作の状態を予め決められた周期で検出する。
【0058】
センサ記憶部53は、センサプログラムおよびセンサ5の制御に関わる情報を記憶する。センサ記憶部53としては、センサ5への通電が断電された場合でも、記憶された情報が消去されないように、不揮発性の記憶装置が使用される。センサ記憶部53は、例えばメモリによって実現される。
【0059】
センサ制御部54は、センサ5全体の制御を行う。また、センサ制御部54は、検出部52で検出された検出結果を予め決められた周期でサーボアンプ3に送信する制御を行う。
【0060】
また、センサ制御部54は、例えば、
図6に示したハードウェア構成の処理回路として実現される。センサ制御部54が
図6に示す処理回路により実現される場合、センサ制御部54は、例えば、
図6に示すメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実現してもよい。また、センサ制御部54の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ201およびメモリ202を用いて実現するようにしてもよい。
【0061】
また、センサ通信部51を、同様にメモリ202に記憶されたプログラムをプロセッサ201が実行することにより、実現されるように構成してもよい。また、センサ通信部51を実現するためのプロセッサおよびメモリは、センサ制御部54を実現するプロセッサおよびメモリと同一であってもよいし、別のプロセッサおよびメモリであってもよい。
【0062】
つぎに、上記の構成を有するPLC2における第2ユーザプログラム133の作成方法について説明する。
図7は、本発明の実施の形態1にかかるPLC2における第2ユーザプログラム133の作成方法を説明するフローチャートである。ここでは、PLC2が第1サーボモータ4Aを制御するための第2ユーザプログラム133の作成方法について説明する。なお、PLC2が第2サーボモータ4Bを制御するための第2ユーザプログラム133またはPLC2が第3サーボモータ4Cを制御するための第2ユーザプログラム133を作成する場合も同様である。
【0063】
PLC2が第2ユーザプログラム133を作成する前段階の処理として、エンジニアリングツール1において、第1ユーザプログラム131とデータサンプリング条件情報132とが作成される。すなわち、エンジニアリングツール1において、エディタ部111が、入力部105に対して行われたユーザの操作に従って、第1ユーザプログラム131を作成して記憶部104に記憶させる。また、エンジニアリングツール1において、エディタ部111が、入力部105を用いてデータサンプリング設定画面121に対して行われたユーザの操作に従って、データサンプリング条件情報132を記憶部104に設定して記憶させる。その後、入力部105に対して行われたユーザの操作に従って、第1ユーザプログラム131とデータサンプリング条件情報132とがPLC2に送信される。
【0064】
そして、ステップS10において、PLC2は、第1ユーザプログラム131とデータサンプリング条件情報132とをエンジニアリングツール1から取得する。すなわち、PLC2のPLC通信部21は、エンジニアリングツール1から送信された第1ユーザプログラム131とデータサンプリング条件情報132とを受信してPLC制御部24に送信する。PLC制御部24は、第1ユーザプログラム131とデータサンプリング条件情報132とを受信すると、第1ユーザプログラム131を第1ユーザプログラム記憶部221に記憶させ、データサンプリング条件情報132をデータサンプリング条件記憶部222に記憶させる。そして、PLC制御部24が、プログラム作成部23を起動させる。
【0065】
つぎに、ステップS20において、プログラム作成部23は、起動後、未使用のデータサンプリング条件情報132があるか否かを判定する。すなわち、プログラム作成部23は、データサンプリング条件記憶部222にデータサンプリング条件情報132が記憶されているか否かを判定する。
【0066】
データサンプリング条件記憶部222にデータサンプリング条件情報132が記憶されていないと判定された場合は、ステップS20においてNoとなり、プログラム作成部23は一連の第2ユーザプログラム作成処理を終了する。データサンプリング条件記憶部222にデータサンプリング条件情報132が記憶されていると判定された場合は、ステップS20においてYesとなり、ステップS30に進む。
【0067】
ステップS30において、プログラム作成部23は、データサンプリング条件記憶部222に記憶されているデータサンプリング条件情報132を取得して解析する。そして、ステップS40において、プログラム作成部23は、データサンプリング条件情報132が正常であるか否かを判定する。
【0068】
データサンプリング条件情報132が正常でない場合は、ステップS40においてNoとなり、プログラム作成部23は一連の第2ユーザプログラム作成処理を終了する。データサンプリング条件情報132が正常である場合は、ステップS40においてYesとなり、ステップS50に進む。
【0069】
ステップS50において、プログラム作成部23は、第1ユーザプログラム記憶部221に記憶されている第1ユーザプログラム131を取得する。そして、ステップS60において、プログラム作成部23は、取得した第1ユーザプログラム131においてデータサンプリング条件情報132の埋め込み先があるか否かを判定する。すなわち、プログラム作成部23は、取得した第1ユーザプログラム131において、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を付加する適切な位置があるか否かを判定する。
【0070】
データサンプリング条件情報132の埋め込み先が無い場合は、ステップS60においてNoとなり、プログラム作成部23は一連の第2ユーザプログラム作成処理を終了する。データサンプリング条件情報132の埋め込み先がある場合は、ステップS60においてYesとなり、ステップS70に進む。
【0071】
ステップS70において、プログラム作成部23は、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を第1ユーザプログラム131に付加して第2ユーザプログラム133を自動で作成する。すなわち、プログラム作成部23は、データサンプリング条件情報132で指定された条件におけるデータサンプリング処理のプログラムであるデータサンプリングプログラムを作成して、第1ユーザプログラム131に埋め込んで第2ユーザプログラム133を作成する。プログラム作成部23は、作成した新たなユーザプログラムである第2ユーザプログラム133を第2ユーザプログラム記憶部223に記憶させる。
【0072】
その後、プログラム作成部23は、第1ユーザプログラム記憶部221に記憶された第1ユーザプログラム131と、データサンプリング条件記憶部222に記憶されたデータサンプリング条件情報132とを破棄する。
【0073】
以上の処理が行われることにより、第1ユーザプログラム131とデータサンプリング条件情報132とに基づいて、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理が付加された第2ユーザプログラム133が作成される。
【0074】
なお、ステップS20は、PLC2の起動時に実施されてもよい。
【0075】
その後、PLC制御部24がサーボモータ4の制御を開始すると、データサンプリング処理部241は、第2ユーザプログラム記憶部223に記憶された第2ユーザプログラム133を解析して、第2ユーザプログラム133において指定されている条件でデータサンプリング処理を行う。すなわち、データサンプリング処理部241は、サーボモータ4の制御中にサーボアンプ3からPLC2に周期的に送信されてくる各種の状態のデータから、第2ユーザプログラム133において指定されている条件データをサンプリングする。そして、サンプリングしたサンプリングデータ134をサンプリングデータ記憶部224に記憶させる。
【0076】
図8は、本発明の実施の形態1にかかるデータサンプリング条件情報132の一例を示す図である。
図9は、本発明の実施の形態1にかかる第1ユーザプログラム131の一例を示すイメージ図である。
図10は、
図8に示すデータサンプリング条件情報132が
図9に示す第1ユーザプログラム131に埋め込まれて作成された第2ユーザプログラム133を示すイメージ図である。
【0077】
データサンプリング処理が第1ユーザプログラム131におけるステップNo.2の処理と並行して実行されるように、
図9に示す第1ユーザプログラム131に対して
図8に示すデータサンプリング条件情報132を埋め込む場合について説明する。
図8に示すデータサンプリング条件情報132では、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されていない。
【0078】
この場合、
図10に示すように、データサンプリング処理の開始タイミングをステップNo.2の処理の開始タイミングに合わせて、データサンプリングプログラムにおけるサンプリング開始のステップが生成されて第1ユーザプログラム131に埋め込まれる。また、データサンプリング処理の終了タイミングをステップNo.2の処理の終了タイミングに合わせて、データサンプリングプログラムにおけるサンプリング終了のステップが生成されて第1ユーザプログラム131に埋め込まれる。
【0079】
図10では、ステップNo.2の処理を開始したときにデータサンプリング処理が並行して開始されることを示している。また、
図10では、ステップNo.2の処理を終了したときにデータサンプリング処理が並行して終了されることを示している。
【0080】
上述したように、PLC2は、データサンプリング処理の開始タイミングをステップNo.2の処理の開始タイミングに合わせて第2ユーザプログラム133を作成することができる。
【0081】
図11は、本発明の実施の形態1にかかるデータサンプリング条件情報132の一例を示す図である。
図12は、
図11に示すデータサンプリング条件情報132が
図9に示す第1ユーザプログラム131に埋め込まれて作成された第2ユーザプログラム133を示すイメージ図である。
図13は、本発明の実施の形態1にかかるサンプリングデータ134の一例を示す図である。
【0082】
データサンプリング処理が第1ユーザプログラム131におけるステップNo.2の処理と並行して実行されるように、
図9に示す第1ユーザプログラム131に対して
図11に示すデータサンプリング条件情報132を埋め込む場合について説明する。
図11に示すデータサンプリング条件情報132では、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されている。
【0083】
すなわち、サンプリング開始前倒しタイミングが、「100ms前」と設定されている。このため、データサンプリングプログラムは、データサンプリング処理の開始のタイミングがステップNo.2の処理の開始タイミングよりも「100ms」だけ前倒しされて作成される。また、サンプリング終了後倒しタイミングが、「50ms後」と設定されている。このため、データサンプリングプログラムは、データサンプリング処理の終了タイミングがステップNo.2の処理の終了タイミングよりも「50ms」だけ後倒しされて作成される。
【0084】
この場合、
図12に示すように、データサンプリング処理の開始タイミングがステップNo.2の処理の開始タイミングよりも「100ms」だけ前倒しするようにデータサンプリングプログラムにおけるサンプリング開始のステップが生成されて、第1ユーザプログラム131に埋め込まれる。また、データサンプリング処理の終了タイミングがステップNo.2の処理の終了タイミングよりも「50ms」だけ後倒しするようにデータサンプリングプログラムにおけるサンプリング終了のステップが生成されて、第1ユーザプログラム131に埋め込まれる。
【0085】
図12では、ステップNo.2の処理の開始タイミングよりも「100ms」だけ前にデータサンプリング処理が開始されることを示している。また、
図12では、ステップNo.2の処理の終了タイミングよりも「50ms」だけ後にデータサンプリング処理が終了されることを示している。
【0086】
上述したように、PLC2は、データサンプリング条件情報132におけるサンプリング開始前倒しタイミングの情報を設定することにより、データサンプリング処理の開始タイミングをステップNo.2の処理の開始タイミングよりも前倒しして第2ユーザプログラム133を作成することができ、柔軟にデータをサンプリングできる。すなわち、PLC2は、サンプリング開始前倒しタイミングおよびサンプリング終了後倒しタイミングの情報が設定されることにより、第1ユーザプログラム131におけるデータサンプリングプログラムの埋め込み位置を調整して、データサンプリング処理が実施される期間を調整することができる。これにより、PLC2におけるより柔軟なデータサンプリング機能を実現できる。
【0087】
上述したステップNo.2の処理は、特定のビットをオンする、サーボモータ4が駆動する不図示の負荷装置の動作を変更させるための条件を変更する処理、PLC2のPLC記憶部22が有するあるデバイスメモリにデバイス値を書き込む、などの処理が例示される。
【0088】
デバイスメモリは、PLC制御部24がユーザプログラムを実行すると実行内容に従って値が更新される各種のデバイス値を保持するメモリである。デバイス値は、PLC2が制御対象装置の制御で使用する制御情報の値を示す時系列データであり、制御対象装置の状態を示すデータである。また、デバイス値は、デバイスに記憶されている値である。デバイスは、PLC2の共有メモリの領域であるデバイスメモリにおける領域を規定する名称である。
【0089】
サーボモータ4が駆動する不図示の負荷装置の動作を変更させるための条件を変更する処理は、不図示の負荷装置である軸をAポイントに位置決めさせるために条件を変更する処理が例示される。この場合、軸をAポイントに位置決めする間に変化するデータは、軸の現在位置なので、軸の現在位置のデータをサンプリングする。また、軸をAポイントに位置決めする間に軸の移動速度が変化するので、軸の移動速度のデータをサンプリングする。これにより、軸をAポイントに位置決めする間に軸の現在位置および軸の移動速度がどのように変化していくかを把握することができる。
【0090】
すなわち、ステップNo.2の処理と並行してデータサンプリング処理を実行することにより、負荷装置の動作が変化するに伴って、負荷装置の動作に関連するデータがどのように変化していくかを把握することができる。
【0091】
すなわち、負荷装置の動作の設定変更を行った場合のデータの推移を確認できる。また、負荷装置の動作の設定変更を行った場合に、狙いどおりに所望のデータが推移しているかどうかを確認できる。また、負荷装置の動作の設定変更を行った場合に、負荷装置が動作を繰り返すうちにデータの推移に乱れが生じないかを確認できる。
【0092】
サーボアンプ3では、ステップNo.2の処理を実行する前にサーボアンプ3内の制御状態における様々なステータスを変更している場合がある。データサンプリング処理の開始タイミングをステップNo.2の処理の開始タイミングよりも前倒しすることにより、ステップNo.2の処理を実行する前にステータスを変更していることを示すデータの情報も合わせて収集できる。
【0093】
たとえばステップNo.2の処理が、サーボモータ4が駆動する不図示の負荷装置の位置決め動作を制御する処理である場合、サーボモータ4が負荷装置の位置決め動作を行う前に、サーボモータ4が負荷装置の位置決め動作を行う条件が揃っているかの監視および確認を行うことができる。すなわち、サーボモータ4が位置決め動作を行う前に、必要なステータスが変化していることを監視および確認できる。
【0094】
また、PLC2は、データサンプリング条件情報132におけるサンプリング終了後倒しタイミングの情報を設定することにより、データサンプリング処理の終了タイミングをステップNo.2の処理の終了タイミングよりも後倒しして第2ユーザプログラム133を作成することができ、柔軟にデータをサンプリングできる。
【0095】
たとえば、ステップNo.2の処理が、サーボモータ4が駆動する不図示の負荷装置の位置決め動作を制御する処理である場合、位置決め動作の完了後、位置決め動作が完了したことを証明するサーボアンプ3内の制御状態のステータスを変更する場合がある。データサンプリング処理の終了タイミングをステップNo.2の処理の終了タイミングよりも後倒しすることにより、ステップNo.2の処理を実行した後にステータスを変更していることを示すデータの情報も合わせて収集できる。これにより、位置決め動作の完了後、位置決め動作が完了したことを証明するサーボアンプ3内の制御状態のステータスが変更されているかの監視および確認を行うことができる。すなわち、サーボモータ4が位置決め動作を終了した後に、必要なステータスが変化していることを監視および確認できる。
【0096】
また、位置決め動作の完了後、次の動作に移行するためのサーボアンプ3内の制御状態のステータスが変更されているかの監視および確認を行うことができる。すなわち、サーボモータ4が位置決め動作を終了した後に、必要なステータスが変化していることを監視および確認できる。
【0097】
また、第1ユーザプログラム131においてステップNo.2が複数回含まれている場合には、複数回のステップNo.2毎にデータサンプリングプログラムが第1ユーザプログラム131に付加される。
【0098】
また、ステップS10において取得される第1ユーザプログラム131が、過去にデータサンプリングプログラムが付加された第2ユーザプログラム133が更新されたプログラムである場合も想定される。この場合も、上記と同様にして第2ユーザプログラム133が作成される。
【0099】
ここで、プログラム作成部23は、ステップS10において取得される第1ユーザプログラム131に付加されているデータサンプリングプログラムを自動で消去する。これにより、過去にデータサンプリングプログラムが付加された第2ユーザプログラム133をユーザがエンジニアリングツール1で更新する際に付加されているデータサンプリングプログラムを自動で消去することが不要となる。
【0100】
また、エンジニアリングツール1において作成された第1ユーザプログラム131とデータサンプリング条件情報132とは、端末装置などの他の装置を介してPLC2に送信されてもよい。
【0101】
また、PLC2において作成された第2ユーザプログラム133をエンジニアリングツール1にバックアップすることも可能である。
【0102】
また、サーボモータ4がPLC2に直接接続される構成とすることも可能である。
【0103】
図14は、本発明の実施の形態1において第2ユーザプログラム133を作成するエンジニアリングツール61として機能しているコンピュータを示す図である。
図15は、本発明の実施の形態1においてエンジニアリングツール61が第2ユーザプログラム133を作成する場合におけるPLC62とサーボアンプ3とセンサ5との機能構成を示すブロック図である。
図16は、本発明の実施の形態1においてエンジニアリングツール61における第2ユーザプログラム133の作成方法を説明するフローチャートである。エンジニアリングツール61において作成された第2ユーザプログラム133をエンジニアリングツール61からPLC62へ送信するように構成することも可能である。
【0104】
図14に示すエンジニアリングツール61は、データサンプリング処理付加部を有することと、第2ユーザプログラム133を記憶部104に記憶可能であること以外は、基本的にエンジニアリングツール1と同じ構成および機能を有する。エンジニアリングツール61は、エンジニアリングツール1と同様に、
図2に示すコンピュータにおいてエンジニアリングツールソフトウェア108を実行することによって実現される。
図15に示すPLC62は、第1ユーザプログラム記憶部221と、データサンプリング条件記憶部222と、プログラム作成部23と、を備えないこと以外は、基本的にPLC2と同じ構成および機能を有する。
【0105】
この場合、
図14に示すように、エンジニアリングツール61においてエンジニアリングツールソフトウェア108を実行するCPU101に、PLC62のプログラム作成部23に対応するデータサンプリング処理付加部112が設けられている。すなわち、データサンプリング処理付加部112は、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を第1ユーザプログラム131に付加して第2ユーザプログラム133を作成する。データサンプリング処理付加部112で作成された第2ユーザプログラム133は、記憶部104に記憶される。
【0106】
一方、
図15に示すように、PLC62においては、PLC62に設けられているプログラム作成部23は存在しない。
【0107】
この場合、ステップS110において、エンジニアリングツール61が第2ユーザプログラム133を作成する前段階の処理として、エンジニアリングツール1の場合と同様に、エンジニアリングツール61において、第1ユーザプログラム131とデータサンプリング条件情報132とが作成され、記憶部104に記憶される。
【0108】
ステップS120において、データサンプリング処理付加部112が、未使用のデータサンプリング条件情報132があるか否かを判定する。すなわち、データサンプリング処理付加部112は、記憶部104にデータサンプリング条件情報132が記憶されているか否かを判定する。
【0109】
記憶部104にデータサンプリング条件情報132が記憶されていないと判定された場合は、ステップS120においてNoとなり、データサンプリング処理付加部112は一連の第2ユーザプログラム作成処理を終了する。記憶部104にデータサンプリング条件情報132が記憶されていると判定された場合は、ステップS120においてYesとなり、ステップS130に進む。
【0110】
ステップS130において、データサンプリング処理付加部112は、記憶部104に記憶されているデータサンプリング条件情報132を取得して解析する。そして、ステップS140において、データサンプリング処理付加部112は、データサンプリング条件情報132が正常であるか否かを判定する。
【0111】
データサンプリング条件情報132が正常でない場合は、ステップS140においてNoとなり、データサンプリング処理付加部112は一連の第2ユーザプログラム作成処理を終了する。データサンプリング条件情報132が正常である場合は、ステップS140においてYesとなり、ステップS150に進む。
【0112】
ステップS150において、データサンプリング処理付加部112は、記憶部104に記憶されている第1ユーザプログラム131を取得する。そして、ステップS160において、データサンプリング処理付加部112は、取得した第1ユーザプログラム131においてデータサンプリング条件情報132の埋め込み先があるか否かを判定する。すなわち、データサンプリング処理付加部112は、取得した第1ユーザプログラム131において、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を付加する適切な位置があるか否かを判定する。
【0113】
データサンプリング条件情報132の埋め込み先が無い場合は、ステップS160においてNoとなり、データサンプリング処理付加部112は一連の第2ユーザプログラム作成処理を終了する。データサンプリング条件情報132の埋め込み先がある場合は、ステップS160においてYesとなり、ステップS170に進む。
【0114】
ステップS170において、データサンプリング処理付加部112は、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理を第1ユーザプログラム131に付加して第2ユーザプログラム133を自動で作成する。すなわち、データサンプリング処理付加部112は、データサンプリング条件情報132で指定された条件におけるデータサンプリング処理のプログラムであるデータサンプリングプログラムを作成して、第1ユーザプログラム131に埋め込んで第2ユーザプログラム133を作成する。データサンプリング処理付加部112は、作成した新たなユーザプログラムである第2ユーザプログラム133を記憶部104に記憶させる。
【0115】
以上の処理が行われることにより、第1ユーザプログラム131とデータサンプリング条件情報132とに基づいて、データサンプリング条件情報132で指定された条件に対応するデータサンプリング処理が付加された第2ユーザプログラム133がエンジニアリングツール61において作成される。
【0116】
その後、入力部105に対して行われたユーザの操作に従って、記憶部104に記憶された第2ユーザプログラム133がPLC62に送信される。PLC62は、エンジニアリングツール61から送信された第2ユーザプログラム133を受信して、第2ユーザプログラム記憶部223に記憶させる。
【0117】
その後、PLC62のPLC制御部24がサーボモータ4の制御を開始すると、データサンプリング処理部241は、第2ユーザプログラム記憶部223に記憶された第2ユーザプログラム133を解析して、第2ユーザプログラム133において指定されている条件でデータサンプリング処理を行う。すなわち、データサンプリング処理部241は、サーボモータ4の制御中にサーボアンプ3からPLC62に周期的に送信されてくる各種の状態のデータから、第2ユーザプログラム133において指定されている条件データをサンプリングする。そして、サンプリングしたサンプリングデータ134をサンプリングデータ記憶部224に記憶させる。
【0118】
上述したように本実施の形態1にかかるPLC2は、エンジニアリングツール1から取得したユーザプログラムとデータサンプリング条件情報132とに基づいて、ユーザが作成した第1ユーザプログラム131に対して、データサンプリング機能を実現するためのデータサンプリングプログラムを自動で付加することができる。そして、データサンプリング条件情報132の設定は、エンジニアリングツール1において完結する。
【0119】
このため、データサンプリング機能を含むユーザプログラムを作成する場合に、ユーザ自身がデータサンプリングプログラムを追加してユーザプログラムを修正するといった更新作業が不要になる。これにより、新規にユーザプログラムを作成する際の、ユーザのプログラム作成作業の負荷および作業コストが低減する。また、過去に作成済みのユーザプログラムにデータサンプリング機能を追加する更新を行う際の、ユーザのプログラム更新作業の負荷および作業コストが低減する。
【0120】
また、データサンプリングプログラムが組み込まれたユーザプログラムに変更を加える場合には、データサンプリングプログラム以外の部分の変更に併せてデータサンプリングプログラムも都度更新が必要になる。また、ユーザプログラムに不具合が生じた場合にユーザプログラムを修復する場合にも、データサンプリングプログラム以外の部分の修復に併せてデータサンプリングプログラムも都度更新が必要になる。そして、データサンプリングプログラムの更新の作業工数およびコストは、ユーザプログラムの規模に正比例する。したがって、上述した効果は、ユーザプログラムの規模が大きいほど大きくなる。
【0121】
また、データサンプリング条件情報132は、PLC2のデータサンプリング機能において取得するデータの種類、データサンプリングの開始のタイミング、データサンプリングの終了のタイミングを任意の条件に設定可能である。すなわち、データサンプリング機能においてサンプリングするデータの種類および数量を自由に設定可能である。また、データサンプリング機能においてサンプリングしたいデータの種類および数量が変更になった場合には、データサンプリング条件情報132を自由に変更可能である。このため、ユーザの多様な要望に対応したユーザプログラムを作成することができる。これにより、PLC2は、ユーザの多様な要望に柔軟に対応したデータサンプリングを実現することができる。
【0122】
したがって、本実施の形態1にかかるPLC2によれば、ユーザがデータサンプリング機能を有する駆動制御装置に用いるプログラムを作成する際の、ユーザのプログラム作成作業の負荷を低減できる、という効果を奏する。
駆動制御装置は、ユーザプログラムに従って制御対象装置を制御するとともに、制御対象装置の制御において得られるデータをサンプリングするデータサンプリング処理を実行する駆動制御装置である。駆動制御装置は、ユーザプログラムである第1ユーザプログラム(131)と、データをサンプリングする条件を指定するデータサンプリング条件情報(132)とに基づいて、データサンプリング条件情報(132)で指定された条件におけるデータサンプリング処理を第1ユーザプログラム(131)に付加して第2ユーザプログラム(133)を作成するプログラム作成部(23)と、第2ユーザプログラム(133)に従って制御対象装置を制御する制御部と、第2ユーザプログラム(133)に従ってデータサンプリング処理を実行するデータサンプリング処理部(241)と、を有する。