JP7523116B2 - Control program generator - Google Patents
Control program generator Download PDFInfo
- Publication number
- JP7523116B2 JP7523116B2 JP2020129779A JP2020129779A JP7523116B2 JP 7523116 B2 JP7523116 B2 JP 7523116B2 JP 2020129779 A JP2020129779 A JP 2020129779A JP 2020129779 A JP2020129779 A JP 2020129779A JP 7523116 B2 JP7523116 B2 JP 7523116B2
- Authority
- JP
- Japan
- Prior art keywords
- description
- chart
- actuator
- basic
- yogo
- 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.)
- Active
Links
- 238000004519 manufacturing process Methods 0.000 claims description 138
- 238000003860 storage Methods 0.000 claims description 22
- 230000009471 action Effects 0.000 description 77
- 238000000034 method Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 45
- 230000003542 behavioural effect Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 29
- 230000006399 behavior Effects 0.000 description 22
- 238000004458 analytical method Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 14
- UQXNEWQGGVUVQA-UHFFFAOYSA-N 8-aminooctanoic acid Chemical compound NCCCCCCCC(O)=O UQXNEWQGGVUVQA-UHFFFAOYSA-N 0.000 description 9
- 238000005452 bending Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 101150103244 ACT1 gene Proteins 0.000 description 2
- 102100031102 C-C motif chemokine 4 Human genes 0.000 description 2
- 101150078046 act2 gene Proteins 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 101100161935 Caenorhabditis elegans act-4 gene Proteins 0.000 description 1
- HEFNNWSXXWATRW-UHFFFAOYSA-N Ibuprofen Chemical compound CC(C)CC1=CC=C(C(C)C(O)=O)C=C1 HEFNNWSXXWATRW-UHFFFAOYSA-N 0.000 description 1
- 101150015779 act3 gene Proteins 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Description
本発明は、複数のアクチュエータを備えた自動製造機械の動作を制御プログラムに従って制御する技術に関する。 The present invention relates to a technology for controlling the operation of an automated manufacturing machine equipped with multiple actuators according to a control program.
工場などの製造現場の生産性を向上させるためには、自動製造機械を利用した製造工程の自動化が不可欠と考えられる。製造工程には、加工あるいは製造しようとする対象物や、加工の内容(例えば、切削加工や、曲げ加工)などに応じて様々な工程が存在するので、自動化しようとする製造工程に応じて、様々なタイプの自動製造機械が開発されている(例えば、特許文献1、特許文献2)。
In order to improve the productivity of manufacturing sites such as factories, it is considered essential to automate the manufacturing process using automatic manufacturing machines. There are various steps in the manufacturing process depending on the object to be processed or manufactured and the type of processing (e.g., cutting or bending), so various types of automatic manufacturing machines have been developed depending on the manufacturing process to be automated (e.g.,
また、同じような製造工程であっても、具体的な内容については製造現場毎に異なっている。このため、他の製造現場に導入されている自動製造機械を流用することは困難であり、製造現場毎に専用の自動製造機械を開発しなければならないことが一般的である。そして、専用の自動製造機械を開発すると、その自動製造機械を制御するための制御プログラムも、新たに開発する必要が生じる。 In addition, even if the manufacturing process is similar, the specifics differ from one manufacturing site to another. For this reason, it is difficult to reuse automated manufacturing machines that have been installed at other manufacturing sites, and it is generally necessary to develop dedicated automated manufacturing machines for each manufacturing site. And when dedicated automated manufacturing machines are developed, it also becomes necessary to develop new control programs to control the automated manufacturing machines.
ところが、制御プログラムを開発するためには多大な労力が必要となる。そこで本願の発明者らは、自動製造機械の動作を特殊な動作チャートに記述することで、動作チャートから制御プログラムを自動生成することが可能な技術を開発して既に出願済みである(特願2020-075017)。尚、この特殊な動作チャートは、本願の発明者が開発した動作チャートであって、従来には存在しないものであるため、以下では、この動作チャートのことを「YOGOチャート」と称することにする。この動作チャート(YOGOチャート)は、自動製造機械の動作を理解していれば容易に作成することが可能であり、しかも、この動作チャートから自動で制御プログラムを生成することができる。このため、自動製造機械の開発に要する期間を大幅に短縮することができ、加えて、プログラマを確保する必要もないので製造コストも抑制することが可能である。 However, developing a control program requires a great deal of effort. Therefore, the inventors of the present application have developed a technology that allows the operation of an automatic manufacturing machine to be described in a special operation chart, and has already filed a patent application (Patent Application No. 2020-075017) that allows the automatic generation of a control program from the operation chart. Note that this special operation chart is an operation chart developed by the inventors of the present application, and does not exist in the past. Therefore, hereinafter, this operation chart will be referred to as a "YOGO chart." This operation chart (YOGO chart) can be easily created if you understand the operation of the automatic manufacturing machine, and a control program can be automatically generated from this operation chart. This makes it possible to significantly shorten the time required to develop an automatic manufacturing machine, and in addition, since there is no need to secure a programmer, it is possible to reduce manufacturing costs.
しかし、上述した出願中の技術であっても、動作チャート(YOGOチャート)に自動製造機械の動作を記述する際に間違えてしまうことがあり、間違えを含んだ動作チャート(YOGOチャート)から制御プログラムを生成しても、自動製造機械を意図した通りに動作させることができない。このため、動作チャート(YOGOチャート)の記述を間違えたままで、制御プログラムを生成してしまう事態を抑制することが可能な技術の開発が要請されている。 However, even with the above-mentioned pending technology, mistakes can be made when describing the operation of an automatic manufacturing machine in an operation chart (YOGO chart), and even if a control program is generated from an operation chart (YOGO chart) that contains an error, the automatic manufacturing machine cannot be operated as intended. For this reason, there is a demand for the development of technology that can prevent a control program from being generated when an operation chart (YOGO chart) contains an error.
この発明は、従来の技術が有する上述した課題を解決するために成されたものであり、動作チャート(YOGOチャート)の記述を間違えたことに気づかないまま、制御プログラムを生成してしまう事態を抑制することが可能な技術の提供を目的とする。 This invention was made to solve the above-mentioned problems with the conventional technology, and aims to provide technology that can prevent a situation in which a control program is generated without realizing that a mistake has been made in writing the operation chart (YOGO chart).
上述した課題を解決するために、本発明の制御プログラム生成装置は次の構成を採用した。すなわち、
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムを生成する制御プログラム生成装置(110)であって、
前記アクチュエータの自由度毎の動作を表す基本動作(206)を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部(102)と、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込部(103)と、
前記動作チャートに記載された前記基本動作が、所定の記載要件を満足するか否かを判断する記載要件判断部(104)と、
前記動作チャート中の前記基本動作が前記記載要件を満足していた場合には、前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部(105)と
を備え、
前記動作チャート読込部が読み込む前記動作チャートは、表形式の一軸側に前記複数の部分期間が割り当てられ、前記表形式の他軸側に前記複数のアクチュエータが割り当てられ、尚且つ、前記一軸側の座標値と前記他軸側の座標値とによって決まる座標位置に前記基本動作が記載された前記動作チャートであり、
前記基本動作記憶部は、前記アクチュエータと、前記アクチュエータが実行可能な前記基本動作との対応関係を、前記記載要件判断部から参照される前記記載要件として記憶しており、
前記記載要件判断部は、前記基本動作が記載された前記座標位置を取得して、前記座標位置の中の前記他軸側の座標値に割り当てられた前記アクチュエータが、前記基本動作に対して前記対応関係で対応付けられた前記アクチュエータでなかった場合には、前記記載要件を満足しないものと判断して、前記記載要件を満足しない前記基本動作が記載された前記座標位置を、問題座標位置として出力する
ことを特徴とする。
In order to solve the above-mentioned problems, the control program generating device of the present invention employs the following configuration.
A control program generating device (110) for generating a control program for an automatic manufacturing machine (1) having a plurality of actuators (10-20),
a basic operation storage unit (102) that stores basic operations (206) representing operations for each degree of freedom of the actuator in association with program elements that realize the basic operations;
an operation chart reading unit (103) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations , and the basic operations are assigned to any one of the partial periods selected for each basic operation from among the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine;
a description requirement determination unit (104) for determining whether the basic operation described in the operation chart satisfies a predetermined description requirement;
a control program generating unit (105) that generates the control program for operating the automatic manufacturing machine by combining the program elements of the plurality of basic operations assigned to the plurality of partial periods on the operation chart in accordance with the order of the partial periods on the operation chart when the plurality of basic operations in the operation chart satisfy the description requirements,
the operation chart read by the operation chart reading unit is an operation chart in which the plurality of partial periods are assigned to one axis side of a table format, the plurality of actuators are assigned to another axis side of the table format, and the basic operations are described at coordinate positions determined by coordinate values on the one axis side and coordinate values on the other axis side,
the basic operation storage unit stores a correspondence relationship between the actuator and the basic operation that can be executed by the actuator as the description requirement to be referenced by the description requirement determination unit;
The description requirement judgment unit acquires the coordinate position in which the basic operation is described, and if the actuator assigned to the coordinate value on the other axis side of the coordinate position is not the actuator associated with the basic operation in the correspondence relationship, judges that the description requirement is not satisfied, and outputs the coordinate position in which the basic operation that does not satisfy the description requirement is described as a problem coordinate position.
かかる本発明の制御プログラム生成装置では、自動製造機械の動作が、表形式の動作チャートに記述されている。表形式の動作チャートの一軸側には、自動製造機械が動作を開始してから終了するまでの動作期間を分割した複数の部分期間が割り当てられており、表形式の動作チャートの他軸側には、自動製造機械に搭載された複数のアクチュエータが割り当てられている。また、自動製造機械の動作は、アクチュエータの自由度毎の動作を表す複数の基本動作に分解されており、それらの基本動作に対しては、複数の部分期間の中から、その基本動作を実行する部分期間が1つ割り当てられている。そして、表形式の動作チャートは、一軸側の座標値と他軸側の座標値とによって決まる座標位置に基本動作が記載されることによって自動製造機械の動作が記述された動作チャートとなっている。このような動作チャートを読み込むと、動作チャートに記載された基本動作が、所定の記載要件を満足するか否かを判断する。記載要件としては、アクチュエータと、アクチュエータが実行可能な基本動作との対応関係を記憶している。そして、読み込んだ動作チャートの中から基本動作と、その基本動作が記載された座標位置とを取得して、座標位置の他軸側の座標値に割り当てられたアクチュエータが、基本動作に対して対応関係で対応付けられたアクチュエータであるか否かを判断する。その結果、基本動作が記載された座標位置から決まるアクチュエータと、基本動作から決まるアクチュエータとが一致している場合は、動作チャート中の基本動作が記載要件を満足するものと判断して、動作チャートから制御プログラムを生成する。これに対して、基本動作が記載された座標位置から決まるアクチュエータと、基本動作から決まるアクチュエータとが一致していない場合は、動作チャート中の基本動作が記載要件を満足していないものと判断して、基本動作の座標位置を問題座標位置として出力する。 In the control program generating device of the present invention, the operation of the automatic manufacturing machine is described in a tabular operation chart. A plurality of partial periods obtained by dividing the operation period from when the automatic manufacturing machine starts to when it finishes its operation are assigned to one axis of the tabular operation chart , and a plurality of actuators mounted on the automatic manufacturing machine are assigned to the other axis of the tabular operation chart . The operation of the automatic manufacturing machine is also decomposed into a plurality of basic operations that represent the operation of each degree of freedom of the actuator, and one partial period for executing the basic operation is assigned to each of the basic operations from among the plurality of partial periods. The tabular operation chart is an operation chart in which the operation of the automatic manufacturing machine is described by describing the basic operation at a coordinate position determined by the coordinate value on the one axis side and the coordinate value on the other axis side. When such an operation chart is read, it is determined whether the basic operation described in the operation chart satisfies a predetermined description requirement. As the description requirement, a correspondence relationship between the actuator and the basic operation that the actuator can execute is stored. Then, the basic operation and the coordinate position where the basic operation is described are obtained from the read operation chart, and it is determined whether or not the actuator assigned to the coordinate value on the other axis side of the coordinate position is an actuator associated with the basic operation in a corresponding relationship. If the actuator determined from the coordinate position where the basic operation is described matches the actuator determined from the basic operation, it is determined that the basic operation in the operation chart satisfies the description requirements, and a control program is generated from the operation chart. On the other hand, if the actuator determined from the coordinate position where the basic operation is described does not match the actuator determined from the basic operation, it is determined that the basic operation in the operation chart does not satisfy the description requirements, and the coordinate position of the basic operation is output as the problem coordinate position .
動作チャートは表形式で記載されており、基本動作が記載された座標位置の一軸側の座標値によって部分期間を指定し、座標位置の他軸側の座標値によってアクチュエータを指定するようになっている。更に、アクチュエータによって実行可能な基本動作は制限されている。その結果、座標位置の他軸側の座標値に応じて、動作チャートに記載可能な基本動作は制限されることになり、動作チャート上の任意の座標位置に任意の基本動作を記載できるわけではない。従って、動作チャートから制御プログラムを生成する際に、動作チャート上で基本動作が記載された座標位置を取得して、基本動作の座標位置から決まるアクチュエータと、基本動作から決まるアクチュエータとが一致している場合に、制御プログラムを生成することとすれば、記載ミスのある動作チャートから制御プログラムを生成する事態を抑制することが可能となる。また、動作チャートに記載ミスが見つかった場合には、記載ミスが見つかった座標位置が問題座標位置として出力されるので、記載ミスを容易に修正することも可能となる。 The operation chart is written in a table format, and a partial period is specified by the coordinate value on one axis of the coordinate position where the basic operation is written, and an actuator is specified by the coordinate value on the other axis of the coordinate position. Furthermore, the basic operations that can be executed by the actuator are limited. As a result, the basic operations that can be written in the operation chart are limited according to the coordinate value on the other axis of the coordinate position, and it is not possible to write any basic operation at any coordinate position on the operation chart. Therefore, when generating a control program from the operation chart, if the coordinate position on the operation chart where the basic operation is written is obtained, and the actuator determined by the coordinate position of the basic operation and the actuator determined by the basic operation match, it is possible to prevent the generation of a control program from an operation chart with a description error. Furthermore, if a description error is found in the operation chart, the coordinate position where the description error was found is output as the problem coordinate position, so that the description error can be easily corrected.
また、上述した本発明の制御プログラム生成装置においては、動作チャートの基本動作が、基本動作の定性的な内容を記述した動作記述(206a)と、基本動作の定量的な内容を数値によって記述した数値記述との組み合わせによって記載された動作チャートを読み込むようにしても良い。更に、動作記述と、動作記述に組み合わせて用いられる数値記述とを対応付けた組合せ対応関係を、所定の記載要件として記憶しておく。そして、座標位置に基本動作として記載された動作記述と数値記述との組み合わせが、組合せ対応関係を満足しなかった場合には、記載要件を満足しないものと判断して、問題座標位置を出力するようにしても良い。 The control program generation device of the present invention described above may also be configured to read an operation chart in which the basic operations of the operation chart are described by a combination of an operation description (206a) that describes the qualitative content of the basic operation and a numerical description that describes the quantitative content of the basic operation using numerical values. Furthermore, a combination correspondence that associates the operation description with the numerical description used in combination with the operation description is stored as a predetermined description requirement. Then, if the combination of the operation description and the numerical description described as the basic operation at a coordinate position does not satisfy the combination correspondence, it may be determined that the description requirement is not satisfied, and the problem coordinate position may be output.
こうすれば、動作チャート上で基本動作として記載された動作記述と数値記述との組み合わせが正しくなかった場合も、記載要件を満足しないと判断されるので、記載ミスのある動作チャートから制御プログラムを生成する事態を抑制することが可能となる。加えて、動作記述と数値記述との組み合わせが正しくない座標位置が問題座標位置として出力されるので、動作チャートの記載を容易に修正することが可能となる。 In this way, even if the combination of the operation description and the numerical description written as a basic operation on the operation chart is incorrect, it will be determined that the description requirements are not satisfied, making it possible to prevent a control program from being generated from an operation chart with a description error. In addition, the coordinate position where the combination of the operation description and the numerical description is incorrect is output as the problem coordinate position, making it possible to easily correct the description of the operation chart.
また、上述した本発明の制御プログラム生成装置においては、数値記述に対応する数値テーブルに設定可能な数値範囲を、数値記述毎に、記載要件として記憶しておいても良い。そして、数値テーブルに設定された数値が数値範囲内になかった場合には、記載要件を満足しないものと判断して問題座標位置を出力するようにしても良い。 In addition, in the control program generation device of the present invention described above, the range of values that can be set in the numerical table corresponding to the numerical description may be stored as a description requirement for each numerical description. Then, if the numerical value set in the numerical table is not within the numerical range, it may be determined that the description requirement is not satisfied, and the problem coordinate position may be output.
こうすれば、数値テーブルに設定された数値が適切でなかった場合も、記載要件を満足しないと判断されるので、記載ミスのある動作チャートから制御プログラムを生成する事態を抑制することが可能となる。加えて、数値テーブルに不適切な数値が設定された座標位置が問題座標位置として出力されるので、動作チャートの記載を容易に修正することが可能となる。 In this way, even if the values set in the numeric table are inappropriate, it will be determined that the description requirements are not met, making it possible to prevent the generation of a control program from an operation chart with a description error. In addition, the coordinate position where an inappropriate value is set in the numeric table is output as the problem coordinate position, making it possible to easily correct the description of the operation chart.
また、上述した本発明の制御プログラム生成装置においては、問題座標位置を出力する際に、満足しないと判断した記載要件を示すエラーコードも出力するようにしても良い。 In addition, in the control program generation device of the present invention described above, when outputting the problem coordinate position, an error code indicating the description requirement that is determined to be unsatisfied may also be output.
こうすれば、動作チャートの中で記載要件を満たしていない座標位置に加えて、記載要件を満たしていない内容も分かるので、動作チャートの記載を容易に修正することが可能となる。 In this way, not only can you see the coordinate positions in the operation chart that do not meet the description requirements, but you can also see the content that does not meet the description requirements, making it easy to correct the description in the operation chart.
A.装置構成 :
図1は、本実施例の自動製造機械1の大まかな外観形状を示した説明図である。本実施例の自動製造機械1は、長尺のパイプ材に対して自動で曲げ加工を施すことによって、所望の形状に加工する工作機械(いわゆるパイプベンダ)である。もちろん、本実施例の自動製造機械1は、複数のアクチュエータを搭載して、対象物に対して把持、搬送、加工、加熱などの複数の動作を自動で実行することができれば、パイプベンダ以外の製造機械であっても良い。例えば、食料品を自動で製造するための製造機械であっても良い。あるいは、複数の関節を有するアームロボットと搬送装置とを組み合わせた製造システムであっても良い。
A. Device configuration:
FIG. 1 is an explanatory diagram showing a rough external shape of the
図1に示したように、本実施例の自動製造機械1は、大まかには横長の直方体形状となっており、直方体の上面側には長手方向に2本のレール2が架設され、レール2上の一端側(図1では左側)には、加工対象の図示しないパイプ材を把持して搬送する搬送ユニット3が搭載されている。また、搬送ユニット3が搭載されている側に対して反対側には、図示しないパイプ材に曲げなどの加工を施す加工ユニット4が搭載されている。搬送ユニット3には、円柱形状の把持軸3aが突設されており、把持軸3aの先端には、図示しないパイプ材を把持するチャック3bが取り付けられている。このため、チャック3bでパイプ材を把持した状態で搬送ユニット3をレール2上で移動させることによって、パイプ材を加工ユニット4に供給し、そのパイプ材に対して加工ユニット4で曲げ加工などを施すことが可能となっている。
As shown in FIG. 1, the
本実施例の自動製造機械1は、搬送ユニット3の移動量によってパイプ材の送り量を制御することができるので、パイプ材に曲げ加工などを施す位置を自由に制御することができる。また、チャック3bが取り付けられた把持軸3aを軸回りに回転(いわゆる捻り動作)させることによって、所望の方向にパイプ材を曲げることも可能となっている。こうしたことを実現するために、搬送ユニット3の内部には、チャック3bを開閉させるためのアクチュエータ10や、把持軸3aを軸回りに回転させるためのアクチュエータ11や、把持軸3aを軸方向に進退動させるためのアクチュエータ12や、レール2上で搬送ユニット3を進退動させるためのアクチュエータ13などが搭載されている。本実施例の自動製造機械1では、これらのアクチュエータ10~13は何れも交流電源で動作するサーボモータが用いられているが、アクチュエータに要求される性能に応じて、他の駆動方式のアクチュエータ(例えば、油圧シリンダや、ソレノイドや、ステッピングモータなど)を採用することができる。尚、搬送ユニット3には、把持軸3aの回転位置や、搬送ユニット3の移動位置を検出するためのエンコーダや、リミットスイッチなどのセンサー類も搭載されているが、図面が煩雑となることを回避する目的で、図1では図示が省略されている。
In the
加工ユニット4の内部には、パイプ材を曲げるためのアクチュエータ19や、パイプ材を曲げる際に、パイプ材に力を加える位置を移動させるためのアクチュエータ18や、加工ユニット4全体を上下方向に移動させるためのアクチュエータ17や、パイプ材に対してフランジと呼ばれる平端面を形成したり、バルジと呼ばれる環状の凸部を形成したりするためのアクチュエータ20などが搭載されている。尚、加工ユニット4にも、エンコーダや、接点スイッチなどのセンサー類が搭載されているが、図面が煩雑となることを避けるため、これらについては図示が省略されている。
Inside the
また、加工ユニット4の内部には、上述した各種のアクチュエータ10~13、17~20を駆動するための複数のドライバ回路(図示は省略)が搭載されている。ここで、ドライバ回路とは、次のような機能を有する電気部品である。アクチュエータ10~13、17~20に所望の動作をさせるためには、アクチュエータ10~13、17~20に適切な波形の駆動電流を供給する必要がある。しかし、アクチュエータ10~13、17~20に供給するべき駆動電流は、アクチュエータ10~13、17~20の駆動方式によって異なっており、更に同じ方式のアクチュエータであっても、駆動電流の電流値はアクチュエータによって異なっている。そこで、アクチュエータ10~13、17~20にはドライバ回路と呼ばれる専用の電気部品が用意されており、ドライバ回路に対して駆動量を指定すると、ドライバ回路がアクチュエータ10~13、17~20に対して適切な駆動電流を出力し、その結果、アクチュエータ10~13、17~20が駆動されるようになっている。
In addition, the
更に、図1に示されるように、2本のレール2の下方の空間にも各種の機械部品が搭載されているが、この空間は、加工ユニット4内に搭載された複数のドライバ回路(図示は省略)から、搬送ユニット3内の各種のアクチュエータ10~13に向かって駆動電流を供給する電気ケーブル(図示は省略)や、搬送ユニット3に搭載された各種のセンサー類からの信号を、加工ユニット4に伝達するための信号ケーブル(図示は省略)などが配線される空間となっている。レール2上で搬送ユニット3が進退動する動きに伴って、これらの電気ケーブルや信号ケーブルが空間内で移動すると、互いに絡まったり、何かに引っ掛かったりする虞が生じる。そこで、こうした事態が発生することを避けるため、レール2の下方の空間には、電気ケーブルや信号ケーブルに不要な遊びがある場合はケーブルを手繰ることによって不要な遊びを解消し、電気ケーブルや信号ケーブルが引っ張られる場合は、手繰ったケーブルを送り出すことによって、ケーブルに適度な遊びを持たせるためのアクチュエータ14~16も搭載されている。本実施例の自動製造機械1では、アクチュエータ14~16としてエアシリンダが採用されており、これらのエアシリンダの動作も、図示しないドライバ回路によって制御されている。
Furthermore, as shown in FIG. 1, various mechanical parts are also mounted in the space below the two
以上に説明したように、自動製造機械1には多数のアクチュエータ10~20が搭載されている。そして、加工しようとする対象物(ここではパイプ材)を目的とする形状に自動で加工するためには、これらのアクチュエータ10~20を適切なタイミングで、適切に動作させる必要がある。これらのアクチュエータ10~20を駆動するのは、それぞれのアクチュエータ10~20のドライバ回路であるが、ドライバ回路がそれぞれのアクチュエータ10~20を駆動する動作は、後述する自動製造機械制御装置100が、予め読み込んでおいた制御プログラムに従って制御している。
As explained above, the automated
図2は、本実施例の自動製造機械制御装置100が、自動製造機械1に搭載されたアクチュエータ10~20の動作を制御する様子を概念的に示したブロック図である。尚、図2においても、制御に必要なセンサー類については図示が省略されている。図示されるように、自動製造機械制御装置100とアクチュエータ10との間には、アクチュエータ10の駆動用のドライバ回路10dが設けられており、自動製造機械制御装置100は、直接的にはドライバ回路10dを制御している。アクチュエータ11~20についても同様に、自動製造機械制御装置100とアクチュエータ11~20との間には、アクチュエータ11~20を駆動するためのドライバ回路11d~20dが設けられている。このように、自動製造機械制御装置100は、ドライバ回路10d~20dを介して、間接的にアクチュエータ10~20を制御する。
Figure 2 is a block diagram conceptually showing how the automatic manufacturing
また、図1を用いて前述したように、本実施例の自動製造機械1では、アクチュエータ10~13、17~20にサーボモータが採用されており、アクチュエータ14~16にはエアシリンダが採用されている。ここで、サーボモータとは、サーボ制御されたモータのことであり、位置(あるいは角度や、速度など)が目標値となるように、モータに流れる電流値をフィードバック制御することによって駆動されるモータである。また、エアシリンダとは、空気圧を利用して可動部を直線移動させるアクチュエータであり、圧縮空気の供給源に接続されたポートを開閉することによって動作するようになっている。また、ポートの開閉にはシーケンス制御が用いられている。
As described above with reference to FIG. 1, in the automated
このように本実施例の自動製造機械制御装置100には、サーボ制御されるアクチュエータ10~13、17~20と、シーケンス制御されるアクチュエータ14~16とが接続されている。図中で、自動製造機械制御装置100とアクチュエータ10~13、17~20とが実線で結ばれているのは、これらのアクチュエータ10~13、17~20がサーボ制御されていることを表している。また、自動製造機械制御装置100とアクチュエータ14~16とが破線で結ばれているのは、これらのアクチュエータ14~16がシーケンス制御されることを表している。もちろん、サーボ制御やシーケンス制御以外の方式で制御されるアクチュエータを接続することも可能である。
In this way, actuators 10-13 and 17-20 that are servo-controlled and actuators 14-16 that are sequence-controlled are connected to the automatic manufacturing
自動製造機械制御装置100は制御プログラムに従って、ドライバ回路10d~20dを介してアクチュエータ10~20を制御しており、その制御プログラムは、予め作成して自動製造機械制御装置100に読み込ませておく必要がある。ここで、図2に示したように多数のアクチュエータ10~20を、適切なタイミングで適切に動作させるための制御プログラムを作成するのは容易なことではない。特に、サーボ制御やシーケンス制御のように、異なる制御方式のアクチュエータが混在している場合は、制御プログラムの作成に長い期間が必要となる。このため、新たな自動製造機械1の開発期間の中で、半分以上の期間は制御プログラムの作成に費やされてしまうのが現状となっている。
The automatic manufacturing
そこで、本願の出願人らは、自動製造機械1の動作を特殊な動作チャート(YOGOチャート)に記述することで、自動製造機械1の制御プログラムを自動で生成する技術を開発した。YOGOチャートは、自動製造機械1の動作を理解していれば簡単に作成することが可能であり、YOGOチャートを作成しておけば自動で制御プログラムを生成することができるので、新たな自動製造機械1の開発期間を半分以下に短縮することが可能となる。
The applicants of the present application have therefore developed a technology that automatically generates a control program for the
B.YOGOチャート :
B-1.YOGOチャートから制御プログラムを自動で生成する原理 :
YOGOチャートについて説明する準備として、YOGOチャートから自動製造機械1の制御プログラムを自動で生成する原理について説明しておく。図3(a)には、各種の改良を施す前の原始的なYOGOチャートが示されている。後述する本実施例のYOGOチャートは、図3(a)に示した原始的なYOGOチャートを発展させて改良したものとなっているが、制御プログラムを自動で生成する原理は原始的なYOGOチャートと同じである。そこで、理解を容易とするために、図3(a)に示した原始的なYOGOチャートを用いて、制御プログラムを自動で生成する原理について説明する。
B. YOGO Chart:
B-1. Principle of automatically generating a control program from a YOGO chart:
As a preparation for explaining the YOGO chart, the principle of automatically generating a control program for the
YOGOチャートでは、自動製造機械1に搭載されたアクチュエータの基本的な動作を組み合わせることによって、自動製造機械1の動作を表現する。ここで、アクチュエータの基本的な動作とは、アクチュエータが有する自由度方向への動作(以下、基本動作)のことである。例えば、モータのような回転するアクチュエータであれば、回転動作が基本動作となり、シリンダのような進退動するアクチュエータであれば、進退動する動作が基本動作となる。また、モータによってボールねじを回転させることによって、ボールねじに噛み合う部材を進退動させるようなアクチュエータの場合は、モータの回転動作、あるいは部材が進退動する動作の何れかが基本動作となる。
In the YOGO chart, the operation of the automated
また、YOGOチャートでは、自動製造機械1が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、個々のアクチュエータの基本動作は、これらの部分期間の何れかに割り当てられている。図3(a)に示した例では、自動製造機械1が動作を開始した最初の部分期間1には、act1という基本動作が割り当てられている。図3(a)に示した原始的なYOGOチャートでいう基本動作とは、動作するアクチュエータと動作の内容とを表している。従って、部分期間1にactという基本動作を割り当てるということは、自動製造機械1が動作を開始すると、まず初めに動作するアクチュエータと、動作の内容とを指定していることになる。
In addition, in a YOGO chart, the operating period from when the
部分期間1の次の部分期間2には、act2,act3,act4の3つの基本動作が割り当てられている。上述したように原始的なYOGOチャートでいう基本動作とは、動作するアクチュエータと動作の内容とを表しているから、部分期間2に3つの基本動作が割り当てられているということは、自動製造機械1の動作開始後、最初に動作するアクチュエータの動作が終了したら、指定された3つのアクチュエータが、それぞれに指定された動作を開始することを表している。その次の部分期間3には、act5,act6の2つの基本動作が割り当てられている。このことは、部分期間2に割り当てられた3つのアクチュエータの動作が終了したら、部分期間3に割り当てられた2つのアクチュエータが指定された動作を開始することを表している。次の部分期間4には、act7の基本動作が割り当てられており、その次の部分期間5には、act8,act9の2つの基本動作が割り当てられている。このように、部分期間に基本動作を割り当てることによって、自動製造機械1が実行する一連の動作を記述することができる。尚、以上の説明から明らかなように、部分期間は、割り当てられたアクチュエータが動作する期間を示しており、時間の長さを示しているわけではない。それぞれの部分期間の時間の長さは、互いに異なっていることが通常である。
Three basic operations, act2, act3, and act4, are assigned to the
また、部分期間に割り当てられるアクチュエータの基本動作は、例えばモータを一定量だけ回転させたり、あるいはシリンダを一定量だけ進退動させたりするといった単純な動作である。従って、アクチュエータに基本動作させるための小さなプログラム(プログラム要素)を予め作成しておくことができる。例えば、部分期間1に割り当てられたact1という基本動作については、動作するアクチュエータおよび動作の内容が指定されているから、基本動作を実現するためのプログラム要素prog1を作成しておくことができる。同様に、act2~act9という基本動作についても、プログラム要素prog2~prog9を作成しておくことができる。
The basic operations of the actuators assigned to the partial periods are simple operations such as rotating a motor a fixed amount or moving a cylinder forward and backward a fixed amount. Therefore, small programs (program elements) for making the actuators perform basic operations can be created in advance. For example, for the basic operation act1 assigned to
そこで、これらのプログラム要素を、図3(a)に示した原始的なYOGOチャートに記述された通りに連結してやれば、自動製造機械1を動作させるための制御プログラムを自動で生成することが可能となる。すなわち、図3(b)に示したように、初めにプログラム要素prog1を起動させ、プログラム要素prog1が終了したらプログラム要素prog2~prog4を起動させ、プログラム要素prog2~prog4が全て終了したら、プログラム要素prog5およびプログラム要素prog6を起動させる。プログラム要素prog5およびprog6が終了したら、プログラム要素prog7を起動させ、プログラム要素prog7が終了したら、プログラム要素prog8およびプログラム要素prog9を起動させる。このように、あらかじめ作成しておいたプログラム要素を、YOGOチャートに記載された通りに結合していけば、自動製造機械1の動作を制御する制御プログラムを作成することができる。
If these program elements are linked as described in the primitive YOGO chart shown in FIG. 3(a), it becomes possible to automatically generate a control program for operating the
以上、YOGOチャートから自動製造機械1の制御プログラムを自動で生成する原理について説明した。自動製造機械1の動作をYOGOチャートに記述しておけば、自動製造機械1の制御プログラムを自動で生成することができる。もっとも、自動製造機械1が正しく動作する制御プログラムを生成するためには、YOGOチャートが正しく作成されている必要がある。以下に説明する本実施例のYOGOチャートは、こうした観点から、図3(a)に例示した原始的なYOGOチャートに対して様々な改良を加えた結果として得られたものである。
The above describes the principle of automatically generating a control program for the
B-2.YOGOチャートの概要 :
図4は、本実施例のYOGOチャート200の概要を説明するための説明図である。尚、YOGOチャート200の全体を表示するために縮尺すると、潰れて判読不能となってしまうので、図4ではYOGOチャート200の一部分(左上隅の部分)が表示されている。図4に示されるように、YOGOチャート200は、複数本の横線と複数本の縦線とが交差した大きな表のような形状となっている。以下では、交差する複数本の線の内、横線については「仕切線」201と称し、縦線については「トリガー線」202と称することにする。
B-2. Overview of YOGO Chart:
Fig. 4 is an explanatory diagram for explaining an overview of the
トリガー線202には、1番から始まる通し番号が付けられている。図4に示した例では、YOGOチャート200の上端の欄内に、その下のトリガー線202の通し番号が記載されている。また、互いに隣接するトリガー線202の間の領域は、図3を用いて前述した部分期間となっており、部分期間にも1番から始まる通し番号(以下、部分期間番号と称する)が付けられている。尚、図4に例示したYOGOチャート200では、トリガー線202が縦方向に引かれており、従って、トリガー線202とトリガー線202とに挟まれた部分期間は横方向に並んでいる。しかし、トリガー線202は横方向に引いても良く、この場合は、複数の部分期間が縦方向に並ぶことになる。
The trigger lines 202 are numbered consecutively starting from 1. In the example shown in FIG. 4, the consecutive numbers of the
また、本実施例のYOGOチャート200は、複数の仕切線201によって複数の横長の領域に分割されており、これらの横長の領域には1番から始まる通し番号(以下、アクチュエータ番号と称する)が付けられている。自動製造機械1に搭載されたアクチュエータは、何れかの領域に割り当てられている。図4に示した例では、アクチュエータ番号が1番の領域には、アクチュエータ10(図1参照)が割り当てられており、アクチュエータ番号が2番の領域にはアクチュエータ11(図1参照)が割り当てられ、アクチュエータ番号が3番の領域にはアクチュエータ12(図1参照)が、アクチュエータ番号が4番の領域にはアクチュエータ13(図1参照)が割り当てられている。本実施例の自動製造機械1にはアクチュエータ10~20の11個のアクチュエータが搭載されているから、これらすべてのアクチュエータについて、このように横長の領域が1つずつ割り当てられることになる。
The
そして、アクチュエータ10~20の基本動作は、そのアクチュエータ10~20が割り当てられた領域上に記載されるようになっている。例えば、アクチュエータ10を部分期間4で基本動作させるのであれば、YOGOチャート200上で、アクチュエータ番号が1番、部分期間番号が4番で特定されるマス目状の座標位置に、アクチュエータ10にさせたい基本動作を記載する。また、部分期間4と部分期間8とでアクチュエータ10に基本動作させるのであれば、アクチュエータ番号が1番で部分期間番号が4番のマス目状の座標位置と、アクチュエータ番号が1番で部分期間番号が8番の座標位置とに、アクチュエータ10にさせたい基本動作を記載することになる。このように、アクチュエータ10の基本動作は、YOGOチャート200上でアクチュエータ番号が1番の横長の領域上に記載され、アクチュエータ11の基本動作は、アクチュエータ番号が2番の横長の領域上に記載されるというように、アクチュエータ10~20の基本動作は、YOGOチャート200上でそのアクチュエータ10~20が割り当てられた領域上に記載されるようになっている。
The basic operations of actuators 10-20 are written in the areas to which actuators 10-20 are assigned. For example, if
また、本実施例のYOGOチャート200では、次のようにして基本動作を記述する。一例として、図4のYOGOチャート200で最初に動作するアクチュエータ13の基本動作について説明する。動作するアクチュエータはアクチュエータ13であり、且つ、最初に動作するのであるから、YOGOチャート200上で基本動作が記載される位置は、アクチュエータ番号が4番で、部分期間番号が1番のマス目状の座標位置となる。部分期間番号が1番のマス目は、1番のトリガー線202と、2番のトリガー線202とに挟まれているから、左側に存在する1番のトリガー線202から、右側に存在する2番のトリガー線202に向かって、アクチュエータの動作を示す動作線203を記載する。そして、動作線203の左端(従って1番のトリガー線202上)には動作の開始を示す始点204を記載し、動作線203の右端(従って2番のトリガー線202上)には動作の終了を示す終点205を記載する。図4に示した例では、動作線203は太い実線で示されており、始点204は白抜きの丸印で示されて、終点205は黒い丸印で示されている。
In addition, in the
更に、動作線203の上には、アクチュエータにさせようとする基本動作を記載する。ここで、本実施例のYOGOチャート200では、基本動作を「動作記述」と「数値テーブル」の2つの要素を用いて記載する。図4に示した例では、アクチュエータ番号が4番で、部分期間番号が1番の動作線203の上には、「Ω-AC」と「AC-B11」という2つの表示が記載されているが、「Ω-AC」という表示が動作記述206aであり、「AC-B11」という表示が数値テーブル206bである。そして、動作記述206aと数値テーブル206bとによって一つの基本動作206を表している。ここで、動作記述206aとは、大まかにいうと、基本動作206の定性的な内容(例えば、前進、後退、回転など)を記述した表示である。また、数値テーブル206bとは、大まかにいうと、基本動作206の定量的な内容(例えば、移動量や、速度や、トルクなど)を示す数値が設定されたテーブルである。動作記述206aおよび数値テーブル206bの詳細については後述する。
Furthermore, the basic operation to be performed by the actuator is described above the
従って、図4のYOGOチャート200上で、アクチュエータ番号が4番、部分期間番号が1番の座標位置に記載された「Ω-AC」、「AC-B01」という表示は、以下のような内容、すなわち、アクチュエータ番号が4番のアクチュエータ(図4の例ではアクチュエータ13)を、部分期間番号が1番のタイミングで、「Ω-AC」という動作記述206aに従って基本動作させ、且つ、基本動作させる際に使用する具体的な数値は、「AC-B01」という数値テーブル206bに設定された数値を用いることを表している。
Therefore, on the
また、図4のYOGOチャート200に示されるように、アクチュエータ10に対しては「Ω-AA」という動作記述206aが記載されているが、アクチュエータ11に対しては「Ω-AB」という動作記述206aが記載されている。この理由は、図1を用いて前述したように、アクチュエータ10はチャック3bを開閉させるためのアクチュエータであり、アクチュエータ11は把持軸3aを軸回りに回転させるためのアクチュエータであるためである。アクチュエータ10の基本動作206の動作記述206aは「開閉動作」となり、アクチュエータ11の基本動作206の動作記述206aは「回転動作」となるため、アクチュエータ10とアクチュエータ11とでは、異なる動作記述206aが使用される。同様な理由から、アクチュエータ11とアクチュエータ12とも、異なる動作記述206aが使用される。
As shown in the
これに対して、アクチュエータ12およびアクチュエータ13は「Ω-AC」という同じ動作記述206aが使用される。図1を用いて前述したように、アクチュエータ12は把持軸3aを軸方向に進退動させるためのアクチュエータであり、アクチュエータ13は搬送ユニット3の全体を進退動させるためのアクチュエータであって、移動させる対象物の大きさや重量や移動量などは大きく異なるが、対象物を進退動させる点では同じである。このため、アクチュエータ12およびアクチュエータ13は、同じ動作記述206aを使用することができる。また、アクチュエータ17は加工ユニット4の全体を上下動させるためのアクチュエータであるが、上下動は進退動の一種と考えることができるから、アクチュエータ17も、アクチュエータ12やアクチュエータ13と同じく「Ω-AC」という動作記述206aを使用することができる。更に、アクチュエータ14~16は、何れもエアシリンダを進退動させるアクチュエータであるから、これらは何れも「Ω-CA」という動作記述206aが使用されている。
On the other hand, the
このように、本実施例のYOGOチャート200では、アクチュエータの基本動作206を、原則として、動作記述206aと数値テーブル206bとを用いて記述する。こうすれば、多くのアクチュエータについて、動作記述206aを共通化することが可能となる。図1に示したように、本実施例の自動製造機械1にはアクチュエータ10~20の11個のアクチュエータが搭載されているが、YOGOチャート200で用いられる動作記述206aは4種類となっている。
In this way, in the
B-3.動作記述 :
図5は、本実施例のYOGOチャート200で用いられる動作記述206aの詳細についての説明図である。「Ω-AA」という動作記述206aは、アクチュエータに開閉動作させることを表す動作記述206aであり、この動作記述206aはACサーボモータにチャック機構を組み合わせたアクチュエータを想定している。逆に言えば、ACサーボモータにチャック機構を組み合わせたアクチュエータでない場合は、たとえ、そのアクチュエータの動作が開閉動作である場合でも、「Ω-AA」という動作記述206aを使用することはできない。
B-3. Operation description:
5 is an explanatory diagram of details of the
また、「Ω-AA」という動作記述206aは、ACサーボモータにチャック機構を組み合わせたアクチュエータに開閉動作させるという単純な動作内容を記述したものであるから、その動作内容を実現するための小さなプログラム(すなわち、プログラム要素)を予め作成しておくことができる。このことから、動作記述206aには、その動作内容を実現させるプログラム要素を特定するための通し番号(以下、プログラム要素番号)が対応付けて記憶されている。尚、同じように開閉動作するアクチュエータであっても、ACサーボモータにチャック機構を組み合わせたアクチュエータでない場合は、「Ω-AA」という動作記述206aを使用することができない理由は、動作記述206aにプログラム要素番号が対応付けて記憶されるからである。すなわち、アクチュエータの構造が異なれば、アクチュエータを動作させるためのプログラム要素は異なると考えられるので、対応付けられるプログラム要素が異なる以上、動作記述206aも異ならせておく必要があるためである。
The
また、図5に示すように、「Ω-AB」という動作記述206aは、ACサーボモータに減速機構を組み合わせたアクチュエータを想定して、そのアクチュエータに回転動作させることを表す動作記述206aであり、プログラム要素番号は7番が対応付けて記憶されている。同様に、「Ω-AC」という動作記述206aは、ACサーボモータにボールねじ機構を組み合わせたアクチュエータを想定して、そのアクチュエータに進退動作させることを表す動作記述206aであり、プログラム要素番号は4番が対応付けて記憶されている。更に、「Ω-CA」という動作記述206aは、エアシリンダによるアクチュエータを想定して、そのアクチュエータに進退動作させることを表す動作記述206aであり、プログラム要素番号は2番が対応付けて記憶されている。
As shown in FIG. 5, the
B-4.数値テーブル :
また、動作記述206aは、開閉動作や、回転動作、進退動作などのように、動作の内容を定性的に記述したものに過ぎず、動作量についての情報は含まれていない。このため動作記述206aは、原則として数値テーブル206bと組み合わせて使用される。例えば、図4に示したYOGOチャート200では、アクチュエータ番号が1番のアクチュエータ10に対して用いられる動作記述206aは「Ω-AA」であるが、部分期間番号が4番のタイミングでは「AA-B01」という数値テーブル206bが使用され、部分期間番号が6番のタイミングでは「AA-B02」という数値テーブル206bが、部分期間番号が10番のタイミングでは「AA-B01」という数値テーブル206bが使用されている。ここで、「AA-B01」という名称は、「Ω-AA」という動作記述206aと組み合わせて使用される「B01」という数値テーブル206bであることを表している。同様に、「AA-B02」という名称は、「Ω-AA」という動作記述206aと組み合わせて使用される「B02」という数値テーブル206bであることを表している。
B-4. Numerical table:
Moreover, the
図6は「Ω-AA」という動作記述206aと組み合わせて使用される数値テーブル206bを例示した説明図である。図6(a)には「AA-B01」という数値テーブル206bが示されており、図6(b)には「AA-B02」という数値テーブル206bが示されている。尚、図6では2つの数値テーブル206bが例示されているが、必要に応じてより多くの数値テーブル206bを設定することができる。図6に例示した数値テーブル206bには、「数値テーブル番号」、「開閉速度」、「開閉荷重」、「参照テーブル」の4つの項目が設定されている。このうちの「数値テーブル番号」は数値テーブル206bの通し番号である。例えば、数値テーブル番号を5番と指定すると、図6(a)の「AA-B01」という数値テーブル206bが特定され、数値テーブル番号を6番と指定すると、図6(b)の「AA-B02」という数値テーブル206bが特定されるようになっている。「参照テーブル」については後ほど説明する。
Figure 6 is an explanatory diagram illustrating an example of a numerical table 206b used in combination with an
また、図6に例示した数値テーブル206bには4つの項目が設定されているが、動作記述206aと組み合わせて、基本動作を記述するために用いられるのは、「開閉速度」と「開閉荷重」という2つの項目である。ここで、「開閉速度」と「開閉荷重」という2つの項目が設定されている理由は、この数値テーブル206bが、開閉動作を表す「Ω-AA」という動作記述206aと組み合わせて使用されるためである。すなわち、「Ω-AA」という動作記述206aだけでは、開閉動作させるという定性的な内容しか分からず、開閉動作させる速度や開閉時の荷重といった定量的な内容については分からない。そこで、数値テーブル206bに「開閉速度」および「開閉荷重」という項目を設けて、これらの数値を設定しておくようになっている。尚、数値テーブル206bの「開閉速度」にはプラスの数値が設定されているのは、閉動作させることを表しており(図6(a)参照)、マイナスの数値が設定されているのは開動作させることを表している(図6(b)参照)。
The numerical table 206b shown in FIG. 6 has four items, but the two items "opening/closing speed" and "opening/closing load" are used to describe the basic operation in combination with the
また、図4のYOGOチャート200では、アクチュエータ番号が2番のアクチュエータ11に対しては「Ω-AB」という動作記述206aが使用されるが、部分期間番号が2番のタイミングでは「AB-B01」という数値テーブル206bが組み合わせて用いられ、部分期間番号が8番のタイミングでは「AB-B02」という数値テーブル206bが組み合わせて用いられている。「AB-B01」および「AB-B02」という名称は、それぞれ「Ω-AB」という動作記述206aと組み合わせて使用される「B01」および「B02」という数値テーブル206bであることを表している。
In addition, in the
図7は「Ω-AB」という動作記述206aと組み合わせて使用される数値テーブル206bを例示した説明図である。図7(a)には「AB-B01」という数値テーブル206bが示されており、図7(b)には「AB-B02」という数値テーブル206bが示されている。尚、図7では2つの数値テーブル206bが例示されているが、必要に応じてより多くの数値テーブル206bを設定することができる。図7に例示した数値テーブル206bには、「数値テーブル番号」および「参照テーブル」に加えて、「回転角度」、「回転速度」、「回転トルク」の全部で5つの項目が設定されている。これらの内で「回転角度」、「回転速度」、「回転トルク」の項目が、動作記述206aと組み合わせて、基本動作を記述するために用いられる項目である。また、図7の数値テーブル206bに「回転角度」、「回転速度」、「回転トルク」の項目が設定されている理由は、この数値テーブル206bが、回転動作を表す「Ω-AB」という動作記述206aと組み合わせて使用されるためである。すなわち、「Ω-AB」という動作記述206aだけでは回転動作させることしか分からないので、回転させる角度や、回転させる速度、回転させるトルクについては、「回転角度」、「回転速度」、「回転トルク」という項目で数値テーブル206bに数値を設定しておくようになっている。尚、数値テーブル206bの「回転角度」にプラスの数値が設定される場合と、マイナスの数値が設定される場合とが存在するのは、回転方向が逆であることを表している。
Figure 7 is an explanatory diagram illustrating a numerical table 206b used in combination with an
更に、図4のYOGOチャート200では、アクチュエータ番号が3番のアクチュエータ12、4番のアクチュエータ13、および8番のアクチュエータ17に対しては、何れも「Ω-AC」という動作記述206aが使用されている。その一方で、数値テーブル206bについては、アクチュエータ番号が3番のアクチュエータ12と4番のアクチュエータ13と8番のアクチュエータ17とで、異なる数値テーブル206bが使用されている。すなわち、アクチュエータ番号が3番のアクチュエータ12に対しては、「AC-B01」あるいは「AC-B02」という数値テーブル206bが組み合わせて用いられ、アクチュエータ番号が4番のアクチュエータ13に対しては、「AC-B11」あるいは「AC-B12」という数値テーブル206bが、アクチュエータ番号が8番のアクチュエータ17に対しては、「AC-B21」あるいは「AC-B22」という数値テーブル206bが組み合わせて用いられている。ここで、「AC-B01」、「AC-B02」、「AC-B11」、「AC-B12」、「AC-B21」、「AC-B22」という名称は、それぞれ「Ω-AC」という動作記述206aと組み合わせて使用される「B01」、「B02」、「B11」、「B12」、「B21」、「B22」という数値テーブル206bであることを表している。
Furthermore, in the
更に、図4のYOGOチャート200で、アクチュエータ番号が5番のアクチュエータ14、6番のアクチュエータ15、および7番のアクチュエータ16に対しては、何れも「Ω-CA」という動作記述206aが使用されている。これは、アクチュエータ14~16が何れもエアシリンダであり、基本動作の内容が「進退動作」であることに対応している。また、「Ω-CA」という動作記述206aに対しては、数値テーブル206bが組み合わされていない。この理由は、アクチュエータ14~16が、2つの動作ポートの内で空気圧を加える動作ポートを切り換えることで動作するエアシリンダであるため、動作の内容を記述するために定量的な数値を用いる必要が無いためである。
Furthermore, in the
以上に詳しく説明したように、本実施例のYOGOチャート200では、部分期間番号とアクチュエータ番号との組み合わせで規定される座標位置に、基本動作を記載することによって、基本動作させるアクチュエータと基本動作させるタイミングとを特定する。更に、基本動作は、原則として、動作記述206aと数値テーブル206bとの組み合わせによって表現することとしている。
As explained in detail above, in the
B-5.参照テーブル :
図6および図7に例示したように、本実施例の数値テーブル206bには「参照テーブル」という項目も設定されている。この参照テーブルは、数値テーブル206bに誤った数値を設定することを防止するためのものである。
B-5. Reference table:
6 and 7, the numerical value table 206b of this embodiment also has an item called "reference table." This reference table is for preventing an incorrect numerical value from being set in the numerical value table 206b.
図8は、図6に示した数値テーブル206bに設定されている参照テーブルを例示した説明図である。図8(a)には、図6(a)の数値テーブル206b(AA-B01)に設定された参照テーブル(AA-A01)が示されている。また、図8(b)には、図6(b)の数値テーブル206b(AA-B02)に設定された参照テーブル(AA-A02)が示されている。図8に示したこれらの参照テーブルには、「最大速度」、「最大荷重」、「チャック機構減速比」、「チェック機構対応直径範囲」という4つの項目が設定されている。 Figure 8 is an explanatory diagram illustrating the reference tables set in the numerical table 206b shown in Figure 6. Figure 8(a) shows the reference table (AA-A01) set in the numerical table 206b (AA-B01) in Figure 6(a). Figure 8(b) shows the reference table (AA-A02) set in the numerical table 206b (AA-B02) in Figure 6(b). These reference tables shown in Figure 8 have four items set: "maximum speed", "maximum load", "chuck mechanism reduction ratio", and "check mechanism compatible diameter range".
これらの項目は、図8の参照テーブル(AA-A01、AA-A02)が、図6に示した数値テーブル206b(AA-B01、AA-B02)から参照されることに対応している。すなわち、数値テーブル206b(AA-B01、AA-B02)は「開閉速度」および「開閉荷重」の数値が設定されるテーブルであるが(図6参照)、設定可能な開閉速度の最大値および開閉荷重の最大値が、それぞれ「最大速度」および「最大荷重」として参照テーブルに設定されている。 These items correspond to the reference tables (AA-A01, AA-A02) in FIG. 8 being referenced from the numerical table 206b (AA-B01, AA-B02) shown in FIG. 6. That is, the numerical table 206b (AA-B01, AA-B02) is a table in which the numerical values of "opening/closing speed" and "opening/closing load" are set (see FIG. 6), but the maximum settable opening/closing speed and maximum opening/closing load are set in the reference table as "maximum speed" and "maximum load", respectively.
そして、図6(a)の数値テーブル206b(AA-B01)を作成する際には、「参照テーブル」という項目に「AA-A01」と設定しておく。同様に、図6(b)の数値テーブル206b(AA-B02)を作成する際には、「参照テーブル」という項目に「AA-A02」と設定しておく。こうすれば、数値テーブル206b(AA-B01、AA-B02)の「開閉速度」あるいは「開閉荷重」という項目の数値を設定する際に、図8(a)あるいは図8(b)の参照テーブルの「最大速度」あるいは「最大荷重」の項目が参照されて、最大速度や最大荷重を超える不適切な数値が設定されないようにすることができる。 When creating the numerical table 206b (AA-B01) of FIG. 6(a), the item "Reference table" is set to "AA-A01". Similarly, when creating the numerical table 206b (AA-B02) of FIG. 6(b), the item "Reference table" is set to "AA-A02". In this way, when setting a numerical value for the "Opening/closing speed" or "Opening/closing load" item of the numerical table 206b (AA-B01, AA-B02), the "Maximum speed" or "Maximum load" item of the reference table of FIG. 8(a) or FIG. 8(b) is referenced, and it is possible to prevent an inappropriate numerical value that exceeds the maximum speed or maximum load from being set.
また、図8(a)および図8(b)の参照テーブルには、「チャック機構減速比」や「チャック機構対応直径範囲」という項目も設定されている。これらは、アクチュエータの機械的な特性を記述したものである。すなわち、参照テーブルは数値テーブル206bから参照されており、数値テーブル206bは具体的なアクチュエータを想定して設定されるものである。従って、参照テーブルも具体的なアクチュエータを想定して設定されていることになる。例えば、図8(a)や図8(b)の参照テーブルは図6(a)や図6(b)の数値テーブル206bから参照されており、これらの数値テーブル206bはアクチュエータ10に対して用いられるから、図8(a)や図8(b)の参照テーブルもアクチュエータ10に対して用いられることになる。
The reference tables of Fig. 8(a) and Fig. 8(b) also have items such as "Chuck mechanism reduction ratio" and "Chuck mechanism compatible diameter range". These describe the mechanical characteristics of the actuator. That is, the reference tables are referenced from the numerical table 206b, and the numerical table 206b is set assuming a specific actuator. Therefore, the reference tables are also set assuming a specific actuator. For example, the reference tables of Fig. 8(a) and Fig. 8(b) are referenced from the numerical table 206b of Fig. 6(a) and Fig. 6(b), and since these numerical table 206b are used for the
このように、参照テーブルはそれぞれに固有のアクチュエータに適用される。そこで、そのアクチュエータの機械的な特性を参照テーブルに設定しておく。図8に例示した参照テーブルは、ACサーボモータにチャック機構を組み合わせてチャック3bを開閉させるアクチュエータ10に適用される。このことに対応して、チャック機構の減速比や、チャック機構で把持可能な部材の直径範囲などの機械的な特性が、参照テーブルに設定されている。こうして参照テーブルに特性値を設定しておけば、ACサーボモータを制御する際にこれらの機械的な特性が必要となった場合でも、参照テーブルを参照して特性値を読み出すことができるので、誤った特性値がモータの制御に用いられて、アクチュエータが誤って制御されてしまう事態を回避することが可能となる。
In this way, each reference table is applied to a specific actuator. Therefore, the mechanical characteristics of the actuator are set in the reference table. The reference table shown in FIG. 8 is applied to an
図9は、図7に示した2つの数値テーブル206bに設定されている参照テーブルを例示した説明図である。図9(a)は、図7(a)の数値テーブル206b(AB-B01)に設定された参照テーブル(AB-A01)を示しており、図9(b)は、図7(b)の数値テーブル206b(AB-B02)に設定された参照テーブル(AB-A02)を示している。これらの参照テーブルには、「角度範囲」、「最大回転速度」、「最大回転トルク」、「減速比」という4つの項目が設定されている。 Figure 9 is an explanatory diagram illustrating the reference tables set in the two numerical table 206b shown in Figure 7. Figure 9(a) shows the reference table (AB-A01) set in the numerical table 206b (AB-B01) of Figure 7(a), and Figure 9(b) shows the reference table (AB-A02) set in the numerical table 206b (AB-B02) of Figure 7(b). These reference tables have four items set: "angle range", "maximum rotation speed", "maximum rotation torque", and "reduction ratio".
この内で「角度範囲」、「最大回転速度」、「最大回転トルク」という項目は、これらの参照テーブル(AB-A01、AB-A02)が、図7に示した数値テーブル206b(AB-B01、AB-B02)から参照されることに対応する。すなわち、数値テーブル206b(AB-B01、AB-B02)は「回転角度」、「回転速度」、および「回転トルク」の数値が設定されるテーブルであり(図7参照)、これに対応して、実際に取り得る最大の角度範囲や、最大回転速度、最大回転トルクが、それぞれ参照テーブルに設定されている。 Of these, the items "angle range", "maximum rotation speed", and "maximum rotation torque" correspond to these reference tables (AB-A01, AB-A02) being referenced from the numerical table 206b (AB-B01, AB-B02) shown in FIG. 7. In other words, the numerical table 206b (AB-B01, AB-B02) is a table in which the numerical values of "rotation angle", "rotation speed", and "rotation torque" are set (see FIG. 7), and correspondingly, the maximum angle range that can actually be obtained, the maximum rotation speed, and the maximum rotation torque are each set in the reference table.
図7(a)や図7(b)の数値テーブル206b(AB-B01、AB-B02)を作成する際には、「参照テーブル」という項目に「AB-A01」あるいは「AB-A02」と設定しておく。こうすれば、数値テーブル206b(AB-B01、AB-B02)の「回転角度」の数値を設定する際に、参照テーブルの「角度範囲」という項目が参照されて、回転後の角度が±180度を超える数値が設定できないようにすることができる。また、数値テーブル206b(AB-B01、AB-B02)の「回転速度」や「回転トルク」の数値を設定する際にも、参照テーブルの「最大回転速度」や「最大回転トルク」という項目が参照されて、最大回転速度や最大回転トルクを超える不適切な数値が設定されないようにすることができる。加えて、図9に例示した参照テーブルにも、参照テーブルが用いられるアクチュエータ(ここでは、アクチュエータ11)の機械的な特性値として、減速機構の「減速比」が設定されている。 When creating the numerical table 206b (AB-B01, AB-B02) of FIG. 7(a) or FIG. 7(b), the item "reference table" is set to "AB-A01" or "AB-A02". In this way, when setting the numerical value of the "rotation angle" of the numerical table 206b (AB-B01, AB-B02), the item "angle range" of the reference table is referenced, so that it is possible to prevent the setting of a numerical value that exceeds ±180 degrees after rotation. Also, when setting the numerical values of the "rotation speed" and "rotation torque" of the numerical table 206b (AB-B01, AB-B02), the items "maximum rotation speed" and "maximum rotation torque" of the reference table are referenced, so that it is possible to prevent the setting of an inappropriate numerical value that exceeds the maximum rotation speed or maximum rotation torque. In addition, in the reference table illustrated in FIG. 9, the "reduction ratio" of the reduction mechanism is set as a mechanical characteristic value of the actuator (here, actuator 11) for which the reference table is used.
その他の数値テーブル206b(例えば、図4中に記載されたAC-B01、AC-B02、AC-B11、AC-B12、AC-B21、AC-B22など)についても、同様の参照テーブルが設定されている。数値テーブル206bを作成する際には、それぞれの数値テーブル206bの「参照テーブル」という項目に、適切な参照テーブルを設定しておくことで、数値テーブル206bに不適切な数値が設定されないようにすることができる。 Similar reference tables are set for the other numeric tables 206b (for example, AC-B01, AC-B02, AC-B11, AC-B12, AC-B21, AC-B22, etc. shown in FIG. 4). When creating the numeric tables 206b, by setting an appropriate reference table in the "Reference Table" field of each numeric table 206b, it is possible to prevent inappropriate numeric values from being set in the numeric tables 206b.
以上に詳しく説明したように、本実施例のYOGOチャートでは、アクチュエータ番号と、部分期間番号とによって特定されるマス目状の座標位置に、動作記述206aおよび数値テーブル206bを用いてアクチュエータの基本動作を記載する。そして、自動製造機械1に搭載された全てのアクチュエータ10~20の基本動作を、このようにしてYOGOチャート上に記載することによって、自動製造機械1の動作を記述する。そして、自動製造機械制御装置100は、このようなYOGOチャートから制御プログラムを生成して、自動製造機械1の動作を制御する。
As explained in detail above, in the YOGO chart of this embodiment, the basic operations of the actuators are described using the
C.本実施例の自動製造機械制御装置100 :
図10は、本実施例の自動製造機械制御装置100の内部構造を示した説明図である。図10に示されるように、本実施例の自動製造機械制御装置100は、YOGOチャート作成部101や、基本動作記憶部102や、YOGOチャート読込部103や、YOGOチャート解析部104や、制御プログラム生成部105や、制御実行部106などを備えている。尚、これらの「部」は、自動製造機械制御装置100を用いてYOGOチャート200を作成し、そのYOGOチャート200から制御プログラムを生成して自動製造機械1の動作を制御するために、自動製造機械制御装置100が備える複数の機能を表した抽象的な概念である。従って、自動製造機械制御装置100が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、CPUで実行されるプログラムの形態で実現することもできるし、ICチップやLSIなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。また、自動製造機械制御装置100中の基本動作記憶部102、YOGOチャート解析部104、および制御プログラム生成部105をまとめて、制御プログラム生成装置110として把握することができる。
C. Automatic manufacturing
FIG. 10 is an explanatory diagram showing the internal structure of the automatic manufacturing
YOGOチャート作成部101は、モニター画面100mや、操作入力ボタン100sなどに接続されており、自動製造機械1について十分な知識を有する機械技術者などが、モニター画面100mを見ながら操作入力ボタン100sを操作することによって、図4に例示したようなYOGOチャート200を作成する。前述したように、YOGOチャート200は自動製造機械1に搭載されている複数のアクチュエータの基本動作を、部分期間の何れかに割り当てることによって、自動製造機械1の動作を記述したものである。自動製造機械1の機械設計を行った機械設計技術者や、自動製造機械1の構造や動作について十分な知識を有する技術者であれば、簡単にYOGOチャート200を作成することができる。
The YOGO
また、本実施例では、YOGOチャートに基本動作を記載する際には、原則として動作記述206aと数値テーブル206bとを用いて基本動作を記載することになっているが、アクチュエータに応じて、使用可能な動作記述206aは決まっている(図5参照)。そこで、基本動作記憶部102には、アクチュエータの名称と、そのアクチュエータで使用可能な動作記述206aとが対応付けて予め記憶されている。
In addition, in this embodiment, when describing a basic action in a YOGO chart, the basic action is described in principle using the
図11は、アクチュエータの名称と、使用可能な動作記述206aとが対応付けられて基本動作記憶部102に記憶されている様子を示した説明図である。図示されるように基本動作記憶部102には、アクチュエータ毎に使用可能な動作記述206aが記憶されている。例えば、アクチュエータ10に対しては、使用可能な動作記述206aとして「Q-AA」が記憶されている。また、アクチュエータ18に対しては、使用可能な動作記述206aとして、「Q-AB」および「Q-AD」の2つの動作記述206aが記憶されている。また、それぞれのアクチュエータには、アクチュエータの構造や、アクチュエータの基本動作の内容も併せて記憶されている。
Figure 11 is an explanatory diagram showing how actuator names and
また、前述したように動作記述206aは原則として数値テーブル206bと組み合わせて用いられるが、動作記述206aに対して組み合わせることが可能な数値テーブル206bは予め決まっている。そこで、基本動作記憶部102には、動作記述206a毎に、組み合わせることが可能な数値テーブル206bも記憶されている。
As mentioned above, the
図12は、動作記述206aと、その動作記述206aに組み合わせることが可能な数値テーブル206bとが対応付けて記憶されている様子を示した説明図である。例えば、「Q-AA」という動作記述206aに対しては、組み合わせ可能な数値テーブル206bとして、「AA-B01」および「AA-B02」という2つの数値テーブル206bが記憶されている。更に、「AA-B01」という数値テーブル206bに対しては、その数値テーブル206bから参照される参照テーブルとして、「AA-A01」が記憶されている。同様に、「AA-B01」という数値テーブル206bに対しては、「AA-A01」という参照テーブルが記憶されている。このように、本実施例の基本動作記憶部102には、数値テーブル206bから参照される参照テーブルも、数値テーブル206bに対応付けて記憶されている。
Figure 12 is an explanatory diagram showing how an
更に、基本動作記憶部102には、図13に示すように、動作記述206aと、動作記述206aに対応するプログラム要素番号も記憶されている。図5を用いて前述したように、ブログラム要素とは、動作記述206aを実現するための小さなプログラムのことである。また、ブログラム要素番号とは、プログラム要素を特定するための通し番号のことである。
Furthermore, as shown in FIG. 13, the basic
上述した基本動作記憶部102は、YOGOチャート作成部101に接続されており、YOGOチャート200を作成するに際しては基本動作記憶部102を参照することができる。そして、自動製造機械1について十分な知識を有する機械技術者であれば、どのようなアクチュエータをどのように動作させるかは十分に分かっているので、アクチュエータに応じて使用可能な動作記述206aの中から適切な動作記述206aを選択し、更に動作記述206aに組み合わせる数値テーブル206bも選択することができる。
The basic
YOGOチャート読込部103は、YOGOチャート作成部101で作成したYOGOチャート200を読み込んで、後述するYOGOチャート解析部104に出力する。尚、本実施例では、自動製造機械制御装置100でYOGOチャート200を作成するものとしているが、自動製造機械1とは別体に設けたコンピュータ50でYOGOチャート200を作成しておき、そのYOGOチャート200をYOGOチャート読込部103が読み込むようにしても良い。また、本実施例のYOGOチャート読込部103は、本発明における「動作チャート読込部」に対応する。
The YOGO
YOGOチャート解析部104は、YOGOチャート読込部103から受け取ったYOGOチャート200を解析することによって、YOGOチャート200の記載が所定の記載要件を満足しているか否かを判断する。そして、YOGOチャート200が記載要件を満足していた場合は、基本動作記憶部102を参照しながら、YOGOチャート200から中間データを生成して制御プログラム生成部105に出力する。YOGOチャート200から中間データを生成する処理については、後ほど詳しく説明する。尚、本実施例のYOGOチャート解析部104は、YOGOチャート200が所定の記載要件を満足するか否かを判断していることから、本発明における「記載要件判断部」に対応する。
The YOGO
制御プログラム生成部105は、中間データを受け取ると、基本動作記憶部102を参照することによって、中間データから制御プログラムを生成する。中間データから制御プログラムを生成する方法については、後ほど詳しく説明する。そして、得られた制御プログラムを制御実行部106に出力する。
When the control
制御実行部106は、制御プログラム生成部105から制御プログラムを受け取ると、その制御プログラムに従って、アクチュエータ10~20の動作を制御する。その結果、自動製造機械1に搭載されたアクチュエータ10~20が、YOGOチャート200に記述された通りに動作することになる。
When the
D.制御プログラム生成処理 :
図14は、本実施例の自動製造機械制御装置100の中で実行される制御プログラム生成処理の概要を示したフローチャートである。図示されるように、制御プログラム生成処理では、先ず初めにYOGOチャート200を読み込む(STEP1)。本実施例では、自動製造機械制御装置100がYOGOチャート200を作成しているから、作成したYOGOチャート200のデータを読み込むことになる。もちろん、他のコンピュータ50で作成したYOGOチャート200のデータを読み込んでも良い。
D. Control program generation process:
14 is a flow chart showing an overview of the control program generation process executed in the automatic manufacturing
続いて、読み込んだYOGOチャート200を解析して中間データを出力する(STEP2)。このとき、YOGOチャート200が所定の記載要件を満足しているか否かを判断して、記載要件を満足していると判断した場合に、中間データを生成するようになっている。YOGOチャート200を解析して中間データを出力する処理(YOGOチャート解析処理)の詳細については後述する。
Then, the loaded
図15は、YOGOチャート200から生成された中間データを例示した説明図である。図示されるように中間データは、部分期間番号Nと、アクチュエータ番号Mと、動作記述206aと、数値テーブル206bとが、この順序で並んだ一組のデータ(以下、「データレコード」と呼ぶ)が集まったものとなっている。また、各データレコードの部分期間番号Nは、「1」~部分期間番号Nの最終値までの何れかの値を取り、アクチュエータ番号Mは、YOGOチャート200に記載されたアクチュエータ番号Mの何れかの値を取る。また、YOGOチャート200上の全ての部分期間番号Nは、必ず何れかのデータレコードに記載されており、YOGOチャート200に記載された全てのアクチュエータ番号Mは、必ず何れかのデータレコードに記載されている。図14のSTEP2の処理では、図4に例示したYOGOチャート200から、図15に例示するような中間データを生成する。
FIG. 15 is an explanatory diagram illustrating intermediate data generated from
続いて、図14の制御プログラム生成処理では、中間データから制御プログラムを生成する(STEP3)。図16には、図15に例示した中間データから生成された制御プログラムが示されている。図15に示した中間データのデータレコードと、図16に示した制御プログラムのデータレコードとを比較すれば明らかなように、制御プログラムのデータレコードは、中間データのデータレコード中の動作記述206aが、その動作記述206aに対応するプログラム要素番号Pに置き換えられ(図13参照)、中間データのデータレコード中の数値テーブル206bが、その数値テーブル206bに対応する数値テーブル番号Tに置き換えられたものとなっている(図6、図7参照)。
Next, in the control program generation process of FIG. 14, a control program is generated from the intermediate data (STEP 3). FIG. 16 shows a control program generated from the intermediate data exemplified in FIG. 15. As is clear from a comparison of the data records of the intermediate data shown in FIG. 15 and the data records of the control program shown in FIG. 16, the data records of the control program have the
中間データ中の動作記述206aおよび数値テーブル206bを、それぞれプログラム要素番号および数値テーブル番号に置き換える操作は、図10中の制御プログラム生成部105が、基本動作記憶部102を参照することによって実行される。すなわち、基本動作記憶部102には、動作記述206aがプログラム要素番号と対応付けて記憶されている(図13参照)。更に、基本動作記憶部102には、図6や図7に例示した数値テーブル206bが記憶されており、それぞれの数値テーブル206bには数値テーブル番号が設定されている。そこで、制御プログラム生成部105は、基本動作記憶部102に記憶されている図13の対応関係や、図6や図7に例示した数値テーブル206bを参照することによって、中間データ中の動作記述206aや数値テーブル206bを、プログラム要素番号および数値テーブル番号に置き換えて行く。
The operation of replacing the
以上のようにして、中間データから制御プログラムを生成したら(図14のSTEP3)、生成した制御プログラムを、自動製造機械制御装置100の制御実行部106に出力して(STEP4)、図14の制御プログラム生成処理を終了する。そして、本実施例の制御実行部106は、このような制御プログラムに従って、自動製造機械1に搭載されたアクチュエータ10~20の動作を制御する。制御実行部106が図16に例示した制御プログラムに従って、アクチュエータ10~20の動作を制御する処理については後述する。
Once the control program is generated from the intermediate data in the above manner (
E.YOGOチャート解析処理 :
図17は、本実施例の自動製造機械制御装置100が、YOGOチャートを解析して中間データを出力する処理(YOGOチャート解析処理)のフローチャートである。この処理は、図14に示した制御プログラム生成処理のSTEP2で、YOGOチャート解析部104(図10参照)によって実行される処理である。
E. YOGO Chart Analysis Processing:
17 is a flowchart of a process (YOGO chart analysis process) in which the automated manufacturing
図17に示したように、YOGOチャート解析処理(STEP2)を開始すると、先ず初めに、部分期間番号Nおよびアクチュエータ番号Mを「1」に初期化する(STEP10)。部分期間番号NとはYOGOチャート200の複数の部分期間に付けられた通し番号である(図4参照)。また、アクチュエータ番号Mとは、YOGOチャート200の上で仕切線201によって区分された複数の横長の領域に付けられた通し番号である(図4参照)。YOGOチャート200上の横長の領域には、1つずつアクチュエータが割り当てられるので、アクチュエータ番号Mを指定することによってアクチュエータを特定することができる。
As shown in FIG. 17, when the YOGO chart analysis process (STEP 2) starts, first the partial period number N and actuator number M are initialized to "1" (STEP 10). The partial period number N is a serial number assigned to the multiple partial periods of the YOGO chart 200 (see FIG. 4). Also, the actuator number M is a serial number assigned to the multiple horizontally long areas divided by the
続いて、YOGOチャート200上での座標(N,M)の位置に、動作線203の始点204が記載されているか否かを判断する(STEP11)。STEP10で部分期間番号Nおよびアクチュエータ番号Mを初期化した直後は、NおよびMは何れも「1」であるから、YOGOチャート200上の座標位置(1,1)に始点204が記載されているか否かを判断することになる。ここで、座標位置(N,M)に始点204が記載されている状態とは、次のような状態を指している。
Next, it is determined whether the
先ず、YOGOチャート200上の座標位置(N,M)とは、YOGOチャート200上で、部分期間番号Nとアクチュエータ番号Mとの組み合わせで特定されるマス目状の座標位置を表している。また、図4を用いて前述したように、部分期間番号Nの部分期間(すなわち、先頭からN番目の部分期間)は、先頭からN番目のトリガー線202と、N+1番目のトリガー線202との間に形成されている。更に、本実施例のYOGOチャート200では、トリガー線202の上に動作線203の始点204を記載することになっている。従って、座標位置(N,M)に始点204が記載されている状態とは、部分期間番号Nとアクチュエータ番号Mとの組み合わせで特定されるマス目に着目して、そのマス目の一辺を形成するN番目のトリガー線202に始点204が記載されている状態を指している。
First, the coordinate position (N, M) on the
また、YOGOチャート解析処理のSTEP11で、座標位置(N,M)に始点204が記載されているか否かを判断している理由は、次のようなものである。先ず、図4を用いて前述したように、YOGOチャート200は部分期間に基本動作206を割り当てることによって記述されており、基本動作206は、動作の始まりを示す始点204と、動作の終わりを示す終点205との間に引かれた動作線203上に記載されることになっている。従って、YOGOチャート200上に始点204が記載されていれば、その始点204から動作線203が引かれて、動作線203の上に基本動作206が記載されているものと考えられる。そこで、YOGOチャート200から基本動作206を抽出するための手掛かりとして、YOGOチャート200上に記載された始点204を探索するのである。
The reason for determining whether or not the
図4に例示したYOGOチャート200の場合では、座標位置(1,1)には始点204は記載されていないから、STEP11では「no」と判断して、アクチュエータ番号Mが最終値に達したか否かを判断する(図18のSTEP28)。本実施例の自動製造機械1には11個のアクチュエータ10~20が搭載されているから、アクチュエータ番号Mの最終値は11となる。従って、座標位置(1,1)での始点204の有無を確認した後のSTEP28の判断では、「no」と判断されるので、アクチュエータ番号Mに1を加算する(STEP29)。そして、加算後の新たなアクチュエータ番号Mを用いて、再び、座標位置(N,M)に始点204が記載されているか否かを判断する(図17のSTEP11)。
In the case of the
このように、部分期間番号Nは「1」のまま、アクチュエータ番号Mを1つずつ増加させながら、座標位置(1,M)に始点204が記載されているか否かを判断していくと、やがては、始点204が記載されている座標位置(1,M)に到達して、STEP11で「yes」と判断されることになる。
In this way, while keeping the partial period number N at "1", the actuator number M is incremented by one while determining whether the
そして、STEP11で「yes」と判断された場合は、始点204が記載された座標位置(N,M)が見つかったことになるので、その座標位置(N,M)に記載されている内容が、以下のような記載要件、
[記載要件1]:始点204に対応する終点205が存在すること、
[記載要件2]:始点204と終点205との間に基本動作206が記載されていること、
[記載要件3]:基本動作206中の動作記述206aが座標位置(N,M)のアクチュエータ番号Mに対応すること
を満足するか否かを判断して行く。
If the answer to STEP 11 is "yes," the coordinate position (N, M) where the
[Description requirement 1]: There is an
[Description requirement 2]: A
[Description requirement 3]: It is determined whether or not the
先ず初めは、上述した記載要件1を満足するか否か、すなわち、始点204に対応する終点205が存在するか否かを判断する(STEP12)。図4を用いて前述したように、始点204は動作線203の始まりを示しているから、始点204が存在する以上、動作線203の終わりを示す終点205が存在する筈である。また、本実施例では終点205もトリガー線202の上に記載することになっている。そこで、始点204が見つかった座標位置(N,M)から、YOGOチャート200上で視線を右方向(すなわち、トリガー線202の番号が増加する方向)に移動させることによって、トリガー線202上の終点205を探索する。終点205が見つからなかった場合や、終点205が見つかる前に新たな始点204が見つかった場合は、STEP12では「no」と判断されるが(STEP12:no)、YOGOチャート200が正しく記載されていれば、始点204に対応する終点205が見つかるので、STEP12では「yes」と判断される。
First, it is determined whether the above-mentioned
続いて、上述した記載要件2を満足するか否か、すなわち、始点204と終点205とを結ぶ動作線203の上に基本動作206が記載されているか否かを判断する(STEP14)。始点204と終点205とを結ぶ動作線203が見つからなかった場合や、動作線203は見つかったが基本動作206が記載されていない場合、あるいは動作線203の上に記載されている内容が、基本動作記憶部102に記憶されている基本動作206ではなかった場合は、STEP14では「no」と判断されるが、YOGOチャート200が正しく記載されていれば、STEP14では「yes」と判断される。
Next, it is determined whether the above-mentioned
上述した記載要件2も満足していた場合は、動作線203の上に記載されていた基本動作206を読み込んだ後(STEP16)、今度は、上述した記載要件3を満足するか否か、すなわち、読み込んだ基本動作206の動作記述206aが、座標位置(N,M)のアクチュエータ番号Mに割り当てられたアクチュエータに対応するか否かを判断する(STEP17)。これは、次のような判断である。
If the above-mentioned
先ず、図4に示したように、座標位置(N,M)のアクチュエータ番号Mには、自動製造機械1に搭載された複数のアクチュエータ10~20の何れかが割り当てられている。更に、図11に示したように、それぞれのアクチュエータ10~20には、設定可能な動作記述206aが予め決まっている。従って、座標位置(N,M)に記載できる動作記述206aは、座標位置(N,M)のアクチュエータ番号Mに割り当てられたアクチュエータに対して設定可能な動作記述206aに限られる。例えば、アクチュエータ番号が2番に対してはアクチュエータ11が割り当てられており(図4参照)、アクチュエータ11に対して設定可能な動作記述206aは「Q-AB」という動作記述206aに限られる(図11参照)。従って、アクチュエータ番号が2番の座標位置(N,2)に対しては「Q-AB」という基本動作206しか設定することができない。また、アクチュエータによっては複数の動作記述206aを設定可能な場合もあるが、何れにしても座標位置(N,M)のアクチュエータ番号Mに応じて設定可能な動作記述206aは決まってしまう。そこで、STEP17では、STEP16で読み込んだ動作記述206aが、座標位置(N,M)のアクチュエータ番号Mが示すアクチュエータに対して設定可能な動作記述206aであるか否かを判断する。
First, as shown in FIG. 4, one of the actuators 10-20 mounted on the
YOGOチャート200が正しく記載されていれば、STEP17では「yes」と判断されるので、続いて、動作記述206aが、数値テーブル206bを必要とする動作記述206aか否かを判断する(STEP19)。前述したように、大部分の動作記述206aは数値テーブル206bと組み合わせて用いられることが前提となっているが、一部の動作記述206a(例えば、図12に示した「Q-CA」という動作記述206a)については、数値テーブル206bと組み合わされることなく単独で用いられる。そこで、STEP19では、STEP16で読み込んだ動作記述206aが、数値テーブル206bを必要とする動作記述206aであるか否かを判断する。
If the
そして、動作記述206aが数値テーブル206bを必要とする動作記述206aであった場合は(STEP19:yes)は、座標位置(N,M)に記載されている内容に対して、更に以下のような記載要件、
[記載要件4]:基本動作206中に数値テーブル206bが記載されていること、
[記載要件5]:基本動作206の動作記述206aと数値テーブル206bとが対応すること、
[記載要件6]:基本動作206の動作記述206aと数値テーブル206bとが対応すること
についても、満足するか否かを判断して行く。
If the
[Description requirement 4]: The numerical value table 206b is described in the
[Description requirement 5]: The
[Description requirement 6]: It is also determined whether the
すなわち、STEP16で読み込んだ基本動作206中の動作記述206aが、数値テーブル206bを必要とする動作記述206aであった場合は(図17のSTEP19:yes)、まず初めに、上述した記載要件4(読み込んだ基本動作206中に数値テーブル206bが含まれているか否か)を判断する(図18のSTEP21)。
That is, if the
YOGOチャート200が正しく記載されていれば、STEP21では「yes」と判断されるので、次は、上述した記載要件5、すなわち、基本動作206中の動作記述206aと数値テーブル206bとが対応するか否かを判断する(STEP23)。図12を用いて前述したように、基本動作記憶部102には、動作記述206aと、その動作記述206aに対して組み合わせることが可能な数値テーブル206bとが、対応付けて予め記憶されている。そこで、STEP23では、図12に例示した対応関係を参照することによって、動作記述206aと数値テーブル206bとが対応するか否かを判断する。
If the
YOGOチャート200が正しく記載されていれば、STEP23でも「yes」と判断されるので、今度は、上述した記載要件6、すなわち、数値テーブル206bに設定されている数値が、参照テーブルと整合するか否かを判断する(STEP25)。図6および図7を用いて前述したように、数値テーブル206bには参照テーブルが設定されている。更に、図8および図9を用いて前述したように、参照テーブルには、参照する数値テーブル206bに設定可能な数値範囲が設定されている。そこで、STEP25では、数値テーブル206bに設定されている数値が、数値テーブル206bから参照する参照テーブルに設定された数値範囲内で設定されているか否かを判断する。
If the
YOGOチャート200が正しく記載されていれば、STEP25でも「yes」と判断される。そして、この場合(STEP25:yes)は、始点204が見つかった座標位置(N,M)に記載されている内容が、上述した記載要件1~6を全て満足したことになる。そこで、その座標位置(N,M)と、STEP16で読み込んだ基本動作206中の動作記述206aと、基本動作206中の数値テーブル206bとを、1つの中間レコード(N,M,動作記述206a,数値テーブル206b)にまとめて、メモリに記憶する(STEP27)。また、STEP16で読み込んだ基本動作206中の動作記述206aが、数値テーブル206bを必要としない動作記述206aであった場合は(STEP19:no)、座標位置(N,M)と、STEP16で読み込んだ基本動作206中の動作記述206aとを、1つの中間レコード(N,M,動作記述206a)にまとめて、メモリに記憶する(STEP20)。
If the
以上では、YOGOチャート200が正しく記載されていた場合について説明したが、YOGOチャート200が正しく記載されていない場合も起こり得る。例えば、上述した記載要件1を満足しない場合、すなわち、始点204に対応する終点205が記載されていない場合は、図17のSTEP12で「no」と判断される。そして、記載要件を満たしていないと判断した問題の座標位置(N,M)と、記載要件1に違反することを示すエラーコード(エラーコード1)とをメモリに記憶する(STEP13)。
Although the above describes the case where the
また、上述した記載要件2を満足しない場合、すなわち、始点204と終点205との間に基本動作206が記載されていない場合は、STEP14で「no」と判断して、問題が発生した座標位置(N,M)と、記載要件2に違反することを示すエラーコード(エラーコード2)とをメモリに記憶する(STEP15)。更に、上述した記載要件3を満足しない場合、すなわち、基本動作206中の動作記述206aが座標位置(N,M)のアクチュエータ番号Mに対応していなかった場合は、STEP17で「no」と判断して、記載要件を満たさない問題の座標位置(N,M)と、記載要件3に違反することを示すエラーコード(エラーコード3)とをメモリに記憶する(STEP18)。
If the above-mentioned
基本動作206中の動作記述206aが数値テーブル206bを必須とする動作記述206aであった場合には(図17のSTEP19:yes)、上述した記載要件4、すなわち、基本動作206中に数値テーブル206bが記載されているか否かを判断する。そして、数値テーブル206bが記載されていなかった場合は、図18のSTEP21で「no」と判断して、記載要件を満たさない問題の座標位置(N,M)と、記載要件4に違反することを示すエラーコード(エラーコード4)とをメモリに記憶する(STEP22)。
If the
また、上述した記載要件5を満足しない場合、すなわち、基本動作206中の動作記述206aと数値テーブル206bとが対応していない場合は、STEP23で「no」と判断して、記載要件を満たさない問題の座標位置(N,M)と、記載要件5に違反することを示すエラーコード(エラーコード5)とをメモリに記憶する(STEP24)。更に、上述した記載要件6を満足しない場合、すなわち、数値テーブル206bに設定されている数値が参照テーブルと整合していない場合は、STEP25で「no」と判断して、記載要件を満たさない問題の座標位置(N,M)と、記載要件6に違反することを示すエラーコード(エラーコード6)とをメモリに記憶する(STEP26)。
If the above-mentioned
このように、YOGOチャート解析処理のSTEP11~STEP27では、YOGOチャート200上で始点204が記載された座標位置(N,M)を探索し、見つかった座標位置(N,M)に記載されている内容が、上述した記載要件1~3、あるいは記載要件1~6を満足するか否かを判断する。そして、満足している場合は、座標位置(N,M)を含む中間レコードをメモリに記憶する(図17のSTEP20、または図18のSTEP27)。これに対して、満足していない場合は、問題のあった座標位置(N,M)と、満足していない記載要件を示すエラーコードとをメモリに記憶する(STEP13,STEP15,STEP18,STEP22,STEP24,STEP26)。
In this way, in
こうして、始点204が見つかった座標位置(N,M)に対する操作が終了したら、アクチュエータ番号Mが最終値に達したか否かを判断する(図18のSTEP28)。そして、アクチュエータ番号Mの最終値に達していない場合は(STEP28:no)、アクチュエータ番号Mに1を加算した後(STEP29)、加算後の新たなアクチュエータ番号Mを用いて、再び、座標位置(N,M)に始点204が記載されているか否かを判断する(図17のSTEP11)。
When the operation for the coordinate position (N, M) where the
このように、部分期間番号Nは変更せずに、アクチュエータ番号Mを1つずつ増加させながら、始点204が記載された座標位置(N,M)を探索することによって、STEP11~STEP28の操作を繰り返す。そして、アクチュエータ番号Mが最終値に達したら(STEP28:yes)、今度は、部分期間番号Nが最終値に達したか否かを判断する(STEP30)。例えば、YOGOチャート200上で、自動製造機械1の動作が100個の部分期間を用いて記述されているのであれば、部分期間番号Nの最終値は100となる。
In this way, the operations of
その結果、部分期間番号Nが最終値に達していない場合は(STEP30:no)、部分期間番号Nに1を加算すると共に(STEP31)、アクチュエータ番号Mを「1」に初期化した後(STEP32)、STEP11に戻って、再び、YOGOチャート上の座標(N,M)に始点204が記載されているか否かを判断する。すなわち、YOGOチャート200上で、部分期間番号Nが「n」の部分期間に含まれる複数の座標位置(n,M)を上から順番に確認して行き、一番下まで確認したら、今度は、部分期間番号Nが「n+1」の部分期間に含まれる複数の座標位置(n+1,M)を上から順番に確認して行きく。そして、始点204が記載され且つ記載要件を満たす座標位置(N,M)については中間レコードをメモリに記憶し、記載要件を満たさない問題の座標位置(N,M)については、その問題の座標位置(N,M)とエラーコードとをメモリに記憶していく。そして、このような操作を繰り返していき、最終的に、部分期間番号Nが最終値に達したら(図18のSTEP30:yes)、YOGOチャート200上の全ての座標位置(N,M)についての操作が終了したことになる。
As a result, if the partial period number N has not reached the final value (STEP 30: no), 1 is added to the partial period number N (STEP 31), and the actuator number M is initialized to "1" (STEP 32), and then the process returns to STEP 11 to determine again whether the
こうして、YOGOチャート200上の全ての座標位置(N,M)についての操作が終了したら、今度は、エラーコードが記憶されているか否かを判断する(図19のSTEP33)。YOGOチャート200中に上述した記載要件を満足さない問題の座標位置(N,M)が存在していれば、エラーコードが記憶されている筈である。逆に言えば、エラーコードが記憶されていなければ、YOGOチャート200は正しく記載されていると考えてよい。そこで、エラーコードが記憶されていない場合は(STEP33:no)、記憶しておいた全ての中間レコードを出力する(STEP34)。図15に例示した中間データは、こうして全ての中間レコードが出力されたものである。こうして全ての中間レコードを中間データとして出力したら(STEP34)、図17~図19に示したYOGOチャート解析処理(STEP2)を終了して、図14の制御プログラム生成処理に復帰する。そして、制御プログラム生成処理に復帰した後は、中間データから制御プログラムを生成する操作(STEP3)を開始することになる。
After the operation for all coordinate positions (N, M) on the
一方、図19のSTEP33で、エラーコードが記憶されていると判断した場合は(STEP33:yes)、YOGOチャート200の中に、上述した記載要件1~6の何れかを満たさない問題の座標位置(N,M)が存在することになる。そして、そのような場合は、問題の座標位置(N,M)と、該当する記載要件を示すエラーコードが記憶されている(STEP13,STEP15,STEP18,STEP22,STEP24,STEP26参照)。そこで、記憶しておいた問題の座標位置(N,M)と、エラーコードとを出力する(STEP35)。
On the other hand, if it is determined in STEP 33 of FIG. 19 that an error code has been stored (STEP 33: yes), then the
図20は、問題の座標位置(N,M)と、エラーコードとが出力された様子を例示した説明図である。図示した例では、問題の座標位置として、(4,12)、(8,2)、(25,15)、(42,6)の4つの座標位置(N,M)が出力され、それぞれについてエラーコード4、エラーコード1、エラーコード6、エラーコード5が出力されている。これらの記載から、YOGOチャート200中のどの座標位置(N,M)に、どのような記載ミスが存在するのかを直ちに認識することが可能となる。
Figure 20 is an explanatory diagram illustrating the output of problematic coordinate positions (N, M) and error codes. In the illustrated example, four coordinate positions (N, M) are output as problematic coordinate positions: (4, 12), (8, 2), (25, 15), and (42, 6), and
また、問題の座標位置(N,M)およびエラーコードが出力された場合は(図19のSTEP35)、YOGOチャート200が正しく記載されていないことになるので、図14の制御プログラム生成処理に復帰することなく、図17~図19に示したYOGOチャート解析処理を終了する。
Also, if the problematic coordinate position (N, M) and an error code are output (STEP 35 in FIG. 19), the
F.動作制御処理 :
図14を用いて前述した制御プログラム生成処理では、図15に例示した中間データから図16に例示した制御プログラムを生成して(STEP3)、図10の制御実行部106に出力する(STEP4)。そして、制御実行部106は、制御プログラムに従って、自動製造機械制御装置100のアクチュエータ10~20の動作を制御する。しかし、図16に示されるように、本実施例の制御プログラムは、データレコードと呼ぶ数値の組が、連続したものに過ぎない。そこで、最後に、本実施例の自動製造機械制御装置100の制御実行部106が、制御プログラムに基づいてアクチュエータ10~20の動作を制御する処理について説明しておく。
F. Motion Control Processing:
In the control program generation process described above with reference to Fig. 14, a control program as illustrated in Fig. 16 is generated from the intermediate data as illustrated in Fig. 15 (STEP 3), and output to the
図21は、自動製造機械制御装置100の制御実行部106が、制御プログラムに従って自動製造機械1の動作を制御する動作制御処理のフローチャートである。図21に示すように、動作制御処理を開始すると、先ず初めに、部分期間番号Nを「1」に初期化する(STEP50)。続いて、制御プログラムの複数のデータレコードの中から、先頭の要素がNのデータレコードを抽出する(STEP51)。該当するデータレコードが複数存在する場合は、それら全てのデータレコードを抽出する。尚、動作制御処理を開始した直後であれば、部分期間番号Nは「1」に設定されているから、図16に例示した制御プログラムから、(1,4,4,19)というデータレコードを読み出すことになる。
Figure 21 is a flowchart of the operation control process in which the
続いて、読み出したデータレコードの中から2番目の要素(すなわち、アクチュエータ番号M)を読み出して、制御対象となるアクチュエータを特定する(STEP52)。STEP51で読み出したデータレコードを(1,4,4,19)とすれば2番目の要素は「4」であるから、アクチュエータ番号Mが「4」のアクチュエータが制御対象のアクチュエータとなる。また、STEP51で複数のデータレコードを読み出していた場合には、それぞれのデータレコードの2番目の要素に基づいて、制御対象となるそれぞれのアクチュエータを特定する。 Next, the second element (i.e., actuator number M) is read from the data record that was read, and the actuator to be controlled is identified (STEP 52). If the data record read in STEP 51 is (1, 4, 4, 19), then the second element is "4", and therefore the actuator with actuator number M of "4" is the actuator to be controlled. Furthermore, if multiple data records were read in STEP 51, each actuator to be controlled is identified based on the second element of each data record.
更に、読み出したデータレコードの中から3番目の要素を用いて、基本動作記憶部102に記憶されているプログラム要素番号を検索することによって(図13参照)、アクチュエータに基本動作させるためのプログラム要素を取得する(STEP53)。STEP51で読み出したデータレコードを(1,4,4,19)とすれば3番目の要素は「4」であるから、基本動作させるためのプログラム要素は、プログラム要素番号が「4」番のプログラム要素となる。 Furthermore, the third element from the read data record is used to search for the program element number stored in the basic operation memory unit 102 (see FIG. 13) to obtain the program element for causing the actuator to perform the basic operation (STEP 53). If the data record read in STEP 51 is (1, 4, 4, 19), the third element is "4", so the program element for performing the basic operation is the program element with program element number "4".
最後に、データレコードに4番目の要素が存在している場合は、その要素は、図6および図7を用いて前述した数値テーブル206bを特定する数値テーブル番号を示しており、数値テーブル206bに設定されている数値は、プログラム要素に設定する引数となる。そこで、基本動作記憶部102に記憶されている数値テーブル206bを検索することによって、数値テーブル番号を有する数値テーブル206bを特定した後、数値テーブル206bに設定されている数値を、プログラム要素に引数として設定する(STEP54)。
Finally, if a fourth element exists in the data record, that element indicates a numeric table number that identifies the numeric table 206b described above with reference to Figures 6 and 7, and the numeric value set in the numeric table 206b becomes an argument to be set in the program element. Therefore, by searching for the numeric table 206b stored in the basic
以上のSTEP51~STEP54の操作を行うことによって、YOGOチャート上のある部分期間(動作制御処理が開始された直後は、部分期間番号Nが「1」番の部分期間)に記載された基本動作を、それぞれのアクチュエータに行わせる準備が整ったことになる。すなわち、制御対象となるアクチュエータが特定され(STEP52)、制御に用いるプログラム要素が取得され(STEP53)、プログラム要素に対して引数が設定された(STEP54)ことになるので、そのプログラム要素を実行する(STEP55)。例えば、アクチュエータがサーボモータであり、基本動作の内容がモータを正方向に180度回転させるという内容であった場合は、モータの回転角度を検出しながら、回転角度が180度になるまでモータを駆動する動作を、所定の制御周期で繰り返すようなプログラム要素を実行する。また、複数のプログラム要素が存在する場合は、それらのプログラム要素が並行して実行されることになる。
By carrying out the above steps 51 to 54, each actuator is prepared to perform the basic operation described in a certain partial period on the YOGO chart (immediately after the operation control process is started, the partial period with partial period number N of "1"). That is, the actuator to be controlled is identified (STEP 52), the program element to be used for control is obtained (STEP 53), and arguments are set for the program element (STEP 54), and the program element is executed (STEP 55). For example, if the actuator is a servo motor and the content of the basic operation is to rotate the
続いて、全てのプログラム要素の実行が終了したか否かを判断する(STEP56)。すなわち、STEP55で複数のプログラム要素を実行した場合は、それらのプログラム要素の実行が同時に終了するとは限らないので、全てのプログラム要素の実行が終了したか否かを判断する。もちろん、STEP55で1つのプログラム要素しか実行していない場合は、そのプログラム要素の実行が終了したか否かを判断することになる。 Next, it is determined whether execution of all program elements has ended (STEP 56). In other words, if multiple program elements have been executed in STEP 55, the execution of those program elements will not necessarily end at the same time, so it is determined whether execution of all program elements has ended. Of course, if only one program element has been executed in STEP 55, it is determined whether execution of that program element has ended.
その結果、実行中のプログラム要素が残っている場合は、STEP56では「no」と判断して、再び同じ判断(STEP56)を繰り返す。こうすることによって、全てのプログラム要素の実行が終了するまで待機状態となる。そして、全てのプログラム要素の実行が終了したら(STEP56:yes)、部分期間番号Nが最終値に達したか否かを判断する(STEP57)。例えば、YOGOチャート上で自動製造機械1の動作を記述するために、100個の部分期間が用いられていた場合は、部分期間番号Nが「100」に達したか否かを判断する。
If there are any program elements still being executed, then STEP 56 judges "no" and repeats the same judgment (STEP 56). This puts the system into a standby state until execution of all program elements is complete. Then, when execution of all program elements is complete (STEP 56: yes), it judges whether partial period number N has reached its final value (STEP 57). For example, if 100 partial periods have been used to describe the operation of the
その結果、部分期間番号Nがまだ最終値に達していない場合は(STEP57:no)、部分期間番号Nを1つ増加させる(STEP58)。そして、STEP51に戻って、制御プログラムのデータレコードの中から、先頭の要素が新たな部分期間番号Nに一致するデータレコードを読み出した後、読み出したデータレコードに対して上述したSTEP52~STEP55の操作を行う。こうすることにより、先に基本動作を実行した部分期間から1つ部分期間を進めて、新たな部分期間に記載された全ての基本動作が実行されることになる。そして、新たな部分期間の全ての基本動作が終了して、STEP56で「yes」と判断したら、その部分期間の部分期間番号Nが最終値に達しているか否かを判断する(STEP57)。その結果、部分期間番号Nが最終値に達していない場合は(STEP57:no)、部分期間番号Nを1つ増加させた後(STEP58)、STEP51に戻って、新たな部分期間番号Nについて、上述したSTEP51~STEP57の操作を繰り返す。 If the partial period number N has not yet reached the final value (STEP 57: no), the partial period number N is incremented by one (STEP 58). Then, returning to STEP 51, a data record whose first element matches the new partial period number N is read from among the data records of the control program, and the above-mentioned operations in STEP 52 to STEP 55 are performed on the read data record. In this way, the partial period advances by one from the partial period in which the previous basic operation was performed, and all basic operations described in the new partial period are performed. Then, when all basic operations in the new partial period are completed and "yes" is determined in STEP 56, it is determined whether the partial period number N of that partial period has reached the final value (STEP 57). If the partial period number N has not yet reached the final value (STEP 57: no), the partial period number N is incremented by one (STEP 58), and the process returns to STEP 51, where the above-mentioned operations in STEP 51 to STEP 57 are repeated for the new partial period number N.
このように、図21の動作制御処理では、YOGOチャートの先頭の部分期間(すなわち、部分期間番号Nが1番の部分期間)から最後の部分期間(部分期間番号Nが最終値の部分期間)に向かって、部分期間を1つずつ選択して、その部分期間に記載された基本動作を実行する動作を繰り返す。そして、最後の部分期間の基本動作が終了したら、STEP57で「yes」と判断して、動作制御処理を終了する。 In this way, in the motion control process of FIG. 21, partial periods are selected one by one from the first partial period of the YOGO chart (i.e., the partial period with partial period number N 1) to the last partial period (the partial period with partial period number N of the final value), and the operation of executing the basic operation described in that partial period is repeated. Then, when the basic operation of the last partial period is completed, "yes" is determined in STEP 57, and the motion control process is terminated.
以上に詳しく説明したように、本実施例の自動製造機械制御装置100では、自動製造機械1の動作をYOGOチャート200で記述することによって、そのYOGOチャート200から制御プログラムを自動で生成して、自動製造機械制御装置100を動作させることができる。また、YOGOチャートは、自動製造機械1の構造や動作が分かっていれば、プログラムに関する知識が無くても簡単に作成することができるので、プログラマが制御プログラムを作成する必要が無い。このため、新たな自動製造機械1を開発するために要する時間を、大幅に(少なくとも半分以下に)短縮することができ、加えて、プログラマを確保しておく必要も無くなる。その結果、製造現場に新たな自動製造機械を導入することが容易になって、産業界での省力化に対する要請に十分に対応することが可能となる。
As described above in detail, in the automatic manufacturing
加えて、本実施例の自動製造機械制御装置100では、YOGOチャート200から制御プログラムを生成する際に、YOGOチャート200に記載された内容が所定の記載要件を満足するか否かを判断して、満足していなければ制御プログラムが生成されないようになっている。このため、記載ミスのあるYOGOチャート200に基づいて、不適切な制御プログラムが生成されてしまう事態を回避することが可能となる。
In addition, in the automated manufacturing
更に、YOGOチャート200に記載ミスが見つかった場合には、記載ミスが存在する問題の座標位置(すなわち、問題座標位置)と、記載ミスの内容を示すエラーコードとが出力される。このため、YOGOチャート200上で記載ミスが存在する個所と、記載ミスの内容とが分かるので、記載ミスを容易に修正して正しいYOGOチャート200を作成することが可能となる。
Furthermore, if an error is found in the
以上、本実施例の制御プログラム生成装置110について説明したが、本発明は上記の実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
The above describes the control
1…自動製造機械、 2…レール、 3…搬送ユニット、 3a…把持軸、
3b…チャック、 4…加工ユニット、 10~20…アクチュエータ、
10d~20d…ドライバ回路、 50…コンピュータ、
100…自動製造機械制御装置、 100m…モニター画面、
100s…操作入力ボタン、 101…YOGOチャート作成部、
102…基本動作記憶部、 103…YOGOチャート読込部、
104…YOGOチャート解析部、 105…制御プログラム生成部、
106…制御実行部、 110…制御プログラム生成装置、 201…仕切線、
202…トリガー線、 203…動作線、 204…始点、 205…終点、
206…基本動作、 206a…動作記述、 206b…数値テーブル。
REFERENCE SIGNS
3b... chuck, 4... processing unit, 10 to 20... actuator,
10d to 20d... driver circuit, 50... computer,
100...automatic manufacturing machine control device, 100m...monitor screen,
100s...operation input button, 101...YOGO chart creation unit,
102: Basic operation memory unit; 103: YOGO chart reading unit;
104...YOGO chart analysis unit, 105...control program generation unit,
106: control execution unit; 110: control program generating device; 201: partition line;
202: trigger line; 203: action line; 204: starting point; 205: end point;
206: basic operation; 206a: operation description; 206b: numerical value table.
Claims (4)
前記アクチュエータの自由度毎の動作を表す基本動作(206)を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部(102)と、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込部(103)と、
前記動作チャートに記載された前記基本動作が、所定の記載要件を満足するか否かを判断する記載要件判断部(104)と、
前記動作チャート中の前記基本動作が前記記載要件を満足していた場合には、前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部(105)と
を備え、
前記動作チャート読込部が読み込む前記動作チャートは、表形式の一軸側に前記複数の部分期間が割り当てられ、前記表形式の他軸側に前記複数のアクチュエータが割り当てられ、尚且つ、前記一軸側の座標値と前記他軸側の座標値とによって決まる座標位置に前記基本動作が記載された前記動作チャートであり、
前記基本動作記憶部は、前記アクチュエータと、前記アクチュエータが実行可能な前記基本動作との対応関係を、前記記載要件判断部から参照される前記記載要件として記憶しており、
前記記載要件判断部は、前記基本動作が記載された前記座標位置を取得して、前記座標位置の中の前記他軸側の座標値に割り当てられた前記アクチュエータが、前記基本動作に対して前記対応関係で対応付けられた前記アクチュエータでなかった場合には、前記記載要件を満足しないものと判断して、前記記載要件を満足しない前記基本動作が記載された前記座標位置を、問題座標位置として出力する
ことを特徴とする制御プログラム生成装置。 A control program generating device (110) for generating a control program for an automatic manufacturing machine (1) having a plurality of actuators (10-20),
a basic operation storage unit (102) that stores basic operations (206) representing operations for each degree of freedom of the actuator in association with program elements that realize the basic operations;
an operation chart reading unit (103) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations , and the basic operations are assigned to any one of the partial periods selected for each basic operation from among the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine;
a description requirement determination unit (104) for determining whether the basic operation described in the operation chart satisfies a predetermined description requirement;
a control program generating unit (105) that generates the control program for operating the automatic manufacturing machine by combining the program elements of the plurality of basic operations assigned to the plurality of partial periods on the operation chart in accordance with the order of the partial periods on the operation chart when the plurality of basic operations in the operation chart satisfy the description requirements,
the operation chart read by the operation chart reading unit is an operation chart in which the plurality of partial periods are assigned to one axis side of a table format, the plurality of actuators are assigned to another axis side of the table format, and the basic operations are described at coordinate positions determined by coordinate values on the one axis side and coordinate values on the other axis side,
the basic operation storage unit stores a correspondence relationship between the actuator and the basic operation that can be executed by the actuator as the description requirement to be referenced by the description requirement determination unit;
the description requirement determination unit acquires the coordinate position in which the basic operation is described, and if the actuator assigned to the coordinate value on the other axis side of the coordinate position is not the actuator associated with the basic operation in the correspondence relationship, determines that the description requirement is not satisfied, and outputs the coordinate position in which the basic operation that does not satisfy the description requirement is described as a problem coordinate position.
前記動作チャート読込部は、前記基本動作の定性的な内容を記述した動作記述(206a)と、前記基本動作の定量的な内容を数値によって記述した数値記述との組み合わせによって、前記基本動作が記載された前記動作チャートを読み込んでおり、
前記基本動作記憶部は、
前記基本動作の前記動作記述に対応する前記プログラム要素と、前記数値記述に対応する数値テーブル(206b)とを記憶していると共に、
前記記載要件として、前記動作記述と、前記動作記述に組み合わせて用いられる前記数値記述とを対応付けた組合せ対応関係を記憶しており、
前記記載要件判断部は、前記座標位置に前記基本動作として記載された前記動作記述と前記数値記述との組み合わせが、前記組合せ対応関係を満足しなかった場合には、前記記載要件を満足しないものと判断して、前記問題座標位置を出力する
ことを特徴とする制御プログラム生成装置。 2. The control program generating device according to claim 1,
the operation chart reading unit reads the operation chart in which the basic operation is described by a combination of an operation description (206a) describing qualitative content of the basic operation and a numerical description describing quantitative content of the basic operation by numerical values;
The basic operation storage unit
The program element corresponding to the operation description of the basic operation and the numerical value table (206b) corresponding to the numerical value description are stored,
a combination correspondence relationship that associates the operation description with the numerical description used in combination with the operation description is stored as the description requirement;
the description requirement judgment unit, when a combination of the operation description and the numerical description described as the basic operation at the coordinate position does not satisfy the combination correspondence relationship, judges that the description requirement is not satisfied and outputs the problem coordinate position.
前記基本動作記憶部は、前記記載要件として、前記数値記述に対応する前記数値テーブルに設定可能な数値範囲を前記数値記述毎に記憶しており、
前記記載要件判断部は、前記数値テーブルに設定された数値が、前記数値範囲内になかった場合には、前記記載要件を満足しないものと判断して、前記問題座標位置を出力する
ことを特徴とする制御プログラム生成装置。 3. The control program generating device according to claim 2,
the basic operation storage unit stores, for each of the numerical descriptions, a numerical range that can be set in the numerical table corresponding to the numerical descriptions, as the description requirement;
the description requirement judgment unit, when a numerical value set in the numerical table is not within the numerical range, judges that the description requirement is not satisfied and outputs the problem coordinate position.
前記記載要件判断部は、前記問題座標位置を出力する際に、満足しないと判断した前記記載要件を示すエラーコードも出力する
ことを特徴とする制御プログラム生成装置。 The control program generating device according to any one of claims 1 to 3,
the description requirement determination unit also outputs an error code indicating the description requirement that is determined to be not satisfied when outputting the problem coordinate position.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020129779A JP7523116B2 (en) | 2020-07-30 | 2020-07-30 | Control program generator |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020129779A JP7523116B2 (en) | 2020-07-30 | 2020-07-30 | Control program generator |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022026361A JP2022026361A (en) | 2022-02-10 |
| JP7523116B2 true JP7523116B2 (en) | 2024-07-26 |
Family
ID=80263534
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020129779A Active JP7523116B2 (en) | 2020-07-30 | 2020-07-30 | Control program generator |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7523116B2 (en) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005327263A (en) | 2004-04-13 | 2005-11-24 | Omron Corp | Control system setting device |
| JP2013054650A (en) | 2011-09-06 | 2013-03-21 | Toshiba Corp | Program inspection device |
| WO2015063925A1 (en) | 2013-10-31 | 2015-05-07 | 三菱電機株式会社 | Program creating device, program creating method, and program |
| WO2015075790A1 (en) | 2013-11-20 | 2015-05-28 | 三菱電機株式会社 | Device for assisting creation of sequence program |
| JP2019016037A (en) | 2017-07-04 | 2019-01-31 | ファナック株式会社 | Program creation apparatus |
| JP2019016095A (en) | 2017-07-05 | 2019-01-31 | キーサイト テクノロジーズ, インク. | Measurement system program constructing method, measurement system, and computer-readable storage medium |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0667709A (en) * | 1992-06-17 | 1994-03-11 | Fujitsu Ltd | Sequence program creating method and apparatus and sequence control apparatus |
| JPH10222209A (en) * | 1997-02-06 | 1998-08-21 | Hitachi Ltd | FA system program creation method and apparatus |
-
2020
- 2020-07-30 JP JP2020129779A patent/JP7523116B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005327263A (en) | 2004-04-13 | 2005-11-24 | Omron Corp | Control system setting device |
| JP2013054650A (en) | 2011-09-06 | 2013-03-21 | Toshiba Corp | Program inspection device |
| WO2015063925A1 (en) | 2013-10-31 | 2015-05-07 | 三菱電機株式会社 | Program creating device, program creating method, and program |
| WO2015075790A1 (en) | 2013-11-20 | 2015-05-28 | 三菱電機株式会社 | Device for assisting creation of sequence program |
| JP2019016037A (en) | 2017-07-04 | 2019-01-31 | ファナック株式会社 | Program creation apparatus |
| JP2019016095A (en) | 2017-07-05 | 2019-01-31 | キーサイト テクノロジーズ, インク. | Measurement system program constructing method, measurement system, and computer-readable storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022026361A (en) | 2022-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7808865B2 (en) | Control program generation device, control program generation method, and program | |
| JP6787616B1 (en) | Control program generator, control program generation method, program | |
| US12174614B2 (en) | Control program generation apparatus, control program generation method, and program | |
| JP7523116B2 (en) | Control program generator | |
| JP7074378B2 (en) | Control program generator, control program generation method, program | |
| US12210337B2 (en) | Operation control apparatus, operation control method, and program | |
| US20220308558A1 (en) | Control program generation apparatus, control program generation method, and program | |
| JP7114034B2 (en) | Control program generation device, control program generation method, program | |
| JP7114035B2 (en) | Motion control device, motion control method, program | |
| TWI883588B (en) | Control program generation device, control program generation method, and program | |
| JP7760163B2 (en) | Control program generation device, control program generation method, and program | |
| US12346096B2 (en) | Control program generation apparatus, control program generation method, and program | |
| JP2007226446A (en) | Numerical control device, machine tool and computer program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230608 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240131 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240227 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240424 |
|
| 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: 20240618 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240708 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7523116 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |