特許異議申立
2024-700963
数値制御装置
- 審判番号
- 2024-700963
- 法域
- 特許
- 審判種別
- 異議申立(異議の決定)
- 出願番号
- 特願2023-546558
- 登録番号
- 7462849
- 請求日
- 2024年10月03日
- 審決日
- 2024年12月12日
- 公報発行日
- 2025年03月28日
- 結論
- 維持
- 当事者
- 【権利者】三菱電機株式会社
- 【権利者代理人】高村 順
- 【異議申立人】榊原 令子
- 審判長/審判官
- 審判長 鈴木 貴雄
- 審判官 大山 健
- 審判官 堀内 亮吾
- 分類
- P1651.121-Y (G05B)
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項
- データ出所
- 審決公報(XML)
事件の表示
特許第7462849号発明「数値制御装置」の特許異議申立事件について、次のとおり決定する。
結論
結 論
特許第7462849号の請求項1~4に係る特許を維持する。
理由
理 由
第1 手続の経緯
特許第7462849号の請求項1~4に係る特許についての出願は、2023年(令和5年)3月14日を国際出願日とする国際特許出願であって、令和6年3月28日にその特許権の設定登録がされ、令和6年4月5日に特許掲載公報が発行された。
その後、令和6年10月3日に特許異議申立人 榊原 令子(以下「申立人」という。)により請求項1~4(全請求項)に係る特許に対する特許異議の申立てがなされた。
第2 本件発明
特許第7462849号(以下「本件特許」という。)の請求項1~4の特許に係る発明(以下、各請求項に係る発明を「本件発明1」などという。また、総合して、「本件発明」という場合がある。)は、それぞれ、特許掲載公報の特許請求の範囲の請求項1~4に記載された事項により特定される次のとおりのものである。
「【請求項1】
A プログラムカウンタが示すブロックを数値制御プログラムから読み込み、前記ブロックを解析する解析処理部と、
B 前記解析処理部での解析結果に基づいて、制御対象を駆動させる指令を生成する制御処理部と、を備え、
C 前記解析処理部は、前記数値制御プログラムの実行を進める条件を示す条件式が記述されている条件待ちブロックが読み込まれた場合に、前記条件が成立するまで前記条件の成否の判定を繰り返し、前記条件が成立するまでにおいて、前記条件待ちブロックを、1回目および2回目以降の前記条件の成否の判定よりも前に解析し、
D 前記解析処理部は、一回の解析処理において前記条件待ちブロックである1個のブロックのみを解析し、
E 前記解析処理部は、演算子を含む前記条件式を演算する
F ことを特徴とする数値制御装置。
【請求項2】
G 前記条件待ちブロックには、前記条件の成立を待機する時間の制限時間が記述されており、
H 前記解析処理部は、前記条件の成立の待機を開始してから前記制限時間が経過した場合に、前記条件の成立の待機を終了することを特徴とする請求項1に記載の数値制御装置。
【請求項3】
I 前記解析処理部は、前記条件が成立した場合と、前記制限時間において前記条件が不成立である場合との少なくとも一方において、あらかじめ指定されたプログラムを実行することを特徴とする請求項2に記載の数値制御装置。
【請求項4】
J 前記解析処理部は、前記条件が成立した場合に実行させる複数のブロックと前記制限時間において前記条件が不成立である場合に実行させる複数のブロックとの少なくとも一方が含まれる前記条件待ちブロックを実行することを特徴とする請求項3に記載の数値制御装置。」
(なお、符号A~Jは、申立人が特許異議申立書(以下「申立書」という。)6~8ページにおいて、本件発明1~4を分説して、それぞれの構成に付したものである。また、以下、それぞれ「構成A」などという場合がある。)
第3 申立理由の概要
申立人による特許異議申立理由及び申立人が提出した証拠方法の概要は以下のとおりである。
1 申立理由の概要
申立人は、請求項1~4に係る特許は、以下の理由により取り消されるべきものである旨を申立てている。
申立理由(本件発明1~4についての進歩性欠如)
本件発明1~4は、甲第1号証に記載の発明及び周知技術(甲第2号証~甲第5号証)に基づいて、当業者が容易に発明をすることができたものであるから、請求項1~4に係る特許は、特許法第29条第2項の規定に違反してされたものである。
2 申立人が提出した証拠方法
申立人が提出した証拠方法である甲第1号証~甲第5号証は、以下のとおりである。(以下、甲第1号証などを「甲1」などという。)
甲1:特許第7518212号公報(国際公開第2022/154049号)
甲2:特開平11-235644号公報
甲3:特開平6-170649号公報
甲4:特開平5-204426号公報
甲5:特開2003-108209号公報
なお、申立人は甲1として特許第7518212号公報を提出したが、当該特許掲載公報は、本件特許に係る出願の出願日(2023年(令和5年)3月14日)後である令和6年7月17日に発行されたものであるから申立理由(進歩性欠如)についての証拠方法とすることはできない。しかしながら、甲1の国際公開に係る国際公開第2022/154049号(国際公開日:2022年(令和4年)7月21日)の発明の詳細な説明及び図面は、実質的に、申立人が甲1として提出した特許第7518212号公報と同内容であるから、申立人が当該国際公開第2022/154049号を甲1として提出したものとみなして、以下に申立理由(進歩性欠如)についての証拠方法として採用する。
第4 甲1に記載された事項及び発明等について
1 甲1の記載事項(なお、下線部は当審で付した。以下同様。)
「[0001] 本開示は、産業機械を制御する数値制御装置に関する。」
「[0012] 数値制御装置は、産業機械を制御するための装置である。産業機械は、例えば、ワークの加工、部品の搬送に利用される機械である。産業機械は、例えば、工作機械、産業用ロボットである。本実施形態では、工作機械に設けられた数値制御装置の一例について説明する。」
「[0035] 図2は、数値制御装置2の機能の一例を示すブロック図である。数値制御装置2は、プログラム記憶部21と、処理時間割当部22と、プログラム解析部23と、移動指令実行部24と、機能処理実行部25とを備える。」
「[0041] プログラム解析部23は、プログラム記憶部21に記憶された制御プログラムを読み込んで制御プログラムの解析処理を実行する。プログラム解析部23は、制御プログラムの各行に記載された指令を解析する。制御プログラムが、例えば、第1の系統および第2の系統の制御プログラムを含んでいる場合、プログラム解析部23は、第1の系統および第2の系統の制御プログラムを解析する。
[0042] プログラム解析部23は、指令判別部231と、移動指令解析部232と、待機指令判別部233と、待機指令実行部234と、制御指令実行部235とを有する。
[0043] 指令判別部231は、制御プログラムに記載されている指令の種類を判別する。指令の種類には、例えば、移動指令、および制御指令が含まれる。
[0044] 移動指令とは、工作機械1の各軸を移動させる指令である。移動指令には、例えば、「G00」で指定される位置決め指令、「G01」で指定される直線補間指令、「G02」または「G03」で指定される円弧補間指令が含まれる。
[0045] 制御指令とは、制御プログラムの実行処理の流れを指示する指令、ならびに数値制御装置2のメモリに値を設定する指令、メモリ上で演算を実行させる指令、およびメモリに記憶された値を参照する指令を含む。言い換えれば、制御指令とは、移動指令、補助指令、表示制御指令、通信制御指令など、各種装置の動作を制御する指令以外の指令である。
[0046] 制御指令には、例えば、「#」によって指定されるメモリ参照指令およびメモリ設定指令が含まれる。また、制御指令には、「IF」文などの条件分岐指令、「FOR」文および「WHILE」文などの反復指令、ならびに「GOTO」文などの分岐指令が含まれる。また、制御指令には、「+」、「-」、「*」、および「/」によって規定される加減乗除を実行する算術演算指令が含まれる。また、制御指令には、「OR」、「XOR」、および「AND」で規定される論理演算を実行する論理演算指令が含まれる。また、制御指令には、「SIN」、および「SQRT」などで規定される関数の演算を実行する関数演算指令が含まれる。また、制御指令には、待機指令が含まれる。待機指令については、後に詳しく説明する。
[0047] 移動指令解析部232は、移動指令を解析し、移動指令の種類を判別する。移動指令解析部232は、例えば、移動指令が、位置決め指令、直線補間指令、円弧補間指令のうちいずれの指令であるかを判別する。また、移動指令とともに記載されている座標値を解析して、軸の移動方向、および移動量を算出する。
[0048] 待機指令判別部233は、制御指令に待機指令が含まれるか否かを判別する。言い換えれば、待機指令判別部233は、解析された制御プログラムに待機指令が含まれるか否かを判別する。待機指令とは、所定の条件が不成立となるまで、待機指令に続く指令の実行を待機させる指令である。
[0049] 後に詳しく説明するように、待機指令判別部233は、例えば、1つの「IF」文がパラメータでセットされた回数だけ繰り返し読み込まれた場合に、この「IF」文が待機指令であると判別する。つまり、待機指令判別部233は、1つの「IF」文が繰り返し読み込まれていることを検出してこの「IF」文が待機指令であると判別する。
[0050] 制御指令に待機指令が含まれる場合、待機指令に続く指令、すなわち、待機指令の次に実行される指令は所定の条件が不成立となるまで実行されない。この所定の条件を以下では待機条件という。
[0051] 待機指令は、例えば、上刃物台と下刃物台とを備えている旋盤において、下刃物台が制御プログラムで指定された所定の位置に到達してから上刃物台の動作を開始させる場合に用いられる。待機指令の具体例については後に図面を用いて詳しく説明する。
[0052] 待機指令実行部234は、制御プログラムに待機指令が含まれると判別された場合、待機指令に含まれる待機条件が成立するか否かを判別する処理を実行する。言い換えれば、待機指令実行部234は、制御プログラムに待機指令が含まれると判別された場合、待機指令を実行する。
[0053] 制御指令実行部235は、待機指令以外の制御指令を実行する。すなわち、制御指令実行部235は、「IF」文、「WHILE」文、「GOTO」文などの制御指令を実行して制御プログラムの実行処理の流れを制御する。あるいは、制御指令実行部235は、算術演算指令、論理演算指令、および関数演算指令などを実行する。
[0054] 移動指令実行部24は、移動指令解析部232によって解析された移動指令に基づいて移動処理を実行する。移動処理とは、工作機械1の各軸の制御を実行することである。移動指令実行部24は、サーボアンプ4に電力を供給することによってサーボモータ5を制御する。これにより、工作機械1の各軸の動作が制御される。
[0055] 機能処理実行部25は、制御プログラムの解析処理および移動処理以外の、数値制御装置2が有する機能に係る処理を実行する。機能処理実行部25が実行する処理には、例えば、数値制御装置2の運転状態などを表示させる表示処理、制御プログラムの編集操作を実行する制御プログラム編集処理、および、数値制御装置2と補助機器8との通信処理が含まれる。
[0056] 次に、待機指令の具体例について説明する。
[0057] 図3は、待機指令を含む制御プログラムの一例を示す図である。左側の第1の系統の制御プログラムは、例えば、上刃物台を動作させる制御プログラムである。右側の第2の系統の制御プログラムは、例えば、下刃物台を動作させるための制御プログラムである。
[0058] シーケンス番号N101に記載された「#501=150.0」は、変数「#501」に値「150.0」を代入するメモリ設定指令である。シーケンス番号N102に記載された「#500=#20005001」は、変数「#500」に変数「#20005001」に格納されている値を代入するメモリ参照指令である。ここで、変数「#20005001」に格納される値は、例えば、下刃物台の動作中にセンサ(不図示)によって検出される下刃物台のX軸方向の位置を示す座標値である。
[0059] シーケンス番号N103に記載された「IF」文は、待機条件「#500 LT #501」が成立するか否かを判断する制御指令である。
[0060] 変数「#500」に格納される値が変数「#501」に格納される値以上である場合、待機条件が不成立となる。この場合、制御プログラムの実行位置が「IF」文に続くシーケンス番号N104に移行する。シーケンス番号N104に記載された「G01Z100.0F500」は、上刃物台を「Z100.0」の位置まで送り速度「500」で移動させる指令である。
[0061] 変数「#500」に格納される値が「#501」に格納される値より小さい場合、待機条件が成立する。この場合、「GOTO」文により制御プログラムの実行位置がシーケンス番号N102にジャンプし、再び、シーケンス番号N103に記載された「IF」文が実行される。つまり、シーケンス番号N103に記載された「IF」文は、待機条件が不成立となるまで、「IF」文の次の指令の実行を待機させる。
[0062] 第2の系統の制御プログラムは、下刃物台を動作させるプログラムである。シーケンス番号N201に記載された「G01X50.0F500」は、下刃物台を「X50.0」の位置まで、送り速度「500」で移動させる指令である。シーケンス番号N202に記載された「G01Y50.0」は、下刃物台を「Y50.0」の位置まで移動させる指令である。シーケンス番号N203に記載された「G01X150.0」は、下刃物台を「X150.0」の位置まで移動させる指令である。シーケンス番号N204に記載された「M01」は、オプショナルストップ指令である。
[0063] したがって、図3に示す制御プログラムは、待機指令を用いて、下刃物台の位置が「X150.0」に到達するまで上刃物台の動作を待機させ、下刃物台の位置が「X150.0」に到達すると上刃物台をZ軸方向に動作させる。
[0064] 次に、各制御周期において実行される処理について説明する。
[0065] 図4は、数値制御装置2が制御周期ごとに実行する処理を説明する図である。なお、図4は、数値制御装置2が図3に示す制御プログラムを実行する際の処理を示している。
[0066] 図4の上側の図は、未だ待機条件が不成立となっていないために「IF」文が繰り返し実行されていることを示している。図4の下側のタイムチャートは、制御周期ごとに実行される処理を示している。上側の図と下側のタイムチャートとを連結する矢印は、待機指令が制御周期ごとに実行されることを示している。
[0067] 図4に示すとおり、1つの制御周期の最初の期間には移動処理が割り当てられる。つまり、処理時間割当部22は、1つの制御周期の最初の期間を移動指令実行部24に割り当てる。移動指令実行部24は、処理時間割当部22によって割り当てられた処理時間の間、工作機械1の各軸の動作を制御する。移動指令実行部24は、例えば、前の制御周期において解析され、所定のメモリ(不図示)に記憶された移動指令の解析結果に基づいて工作機械1の各軸の動作を制御する。制御プログラムに第1の系統の制御プログラムと第2の系統の制御プログラムが含まれる場合、移動指令実行部24は、第1の系統、および第2の系統に含まれる各軸の動作を制御する。
[0068] 移動処理に割り当てられた期間の次の期間は、第1の系統の制御プログラムの解析処理に割り当てられる。つまり、処理時間割当部22は、プログラム解析部23に処理時間を割り当てる。
[0069] プログラム解析部23は、割り当てられた期間において、第1の系統の制御プログラムの解析処理を実行する。
[0070] 図5は、プログラム解析部23が実行する解析処理の一例を示すフローチャートである。解析処理が開始すると、指令判別部231は、制御プログラムを読み込み(ステップS1)、読み込んだ指令が移動指令であるか否かを判別する(ステップS2)。
[0071] 読み込まれた指令が移動指令である場合(ステップS2においてYesの場合)、移動指令解析部232は、移動指令の種類を解析する(ステップS3)。移動指令の解析結果は、例えば、メモリに記憶される(ステップS4)。
[0072] 読み込まれた指令が移動指令ではない場合(ステップS2においてNoの場合)、待機指令判別部233は、制御指令に待機指令が含まれるか否かを判別する(ステップS5)。
[0073] 待機指令判別部233は、1つの制御指令がパラメータでセットされた回数だけ繰り返し読み込まれた場合、制御指令に待機指令が含まれると判別する。図4に示す例では、シーケンス番号N103に記載された「IF」文が3回読み込まれると、待機指令判別部233は、シーケンス番号N103に記載された「IF」文が待機指令であると判別する。
[0074] なお、数値制御装置2は、1つの制御周期内における待機指令の読み込み回数を規定するパラメータの入力を受け付ける受付部を備えていてもよい。受付部は、例えば、入出力装置3によって構成されてもよい。また、「IF」文が記載されたブロックのシーケンス番号、「GOTO」文のジャンプ先、および待機条件の少なくとも1つが各回の実行処理において互いに一致するか否かを判断することにより、1つの「IF」文が繰り返し実行されているか否かを判断するようにしてもよい。
[0075] 制御指令に待機指令が含まれている場合(ステップS5においてYesの場合)、待機指令実行部234は、待機指令を実行する(ステップS6)。すなわち、待機指令実行部234は、待機指令に含まれる待機条件が成立するか否かを判別する処理を実行する。
[0076] 待機指令実行部234が待機指令を実行すると、第1の系統の制御プログラムの解析処理が終了し、第2の系統の制御プログラムの解析処理が開始される。言い換えれば、1つの制御周期の期間内において制御プログラムに待機指令が含まれるか否かが判別され、かつ、待機条件が成立するか否かを判別する処理が実行されたことを契機に、1つの制御周期の残りの期間において、待機条件が成立するか否かを判別する処理とは異なる処理が実行される。さらに、別の言い方をすれば、待機指令が実行されると、処理時間割当部22は1つの制御周期内の残りの時間を待機指令の実行処理とは異なる処理に処理時間を割り当てる。
[0077] 制御指令に待機指令が含まれていない場合(ステップS5においてNoの場合)、制御指令実行部235は、制御指令を実行する(ステップS7)。
[0078] 制御指令が終了するか、あるいは、第1の系統の制御プログラムの解析処理に割り当てられた期間が経過すると、第1の系統の制御プログラムの解析処理が終了する。
[0079] ここで、図4の説明に戻る。第1の系統の制御プログラムの解析処理に割り当てられた期間の次の期間には、第2の系統の制御プログラムの解析処理が割り当てられる。つまり、処理時間割当部22は、プログラム解析部23に処理時間を割り当てる。
[0080] 指令判別部231は、割り当てられた期間において、第2の系統の制御プログラムの指令を読み込み、第2の系統の制御プログラムに記載された指令の種類を判別する。指令の種類が移動指令である場合、移動指令解析部232が移動指令の種類を解析し、例えば、解析結果を所定のメモリに記憶する。指令の種類が制御指令である場合、待機指令判別部233は制御指令に待機指令が含まれるか否かを判別する。
[0081] 制御指令に待機指令が含まれる場合、待機指令実行部234は待機指令を実行する。制御指令に待機指令が含まれていない場合、制御指令実行部235は、制御指令を実行する。すなわち、第2の系統の制御プログラムの解析処理では、第1の系統の制御プログラムの解析処理と同様の処理が実行される。
[0082] 第2の系統の制御プログラムの解析処理に割り当てられた期間の次の期間には、その他の処理が割り当てられる。その他の処理とは、例えば、移動処理、第1の系統の制御プログラムの解析処理および第2の系統の制御プログラムの解析処理以外の処理である。つまり、処理時間割当部22は、機能処理実行部25に処理時間を割り当てる。機能処理実行部25は割り当てられた期間において、例えば、表示処理を実行する。
[0083] 1つの制御周期が終了すると、次の制御周期において、上述した処理と同様の処理が実行される。
[0084] 以上説明したように、数値制御装置2は、制御プログラムに待機指令が含まれるか否かを判別する第1の処理を実行する第1の処理部と、制御プログラムに待機指令が含まれると判別された場合、待機指令に含まれる待機条件が成立するか否かを判別する第2の処理を実行する第2の処理部と、第1の制御周期の期間内において第1の処理が実行され、かつ、第2の処理が実行されたことを契機に、第1の制御周期の残りの期間において第1の処理および第2の処理とは異なる第3処理を実行する第3の処理部と、を備える。したがって、数値制御装置2は、制御プログラムに待機指令が含まれると判断された場合、第1の制御周期の期間内において待機指令を繰り返し実行しない。そのため、CPU201資源が待機指令実行処理に費やされず、CPU201の資源配分を適切に行うことができる。結果として表示制御処理などの処理が遅延することを防ぐことができる。」
「[0094] シーケンス番号N304に記載された「IF」文は、待機条件「#500 LT #501」が成立するか否かを判断する制御指令である。」
「[0104] シーケンス番号N403に記載された「IF」文は、待機条件「#500 NE #501」が成立するか否かを判断する制御指令である。」
「[0110] 上述した実施形態では、「IF」文がパラメータで設定された回数だけ読み込まれたか否かを判断し、「IF」文が待機指令であるか否かを判断する。しかし、以下に説明するように待機指令はあらかじめ規定されてもよい。
[0111] 図8は、あらかじめ規定された待機指令を含む制御プログラムの一例を示す図である。図8の左側の第1の系統の制御プログラムは、例えば、上刃物台を動作させる制御プログラムである。図8の右側の第2の系統の制御プログラムは、例えば、下刃物台を動作させるための制御プログラムである。第1の系統の制御プログラムは、待機条件が不成立となるまで、上刃物台の動作を待機させる待機指令「WAITIF」を含む。
[0112] シーケンス番号N501に記載された「#501=150.0」は、変数「#501」に値「150.0」を代入するメモリ設定指令である。シーケンス番号N502に記載された「#500=#20005001」は、変数「#500」に変数「#20005001」に格納されている値を代入するメモリ参照指令である。ここで、「#20005001」に格納される値は、例えば、下刃物台の動作中にセンサ(不図示)によって検出される下刃物台のX軸方向の位置を示す座標値である。
[0113] シーケンス番号N503の「WAITIF」はあらかじめ規定された待機指令である。待機指令には、待機条件「#500 LT #501」が含まれる。つまり、待機条件「#500 LT #501」が不成立となるまで、「WAITIF」に続くシーケンス番号N504の処理は実行されない。
[0114] 「#500」に格納される値が「#501」より小さい場合、待機条件は成立する。この場合、「GOTO」文により制御プログラムの実行位置がシーケンス番号N502にジャンプする。
[0115] 「#500」に格納される値が「#501」以上である場合、待機条件が不成立となる。この場合、制御プログラムの実行位置が待機指令に続くシーケンス番号N504に移行する。
[0116] 第2の系統の制御プログラムは、下刃物台を動作させるプログラムである。シーケンス番号N601に記載された「G01X50.0F500」は、下刃物台を「X50.0」まで、送り速度「500」で移動させる指令である。シーケンス番号N602に記載された「G01Y50.0」は、下刃物台を「Y50.0」の位置まで移動させる指令である。シーケンス番号N603に記載された「G01X150.0」は、下刃物台を「X150.0」の位置まで移動させる指令である。シーケンス番号N604に記載された「M01」は、オプショナルストップ指令である。
[0117] つまり、図8に示す制御プログラムは、下刃物台が「X150.0」に到達するまで上刃物台の動作を待機させ、下刃物台が「X150.0」に到達すると、上刃物台をZ軸方向に動作させるプログラムである。
[0118] 次に、数値制御装置2が制御周期ごとに実行する処理について説明する。
[0119] 図9は、数値制御装置2が制御周期ごとに実行する処理を説明する図である。なお、図9は、数値制御装置2が図8に示す制御プログラムを実行する際の処理を示している。図9の上側の図は、未だ待機条件が不成立となっていないために待機指令が繰り返し実行されていることを示している。図9の下側のタイムチャートは、制御周期ごとに実行される処理を示している。上側の図と下側のタイムチャートとを連結する矢印は、待機指令が制御周期ごとに実行されることを示している。つまり、待機指令は、各制御周期において1回だけ実行される。
[0120] 図9に示すとおり、1つの制御周期の最初の期間には移動処理が割り当てられる。つまり、処理時間割当部22は、1つの制御周期の最初の処理時間を移動指令実行部24に割り当てる。移動指令実行部24は、処理時間割当部22によって割り当てられた処理時間の間、工作機械1の各軸の動作を制御する。移動指令実行部24は、例えば、所定のメモリ(不図示)に記憶された、前の制御周期において解析された移動指令の解析結果に基づいて工作機械1の各軸の動作を制御する。制御プログラムに第1の系統の制御プログラムと第2の系統の制御プログラムが含まれる場合、移動指令実行部24は、第1の系統、および第2の系統に含まれる各軸の動作を制御する。
[0121] 移動処理に割り当てられた最初の期間の次の期間には、第1の系統のプログラム解析処理が割り当てられる。つまり、処理時間割当部22は、プログラム解析部23に処理時間を割り当てる。
[0122] 指令判別部231は、割り当てられた期間において、第1の系統の制御プログラムの指令を読み込み、第1の系統の制御プログラムに記載された指令の種類を判別する。指令の種類が移動指令である場合、移動指令解析部232が移動指令の種類を解析し、例えば、解析結果を所定のメモリに記憶する。指令の種類が制御指令である場合、待機指令判別部233は制御指令に待機指令が含まれるか否かを判別する。制御指令に待機指令が含まれる場合、待機指令実行部234は待機指令を実行する。制御指令に待機指令が含まれていない場合、制御指令実行部235は、制御指令を実行する。
[0123] 第1の系統のプログラム解析処理に割り当てられた期間の次の期間には、第2の系統のプログラム解析処理が割り当てられる。つまり、処理時間割当部22は、プログラム解析部23に処理時間を割り当てる。第2の系統の制御プログラムの解析処理では、第1の系統の制御プログラムの解析処理と同様の処理が実行される。
[0124] 第2の系統のプログラム解析処理に割り当てられた期間の次の期間には、移動処理、第1の系統のプログラム解析処理、および第2の系統プログラム解析処理以外の処理が割り当てられる。つまり、処理時間割当部22は、機能処理実行部25に処理時間を割り当てる。機能処理実行部25は割り当てられた期間において、例えば、表示処理を実行する。
[0125] 1つの制御周期が終了すると、次の制御周期において、上述した処理と同様の処理が実行される。
[0126] 以上説明したように、第1の処理部は、制御プログラムに第2の条件文が含まれている場合、制御プログラムに待機指令が含まれると判断する。つまり、待機指令として、例えば、「WAITIF」文を規定することにより、待機指令判別部233が制御プログラム内において待機指令が含まれているか否かを容易に判別することができる。また、制御プログラムに待機指令が含まれると判断された場合、第1の制御周期の期間内において待機指令が繰り返し実行されることを防ぐことができる。」
図2
「
[図:0001420351000001.jpg]
」
図3
「
[図:0001420351000002.jpg]
」
図4
「
[図:0001420351000003.jpg]
」
図5
「
[図:0001420351000004.jpg]
」
図8
「
[図:0001420351000005.jpg]
」
図9
「
[図:0001420351000006.jpg]
」
2 上記1から理解できる事項
(1)上記[0041]、[0042]、[0047]、[0120]、[0122]等から、プログラム解析部23に含まれる移動指令解析部232は、プログラム解析部23での解析結果に基づいて、工作機械1の各軸の動作を制御する移動指令を生成していることが理解できる。
また、上記[0052]、[0057]~[0063]、[0111]~[0117]等から、待機指令実行部234は、プログラム解析部23での解析結果に基づいて、少なくとも、上刃物台を動作させる又は下刃物台を動作させるとの、第1の系統のプログラム解析及び第2の系統のプログラム解析に基づく上刃物台及び下刃物台に対する指令を生成しているといえる。
すなわち、移動指令解析部232及び待機指令実行部234は、プログラム解析部23での解析結果に基づいて、制御対象(工作機械1の各軸、上刃物台、下刃物台)を駆動させる指令を生成するものであるといえる。
(2)図3、[0056]~[0061]、[0111]~[0117]等から、待機指令は、数値制御プログラムの実行を進める条件を示す条件式が記述されており、演算子を含むものであることが理解できる。
(3)[0113]の「シーケンス番号N503の「WAITIF」はあらかじめ規定された待機指令である。待機指令には、待機条件「#500 LT #501」が含まれる。つまり、待機条件「#500 LT #501」が不成立となるまで、「WAITIF」に続くシーケンス番号N504の処理は実行されない。」の記載等から、予め規定された「WAITIF」により読み込まれたブロックが待機指令であるか否かを判別できるものであり、待機条件「#500 LT #501」の成否の判定よりも前に判別するものであることは明らかである。
また、上記[0113]及び[0119]の「図9の上側の図は、未だ待機条件が不成立となっていないために待機指令が繰り返し実行されていることを示している。」との記載及び図9の上側の図の図示等から、待機指令が読み込まれた場合に、待機条件が不成立するまで、(1回目および2回目以降の)待機指令か否かの判別、及び待機条件の成否の判定が繰り返されることが理解できる。
そして、[0110]に「しかし、以下に説明するように待機指令はあらかじめ規定されてもよい。」と記載されており、読み込まれたブロックが待機指令であるか否かの判別を、待機条件の成否の判定よりも前に判別する実施形態は、[0110]~[0126]、図8、9に記載されていると認められる(この実施形態を、以下「甲1発明に係る実施形態」という。)。
(4)甲1発明に係る実施形態について、[0123]に、第2の系統の制御プログラムの解析処理では、第1の系統の制御プログラムの解析処理と同様の処理が実行されることが記載され、[0122]に、第1の系統のプログラム解析処理において、第1の系統の制御プログラムが待機指令を含むか判別することが記載されているから、第2の系統の制御プログラムの解析処理においても、第2の系統の制御プログラムが待機指令を含むか判別することは明らかである(なお、別の実施形態であるが、[0081]には、第2の系統の制御プログラムの解析処理において、第2の系統の制御プログラムが待機指令を含むか判別することが記載されている。)。
したがって、甲1発明に係る実施形態において、プログラム解析部23は、少なくとも、1つの制御周期(図9に図示されている「制御周期」等を参照。)において、移動指令を含むか判別(移動処理)した後に、第1の系統の制御プログラムが待機指令を含むか判別(第1の系統のプログラム解析処理)し、さらにその後に第2の系統の制御プログラムが待機指令を含むか判別(第2の系統のプログラム解析処理)するものであることが理解できる。
3 甲1発明
上記1及び2の、特に甲1発明に係る実施形態の記載等から、甲1には、以下の発明(以下「甲1発明」という。)が記載されていると認められる。(便宜のため、本件発明1の構成A~Fに対応させて、甲1発明を分説し、それぞれの構成にa~fの符号を付した。以下「構成a」などという場合がある。)
<甲1発明>
「a ブロックを数値制御プログラムから読み込み、前記ブロックを解析する指令判別部231及び待機指令判別部233を備えるプログラム解析部23と、
b 前記プログラム解析部23での解析結果に基づいて、制御対象を駆動させる指令を生成する移動指令解析部232及び待機指令実行部234と、を備え、
c 前記プログラム解析部23は、前記数値制御プログラムの実行を進める条件を示す待機条件が記述されている待機指令が読み込まれた場合に、前記待機条件が不成立するまで前記待機条件の成否の判定を繰り返し、前記待機条件が不成立するまでにおいて、前記待機指令を、1回目および2回目以降の前記待機条件の成否の判定よりも前に解析し、
d 前記プログラム解析部23は、1つの制御周期において、移動指令を含むか判別した後に、第1の系統の制御プログラムが待機指令を含むか判別し、さらにその後に第2の系統の制御プログラムが待機指令を含むか判別し、
e 前記プログラム解析部23は、演算子を含む前記待機条件を演算する
f 数値制御装置2。」
第5 当審の判断
1 本件発明1について
(1)本件発明1と甲1発明との対比
本件発明1と甲1発明とを対比すると、甲1発明の「指令判別部231及び待機指令判別部233を備えるプログラム解析部23」は本件発明1の「解析処理部」に相当し、以下同様に、「移動指令解析部232及び待機指令実行部234」は「制御処理部」に、「待機条件」は「条件式」又は「条件」に、「待機指令」は「条件待ちブロック」に、「数値制御装置2」は「数値制御装置」に、それぞれ相当するといえる。
また、甲1発明の「条件が不成立するまで」と、本件発明1の「条件が成立するまで」とは、「条件が成立又は不成立するまで」との点では共通する。
したがって、本件発明1と甲1発明とは、以下の点で一致し、以下の点で相違する。
<一致点>
「A’ ブロックを数値制御プログラムから読み込み、前記ブロックを解析する解析処理部と、
B 前記解析処理部での解析結果に基づいて、制御対象を駆動させる指令を生成する制御処理部と、を備え、
C’ 前記解析処理部は、前記数値制御プログラムの実行を進める条件を示す条件式が記述されている条件待ちブロックが読み込まれた場合に、前記条件が成立又は不成立するまで前記条件の成否の判定を繰り返し、前記条件が成立又は不成立するまでにおいて、前記条件待ちブロックを、1回目および2回目以降の前記条件の成否の判定よりも前に解析し、
E 前記解析処理部は、演算子を含む前記条件式を演算する
F 数値制御装置。」
<相違点1>
構成Aについて、数値制御プログラムから読み込むブロックが、本件発明1は、「プログラムカウンタが示すブロック」であるのに対し、甲1発明は、プログラムカウンタが示すブロックであるか不明な点。
<相違点2>
構成Cに関し、条件待ちブロックの解析及び条件の成否の判定を、「条件が成立又は不成立するまで」繰り返すことについて、本件発明1は、「条件が成立するまで」であるのに対し、甲1発明は、「条件が不成立するまで」である点。
<相違点3>
構成Dとして、本件発明1では、「前記解析処理部は、一回の解析処理において前記条件待ちブロックである1個のブロックのみを解析」することが特定されているのに対し、甲1発明では、プログラム解析部23は、1つの制御周期において、移動指令を含むか判別した後に、第1の系統の制御プログラムが待機指令を含むか判別し、さらにその後に第2の系統の制御プログラムが待機指令を含むか判別する点。
(2)相違点についての検討
ア 事案に鑑みて、相違点3について検討する。
まず、甲1発明のプログラム解析部23は、1つの制御周期において、移動指令を含むか判別した後に、第1の系統の制御プログラムが待機指令を含むか判別し、さらにその後に第2の系統の制御プログラムが待機指令を含むか判別するものであるから、1つの制御周期において、待機指令である1個のブロックのみを解析するものでないことは明らかである。
イ そして、甲1発明に係る実施形態における、1つの制御周期においては、待機指令を含むか判別する第1の系統のプログラム解析処理を行うこと([0121]、[0122])に先だって、移動指令を含むか判別する移動処理を行うものである([0120])ところ、当該移動処理によって、「所定のメモリ(不図示)に記憶された、前の制御周期において解析された移動指令の解析結果に基づいて工作機械1の各軸の動作を制御する。」([0120])ことを実現するものであるから、そのような移動処理を行わないように設計変更できないことは明らかである。
ウ したがって、少なくとも、甲1発明から、当該移動処理に係る「移動指令を含むか判別」(構成d)することを捨象して、1つの制御周期において、待機指令である1つのブロックのみを解析するように改変することには阻害事由があるというべきである。
エ さらに、申立人が提出した証拠方法である甲2~5について検討しても、甲2、3は、数値制御プログラムの読み込みブロックをプログラムカウンタにより管理することが周知であること、及び甲4、5は、数値制御プログラムにおける条件待ちブロックに用いる条件式を数値制御プログラムの実行を進める条件を示す条件式とすることが周知であること(申立書25ページ)をそれぞれ示すために提出された証拠方法であるところ、当該甲2~5によっても、甲1発明において、移動処理に係る「移動指令を含むか判別」(構成d)することを捨象して、1つの制御周期において、待機指令である1つのブロックのみを解析することが動機付けられないことは明らかである。
加えて、1つの制御周期において、待機指令である1つのブロックのみを解析することが周知技術であるといえるような証拠も見当たらない。
オ そして、本件発明1の構成Dにより、本件明細書の段落【0031】に記載されているように、「解析処理部6が一回の解析処理において解析を行うブロックは1個のブロックのみであることから、数値制御装置1は、一回の解析処理において複数のブロックの解析が必要である場合と比べて、解析処理の負荷を低減できる。数値制御装置1は、解析処理の負荷を低減できることによって、数値制御装置1の処理能力の殆どが解析処理に費やされる事態を回避することができる。これにより、数値制御装置1は、解析処理以外の処理のための処理能力を十分に確保することが可能となる。」との、顕著な作用効果を奏するものである。
カ よって、相違点1、2について検討するまでもなく、本件発明1は、甲1発明及び甲2~5に記載の技術的事項から当業者が容易になし得たものということはできない。
(3)申立人の主張とその検討
ア 本件発明1の構成D(相違点3)についての申立人の主張の概要
申立人は、本件発明1の構成Dに関して、申立書18ページにおいて、「[0070]~[0078]の説明、及び図5のフローチャートによれば、プログラム解析部23は、待機指令を読み込んだ場合、一回の解析処理で待機指令が記載されたブロックである1個のブロックのみを解析している。」と主張し、甲1にも構成Dに係る発明特定事項が記載されている旨、すなわち、構成Dは一致点である旨を主張している。
イ 検討
上記申立人の主張について検討する。
まず、甲1の[0070]~[0078]及び図5は、甲1発明に係る実施形態が記載された箇所(段落[0110]~[0126]、図8、9)ではなく、1つの制御周期において、移動指令を含むか判別した後の、第1の系統の制御プログラムの解析処理として、1つの制御指令がパラメータでセットされた回数だけ繰り返し読み込まれた場合(すなわち、条件の成否の判定を所定回数繰り返した後に)、制御指令に待機指令が含まれると判別する場合の実施形態が記載された箇所であって(特に[0072]、[0073]等を参照。)、待機指令であるか否かの解析を、待機条件の成否の判定よりも前に行うものではない(すなわち、構成Cを開示しない)から、当該[0070]~[0078]及び図5に記載の実施形態に基づいて、甲1発明を認定した場合、本件発明1とは相違点1~3に加えて更なる相違点を有することとなるため、主引用発明として採用することはできない。
また、仮に当該[0070]~[0078]及び図5の実施形態に基づいて甲1発明を認定することができたとしても、甲1の[0070]~[0083]及び図4、5に記載された実施形態においても、甲1発明に係る実施形態([0110]~[0126]、図8、9に記載された実施形態)と同様に、プログラム解析部23が、1つの制御周期において、移動指令を含むか判別した後に、第1の系統の制御プログラムが待機指令を含むか判別し、さらにその後に第2の系統の制御プログラムが待機指令を含むか判別することしか記載されていないから、上記相違点3に係る本件発明1の構成Dが依然として相違点となることは明らかである。
したがって、申立人の主張は採用できない。
3 本件発明2~4について
本件発明2~4はいずれも請求項1の記載を直接又は間接的に引用するものであるから、本件発明2~4と、甲1発明とを対比すると、少なくとも上記相違点1~3で相違し、本件発明1と同様の理由により、甲1発明及び甲2~5に記載の技術的事項に基づいて当業者が容易になし得たものということはできない。
4 小括
したがって、本件発明1~4は、甲1発明及び甲2~5に記載の技術的事項に基づいて、当業者が容易に発明をすることができたものではない。
よって、請求項1~4に係る本件特許は、特許法第29条第2項の規定に違反してされたとする申立理由により、取り消すことはできない。
第6 むすび
したがって、特許異議の申立ての理由及び証拠方法によっては、請求項1~4に係る特許を取り消すことはできない。
また、他に請求項1~4に係る特許を取り消すべき理由を発見しない。
よって、結論のとおり決定する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2024-700963