(58)【調査した分野】(Int.Cl.,DB名)
少なくとも、1の機械制御プログラムと、当該機械制御プログラムが使用するグローバル変数のリストであるグローバル変数リストを含むライブラリを読み込むライブラリ読み込み部と、
並列に又は連続して実行される複数の機械制御プログラムを含む機械制御プログラム群に前記ライブラリに含まれる前記機械制御プログラムを追加する機械制御プログラム追加部と、
前記機械制御プログラム追加部が前記機械制御プログラムを追加する際に、前記グローバル変数リストに基いて、当該機械制御プログラムが使用するグローバル変数を、グローバル変数領域の未使用領域に割り当てるグローバル変数割り当て部と、
を有する機械制御プログラム作成装置。
前記機械制御プログラム追加部が前記機械制御プログラムを追加する際に、当該機械制御プログラムが制御する機器に関する情報を入力する機器情報入力部を有する請求項3又は4に記載の機械制御プログラム作成装置。
【発明を実施するための形態】
【0013】
図1は本発明の実施形態に係る機械制御プログラム作成装置1及び機械制御システム100を含む物理的な全体構成例を示す概略図である。
【0014】
機械制御システム100は機械制御装置2及び、機械制御装置2と接続され、機械制御装置2により制御される少なくとも1つの機械モジュール3を含む。ここで、機械制御装置とは、機械要素を電子的・電気的に制御する機器であり、具体的には、いわゆるPLCが該当する。また、機械要素は、機械制御装置に接続され制御される物理的な要素の意味であり、具体的には、サーボモータやステップモータ等のアクチュエータ、それらのコントローラ、スイッチやランプ、ソレノイドや油空圧バルブ等の各種自動化機器が該当する。また、機械モジュールは、機械要素であって、単純なON/OFFでない高度な制御を要する機械装置の意味である。例えば、サーボ軸や、サーボモータを使用した多関節ロボット、画像認識を行うビジョンコントローラなどが機械モジュールに該当する。一方で、単純なON/OFFにより制御されるスイッチやランプ、ソレノイド等は、本明細書では機械モジュールとしては取り扱わない。本実施形態の例では、機械モジュール3として、2軸のいわゆるスカラロボット(水平多関節ロボット)が示されている。機械制御システムは、機械制御装置と、かかる機械制御装置に接続され制御される機械要素を一まとまりの系として取り扱う際の呼称である。
【0015】
また、ここで示した機械制御システム100には、さらに、機械要素としてGUIデバイス4が含まれており、GUIデバイス4は機械制御装置2と接続されている。GUIデバイス4は、機械制御システム100を操作するオペレータにGUI(Graphical User Interface)を提供するものであり、ここではタッチパネルである。GUIデバイスもまた、機械モジュールの1種である。
【0016】
本実施形態の例に示す機械制御システム100は、ここで示した機械モジュール3及びタッチパネル4以外の1又は複数の機械要素をさらに含むものであってよいが、図示及び説明が煩雑となるのを避けるため省略している。
【0017】
機械制御プログラム作成装置1は、機械制御装置2が実行する機械制御プログラムを作成し、作成した機械制御プログラムを機械制御装置2に転送する。機械制御プログラム作成装置1はさらに、機械制御システム100の状態のモニタリングや、タッチパネル4を代替する用途に用いられてもよい。機械制御プログラム作成装置1は、必要に応じて機械制御装置2に接続すればよく、常に機械制御装置2に接続されている必要はない。また、機械制御プログラム作成装置1は、インターネットなどの電気通信回線によるネットワークNに接続可能であり、ネットワークNを介して後述するサーバ5と情報通信を行うことができる。
【0018】
機械制御プログラム作成装置1としては一般的なコンピュータを用いてよく、本実施形態においても、
図2に示すように、CPU(Central Processing Unit)1a、RAM(Random Access Memory)1b、外部記憶装置1c、GC(Graphics Controller)1d、入力デバイス1e及びI/O(Inpur/Output)1fがデータバス1gにより相互に電気信号のやり取りができるよう接続されている一般的なコンピュータを用いている。ここで、外部記憶装置1cはHDD(Hard Disk Drive)やSSD(Solid State Drive)等の静的に情報を記録できる装置である。またGC1dからの信号はCRT(Cathode Ray Tube)やいわゆるフラットパネルディスプレイ等の、使用者が視覚的に画像を認識するモニタ1hに出力され、画像として表示される。入力デバイス1eはキーボードやマウス、タッチパネル等の、ユーザが情報を入力するための機器であり、I/O1fは機械制御プログラム作成装置1が外部の機器と情報をやり取りするためのインタフェースである。コンピュータを機械制御プログラム作成装置1として機能させるためのアプリケーションプログラムは外部記憶装置1cにインストールされ、必要に応じてRAM1bに読みだされてCPU1aにより実行される。また、かかるプログラムは、適宜の光ディスク、光磁気ディスク、フラッシュメモリ等の適宜のコンピュータ可読情報記録媒体に記録されて提供されても、インターネット等の情報通信回線を介して提供されてもよく、さらに、I/O1fを介して外部のネットワークに接続されたサーバにより機械制御プログラム作成装置1としての機能が提供される、いわゆるクラウドコンピューティングにより提供されてもよい。
【0019】
なお、本明細書では、機械制御プログラムという語を、機械制御装置により実行され、機械要素を制御するためのコンピュータプログラムの意で用いる。機械制御プログラムの代表的なものとして、IEC61131−3に規定されるLD(ラダーロジック)、SFC(シーケンシャルファンクションチャート)、FBD(ファンクションブロックダイアグラム)、ST(ストラクチャードテキスト)及びIL(インストラクションリスト)が挙げられる。本実施形態に係る機械制御装置2では、基本的に機械制御プログラムとして基本的にLDを用いている。
【0020】
図1に戻り、本実施形態では、機械モジュール3であるスカラロボットは、ユーザが工場Fにより製造された部品を個別に購入し、組み立てることができる。ここで示した例では、機械モジュール3であるスカラロボットは、当該スカラロボットを構成する土台部品3a、第1アーム部品3b、第2アーム部品3cを個別に購入し、組み立てたものである。ロボットを構成する各部品は、動力源であるサーボモータなどのアクチュエータと構造部材を含むものであってよい。この例では、第1アーム部品3b、第2アーム部品3cは、それぞれ、サーボモータと、構造部材であるアームを含むものである。また、第2アーム部品3cはエンドエフェクタとなるシリンダをその先端に備えている。
【0021】
そして、工場Fは、用途や要求に応じた種々の部品を提供してよい。例えば、ロボットに用いるアーム部品であっても、モータの容量や、アーム長、さらには先端に備えられたエンドエフェクタが異なる様々なものが提供される。このようにすることにより、ユーザは、想定する用途や要求に応じて自由に部品を組み合わせ、所望の性能を有する機械モジュール3を得ることができる。工場Fから提供される部品は、この例で示したスカラロボットに関するものだけでなく、他の形式のロボット、例えば垂直多関節ロボットやガントリ、パラレルリンクロボットに関するものであってもよいし、ロボット以外の機械モジュール、例えば、ビジョンコントローラに用いるカメラや照明であってもよい。
【0022】
サーバ5は、後述するように、工場Fにより提供される各種部品や、それら部品を組み立てることにより得られる機械モジュール等に関するライブラリ(後述する)を記憶しており、機械制御プログラム作成装置1が電気通信回線を通じて必要なものをダウンロードすることができるようになっている。
【0023】
図3は本発明の実施形態に係る機械制御プログラム作成装置1の機能的な構成例を示す機能ブロック図である。本図に示す各機能ブロックは、上述の機械制御プログラム作成装置1の物理的構成を用いて、例えば、CPU1aにより所定のプログラムを実行したり、RAM1bや外部記憶装置1cに所定の情報を記憶する領域を割り当てたりすることにより仮想的に実現されるものを含み、すなわち、ソフトウェアにより実現される機能を個別に示したものを含んでいる。従って、本図に示す機能ブロックは必ずしも機械制御プログラム作成装置1の物理的構成や、機械制御プログラム作成装置1等が実行するプログラム自体が機能ブロック毎に区分されることを意味しない。また、本図には機械制御プログラム作成装置1が有する全ての機能が示されているわけではなく、本発明と技術的関連の低い部分は省略されている。
【0024】
機械制御プログラム作成装置1は、機械制御プログラムからライブラリを作成するライブラリ作成装置10として機能する部分と、ライブラリを機械制御プログラムに追加するライブラリ追加装置20として機能する部分とに大別することができる。また、機械制御プログラム作成装置1は、ライブラリを記憶するライブラリ記憶部40、機械制御プログラムを記憶する機械制御プログラム記憶部50を有している。
【0025】
ここでまず、ライブラリの意味とその技術的意義について説明する。本実施形態に係る機械制御プログラム作成装置1が作成する機械制御プログラムが実行される機械制御装置2は、その機能として、複数の機械制御プログラムを並列に又は連続して実行することができる。すなわち、複数の機械制御プログラムを同時に実行するか、或いは、スキャン期間内で複数の機械制御プログラムを連続して実行することにより、疑似的に複数の機械制御プログラムを同時に実行する。そのため、機械制御システム100において、関連の強い部分毎に機械制御プログラムを作成し、作成された複数の機械制御プログラムを並列に又は連続して実行するようにして全体の制御を実現することで、機械制御プログラムの開発効率を高めることができる。また、このような全体の制御を実現する複数の機械制御プログラムの集合を、プロジェクトと称している。
【0026】
しかしながら、かかる複数の機械制御プログラムは、互いに完全に独立しているわけではなく、制御を連携させ、また機械制御プログラム間の干渉を防ぐため、あらかじめ、機械制御プログラム間のやり取りや、各機械制御プログラムが使用するグローバル変数や使用する入出力等の割り当てを定めておき、各機械制御プログラムはかかる定めに従って作成される。この定めは、作成しようとする機械制御システム100毎のものであるので、作成された機械制御プログラムを個別に他の機械制御システムに転用するのは難しい。
【0027】
ライブラリは、このような、特定の機械制御システムに固有の個別又は一群の機械制御プログラムを、特定の機械制御システムに依存することなく再利用できるようにするための情報であり、機械制御プログラムと、その機械制御プログラムを任意の機械制御システムに適合させるための適合情報、すなわち、前述の定めについての情報を含むものである。適合情報には、先ほど述べたように、ライブラリに含まれる機械制御プログラムが使用するグローバル変数のリストや、入出力のリストが含まれてよい。
【0028】
そして、機械制御プログラム作成装置1は、特定の機械制御システム100について作成された複数の機械制御プログラムのうち、1又は複数を切り出して、汎用のライブラリを作成する機能、すなわち、ライブラリ作成装置10としての機能と、汎用のライブラリを特定の機械制御システム100に適合させ、機械制御プログラムとして追加するライブラリ追加装置20としての機能を備えるものである。なお、ライブラリ作成装置10としての機能とライブラリ追加装置20としての機能は、必ずしも同時に機械制御プログラム作成装置1に備えられずともよく、それぞれ別の装置或いはソフトウェアとして提供されてもよい。
【0029】
<ライブラリ作成装置としての構成>
まず、機械制御プログラム作成装置1のうち、ライブラリ作成装置10として機能する部分について説明する。
【0030】
ライブラリ作成装置10は、機械制御プログラム選択部11、ライブラリ作成部12、グローバル変数リスト作成部13及び入出力リスト作成部14を有する。
【0031】
機械制御プログラム選択部11は、機械制御プログラム記憶部50に記憶された1又は複数の機械制御プログラムから、汎用のライブラリとして取り出そうとする少なくとも1の機械制御プログラムを選択する。この選択は、入力デバイス1eにより受け付けられたオペレータの指示に基いてなされてよい。
【0032】
選択された機械制御プログラムは、ライブラリ作成部12、グローバル変数リスト作成部13及び入出力リスト作成部14に受け渡される。グローバル変数リスト作成部13は、機械制御プログラムを解析し、機械制御プログラムが使用しているグローバル変数のリストを作成する。一般的な機械制御装置では、変数は、レジスタ番号により区別されるため、ここでは、使用されているグローバルレジスタ番号のリストが作成されることになる。入出力リスト作成部14は、同様に、機械制御プログラムを解析し、機械制御プログラムが使用している入出力のリストを作成する。ここで言う入出力は、機械制御プログラムが制御しようとする機械要素が使用する接点やコネクタの番号、IPアドレス等の識別子等、機械制御プログラムが占有する電気接続或いは情報通信接続の識別情報である。
【0033】
そして、ライブラリ作成部12は、選択された機械制御プログラムに、グローバル変数リスト作成部13により作成されたグローバル変数リスト及び、入出力リスト作成部14により作成された入出力リストを付してライブラリを作成し、ライブラリ記憶部40に記憶する。
【0034】
このように作成されたライブラリは、機械制御プログラムの定めについての情報、特に、グローバル変数リスト及び入出力リストを含んでいるため、他のプロジェクトに追加しようとする際に、既に存在するグローバル変数や入出力と干渉することがないように、機械制御プログラム自体を書き換えることができる。そのため、ライブラリは特定の機械制御システムに依存せず、汎用としての特性を備える。なお、本実施形態では、機械制御プログラムの定めについての情報として、グローバル変数リスト及び入出力リストを作成するものとしたが、これ以外の情報、例えば機械制御プログラム自身の名称や、他の機械制御プログラムへの参照等のリストをさらに生成するものとしてもよい。
【0035】
<ライブラリ追加装置としての構成>
続いて、機械制御プログラム作成装置1のうち、ライブラリ追加装置20として機能する部分について説明する。
【0036】
ライブラリ追加装置20は、ダウンロード部21、一覧表示部22、ライブラリ選択部23、ライブラリ読み込み部24、機械制御プログラム追加部25、グローバル変数割り当て部26、入出力割り当て部27及び機器情報入力部28を有する。
【0037】
ダウンロード部21は、サーバ5に記憶されたライブラリのうち、所望のものをダウンロードし、ライブラリ記憶部40に記憶する。ここで、ライブラリは、先のライブラリ作成装置10で説明したように、機械制御プログラム作成装置1により作成してもよいが、後述するように、機械モジュール3のベンダーが、機械モジュール3の制御に適した機械制御プログラムをライブラリとして提供してもよい。このようにすることで、機械モジュール3の制御に適した機械制御プログラムを汎用のライブラリとして利用でき、既存のプロジェクトに容易に追加することができるようになり、ユーザが、機械モジュール3を制御する機械制御プログラムを自ら作成する手間を軽減できる。
【0038】
一覧表示部22は、ライブラリ記憶部40に記憶されたライブラリの一覧を、モニタ1hに表示する。そして、ライブラリ選択部23は、一覧表示されたライブラリを選択し、ライブラリ読み込み部24に通知する。オペレータは、モニタ1hに表示されたライブラリの一覧を参照して、入力デバイス1eを操作して、必要なライブラリを選択し、プロジェクトに追加することができる。
【0039】
ここで、ライブラリ、特に、サーバ5に記憶されたライブラリには、当該ライブラリ自身を説明する画像及び説明が含まれていてよい。この画像は例えば、ベンダーが提供する特定の機械モジュールに対応するものであれば、当該機械モジュールの画像である。又説明は、当該機械モジュールについての説明であってよく、本実施形態では例えば、「2軸スカラロボット制御用ライブラリ」等である。
【0040】
そして、一覧表示部22は、ライブラリを一覧表示する際に、この画像及び説明(又はその少なくともいずれか)を表示する。オペレータは、プロジェクトが必要とするライブラリがどのライブラリであるかを視覚的に確認し、選択することができる。もちろん、一覧表示しようとするライブラリに画像及び説明が含まれていない場合には、かかる画像及び説明は表示されなくともよい。
【0041】
ライブラリ読み込み部24は、選択されたライブラリを読み込み、機械制御プログラム追加部25、グローバル変数割り当て部26、入出力割り当て部27及び機器情報入力部28に受け渡す。
【0042】
ここで、グローバル変数割り当て部26は、ライブラリに含まれるグローバル変数リストに基いて、ライブラリに含まれる機械制御プログラムが使用しているグローバル変数を、現在のプロジェクトが使用していない未使用領域に割り当てる。より具体的には、ライブラリに含まれる機械制御プログラム中のグローバル変数名を、未使用のグローバル変数名に書き換える。この割り当ては、グローバル変数割り当て部26がグローバル変数の未使用領域を自動的に探索して行ってもよいし、オペレータが割り当てる未使用領域を指定、例えば、グローバルレジスタ番号10000以降を割り当てる、等の指定をすることによって行ってもよい。
【0043】
入出力割り当て部27も同様に、ライブラリに含まれる入出力リストに基いて、ライブラリに含まれる機械制御プログラムが使用している入出力を、現在のプロジェクトが使用していない入出力に割り当てる。この割り当てもまた、入出力割り当て部27が自動で行ってもよく、オペレータが指定することによって行ってもよい。
【0044】
機器情報入力部28は、ライブラリに含まれる機械制御プログラムが制御する機器に関する情報である機器情報を入力する。この入力は、入力デバイス1eを用いて、オペレータが行ってよい。
【0045】
ここで機器情報とは、機械制御プログラムが対象となる機器を制御する際に必要となる当該機器のパラメータ等の情報である。本実施形態のように、対象となる機器が2軸スカラロボットである機械モジュール3である場合には、各アームの長さや、エンコーダの分解能等が該当する。ここで、あるライブラリが、特定の構成の機械モジュール3にのみ対応しているのであれば、オペレータが機器情報を入力する必要は特にないと考えられる。ところが、本実施形態のように、機械モジュール3が種々の部品を組み立てて得られるものである場合には、使用される部品によって機械モジュール3の特性が変化すると考えられる。したがって、そのような場合には、構成によって変化する機械モジュール3の特性は機器情報として入力されなければならない。
【0046】
機械制御プログラム追加部は、グローバル変数割り当て部26によるグローバル変数の割り当て、入出力割り当て部27による入出力の割り当て、さらに、機器情報入力部28により入力された機器情報を反映させて、機械制御プログラムを既存のプロジェクトに適合させて機械制御プログラム記憶部に記憶する。このようにすることで、既存の機械制御プログラムを効率的に再利用し、プロジェクト作成の手間を大幅に軽減できる。
【0047】
<機械制御装置における機械制御プログラムの動作>
図4は、機械制御装置2において実行される機械制御プログラムの配置と動作を説明する図である。
【0048】
機械制御装置2は、複数の機械制御プログラムを記憶するプログラム記憶領域30、グローバル変数記憶領域31及び教示点記憶領域32を少なくとも備えている。ここで、教示点記憶領域32は、接続される機械モジュール3がロボットである場合の教示点その他のロボット制御情報を保持する領域である。この教示点記憶領域32は、グローバル変数記憶領域31の一部の領域を割り当てたものであってもよいし、図示のように、独立した領域として構成されていてもよい。本実施形態では、グローバル変数記憶領域31とは別個に用意されたテーブル領域を教示点記憶領域32として用いている。
【0049】
そして、この例では、プログラム記憶領域30に記憶された機械制御プログラムB及び機械制御プログラムCが、ライブラリ追加装置20により追加された機械制御プログラムである。機械制御プログラムBに対しては、グローバル変数記憶領域31の特定の領域である割り当て区間Bが、機械制御プログラムCに対しては、グローバル変数記憶領域31の特定の領域である割り当て区間Cがそれぞれ割りつけられている。機械制御プログラムAは、ユーザにより作成された機械制御プログラムである。
【0050】
ここで、機械制御プログラムB及び機械制御プログラムCは、2軸スカラロボットである機械モジュール3に関してのライブラリに含まれていた機械制御プログラムであり、機械モジュール3に対応づけられるものである。そして、機械制御プログラムAから機械制御プログラムB及び機械制御プログラムCを呼びだすことにより、すなわち、機械制御プログラムAが機械制御プログラムB及び機械制御プログラムCを制御することにより、機械モジュール3を制御することを考える。この時、機械制御プログラムCは、教示点から機械モジュール3の各モータ位置を与える、いわゆる逆運動学演算を行うルーチンであり、機械モジュール3の教示点は既に教示点記憶領域に与えられているものとする。
【0051】
この時、機械制御プログラムAは、直接機械制御プログラムBを参照することはなく、機械制御プログラムBに割り当てられた割り当て区間B中の特定のグローバル変数の値を書き換えることにより、間接的に機械制御プログラムBを制御する。
【0052】
この理由は、機械制御プログラムBは機械制御プログラムAを作成したユーザ自身が作成したものでない可能性があり、ユーザは機械制御プログラムBの詳細な内容を知らないと考えられるため、機械制御プログラムAから直接機械制御プログラムBへアクセスすることは容易でないからである。これに対し、割り当て区間B中の特定のグローバル変数の値を機械制御プログラムAが書き換えることは容易である。したがって、まず、機械制御プログラムAは、割り当て区間B中の特定のグローバル変数の値を書き換える(図中矢印(1))。
【0053】
そして、機械制御プログラムBは割り当て区間B中の特定のグローバル変数の値を監視しており、この値が変化したことを受けて所定の処理を実行する(図中矢印(2))。ここでは、例えば、機械制御プログラムAから、機械モジュール3を次の教示点位置まで移動させる指示がなされたと仮定する。
【0054】
ここで、機械制御装置2は、一軸の単純なモータ位置を制御する機能は有しているが、いわゆるロボットコントローラが有しているような、座標変換の機能は有していない。そこで、機械制御プログラムBは、機械制御プログラムCの割り当て区間Cに、次の教示点を示す教示点番号を書き込み(図中矢印(3))、機械制御プログラムCに逆運動学演算をさせる。
【0055】
機械制御プログラムCは、割り当て区間Cを監視しており、機械制御プログラムBにより教示点番号が書き込まれたことにより処理を開始し(図中矢印(4))、教示点記憶領域32から指定された教示点番号に対応する教示点座標を取得する(図中矢印(5))。機械制御プログラムCは、逆運動学演算のルーチンであり、取得した教示点座標及び、機器情報入力部28により入力された機器情報を用いて逆運動学演算を行い、各モータ位置を算出し、機械制御プログラムBの割り当て区間Bに書き込む(図中矢印(6))。
【0056】
機械制御プログラムBは、割り当て区間Bに各モータ位置が書き込まれたことを検出し、機械モジュール3の各モータを指定位置となるように作動させ、制御する。
【0057】
各機械制御プログラムを、以上説明したように、当該機械制御プログラムが使用するグローバル変数の値を、他の機械制御プログラムが書き換えることにより制御するものとすることで、ライブラリとして追加される機械制御プログラムの詳細を必要とすることなく、当該機械制御プログラムの制御ができる。そして、ライブラリとして追加される機械制御プログラムが接続される機械モジュールに対応付けられているから、機械モジュールを制御しようとするユーザは、当該機械モジュールに対応するライブラリを追加することにより、極めて容易に当該機械モジュールを制御することができる。
【0058】
また、かかる機械制御プログラムが逆運動学演算のルーチンであることにより、本来かかる演算の機能を有していない機械制御装置2を、あたかもロボットコントローラであるかのように取り扱うことができ、専用のロボットコントローラを必要とすることなく多関節ロボットの制御が可能である。
【0059】
<教示点の教示方法>
一般に、多関節ロボットはティーチングプレイバック方式のものであることが多く、多関節ロボットであるような機械モジュール3に対しては、その教示点の教示作業が必要である。しかしながら、機械制御装置2は、専用のロボットコントローラではないため、いわゆるティーチングペンダントは用意されていない。
【0060】
そこで、本実施形態では、タッチパネルであるGUIデバイス4をティーチングペンダントの代用として用いる。すなわち、GUIデバイス4上に一般的なティーチングペンダントに類似したインターフェースを表示し、GUIデバイス4をあたかもティーチングペンダントであるかのように用いて、オペレータの入力に基いて機械モジュール3を作動させ、教示点を入力していく。入力された教示点や、教示点に至る動作や軌跡の種別は、教示点記憶領域32に記憶され、先の例では、機械制御プログラムCにより参照され利用される。このようにして教示点データを作成することにより、特別のティーチングペンダントを必要とすることなく、汎用のGUIデバイス4を用いて、ロボットである機械モジュール3の教示が可能となる。
【0061】
なお、この教示作業は、
図1に図示のGUIデバイス4に換えて、機械制御プログラム作成装置1をティーチングペンダントとして用いて行ってもよい。この場合、機械制御プログラム作成装置1もまたGUIを有する機器であるので、機械制御プログラム作成装置1をGUIデバイスとして用いていることになる。さらには、機械制御プログラム作成装置1でシミュレーションを行い、いわゆるオフラインティーチングの手法により教示点データを作成するようにしてもよい。
【0062】
以上、本発明に係る実施形態について説明したが、この実施形態に示した具体的な構成は一例として示したものであり、本発明の技術的範囲をこれに限定することは意図されていない。当業者は、これら開示された実施形態を適宜変形してもよく、本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。