JP4248200B2 - モータ制御プログラミングソフト - Google Patents
モータ制御プログラミングソフト Download PDFInfo
- Publication number
- JP4248200B2 JP4248200B2 JP2002205737A JP2002205737A JP4248200B2 JP 4248200 B2 JP4248200 B2 JP 4248200B2 JP 2002205737 A JP2002205737 A JP 2002205737A JP 2002205737 A JP2002205737 A JP 2002205737A JP 4248200 B2 JP4248200 B2 JP 4248200B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- input
- processing
- command
- motor control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Programmable Controllers (AREA)
- Control Of Multiple Motors (AREA)
Description
【発明の属する技術分野】
本発明は、制御対象機器が具備する1つ又は複数のモータをプログラム制御するためのモータ制御プログラムを作成・実行するモータ制御プログラミングソフトに関するものである。
【0002】
【従来の技術】
従来から、制御対象機器が具備するモータをプログラムによって制御する方法が広く知られている。この場合、図13に示すように、まずコンピュータ101でプログラムリストの作成を行った後、それをコンパイルし機械語に翻訳するなどして、モータ制御プログラムを生成する。モータ制御プログラムは磁気ディスクやROM(Read Only Memory)などの記録媒体を利用して、専用のコントロール装置102にロードされる。そして、コントロール装置102がモータ制御プログラムを実行し、制御対象機器103のモータ104のコントロールを行うのである。
【0003】
図14は、コンピュータ101で動作するプログラミングソフトの一般的な操作画面である。各行にプログラムのステップ番号が付されており、1行に1つのプログラムコマンドとそのコマンドに引き渡すオペランドを設定することが可能となっている。プログラム作成時には、各行に、モータの動作や入出力に基づく処理を記述することになる。
【0004】
【発明が解決しようとする課題】
しかしながら、上記のような従来技術の場合には、下記のような問題が生じていた。
【0005】
コンピュータ101で作成したモータ制御プログラムは、専用のコントロール装置102にロードしなければ動作させることができない。それゆえ、動作テストやデバッグ等の作業が煩雑となり、開発効率の低下を招いていた。
【0006】
また、従来のプログラミングソフトは、1行につき1つのプログラムコマンドを設定するものであるため、いきおいプログラム全体の行数が増えてしまい、プログラム作成時やデバッグ時にプログラム全体の処理の流れを把握することが困難であった。
【0007】
特に最近では、プログラムの複雑化・大規模化が進んでいることもあり、上記のような問題はより深刻となってきている。
【0008】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、モータ制御プログラムの作成および実行の簡便化を図る技術を提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために本発明のモータ制御プログラミングソフトは、制御対象機器が具備する1つ又は複数のモータをプログラム制御するモータ制御プログラミングソフトであって、表示手段を有するコンピュータをモータ制御に係るプログラムの作成および実行が可能なプログラム処理手段として機能させ、前記プログラム処理手段は、プログラム作成時に、各列にプログラムコマンド、各行にステップ番号が割り当てられた表形式のプログラム画面を前記表示手段に表示するとともに、前記表形式のプログラム画面のセルに、該セルの列に割り当てられたプログラムコマンドに対するオペランドを設定可能とし、プログラム実行時に、前記表形式のプログラム画面の各セルを順番に調べ、前記オペランドが設定されている場合に該オペランドを用いて当該列に割り当てられたプログラムコマンドを実行することを特徴とする。
【0010】
このモータ制御プログラミングソフトは、プログラム処理手段によりプログラムの作成と実行が可能であるため、従来のように専用のコントロール装置を設けたり、作成したプログラムを記録媒体を介してロードする必要がない。したがって、プログラムの動作テストやデバッグ等の作業が簡便になり、開発効率の向上を図ることができる。
【0011】
また、プログラム作成時にあっては、表形式のプログラム画面の各列にプログラムコマンドが割り当てられ、かつ、セルにオペランドを設定するようになっているので、1行に複数のプログラムコマンドによる処理を設定することができる。したがって、従来に比べてプログラム全体の行数を大幅に減少させることができ、プログラム作成時やデバッグ時にプログラム全体の処理の流れを把握することが容易となり、開発効率の向上を図ることができる。
【0012】
ここで各列には、モータ制御において汎用的に用いられ、かつ多用されるプログラムコマンドを割り当てることが好ましい。たとえば、入力、出力などの制御要素を扱うプログラムコマンドや、ループ処理、タイマ処理などのプログラムコマンドや、モータを動作させるプログラムコマンドなどが好適である。
【0013】
具体的には、前記プログラムコマンドは、前記オペランドとして少なくとも入力の番号およびその入力値に基づくロジックを設定可能であって、前記設定された番号の入力で取得される入力値に基づいて前記設定されたロジックを実行する入力処理コマンドを含むとよい。
【0014】
この構成では、入力値に基づくロジックをもコマンドのオペランドとして設定可能であるため、入力処理コマンド自体の汎用性および多様性を高めることができる。また、従来では入力値に基づくロジックは数行を用いて記述する必要があったところ、上記構成にあっては、入力の番号やロジックなどのオペランドは、入力処理コマンドに係るセル内に表示されるので、行数の一層の削減を図ることができるとともに、処理内容の把握も容易となる。
【0015】
ここで、前記ロジックは、前記入力値が設定された値になるまでプログラムの処理を待機するウェイト処理や、前記入力値に応じてプログラムの処理を分岐する分岐処理などを含むことが好適である。
【0016】
また、前記プログラムコマンドは、前記オペランドとして少なくとも前記モータの動作を定義したモーション定義データを設定可能であって、前記設定されたモーション定義データに基づいてモータを動作させるモータ動作コマンドを含むことも好ましい。
【0017】
これにより、プログラム画面にモータの一連の動作を逐一記述する必要がなくなるので、行数の大幅な削減が可能となる。また、プログラム中で同一のモーション定義データを参照したり、モーション定義データを他のプログラムに再利用したりすることもできるので、開発効率の向上を図ることもできる。
【0018】
また、前記プログラムコマンドは、前記オペランドとして少なくともループ開始行であることを示すマークまたはループ終了行であることを示すマークを設定可能であって、前記設定されたループ開始行からループ終了行までの処理を繰り返し実行するループ処理コマンドを含むことも好ましい。
【0019】
プログラム画面には、ループ開始行と終了行にそれぞれマークが表示されるので、ループ単位を直感的かつ容易に把握することができる。また、ループ開始行やループ終了行の設定にあたり行のステップ番号の指定が不要であるため、行の追加や削除を行うことでループ開始行やループ終了行のステップ番号がずれた場合であっても、それを考慮する必要がないという利点もある。
【0020】
前記プログラムが制御要素とする入力および出力は、前記制御対象機器との間で入出力される外部入力および外部出力と、記憶手段に保持される内部データとの間で入出力される内部入力および内部出力と、を含むことが好適である。
【0021】
このように内部入力および内部出力を設けたことにより、プログラムの汎用性を高め、その使い方により様々な機能を実現することが可能となる。
【0022】
たとえば、複数の入力を組み合わせた入力条件と該入力条件に対応付けた1つの出力結果とを設定可能であって、前記入力を監視し、前記入力条件に合致した場合に対応する出力結果を前記制御対象機器または前記内部データに出力するI/O監視処理手段を設け、上記プログラム処理手段と協働させることができる。
【0023】
I/O監視処理手段は外部入力および内部入力を監視しているので、リアルタイム性や緊急性が要求される処理を実現することができる。このとき、出力を内部データに対して行えば、上記プログラム処理手段側で内部入力という形で取得可能となるので、両手段を協働させることができるようになる。これにより、プログラム処理手段側で、エラー処理などの緊急性が要求される処理を作成することができるようになる。
【0024】
上記I/O監視処理手段は複数の入力の条件判断を1つの出力に代替することができるという利点もある。これにより、プログラム画面で複数行を用いて記述する必要のあった複数入力の条件判断を、1つの内部入力の条件判断に置き換えることができ、プログラムの行数を一層減少させることが可能となる。
【0025】
また、前記内部データの内容を前記表示手段に表示するとともに、その内容を変更可能とする内部データ操作手段を設けることも好適である。
【0026】
従来のモータ制御システムにあっては、ユーザからの入出力をスイッチやボタンやランプなどの操作パネル(ハードウェア)で行っていたが、本プログラミングソフトによれば上記内部データ操作手段により内部データの入出力をそれぞれスイッチやボタンやランプなどの機能に割り当てて、ソフトウェア上で操作パネルのような機能を実現することが可能となる。これにより、操作パネルの設計変更などが容易になるとともに、操作性も向上する。
【0027】
以上、本発明の技術思想をモータ制御プログラミングソフトとして具現化した場合の構成を述べたが、本発明の技術思想は、上記モータ制御プログラミングソフトを記録した記録媒体、モータをプログラム制御するモータ制御装置、モータ制御プログラムの作成方法、または、モータ制御システムとして具現化することもできる。
【0028】
すなわち、本発明の記録媒体は、上記モータ制御プログラミングソフトをコンピュータ読み取り可能な記録媒体に記録したことを特徴とする。
【0029】
また、本発明のモータ制御装置は、制御対象機器が具備する1つ又は複数のモータをプログラム制御するモータ制御装置であって、表示手段と、モータ制御に係るプログラムの作成および実行が可能なプログラム処理手段と、を有し、前記プログラム処理手段は、プログラム作成時に、各列にプログラムコマンド、各行にステップ番号が割り当てられた表形式のプログラム画面を前記表示手段に表示するとともに、前記表形式のプログラム画面のセルに、該セルの列に割り当てられたプログラムコマンドに対するオペランドを設定可能とし、プログラム実行時に、前記表形式のプログラム画面の各セルを順番に調べ、前記オペランドが設定されている場合に該オペランドを用いて当該列に割り当てられたプログラムコマンドを実行することを特徴とする。
【0030】
上記モータ制御装置において、必要に応じて以下の構成を組み合わせることも好ましいものである。
【0031】
前記プログラムコマンドは、前記オペランドとして少なくとも入力の番号およびその入力値に基づくロジックを設定可能であって、前記設定された入力の番号の入力値に基づいて前記設定されたロジックを実行する入力処理コマンドを含むとよい。
【0032】
ここで、前記ロジックは、前記入力値が設定された値になるまでプログラムの処理を待機するウェイト処理や、前記入力値に応じてプログラムの処理を分岐する分岐処理を含むことが好適である。
【0033】
また、前記プログラムコマンドは、前記オペランドとして少なくとも前記モータの動作を定義したモーション定義データを設定可能であって、前記設定されたモーション定義データに基づいてモータを動作させるモータ動作コマンドを含むことも好ましい。
【0034】
また、前記プログラムコマンドは、前記オペランドとして少なくともループ開始行であることを示すマークまたはループ終了行であることを示すマークを設定可能であって、前記設定されたループ開始行からループ終了行までの処理を繰り返し実行するループ処理コマンドを含むことも好ましい。
【0035】
前記プログラムが制御要素とする入力および出力は、前記制御対象機器との間で入出力される外部入力および外部出力と、記憶手段に保持される内部データとの間で入出力される内部入力および内部出力と、を含むことが好適である。
【0036】
複数の入力を組み合わせた入力条件と該入力条件に対応付けた1つの出力結果とを設定可能であって、前記入力を監視し、前記入力条件に合致した場合に対応する出力結果を前記制御対象機器または前記内部データに出力するI/O監視処理手段を有することも好適であり、上記プログラム処理手段と協働させるとなおよい。
【0037】
前記内部データの内容を前記表示手段に表示するとともに、その内容を変更可能とする内部データ操作手段を有することも好適である。
【0038】
また、本発明のモータ制御プログラムの作成方法は、制御対象機器が具備する1つ又は複数のモータをプログラム制御するモータ制御プログラムの作成方法であって、プログラム作成時に、各列にプログラムコマンド、各行にステップ番号が割り当てられた表形式のプログラム画面を前記表示手段に表示するとともに、前記表形式のプログラム画面のセルに、該セルの列に割り当てられたプログラムコマンドに対するオペランドを設定可能とし、プログラム実行時に、前記表形式のプログラム画面の各セルを順番に調べ、前記オペランドが設定されている場合に該オペランドを用いて当該列に割り当てられたプログラムコマンドを実行するものである。さらにこの構成に上述した各構成を適宜組み合わせることも好適である。
【0039】
また、本発明のモータ制御システムは、1つ又は複数のモータを具備する制御対象機器と、表示手段と、モータ制御に係るプログラムの作成および実行が可能なプログラム処理手段と、を有し、前記プログラム処理手段は、プログラム作成時に、各列にプログラムコマンド、各行にステップ番号が割り当てられた表形式のプログラム画面を前記表示手段に表示するとともに、前記表形式のプログラム画面のセルに、該セルの列に割り当てられたプログラムコマンドに対するオペランドを設定可能とし、プログラム実行時に、前記表形式のプログラム画面の各セルを順番に調べ、前記オペランドが設定されている場合に該オペランドを用いて当該列に割り当てられたプログラムコマンドを実行するものである。さらにこの構成に上述した各構成を適宜組み合わせることも好適である。
【0040】
【発明の実施の形態】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【0041】
(システム構成)
図1は、本発明の実施形態に係るモータ制御システムのシステム構成図である。
【0042】
同図に示すように、モータ制御システムは、モータを具備する制御対象機器としてのプロッタ装置1と、そのモータの制御を行うモータ制御装置としてのコンピュータ2から構成される。プロッタ装置1とコンピュータ2はそれぞれ別体構成にしてもよいし、一体構成にしてもよい。
【0043】
プロッタ装置1は、平面プロッタであり、X軸ガイド装置10を駆動するX軸モータ11とY軸ガイド装置12を駆動するY軸モータ13とペン用ガイド装置14を駆動するペン用モータ15の3つのモータを備える。それぞれのモータは、モータドライバ16を介してハブ17に接続されている。
【0044】
また、プロッタ装置1は入出力部18を有している。入出力部18は、プロッタ装置1の電源スイッチ・ランプ・アラーム・センサ等(いずれも不図示)の入出力デバイスである。この入出力部18もハブ17に接続されている。
【0045】
一方、コンピュータ2は、CPU(中央演算処理装置)や記憶手段(メモリ、ハードディスク等)などを備えた情報処理部20、ディスプレイなどの表示部(表示手段)21、キーボードやマウスなどの設定入力部(設定入力手段)22などを備えた汎用のパーソナルコンピュータにより構成される。コンピュータ2は、USBケーブルによってプロッタ装置1のハブ17に接続される。
【0046】
なお、ここでは、制御対象機器の一例としてプロッタ装置を挙げたが、本実施形態のモータ制御装置(コンピュータ2)はモータを備えた種々の装置を制御対象とすることが可能である。また、モータの数も3つに限るものではなく、1つ又は複数のモータを制御することができる。
【0047】
上記構成において、コンピュータ2からモータ制御用のコントロールデータがハブ17に送信されると、ハブ17が制御対象となるモータを特定し、そのモータのモータドライバ16にコントロールデータを送信する。モータドライバ16は、コントロールデータに基づいてモータを回転駆動させる。
【0048】
X軸モータ11は、X軸ガイド装置10を駆動し、ペン(不図示)のX軸方向の位置をコントロールする。同様にしてY軸モータ13はペンのY軸方向の位置をコントロールする。そして、ペン用モータ15は、ペン用ガイド装置14を駆動して、ペンの上げ下げ等をコントロールする。
【0049】
また、コンピュータ2はハブ17を介してプロッタ装置1の入出力部18との間で情報(信号)を送受信することができる。以下、入出力部18との間での情報の送受信を「外部I/O(入力/出力)」と称する。この外部I/Oにより、コンピュータ2は、プロッタ装置1の電源スイッチのON/OFF状態やセンサによるオーバートラベル検知信号などを取得することができるとともに、逆に、プロッタ装置1に対して電源スイッチ切換やランプ点灯やアラーム警告などを実行させることができる。
【0050】
(モータ制御プログラミングソフト)
以上述べたモータ制御に係る処理は、コンピュータ2で実行されるモータ制御プログラミングソフトによって実現されている。
【0051】
図2は、モータ制御プログラミングソフトの構成を模式的に示した機能ブロック図である。
【0052】
モータ制御プログラミングソフト3は、大きく分けて、プログラム処理部(プログラム処理手段)30と、I/O監視処理部(I/O監視処理手段)31の2つの機能ブロックから構成される。プログラム処理部30は、モータ制御に係るプログラムの作成および実行を可能とする部分であり、ステップ実行型の制御によりモータコントロールを行う。一方、I/O監視処理部31は、入力を絶えず監視していて入力値が所定の条件に合致したときに該当する処理を実行する部分である。
【0053】
プログラム処理部30とI/O監視処理部31は共に内部データ33の内容を取得し又は変更することができる。
【0054】
内部データ33は、実際にはメモリまたはハードディスクなどの記憶手段に保持されたデータであって、1番からn番(n:自然数)までの複数の変数の集合体である。モータ制御プログラミングソフト3は、外部機器(制御対象機器の入出力部18)との間の入出力(外部I/O)と、内部データ33との間の入出力とを同列に扱い、共に制御要素としている。そこで、便宜的に内部データ33との間の入出力を「内部I/O(入力/出力)」と称す。なお、外部I/Oに関しては入力先と出力先が別個であり、「入力1」と「出力1」とは異なるものであるが、内部I/Oに関しては入力先と出力先は同じ変数をさすことになる。
【0055】
本実施形態では、このように内部I/Oを設けたことにより、プログラムの汎用性を高め、その使い方により様々な機能を実現している。
【0056】
たとえば、プログラム処理部30とI/O監視処理部31は、内部データ33を介して情報交換をしたり、互いに相手の処理に影響を与えたりすることが可能である。この点については後述する。
【0057】
また、内部I/Oの利用例として、本実施形態のモータ制御プログラミングソフト3は、内部データ33の内容を表示部21に表示するとともに、その内容を変更可能とする内部データ操作部(内部データ操作手段)32を備える。図3は、内部データ操作部32の操作画面の一例である。「内部I/O 1」というラベルの左側にあるチェックボックスで、ON/OFFの切り換えおよびON/OFF状態の確認を行う。また、ラベルの右側にあるテキストボックスは変数名を表示または入力する部分である。
【0058】
この内部データ操作部32は、たとえば従来の操作パネルと同様の働きをする。すなわち、従来のモータ制御装置にあっては、ユーザからの入出力をスイッチやボタンやランプなどの操作パネル(ハードウェア)で行っていたが、上記内部データによる内部I/Oをそれぞれスイッチやボタンやランプなどの機能に割り当てて、ソフトウェア上(表示部上)でユーザからの入力を受け取ったり、ユーザに対して警告メッセージなどの出力を行うことが可能となる。これにより、操作パネルの設計変更などが容易になるとともに、操作性の向上も図ることができる。
【0059】
(プログラム処理部)
プログラム処理部30の操作画面の一例を図4に示す。この操作画面は、モータ制御プログラム(以下、単に「プログラム」という。)を作成するためのプログラム画面である。
【0060】
プログラム画面は、表形式の画面構成となっており、各行に処理のステップ番号、各列にプログラムコマンドが割り当てられている。モータ制御において汎用的に用いられ、かつ多用されるプログラムコマンドを各列に割り当てるとよい。本例では、図中左から順に、入力処理コマンド「Input」、モータ動作コマンド「Action」、出力処理コマンド「Output」、タイマ処理コマンド「Timer」、ループ処理コマンド「Loop」を割り当てている。
【0061】
それぞれのプログラムコマンドは、ユーザにより設定されるオペランドを引数として用いて所定の処理を実行するものである。オペランドの設定は、いずれもプログラムコマンドの名称が付されたボタンを押下し、設定入力補助手段としての入力ダイアログを表示して行う。本実施形態では、各コマンドに応じて入力ダイアログを設け、設定すべきオペランド以外の入力が行われないように、かつ、オペランドの入力を簡便に行えるようにしている。これにより、プログラム作成の労力が軽減される。以下、それぞれのコマンドについて具体的に述べる。
【0062】
「Input」は、オペランドとして入力の番号およびその入力値に基づくロジックをとり、設定された入力の番号の入力値に基づいて設定されたロジックを実行するコマンドである。
【0063】
「Input」と表示されたボタンを押下すると、図5に示す入力ダイアログが表示される。ここでは、入力の番号と、その入力値に基づくロジックを設定する。入力の番号としては、内部入力と外部入力のいずれも設定可能である。ロジックとしては、ウェイト処理と分岐処理があり、ウェイト処理を設定する場合はONまたはOFFボタンを押下し、分岐処理を設定する場合はONまたはOFFボタンを押下するとともに、分岐先となるステップ番号を入力する。
【0064】
ウェイト処理とは、設定した番号の入力がONまたはOFFになるまで、プログラムの処理を待機する処理である。分岐処理とは、設定した番号の入力がONまたはOFFの場合に設定したステップ番号にジャンプする処理である。
【0065】
ここで設定したオペランドは、たとえば、「内部1 if ON to 10」(内部I/Oの1番がONの場合は、10行目にジャンプする。)や、「2 OFF wait」(外部I/Oの入力2がOFFになるまで待機する。)などの書式で、表のセル内に表示される。
【0066】
本実施形態では、入力値に基づくロジックをもコマンドのオペランドとして設定可能であるため、「Input」コマンド自体の汎用性および多様性を高めることができる。また、従来は分岐処理などのロジックは数行を用いて記述する必要があったところ、ここでは上記のようにすべてのオペランドが「Input」コマンドに係るセル内に表示されるので、行数の削減を図ることができるとともに、処理内容の把握も容易となる。
【0067】
「Action」は、オペランドとしてモータの動作を定義したモーション定義データをとり、設定されたモーション定義データに基づいてモータを動作させるコマンドである。
【0068】
モーション定義データとは、各モータの移動量を記述したデータである。その一例を図6に示す。モーション定義データは、CSVファイル形式で作成されてあり、1行のデータが各モータの2msecごとのモータ移動量を表している。
【0069】
「Action」ボタンを押下すると、いわゆるファイル選択ダイアログが表示されるので、予め作成されハードディスク内に格納されたモーション定義データを選択する。ここで選択したファイル名が、表のセル内に表示される。
【0070】
このように、オペランドとしてモーション定義データを設定するだけで足りるので、プログラム画面にモータの一連の動作を逐一記述する必要がなくなり、行数の大幅な削減が可能となる。また、プログラム中で同一のモーション定義データを参照したり、モーション定義データを他のプログラムに再利用したりすることも容易である。
【0071】
「Output」は、オペランドとして出力の番号およびその出力値に基づくロジックをとり、設定された出力の番号に設定されたロジックを実行するコマンドである。
【0072】
「Output」ボタンを押下すると、図7に示す入力ダイアログが表示される。ここでは、出力の番号と、そこに出力するロジックを設定する。出力の番号としては、内部出力と外部出力のいずれも設定可能である。ロジックとしては、ONまたはOFFの出力値を指定できる。
【0073】
ここで設定したオペランドは、たとえば、「内部3 ON」(内部I/Oの3番をONにする。)や、「4 OFF」(外部I/Oの出力4をOFFにする。)などの書式で、表のセル内に表示される。
【0074】
「Timer」は、オペランドとしてウェイト時間をとり、設定されたウェイト時間の間、プログラムの処理を停止するコマンドである。
【0075】
「Timer」ボタンを押下すると、図8に示す入力ダイアログが表示される。ここでは、ウェイト時間をmsec単位で入力する。ここで設定したウェイト時間が、表のセル内に表示される。
【0076】
「Loop」は、オペランドとしてループ開始行であることを示すマーク、または、ループ終了行であることを示すマークおよびループ回数をとり、設定されたループ開始行からループ終了行までの処理をループ回数分繰り返し実行するコマンドである。
【0077】
「Loop」ボタンを押下すると、図9に示す入力ダイアログが表示される。ループ番号は、図に示すように、「↓1」、「↑1」、「↓2」、「↑2」、・・・というマークが表示されたプルダウンメニューから選択することにより設定する。このマークのうち下矢印「↓」は、当該行がループの開始行であることを示し、上矢印「↑」は、当該行がループの終了行であることを示す。矢印の右側に付された数字は、ループ番号を示すものであって、同一ループ番号の下矢印と上矢印の間を繰り返し処理することを意味する。ループ回数は、終了行を設定するときに併せて設定する。
【0078】
ここで設定したオペランドは、たとえば、「↓1」や「↑1 10」などの書式で、表のセル内に表示される。このように、ループ開始行と終了行にそれぞれマークが表示されるので、ループ単位を直感的かつ容易に把握することができる。また、ループ開始行やループ終了行の設定にあたり行のステップ番号の指定が不要であるため、行の追加や削除を行うことでループ開始行や終了行のステップ番号がずれた場合であっても、それがループ処理に影響を及ぼすことがない。
【0079】
プログラム画面の表の下には、「END」ボタンが配されている。「END」ボタンを押下すると、表のセル内に「END」が設定される。
【0080】
以上のようにして表形式のプログラム画面上で作成したプログラムの一例を図10に示す。
【0081】
このプログラムは、10行のステップからなるプログラムである。プログラム処理部30は、1行目の第1セル(1行目のInput)から開始し、順次右側のセルに移り(1行目のAction→Output→Timer→Loop)、当該行の最終セル(Loop)に到達したら、次の行の第1セルに移る、という順番で各セルを調べる。空白のセル(オペランドが設定されていないセル)はスキップし、オペランドが設定されている場合には、そのオペランドを用いて当該列に割り当てられたプログラムコマンドを実行する。そして、「END」に設定されたセルに到達したらプログラムを終了する。
【0082】
図10のプログラムを実行した場合の処理の流れを図11のフローチャートに示す。
【0083】
まず、1行目の第1セルでは、外部I/Oの入力1がONになるまで待機する(ステップS100)。たとえば、外部I/Oの入力1がプロッタ装置の電源スイッチに対応付けられている場合には、このセルの処理は、プロッタ装置の電源スイッチがONになるまでプログラムの処理を待機する処理となる。
【0084】
次に、1行目の第3セルでは、外部I/Oの出力1をONにする(ステップS101)。たとえば、外部I/Oの出力1がプロッタ装置の表示ランプに対応付けられている場合には、このセルの処理は、表示ランプを点灯し、プログラムによる処理が開始されたことをユーザに通知する処理となる。
【0085】
続いて、2行目の第1セルでは、外部I/Oの入力2の状態を調べ、それがONであったならば7行目(の第1セル)にジャンプし、OFFであったならば次のセルに移る(ステップS102)。たとえば、外部I/Oの入力2がプロッタ装置の操作ボタンに対応付けられている場合には、このセルの処理は、操作ボタンの状態によってモータ制御を異ならせる分岐処理となる。
【0086】
最初に入力2がOFFの場合の処理を述べる。3行目の第2セルでは、モーション定義データ「C:¥Condor.csv」がハードディスク等から読み込まれ、実行される(ステップS103)。具体的には、プログラムがこのCSVファイルのデータを300KByteずつハブ17に送信する。ハブ17は、受信したデータに基づいて制御対象となるモータを特定し、モータドライバ16にコントロールデータを送信する。これにより各モータが駆動され、上記モーション定義データの内容に基づき「コンドル」の線画が描画される。
【0087】
プログラムは、CSVファイルのデータの送信を終えると、3行目の第4セルに移り、0.5秒間待機する(ステップS104)。
【0088】
3行目の第5セルは、ループ番号1のループ開始行であることを示している。
【0089】
4行目に移り、第3セルでは、外部I/Oの出力2をONにする(ステップS105)。たとえば、外部I/Oの出力2がプロッタ装置のアラームに対応付けられている場合には、このセルの処理は、アラームを鳴らし、1つの描画処理が完了したことをユーザに通知する処理となる。
【0090】
4行目の第5セルは、ループ番号1のループ終了行であることを示している。ここでは、ループカウンタをインクリメントし、カウンタの値とループ回数との比較を行う。カウンタの値が10に満たなければ、ループ開始行である3行目(の第1セル)に戻り、カウンタの値が10と等しければ、5行目に移る(ステップS106)。したがって、この処理ではコンドルの線画が10回描画されることになる。
【0091】
5行目の第3セルでは、外部I/Oの出力1をOFFにする(ステップS107)。たとえば、上記と同様、外部I/Oの出力1がプロッタ装置の表示ランプに対応付けられている場合には、このセルの処理は、表示ランプを消灯し、プログラムによる処理が終了したことをユーザに通知する処理となる。
【0092】
一方、2行目の第1セルにおける処理(ステップS102)で、外部I/Oの入力2がONだった場合には、7行目の第2セルの処理が実行される。ここでは、モーション定義データ「C:¥Flower.csv」がハードディスク等から読み込まれ、実行される(ステップS108)。
【0093】
プログラムは、CSVファイルのデータの送信を終えると、7行目の第4セルに移り、1秒間待機する(ステップS109)。
【0094】
7行目の第5セルは、ループ番号2のループ開始行であることを示している。8行目および9行目の処理(ステップS110〜S112)は、上記4行目および5行目の処理(ステップS105〜S107)とほぼ同じである。ただし、ここではループ回数が5回となっている。
【0095】
以上述べたように、本実施形態のモータ制御装置(コンピュータ2)は、プログラム処理部30によりモータ制御プログラムの作成と実行が可能であるため、従来のように専用のコントロール装置を設けたり、作成したプログラムをROMなどの記録媒体を介してロードする必要がない。したがって、プログラムの動作テストやデバッグ等の作業が簡便になり、開発効率の向上を図ることができる。
【0096】
また、表形式のプログラム画面を採用したので、1行に複数のプログラムコマンドによる処理を設定することができる。したがって、従来に比べてプログラム全体の行数を大幅に減少させることができ、プログラム作成時やデバッグ時にプログラム全体の処理の流れを把握することが容易となる。
【0097】
なお、図10では、10行のプログラムしか表示されていないが、これよりも行数が増えた場合には、プログラム画面自体を拡大したり、右端のスクロールバーを操作することで、11行目以降を表示することができる。
【0098】
(I/O監視処理部)
I/O監視処理部31の操作画面の一例を図12に示す。
【0099】
ここでは、1つまたは複数の入力を組み合わせた入力条件と、その入力条件に対応付けた1つの出力結果とを設定可能である。入力条件には、外部入力または内部入力を設定することができる。出力条件には、外部出力または内部出力を設定することができる。
【0100】
図示の例では、1行目は、「外部I/Oの入力1がONであれば外部I/Oの出力1をONにする」という条件式を表している。2行目は、「外部I/Oの入力4と入力5がONであれば、内部I/Oの10番をONにする」という条件式を表している。3行目は、「外部I/Oの入力1がONであり、かつ、外部I/Oの入力2がOFFであり、かつ、内部I/Oの3番がONであれば、外部I/Oの出力3をOFFにする」という条件式を表している。4行目は、「内部I/Oの1番,5番,6番がOFFであれば、内部I/Oの9番をONにする」という条件式を表している。
【0101】
I/O監視処理部31は、外部入力および内部入力の状態を絶えず監視しており、設定された入力条件に入力値が合致した場合に対応する出力結果をプロッタ装置1または内部データ33に出力する。
【0102】
このI/O監視処理は、上記プログラム処理に比べて複雑な制御はできないものの、リアルタイム性や緊急性が要求される処理や論理式的な単純な処理に好適である。たとえば、外部I/Oの入力7と入力8に対応付けられた2つのセンサがONになった場合に、外部I/Oの出力9に対応付けられた警告ランプを点灯する、というような処理などである。
【0103】
また、本実施形態では、内部I/Oを利用して、I/O監視処理部31とプログラム処理部30とを協働させることができる。これは、以下のような処理を行う場合に有効である。
【0104】
たとえば、プログラムの実行開始条件として、プロッタ装置の電源、プロッタ用紙の有無、モータの状態などの複数の外部I/Oの状態を調べる必要がある場合である。この場合には、I/O監視処理部31で、複数の入力条件がそろったときに内部I/Oの1つがONになるよう設定し、プログラム処理部30では、その内部I/OがONになるまで待機するような設定にしておく。複数の入力条件を判断する処理をプログラム処理だけで行おうとすると、1つの条件判断で1ステップ(1行)必要となるため、行数が増えてプログラムが煩雑となる。しかし、I/O監視処理によって複数の入力の条件判断を1つの入力に代替させることで、プログラムの行数が少なくなり、プログラムの作成・確認を容易にすることができるのである。
【0105】
また、エラー処理を行う場合にも有効である。たとえば、外部I/Oの入力1〜10のうちいずれか1つがOFFとなった場合に、プログラム処理を中断する必要があるならば、プログラムの各所に外部I/Oの入力1〜10のそれぞれの状態を調べるエラー処理を用意しなければならない。これでは、いたずらにステップ数が増えるばかりでなく、プログラムの処理の流れが把握しづらくなる。そこで、I/O監視処理にて外部I/Oの入力1〜10のいずれかがOFFになったときに内部I/Oの1つがOFFになるように設定しておく。これにより、プログラム側では1つの内部I/Oの状態を調べれば、エラーの有無を判断できることになり、プログラムの作成・確認が容易となる。
【0106】
【発明の効果】
以上説明したように、本発明によれば、モータ制御プログラムの作成および実行の簡便化を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るモータ制御システムのシステム構成図である。
【図2】本発明の実施形態に係るモータ制御プログラミングソフトの構成を模式的に示した機能ブロック図である。
【図3】内部データ操作部の操作画面の一例である。
【図4】プログラム処理部の表形式のプログラム画面の一例である。
【図5】入力処理コマンドのオペランド入力ダイアログの一例である。
【図6】モーション定義データの一例である。
【図7】出力処理コマンドのオペランド入力ダイアログの一例である。
【図8】タイマ処理コマンドのオペランド入力ダイアログの一例である。
【図9】ループ処理コマンドのオペランド入力ダイアログの一例である。
【図10】モータ制御プログラムの一例である。
【図11】図10のプログラムを実行した場合の処理の流れを示すフローチャートである。
【図12】I/O監視処理部の操作画面の一例である。
【図13】従来のモータ制御システムのシステム構成図である。
【図14】従来のモータ制御プログラミングソフトのプログラム画面の一例である。
【符号の説明】
1 プロッタ装置(制御対象機器)
10 X軸ガイド装置
11 X軸モータ
12 Y軸ガイド装置
13 Y軸モータ
14 ペン用ガイド装置
15 ペン用モータ
16 モータドライバ
17 ハブ
18 入出力部
2 コンピュータ(モータ制御装置)
20 情報処理部
21 表示部
22 設定入力部
3 モータ制御プログラミングソフト
30 プログラム処理部
31 I/O監視処理部
32 内部データ操作部
33 内部データ
Claims (5)
- 制御対象機器が具備する1つ又は複数のモータをプログラム制御するモータ制御プログラミングソフトであって、
表示手段を有するコンピュータをモータ制御に係るプログラムの作成および実行を行うプログラム処理手段、および、I/O監視処理手段として機能させ、
前記制御対象機器から値を取得する複数の外部入力と、記憶手段に保持されている内部データから値を取得する複数の内部入力と、を含む複数の入力を有しており、
前記プログラム処理手段は、
プログラム作成時に、
各列にプログラムコマンド、各行にステップ番号が割り当てられた、複数の列と複数の行からなる表形式のプログラム画面を前記表示手段に表示するとともに、
ユーザに対し、前記表形式のプログラム画面のセルに、該セルの列に割り当てられたプログラムコマンドに対するオペランドを設定させ、
プログラム実行時に、
前記表形式のプログラム画面の各セルを順番に調べ、前記オペランドが設定されている場合に該オペランドを用いて当該列に割り当てられたプログラムコマンドを実行する手段であり、
前記I/O監視処理手段は、
ユーザに対し、複数の入力を組み合わせた入力条件と該入力条件に対応付けた1つの出力結果とを設定させ、
前記入力を監視し、前記入力条件に合致した場合に対応する出力結果を前記制御対象機器または前記内部データに出力する手段である
モータ制御プログラミングソフトにおいて、
前記プログラムコマンドには、オペランドとして前記外部入力または前記内部入力を用いる入力処理コマンドが含まれており、
ユーザによって、前記I/O監視処理手段の出力結果が前記内部データに出力されるよう設定され、かつ、前記入力処理コマンドのオペランドとして前記内部入力が設定された場合に、前記プログラム処理手段が、前記I/O監視処理手段によって書き込まれた内部データの値を用いて前記入力処理コマンドを実行する
モータ制御プログラミングソフト。 - 前記入力処理コマンドは、前記オペランドとして設定された前記外部入力または前記内部入力の値が所定値になるまでプログラムの処理を待機するウェイト処理を含む請求項1に記載のモータ制御プログラミングソフト。
- 前記入力処理コマンドは、前記オペランドとして設定された前記外部入力または前記内部入力の値に応じてプログラムの処理を分岐する分岐処理を含む請求項1または2に記載のモータ制御プログラミングソフト。
- 前記プログラムコマンドには、前記オペランドとして少なくとも前記モータの動作を定義したモーション定義データを用いるモータ動作コマンドが含まれており、
前記モータ動作コマンドのオペランドとして前記モーション定義データが設定されている場合に、前記プログラム処理手段は、設定されたモーション定義データに基づいてモータを動作させる請求項1〜3のうちいずれか1項に記載のモータ制御プログラミングソフト。 - 前記コンピュータを、
前記内部データの値を前記表示手段に表示するとともに、ユーザに対し、前記内部データの値を変更させる内部データ操作手段として機能させる請求項1〜4のいずれか1項に記載のモータ制御プログラミングソフト。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002205737A JP4248200B2 (ja) | 2002-07-15 | 2002-07-15 | モータ制御プログラミングソフト |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002205737A JP4248200B2 (ja) | 2002-07-15 | 2002-07-15 | モータ制御プログラミングソフト |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004046711A JP2004046711A (ja) | 2004-02-12 |
JP4248200B2 true JP4248200B2 (ja) | 2009-04-02 |
Family
ID=31710959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002205737A Expired - Lifetime JP4248200B2 (ja) | 2002-07-15 | 2002-07-15 | モータ制御プログラミングソフト |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4248200B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134366A (ja) * | 2007-11-28 | 2009-06-18 | Digital Electronics Corp | エディタ装置、エディタプログラムおよびそれを記録した記録媒体 |
-
2002
- 2002-07-15 JP JP2002205737A patent/JP4248200B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004046711A (ja) | 2004-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8843885B2 (en) | Program creation support device | |
US7456839B2 (en) | Screen creating device | |
JP6006399B2 (ja) | プログラマブル表示器、そのプログラム | |
WO2014064830A1 (ja) | 開発支援装置及び開発支援プログラム | |
JP2007086921A (ja) | 機械装置制御プログラム実行システム | |
JP4248200B2 (ja) | モータ制御プログラミングソフト | |
JP2007094724A (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2007072518A (ja) | 制御装置のヒューマン・マシン・インタフェース装置 | |
JP7021146B2 (ja) | ラダー表示装置 | |
JP4381793B2 (ja) | プログラマブル表示器、表示制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP4964036B2 (ja) | エディタ装置およびエディタプログラム | |
JP4851390B2 (ja) | エディタ装置およびエディタプログラム | |
JP4372739B2 (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2003039357A (ja) | ロボットの教示装置 | |
JP2011107911A (ja) | プログラム、情報処理装置、及び情報処理システム | |
JP2010055351A (ja) | エディタ装置、エディタプログラムおよびそれを記録した記録媒体ならびにプログラマブル表示器 | |
JP4970105B2 (ja) | エディタ装置およびエディタプログラム | |
JP2006099573A (ja) | 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体 | |
JP2004234042A (ja) | ラダー動作可変設定型シーケンス制御装置および入力支援装置 | |
JP2004334300A (ja) | データ処理装置及びプログラム | |
JP5028644B2 (ja) | 電子式計算機および計算機制御プログラム | |
JPH08335178A (ja) | 情報処理方法及びその装置 | |
JP2007122524A (ja) | 制御プログラムモニタ装置、モニタプログラムおよびそのプログラムを記録した記録媒体 | |
JPH09128223A (ja) | マルチタスク制御プログラムの開発支援システムおよび方法 | |
JP2003050608A (ja) | 数値制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050714 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090106 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120123 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4248200 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120123 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130123 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130123 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140123 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |