特許異議申立
2023-701201
外部設定機器、ロギング設定方法およびプログラム
- 審判番号
- 2023-701201
- 法域
- 特許
- 審判種別
- 異議申立(異議の決定)
- 出願番号
- 特願2021-191970
- 登録番号
- 7273935
- 請求日
- 2023年11月14日
- 審決日
- 2025年04月16日
- 公報発行日
- 2025年08月29日
- 結論
- 訂正認容
- 当事者
- 【権利者】株式会社キーエンス
- 【権利者代理人】弁理士法人第一国際特許事務所
- 【権利者代理人】弁理士法人大塚国際特許事務所
- 【異議申立人】大森 隆一
- 審判長/審判官
- 審判長 刈間 宏信
- 審判官 大山 健
- 審判官 田々井 正吾
- 分類
- P1651.121-YAA(G05B) / P1651.536-YAA(G05B) / P1651.537-YAA(G05B)
- 条文(本文から自動抽出・参考)
- 特許法第120条の5第9項、特許法第120条の5第2項、特許法第120条の5第4項、特許法第36条第6項第1号、特許法第36条第6項第2号、特許法第120条の5第7項、特許法第126条第7項、特許法第29条第1項第3号、特許法第29条第1項、特許法第29条第2項
- データ出所
- 審決公報(XML)
事件の表示
特許第7273935号発明「外部設定機器、ロギング設定方法およびプログラム」の特許異議申立事件について、次のとおり決定する。
結論
結 論
特許第7273935号の特許請求の範囲を訂正請求書に添付された訂正した特許請求の範囲のとおり、訂正後の請求項〔1~8〕、〔9~11〕、12、13について訂正することを認める。
特許第7273935号の請求項1~13に係る特許を維持する。
理由
理 由
第1 手続の経緯
特許第7273935号の請求項1~13に係る特許(以下「本件特許」という。)についての出願は、平成30年10月23日に出願された特願2018-199199の一部を、令和2年8月27日に新たな特許出願とした特願2020-143397について、その一部をさらに令和3年11月26日に新たな特許出願としたものであって、令和5年5月2日にその特許権の設定登録がされ、同月15日に特許掲載公報が発行された。本件特許異議申立ての経緯は次のとおりである。
1 令和5年11月14日
特許異議申立人大森隆一(以下「申立人」という。)による請求項1~13に係る特許に対する特許異議の申立て。
2 令和6年 4月10日付け
特許権者株式会社キーエンス(以下「特許権者」という。)に対して取消しの理由(以下「取消理由」という)を通知。
3 令和6年 5月22~28日
特許権者との電話及び電子メールでの応対。
4 令和6年 6月10日
特許権者による訂正の請求(以下「先にした訂正請求」という。)と意見書の提出。
5 令和6年 6月25日付け
上記4の先にした訂正請求に係る訂正請求書に対して手続補正(方式)を指令。
6 令和6年 7月 3日
上記5の指令に対して、特許権者による上記4の先にした訂正請求に係る訂正請求書を補正対象とする手続補正書(方式)の提出。
7 令和6年 8月14日
申立人による意見書の提出。
8 令和6年11月5日付け
特許権者に対して取消理由を通知<決定の予告>(以下、この取消理由通知を単に「決定の予告」という。) 。
9 令和6年12月20日
特許権者による訂正の請求(以下「本件訂正請求」という。)と意見書の提出。
10 令和7年2月5日
申立人による意見書の提出。
本件訂正請求がされたため、先にした訂正請求は、特許法第120条の5第7項の規定により、取り下げられたものとみなす。
第2 本件訂正請求による訂正の適否
本件訂正請求による訂正(以下「本件訂正」という。)の適否について検討する。
1 請求の趣旨
本件訂正請求の趣旨は、本件特許の特許請求の範囲を、本件訂正請求書に添付した訂正した特許請求の範囲のとおり、訂正後の請求項1~13について訂正することを求めるものである。
2 一群の請求項についての説明
(1)請求項1~8
訂正前の請求項1~8について、請求項2~8は、請求項1を直接的又は間接的に引用しているものであって、本件訂正によって記載が訂正される請求項1に連動して訂正されるものである。したがって、訂正前の請求項1~8に対応する訂正後の請求項1~8は、特許法第120条の5第4項に規定する一群の請求項である。
(2)請求項9~11
訂正前の請求項9~11について、請求項10~11は、請求項9を直接的又は間接的に引用しているものであって、本件訂正によって記載が訂正される請求項9に連動して訂正されるものである。したがって、訂正前の請求項9~11に対応する訂正後の請求項9~11は、特許法第120条の5第4項に規定する一群の請求項である。
3 独立特許要件
本件特許異議申立ては、本件訂正前の全ての請求項1~13が対象とされているので、本件訂正に関して、特許法第120条の5第9項で読み替えて準用する特許法第126条第7項の独立特許要件は課されない。
4 一群の請求項である請求項1~8に係る訂正
(1)訂正事項1(下線は訂正箇所に付した。以下第2において同じ。)
訂正前の特許請求の範囲の請求項1に、
「プログラマブルロジックコントローラに接続される外部設定機器であって、ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記記憶部に記憶されたラダープログラムを解析することにより、前記命令語の引数から特定されるデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定するログ設定データを作成するログ設定部と
を備える外部設定機器。」
と記載されているのを、
「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するログ設定部と、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部と
を備える外部設定機器。」
に訂正する。(請求項1を引用する請求項2~8も同様に訂正する。)
(2)一群の請求項の訂正
訂正事項1は、上記2(1)の特許法第120条の5第4項に規定する一群の請求項である請求項1~8を訂正するものである。
(3)訂正事項1の訂正要件の検討
ア 訂正の目的
訂正事項1は、訂正前の請求項1に関し、次の(ア)~(オ)の限定をするものである。
(ア)限定事項1
外部設定機器が接続されるプログラマブルロジックコントローラについて、「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存する」ことを限定する。
(イ)限定事項2
記憶部に記憶されたラダープログラムを解析することについて、「前記プログラマブルロジックコントローラでロギングされるデバイスを設定するため」であることを限定する。
(ウ)限定事項3
デバイス抽出部が抽出するデバイスについて、「ラダープログラムに記述される各デバイス」が抽出されることを新たに限定し、命令語の引数から特定されるデバイス範囲に対応する複数の異なるデバイスについては、命令語が「ラダープログラムに含まれる」ものであり、デバイス範囲が「先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分」であることを限定する。
(エ)限定事項4
ログ設定データで指定される保存条件について、「特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定」すること、及びログ設定データで指定される所定期間について、「当該タイミングを基準とする時間を指定」することを限定する。
(オ)限定事項5
「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部」を発明特定事項に加えて限定する。
(カ)訂正事項1の目的のまとめ
したがって、上記限定事項1~5より、訂正事項1は、特許法第120条の5第2項ただし書第1号に掲げる特許請求の範囲の減縮を目的とするものである。
イ 実質上特許請求の範囲を拡張し、又は変更する訂正ではないこと
訂正事項1は、上記限定事項1~5の限定をするものであって、発明のカテゴリーや対象、目的を変更するものではなく、実質上特許請求の範囲を拡張し、又は変更するものには該当しないから、特許法第120条の5第9項で準用する同法第126条第6項の規定に適合するものである。
ウ 本件の願書に添付した明細書、特許請求の範囲又は図面(以下「本件明細書等」という。)に記載した事項の範囲内の訂正であること
(ア)限定事項1の新規事項の有無について
本件明細書等の段落【0026】の「PLC1は、入出力リフレッシュ、ラダープログラムの実行およびEND処理を1サイクル(1スキャン)として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。」の記載からみて、本件明細書等には、上記限定事項1の外部設定機器が接続されるプログラマブルロジックコントローラについてラダープログラムを繰り返し実行することが記載されている。
そして、本件明細書等には、以下の記載がある。
段落【0107】
[記載a]「収集部92aは、所定の収集開始条件が満たされると、デバイス部34に保持されているデバイス値のうち、ログ設定データ72により指定されたデバイス値をデバイス部から読み出すとともに、時刻管理部83aから時刻情報を取得する。収集部92aはデバイス値と時刻情報とを関連付けてリングバッファ91aに格納する。なお、収集部92aは、ログ設定データ72により指定された収集周期(例:スキャン周期)ごとにデバイス値と時刻情報とを取得してリングバッファ91aに格納する。」
[記載b]「たとえば、保存部93は、所定の保存条件が満たされたときに、リングバッファ91aからデバイス値と時刻情報とを読み出し、ログデータ73を作成してメモリカード36に保存してもよい。同様に、保存部93は、所定の保存条件が満たされたときに、拡張ユニット4から大容量データと時刻情報とを読み出し、ログデータ73を作成してメモリカード36に保存してもよい。保存部93は、上述したデバイス値及び時刻情報と、上述した大容量データ及び時刻情報とを、対応付けて保存する。」
段落【0140】
[記載c]「保存トリガーの設定部164は、保存トリガーとして利用されるリレーデバイスのデバイス名と、条件(例:オフからオンに切り替わったこと)との設定を受け付ける。」
[記載d]「収集方法とはログデータ73の収集方法である。この例では、保存トリガー前後と呼ばれる収集方法と、開始リレーと呼ばれる収集方法とが説明される。保存トリガー前後とは、保存トリガーがオンになったタイミングよりも前の収集時間Taと保存トリガーがオンになったタイミングよりも後の収集時間Tbとにおいてログデータ73を収集する方法である。テキストボックス162は収集時間Tの入力を受け付ける。収集時間Tは、収集時間Taと収集時間Tbとの合計値である。テキストボックス163はトリガー後の収集時間Tbの入力を受け付ける。」
段落【0141】
「保存トリガー前後と呼ばれる収集方法では、リングバッファ91にはデバイス値や画像データが常時格納される。保存部93は、保存トリガーであるリレーデバイスR200がオンになると、収集時間として指定された20秒のログデータ73を作成する。保存部93は、リレーデバイスR200がオンになったタイミングから18秒前に記録されたデータから、当該タイミングから2秒後までに記録されたデータをリングバッファ91から読み出してログデータ73を作成する。」
上記段落【0107】の[記載a]の記載からみて、本件明細書等には、上記の限定事項1の「ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録」することが記載されている。
また、上記段落【0107】の[記載b]、段落【0140】の[記載c]及び[記載d]、及び段落【0141】の記載からみて、段落【0140】の[記載d]の「収集時間T」が請求項1に記載した「所定期間」を意味すると解されるから、本件明細書等には、上記限定事項1の「ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存する」ことについて記載されている。
よって、限定事項1は、本件明細書等に記載した事項の範囲内のものである。
(イ)限定事項2の新規事項の有無について
段落【0027】の「そこで、PC2は、ユーザプログラムを解析し、ユーザプログラムに使用または記述されているデバイスをロギング対象として抽出する。これにより、ユーザの負担が軽減される。」、段落【0034】の「ログ設定部51は、プロジェクトデータ71を解析することでプロジェクトデータ71に記述されているデバイスを抽出し、抽出されたデバイスをロギング対象として設定するためのログ設定データ72を作成する。」との記載、段落【0035】の「デバイス抽出部53は、プロジェクトデータ71を解析することでプロジェクトデータ71に記述されているデバイスを抽出し、ログ設定データ72を作成する。」との記載、及び段落【0058】の「S3でデバイス抽出部53は部品指定部52により指定されたプログラム部品を解析し、指定されたプログラム部品において記述されているデバイスを抽出する。」の記載からみて、本件明細書等には、上記限定事項2について記載されている。
よって、限定事項2は、本件明細書等に記載した事項の範囲内のものである。
(ウ)限定事項3の新規事項の有無について
上記(イ)の段落【0027】、【0034】、【0035】、【0058】の記載からみて、本件明細書等には、上記限定事項3におけるデバイス抽出部について「ラダープログラムに記述される各デバイス」を抽出することが記載されている。
そして、段落【0074】の「S12でデバイス抽出部53は、命令語のアクセス範囲からデバイス範囲を取得する。命令語によっては、先頭デバイスのデバイス番号と、先頭デバイスを基準としたデバイスの個数とを引数とするものがある。たとえば、003番のステップにはリレーデバイスMR000がオンになると、FMOVという命令語を実行することが記述されている。この例では、FMOVは、指定された値(0)を、先頭デバイス(@EM0)を基準とした指定個数(10個)のデバイスに代入するための命令語(関連デバイスの初期化をするための命令語)である。つまり、アクセス範囲は、先頭アドレスと指定個数とによって定義されている。デバイス抽出部53は、@EM0から@EM9までの範囲をデバイス範囲に決定する。」との記載からみて、本件明細書等には、上記限定事項3における命令語の引数から特定されるデバイス範囲について、命令語が「ラダープログラムに含まれる」ものであり、デバイス範囲が「先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分」であることについて記載されている。
よって、限定事項3は、本件明細書等に記載した事項の範囲内のものである。
(エ)限定事項4の新規事項の有無について
上記(ア)の段落【0107】の[記載b]、段落【0118】の「S25でCPU31(収集部92a)は、保存タイミングが到来したかどうかを判定する。保存タイミングとは、リングバッファ91aに保持されている情報をログデータ73に保存するタイミングである。保存タイミングは、たとえば、所定のイベント(例:保存トリガ)が発生したことなどであってもよい。」の記載、及び上記(ア)の段落【0140】の[記載c]からみて、本件明細書等には、上記限定事項4の保存条件について「特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定」することについて記載されている。
そして、段落【0139】の「ログ設定部51はログデータ73の収集期間の設定を受け付けてもよい。」の記載、上記(ア)の段落【0140】の[記載d]からみて、本件明細書等には、上記限定事項4の所定期間について「当該タイミングを基準とする時間を指定」することについて記載されている。
よって、限定事項4は、本件明細書等に記載した事項の範囲内のものである。
(オ)限定事項5の新規事項の有無について
本件明細書等の段落【0133】~【0136】には、ログ表示部61において、保存された複数のデバイスのデバイス値および画像データの収集時刻に関する情報に基づき、当該デバイスおよび画像データの表示タイミングを調整するステップが実行されることが、開示されている。
したがって、限定事項5は、本件明細書等に記載した事項の範囲内のものである。
(カ)小括
上記(ア)~(オ)のとおりであるから、限定事項1~5の限定をする訂正事項1は、本件明細書等に記載した事項の範囲内の訂正であり、特許法第120条の5第9項で準用する同法第126条第5項の規定に適合するものである。
エ 訂正事項1の訂正要件のまとめ
上記ア~ウより、訂正事項1は、特許法第120条の5第2項ただし書第1号に掲げる特許請求の範囲の減縮を目的とするものであり、かつ、同条第9項で準用する同法第126条第5項及び第6項の規定に適合するものである。
5 一群の請求項である請求項9~11に係る訂正
(1)訂正事項2
訂正前の特許請求の範囲の請求項9に、
「外部メモリにアクセス可能なプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記記憶部に記憶されたラダープログラムを解析することにより、前記命令語の引数から特定されるデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、当該設定されたデバイスからロギングされたデバイス値を前記外部メモリに読み出す条件を設定するログ設定データを作成するログ設定部と、
前記ログ設定部により作成されたログ設定データを、前記プログラマブルロジックコントローラに送信する通信部と、
を備える外部設定機器。」
と記載されているのを、
「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して外部メモリに保存し、当該外部メモリにアクセス可能なプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、当該設定されたデバイスからロギングされたデバイス値を前記外部メモリに読み出す条件を設定するために、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するログ設定部と、
前記ログ設定部により作成されたログ設定データを、前記プログラマブルロジックコントローラに送信する通信部と、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部と
を備える外部設定機器。」
に訂正する。(請求項9の記載を引用する請求項10~11も同様に訂正する。)
(2)一群の請求項の訂正
訂正事項2は、上記2(2)の特許法第120条の5第4項に規定する一群の請求項である請求項9~11を訂正するものである。
(3)訂正事項2の訂正要件の検討
訂正事項2による訂正は、請求項9の(ア)外部設定機器が接続されるプログラマブルロジックコントローラについて、(イ)記憶部に記憶されたラダープログラムを解析することについて、(ウ)デバイス抽出部が抽出するデバイスについて、(エ)ログ設定データで指定される保存条件及び所定期間について、(オ)デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部について、訂正事項1による請求項1の限定事項1~5(上記4(3)ア(ア)~(オ))と同様の事項を限定するものである。
したがって、訂正事項2は、訂正事項1と同様の理由により、特許法第120条の5第2項ただし書第1号に掲げる特許請求の範囲の減縮を目的とし、かつ、特許法第120条の5第9項で準用する同法第126条第5項及び第6項の規定に適合するものである。
6 請求項12に係る訂正
(1)訂正事項3
訂正前の特許請求の範囲の請求項12に
「プログラマブルロジックコントローラに接続される外部設定機器を用いたロギング設定方法であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを前記外部設定機器の記憶部に記憶するステップと、
前記記憶部に記憶されたラダープログラムに基づいて、前記命令語の引数から特定されるデバイス範囲に対応する複数の異なるデバイスを抽出し、前記外部設定機器の表示部に表示するステップと、
前記表示部に表示された複数の異なるデバイスのうち一部のデバイスの削除を受け付け、前記プログラマブルロジックコントローラでロギングされる対象デバイスを特定するステップと、
前記特定された対象デバイスに基づいて、ログ設定データを作成するステップと、
を含むことを特徴とするロギング設定方法。」
と記載されているのを、
「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器を用いたロギング設定方法であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを前記外部設定機器の記憶部に記憶するステップと、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムに基づいて、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出し、前記外部設定機器の表示部に表示するステップと、
前記表示部に表示された複数の異なるデバイスのうち一部のデバイスの削除を受け付け、前記プログラマブルロジックコントローラでロギングされる対象デバイスを特定するステップと、
前記特定された対象デバイスに基づいて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するステップと、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップと
を含むことを特徴とするロギング設定方法。」
に訂正する。
(2)訂正事項3の訂正要件の検討
訂正事項3による訂正は、請求項12の(ア)ロギング設定方法に用いる外部設定機器が接続されるプログラマブルロジックコントローラについて、(イ)記憶部に記憶されたラダープログラムに基づいてデバイスを抽出することについて、(ウ)デバイスを抽出する際の対象となるデバイスについて、(エ)ログ設定データで指定される保存条件及び所定期間について、(オ)デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップについて、訂正事項1による請求項1の限定事項1~5(上記4(3)ア(ア)~(オ))と同様の事項を限定するものである。
よって、訂正事項3は、訂正事項1と同様の理由により、特許法第120条の5第2項ただし書第1号に掲げる特許請求の範囲の減縮を目的とし、かつ、特許法第120条の5第9項で準用する同法第126条第5項及び第6項の規定に適合するものである。
7 請求項13に係る訂正
(1)訂正事項4
訂正前の特許請求の範囲の請求項13に
「プログラマブルロジックコントローラに接続される外部設定機器としてコンピュータを機能させるプログラムであって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶するステップと、
記憶されたラダープログラムを解析することにより、前記命令語の引数から特定されるデバイス範囲に対応する複数の異なるデバイスを抽出するステップと、
抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定するログ設定データを作成するステップと
を実行するように前記コンピュータを機能させるプログラム。」
と記載されているのを、
「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器としてコンピュータを機能させるプログラムであって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶するステップと、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するステップと、
抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するステップと、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップと
を実行するように前記コンピュータを機能させるプログラム。」
に訂正する。
(2)訂正事項4の訂正要件の検討
訂正事項4による訂正は、請求項13の(ア)コンピュータを外部設定機器として機能させるプログラムにおける外部設定機器が接続されるプログラマブルロジックコントローラについて、(イ)記憶するステップで記憶されたラダープログラムを解析することについて、(ウ)デバイスを抽出するステップで抽出するデバイスについて、(エ)ログ設定データで指定される保存条件及び所定期間について、(オ)デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップについて、訂正事項1による請求項1の限定事項1~5(上記4(3)ア(ア)~(オ))と同様の事項を限定するものである。
よって、訂正事項4は、訂正事項1と同様の理由により、特許法第120条の5第2項ただし書第1号に掲げる特許請求の範囲の減縮を目的とし、かつ、特許法第120条の5第9項で準用する同法第126条第5項及び第6項の規定に適合するものである。
8 小括
以上のとおりであるから、上記2(1)の一群の請求項である請求項1~8に対する訂正事項1、上記2(2)の一群の請求項である請求項9~11に対する訂正事項2、請求項12に対する訂正事項3、及び請求項13に対する訂正事項4は、いずれも特許法第120条の5第2項ただし書第1号に掲げる「特許請求の範囲の減縮」を目的とし、これらの訂正事項1~4のいずれも、同法同条第9項で準用する同法第126条第5項及び第6項の規定に適合するものである。
したがって、特許請求の範囲を、訂正請求書に添付された訂正した特許請求の範囲のとおり、訂正後の請求項〔1~8〕、〔9~11〕、12、13について訂正することを認める。
第3 本件特許発明
上記第2のとおり本件訂正を認めたから、本件特許の請求項1~13に係る発明(以下、各請求項に係る発明を「本件特許発明1」などといい、「本件特許発明1」~「本件特許発明13」をまとめて「本件特許発明」ということがある。)は、本件訂正により訂正をした特許請求の範囲の請求項1~13に記載された次の事項により特定されるとおりのものである。
「【請求項1】
ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するログ設定部と、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部と
を備える外部設定機器。
【請求項2】
前記デバイス抽出部は、前記記憶部に記憶されたラダープログラムを解析することにより、前記デバイス範囲に対応する複数の異なるデバイスとともに、前記命令語の実行開始トリガとなるリレーデバイスを抽出することを特徴とする請求項1に記載の外部設定機器。
【請求項3】
前記デバイス抽出部は、前記リレーデバイスが含まれる、予め定められたワード単位のデバイスをまとめて抽出することを特徴とする請求項2に記載の外部設定機器。
【請求項4】
前記命令語は、ユーザにより指定された指定値を、前記デバイス範囲に対応する複数の異なるデバイスに代入する命令語であって、
前記デバイス抽出部は、前記記憶部に記憶されたラダープログラムを解析することにより、前記命令語により前記指定値が代入される複数の異なるデバイスを抽出することを特徴とする請求項1から3のいずれか一項に記載の外部設定機器。
【請求項5】
前記ラダープログラムは、マトリックス状に配置された複数のセル上に複数行に亘って記述されており、
前記デバイス抽出部は、前記ラダープログラムの先頭行から終端行まで行ごとにデバイスを抽出することを特徴とする請求項1から4のいずれか一項に記載の外部設定機器。
【請求項6】
前記デバイス抽出部は、前記プログラマブルロジックコントローラで同一のデバイスが重複してロギングされないようマージ処理を実行するマージ部を備えることを特徴とする請求項1から5のいずれか一項に記載の外部設定機器。
【請求項7】
前記外部設定機器は、さらに、前記デバイス抽出部により抽出されたデバイスを表示する表示部を備えることを特徴とする請求項1から6のいずれか一項に記載の外部設定機器。
【請求項8】
前記外部設定機器は、さらに、前記表示部を介したユーザ入力に基づいて、前記デバイス抽出部により抽出されたデバイスのうち一部のデバイスを削除する削除部を備えることを特徴とする請求項7に記載の外部設定機器。
【請求項9】
ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して外部メモリに保存し、当該外部メモリにアクセス可能なプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、当該設定されたデバイスからロギングされたデバイス値を前記外部メモリに読み出す条件を設定するために、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するログ設定部と、
前記ログ設定部により作成されたログ設定データを、前記プログラマブルロジックコントローラに送信する通信部と、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部と
を備える外部設定機器。
【請求項10】
前記外部メモリは、前記プログラマブルロジックコントローラに着脱可能なメモリカードであって、
前記ログ設定部は、前記プログラマブルロジックコントローラでロギングされるデバイスを設定するとともに、当該設定されたデバイスからロギングされたデバイス値を前記メモリカードに保存する条件を設定するログ設定データを作成することを特徴とする請求項9に記載の外部設定機器。
【請求項11】
前記外部メモリに読み出す条件は、前記プログラマブルロジックコントローラでロギングされたデバイス値を前記外部メモリに読み出すタイミングと、当該ロギングされたデバイス値の時刻情報に基づき特定される対象期間と、を含むことを特徴とする請求項9または10に記載の外部設定機器。
【請求項12】
ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器を用いたロギング設定方法であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを前記外部設定機器の記憶部に記憶するステップと、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムに基づいて、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出し、前記外部設定機器の表示部に表示するステップと、
前記表示部に表示された複数の異なるデバイスのうち一部のデバイスの削除を受け付け、前記プログラマブルロジックコントローラでロギングされる対象デバイスを特定するステップと、
前記特定された対象デバイスに基づいて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するステップと、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップと
を含むことを特徴とするロギング設定方法。
【請求項13】
ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器としてコンピュータを機能させるプログラムであって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶するステップと、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するステップと、
抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、前記所定期間として当該タイミングを基準とする時間を指定する前記ログ設定データを作成するステップと、
ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するステップと
を実行するように前記コンピュータを機能させるプログラム。」
第4 特許権者に決定の予告で通知した取消理由
1 取消理由の概要
(サポート要件)本件訂正前の本件請求項1~13に係る特許は、特許請求の範囲の記載が下記の点で不備のため、特許法第36条第6項第1号に規定する要件を満たしていない特許出願に対してされたものである。
2 理由の説明
本件訂正前の請求項1~8、9~11、12、13に係る発明は、発明の詳細な説明の段落【0004】に記載した「ユーザプログラムによって制御されるフィールドデバイスや検査対象物(ワーク)の状態をカメラで撮影し、ロギングデータとともに参照したいというニーズが存在する。フィールドデバイスやワークの状態を画像で確認できれば、ユーザプログラムなどにバグがあるのか、それともフィールドデバイスの設置に課題があるのか、または、ワークの搬送に課題があるかなどを、ユーザは判断しやすくなる。ユーザプログラムの修正が必要な場合にもどのプログラム部分を修正すればよいかもユーザにとって判断しやすくなろう。トラブルが発生したときの画像データ(二次元データ)に加え、デバイス値があれば、さらにユーザはトラブルを解決しやすくなるであろう。しかし、デバイス値の更新周期(スキャン周期)と、二次元データの生成周期(保存周期)とは一般には異なっている。そのため、どのデバイス値と、どの二次元データとが関連しているかを特定することはユーザにとって困難であった。」旨の問題点を技術的背景として、段落【0005】記載のとおり「カメラ、モータアンプ、センサ、通信コントローラ等の各種監視機器から入力されるデータとデバイス値との時間的な関係を特定しやすくすること」を解決しようとする課題とするものである。
この課題に関して、本件の発明の詳細な説明には、プログラマブルコントローラにおいて、「ラダープログラムを繰り返し実行し、ログ設定データで指定される収集周期ごとに複数のデバイスのデバイス値および画像データを収集時刻に関する情報と対応付けて記録し、前記ログ設定データで指定される保存条件が満たされると、前記ログ設定データで指定される所定期間分の前記複数のデバイスのデバイス値、前記画像データおよびこれらに対応付けられた収集時刻に関する情報を読み出して保存」し(段落【0107】、【0109】)、ログ表示部においては、「複数のデバイスのデバイス値および画像データの収集時刻に関する情報に基づき当該デバイスおよび画像データの表示タイミングを調整する」ステップが実行されること(段落【0133】~【0136】)のみが、カメラ等の監視機器から入力されるデータとデバイス値との時間的な関係を特定しやすくできる具体的な解決手段として、当業者が認識できるように記載されている。
しかしながら、本件訂正前の請求項1~8、9~11、12、13に係る発明は、監視機器から入力されるデータを収集時刻に関する情報と対応付けて記録することや、ログ表示部についての特定がなく、すなわち請求項に上記のプログラマブルロジックコントローラにおける記録及びログ表示部に関する技術的事項が反映されていないため、発明の課題が解決できることを当業者が認識できるように記載された範囲を超えていると判断され、発明の詳細な説明に発明として記載されたものと実質的に対応しているとはいえないから、本件訂正前の請求項1~8、9~11、12、13の記載はサポート要件を満たしていない。
3 上記1の取消理由(サポート要件)の検討
本件訂正請求の訂正事項1~4により、本件特許発明(本件訂正後の請求項1~8、9~11、12、13に係る発明)において、請求項1、9については「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整する」との技術的事項に関するログ表示部の内容が、請求項12、13においては同じ技術的事項に関するステップの内容が、それぞれ記載された。
その結果、本件特許発明に上記の「カメラ、モータアンプ、センサ、通信コントローラ等の各種監視機器から入力されるデータとデバイス値との時間的な関係を特定しやすくすること」という課題を解決できる具体的な手段である上記技術的事項が反映された。
したがって、本件特許発明は、発明の課題が解決できることを当業者が認識できるように記載された範囲を超えているものではなく、発明の詳細な説明に発明として記載されたものと実質的に対応しているから、決定の予告で通知したサポート要件違反の取消理由は解消した。
4 小括
したがって、本件の請求項1~13に係る特許は、特許法第36条第6項第1号に規定する要件を満たしていない特許出願に対してされたとはいえないから、決定の予告で通知した取消理由(サポート要件)によっては、取り消すことはできない。
第5 決定の予告において採用しなかった特許異議申立理由について
1 採用しなかった申立て理由
A.(サポート要件)本件訂正前の特許は、特許請求の範囲の記載が不備のため、特許法第36条第6項第1号に規定する要件を満たしていない特許出願に対してされたものである。
B.(明確性)本件訂正前の特許は、特許請求の範囲の記載が不備のため、特許法第36条第6項第2号に規定する要件を満たしていない特許出願に対してされたものである。
C.(新規性)訂正前の下記4(2)アの請求項に係る発明は、本件特許出願前に日本国内又は外国において、頒布された下記4(2)アの刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった下記4(2)アの引用文献に記載された発明であって、特許法第29条第1項第3号に該当するから、訂正前の下記4(2)アの請求項に係る特許は、特許法第29条第1項の規定に違反してされたものである。
D.(進歩性)訂正前の下記4(2)イの請求項に係る発明は、本件特許出願前に日本国内又は外国において、頒布された下記4(2)イの刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった下記4(2)イの引用文献に記載された発明に基いて、本件特許出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、訂正前の下記4(2)イの請求項に係る特許は、特許法第29条第2項の規定に違反してされたものである。
2 理由A(サポート要件)について
(1)理由の説明
発明の詳細な説明には、本件訂正前の特許発明が、「各種監視機器から入力されるデータとデバイス値との時間的な関係を特定しやすくすること」という課題を解決するために、デバイス値および二次元データにはそれぞれ取得時刻に関する情報が紐付けられていること(本件明細書段落【0267】)のみが、具体的な技術的手段として記載されているのに対して、本件訂正前の請求項1~13に係る発明には、この技術的手段に関する事項が反映されておらず、発明の詳細な説明に記載した範囲を超えて、特許を請求することとなっているから、本件訂正前の請求項1~13に係る発明は、発明の詳細な説明に記載したものでない。(なお、当該理由Aは、決定の予告で通知したサポート要件の取消理由とは異なるものである。)
(2)理由の検討
請求項1、9、12、13には、各種監視機器から入力されるデータ及びデバイス値と、その収集時刻について、「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報」との技術的事項が記載されている。
したがって、請求項1、9、12、13とこれらを引用する請求項を含む請求項1~13において、ログデータとして保存された複数のデバイスのデバイス値、及び監視機器から入力されるデータ(二次元データ)について、収集時刻に関する情報が紐付けられることが反映されたから、請求項1~13に係る発明は、発明の詳細な説明に記載した範囲を超えることはなく、発明の詳細な説明に記載したものである。
(3)理由A(サポート要件)についての結論
請求項1~13に係る特許は、理由A(サポート要件)によって、取り消すことはできない。
3 理由B(明確性)
(1)請求項1、9、13の「ラダープログラムを解析する」との記載について
ア 理由の説明
請求項1、9、13に記載された「記憶されたラダープログラムを解析することにより、」の発明特定事項において、「ラダープログラムを解析する」ことの意味について、請求項の文脈、あるいは明細書及び図面の記載並びに出願時の技術常識を考慮しても、明瞭に把握することができず、請求項1、9、13及びこれらを引用する請求項を含む請求項1~11、13に係る発明は明確でない。
イ 理由の検討
申立人は、請求項1、9、13に記載した「解析」という用語の意味内容が、本件明細書等の段落【0058】あるいは【0060】を参酌しても、プログラムを実行しながら動的に解析する「動的解析」と、ラダープログラムを実行せずに解析する「静的解析」のいずれかを意味するのか、両方を意味するのか、あるいは「他の解析」を意味するのか不明である旨を説明する。
これに対して、本件訂正により、請求項1の「デバイス抽出部」に関し、「前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる前記命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出する」点が限定され、請求項9、13に対しても同様の訂正がされた。
これらの訂正内容により、プログラマブルロジックコントローラでロギングされるデバイスを設定するためにデバイス抽出部によるラダープログラムを解析することの内容、すなわち、ラダープログラムに記述される各デバイスとともに、ラダープログラムに含まれる命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するという解析を行うことについて請求項に直接記載され、本件明細書等の段落【0077】~【0082】にも具体的な説明がされていることから、請求項1、9、13に記載された「ラダープログラムを解析する」ことの具体的な内容は明らかであり、これらの請求項を引用する請求項を含む請求項1~11、13に係る発明は明確である。
(2)請求項12の「ラダープログラムに基づいて」との記載について
ア 理由の説明
請求項12には、「前記記憶部に記憶されたラダープログラムに基づいて、」と記載されているが、当該記載は、請求項1、9、13と同様の「ラダープログラムの解析に基づいて」と解釈し得るから、請求項12の当該記載についても、上記(1)の請求項1、9、13と同様に具体的な内容が不明である。
イ 理由の検討
上記アの請求項12の「ラダープログラムに基づいて」の記載は、請求項1、9、13と同様の「ラダープログラムの解析に基づいて」の記載に対応するところ、請求項12においても、本件訂正により、請求項1の「デバイス抽出部」と同様に、デバイスを抽出するステップが記載されたから、上記(1)イと同様の理由により、請求項12に係る発明は明確である。
(3)理由B(明確性)についての結論
請求項1~13に係る特許は、理由B(明確性)によって、取り消すことはできない。
4 理由C(新規性)及び理由D(進歩性)について
(1)申立人が提出した証拠
ア 甲第1号証:特開2008-293138号公報
イ 甲第2号証:仲井勘、“ラダーダイアグラムの検索的解析環境の構築”、「第10回情報科学技術フォーラム講演論文集」、一般社団法人情報処理学会、2011年9月7日、第1分冊、第57~62ページ
ウ 甲第3号証:特許第4001461号公報
エ 甲第4号証:“技術レポート「各社PLC比較~ラダー命令編~」”、「ソフテックだより」、株式会社ソフテック、2015年4月1日、第231号、第1~5ページ、
<URL:https://www.softech.co.jp/mm_150401_plc.htm>
オ 甲5号証:武永行正、「図解入門 よくわかる最新シーケンス制御と回路図の基本」、株式会社秀和システム、2013年3月1日、第1版第1刷、第238~240ページ
カ 甲第6号証:“技術レポート「各社PLC比較~ロギング機能編~」”、「ソフテックだより」、株式会社ソフテック、2014年11月5日、第221号、第1~3ページ、
<URL:https://www.softech.co.jp/mm_141105_plc.htm>
キ 甲第7号証:国際公開第2016/189689号
ク 甲第8号証:特開2000-235412号公報
(以下甲第1号証を「甲1」、同様に他の甲第○号証を「甲○」という。)
(2)理由C(新規性)及び理由D(進歩性)の対象請求項と引用文献
ア 理由C(新規性)
(ア)請求項1、4、7~9、12、13 甲1
(イ)請求項1、2、6~8、12、13 甲2
イ 理由D(進歩性)
(ア)請求項1~13 甲1(主引用例)及び甲2~8
(イ)請求項1~13 甲2(主引用例)及び甲1、3~8
(ウ)請求項1~13 甲3(主引用例)及び甲1、2、4~8
(3)甲1について
ア 甲1の記載事項
(ア)発明の詳細な説明
「【技術分野】
【0001】
本発明は、ソフトウェア開発支援技術に関し、ソフトウェアのデバッグ工程等に適用して有効な技術に関する。
・・・
【発明が解決しようとする課題】
【0011】
本発明の目的は、ソフトウェアのデバッグ等において、監視対象の変数を効率的に設定することが可能なソフトウェア開発支援技術を提供することにある。
本発明の他の目的は、ターゲットマシンに必要以上に大きなメモリ容量を必要とすることなく、効率的なデバッグを行うことが可能なソフトウェア開発支援技術を提供することにある。
・・・
【0030】
図2に例示されるように、本実施の形態のプログラマブルコントローラシステムは、ソフトウェア開発支援装置100と、ターゲットマシン200を含んでいる。
ソフトウェア開発支援装置100は、マイクロプロセッサ110、主記憶120、外部記憶装置130、キーボード141、ディスプレイ142、通信インタフェース150を含むコンピュータで構成されている。
【0031】
主記憶120には、基本ソフトウェアとしてオペレーティングシステム160が実装され、マイクロプロセッサ110がこのオペレーティングシステム160を実行することで、ソフトウェア開発支援装置100の全体を制御する。
【0032】
本実施の形態の場合、この主記憶120には、ソフトウェアとしての開発支援ツール170が実装されている。
そして、マイクロプロセッサ110が、この開発支援ツール170を実行することで、後述のような各種のソフトウェア開発支援処理を行う。
【0033】
すなわち、本実施の形態の場合には、開発支援ツール170は、図1に例示されるようにモニタ機能171、ユーザインタフェース機能172、コンパイル機能173、条件モニタ機能174、通信機能175を備えている。
【0034】
モニタ機能171は、後述のように通信機能175を利用しターゲットマシン200の値保持メモリ252からアドレス情報332に対応した変数値333の情報を読み出し、その値を表示する処理を行う。
【0035】
ユーザインタフェース機能172は、ソースコード310の編集機能等を提供する。
コンパイル機能173は、ソースコード310から機械語オブジェクト320に変換する処理および変数-アドレス対応表330を生成する処理を行う。
【0036】
条件モニタ機能174は、ユーザからの条件入力を受け付けて、採取条件情報350に格納する処理を行うとともに、後述のように監視対象の変数を監視対象変数情報340に自動的に格納する処理を行う。
【0037】
通信機能175は、ターゲットマシン200との間の情報通信を行う。
図2に例示されるように外部記憶装置130は、ソースコード310、機械語オブジェクト320、変数-アドレス対応表330、監視対象変数情報340、採取条件情報350をファイルとして保持する。
【0038】
キーボード141、ディスプレイ142は、ソフトウェア開発支援装置100を制御するためのユーザ入力や、ソースコード310の編集、デバッグ時の監視対象の変数の指定や採取条件の指定入力等に用いられる。
【0039】
通信インタフェース150は、上述の通信機能175の制御下で、ターゲットマシン200とソフトウェア開発支援装置100との間の情報通信を実行する。
図3は、監視対象変数情報340の構成例を示す概念図である。監視対象変数情報340は、変数名341と、有効フラグ342からなる。
【0040】
変数名341は、監視対象として選択された変数に付与された名称である。有効フラグ342は、選択済みの変数名341を、一時的に有効にしたり無効にしたりするためのフラグである。この有効フラグ342は、後述の監視対象変数一覧画面440の有効/無効チェックボックス443の操作によってON(有効)/OFF(無効)される。
【0041】
図1に例示されるように、採取条件情報350は、監視対象の変数の変数値333の採取のトリガーを規定する採取条件350aが設定される。
図4は、変数-アドレス対応表330の構成例を示す概念図である。変数-アドレス対応表330は、変数名331とアドレス情報332からなる。
【0042】
変数名331には上述の変数名341が設定される。アドレス情報332には、ターゲットマシン200におけるアドレスの位置を特定する“アドレス番地”等の情報が格納される。そこで、アドレス情報332は変数名331のアドレス番地に相当する。
【0043】
一方、本実施の形態のターゲットマシン200は、たとえば、産業機器を制御するプログラマブルロジックコントローラからなる。図2に例示されるように、ターゲットマシン200は、汎用マイコン210、システムメモリ220、通信インタフェース230、不揮発メモリ240を含んでいる。
【0044】
システムメモリ220には、汎用マイコン210が実行するソフトウェアやデータが格納される。
不揮発メモリ240には、ソフトウェア開発支援装置100から受信した機械語オブジェクト320が格納される。
【0045】
通信インタフェース230は、汎用通信線231を介してソフトウェア開発支援装置100との情報通信を行う。なお、ソフトウェア開発支援装置100と、ターゲットマシン200との通信方法は汎用通信線231を介したものに限っておらず、例えば無線であっても、記憶媒体を介した方法であっても良い。
【0046】
また、通信インタフェース230は、被制御機器通信線232を介して、プログラマブルロジックコントローラとして機能するターゲットマシン200(ユーザプログラム320A)の制御対象である図示しない産業機器等との間における情報通信を行う。
【0047】
上述のシステムメモリ220には、不揮発メモリ240に格納された一つまたは複数の機械語オブジェクト320の組合せからなるユーザプログラム320Aが格納され、このユーザプログラム320Aを汎用マイコン210が実行することで、プログラマブルコントローラとしての所望の機能が実現される。
【0048】
この場合、システムメモリ220には、ユーザプログラム320Aの実行を管理したり、ソフトウェア開発支援装置100と連携してユーザプログラム320Aのデバッグを実現するターゲット管理部250、条件判定部251等のプログラムが格納されている。
【0049】
また、システムメモリ220には、ターゲット管理部250、条件判定部251が使用する値保持メモリ252、アドレス一覧メモリ253が格納されている。
アドレス一覧メモリ253には、後述のようにしてソフトウェア開発支援装置100のモニタ機能171から受信した監視対象の変数に対応する一つまたは複数のアドレス情報332と、対応する採取条件350aが格納される。
【0050】
値保持メモリ252には、採取条件350aが成立した時に、アドレス一覧メモリ253に設定されたアドレス情報332に格納されている値(変数値333)が記録される。
以下、本実施の形態のソフトウェア開発支援装置100およびターゲットマシン200のデバッグ時の作用を説明する。
【0051】
上記で説明したように、ソフトウェア開発支援装置100上で開発支援ツール170が動作する(図2参照)。
次に、図1に例示されるように、開発支援ツール170は、モニタ機能171、ユーザがソースコード310を記述するユーザインタフェース機能172と、ユーザが作成したソースコード310をターゲットマシン200上で動作する機械語オブジェクト320に変換するコンパイル機能173と、監視対象変数情報340、採取条件情報350を設定する条件モニタ機能174と、開発支援ツール170とターゲットマシン200間でデータを送受信する通信機能175を含んでいる。
【0052】
モニタ機能171は、通信機能175を利用しターゲットマシン200の値保持メモリ252からアドレス情報332に対応した変数値333の情報を読み出し、その値を表示する。
【0053】
ソースコード310は、開発支援ツール170のコンパイル機能173により、機械語オブジェクト320と変数-アドレス対応表330に変換される。
機械語オブジェクト320は、ターゲットマシン200上で動作する命令の集合体であり、一つまたは複数の機械語オブジェクト320が組み合わされてユーザプログラム320Aとしてターゲットマシン200上で動作する。
【0054】
変数-アドレス対応表330は、ソースコード310上でユーザが記述した変数(変数名331)と、コンパイル機能173が割り付けたアドレス情報332との対応関係の情報である。
【0055】
モニタ機能171は、ユーザインタフェース機能172の画面上にソースコードと変数の値を表示する。図5は、このとき、ソフトウェア開発支援装置100のディスプレイ142に表示されるモニタ画面410の一例を示す図である。
【0056】
モニタ画面410は、ソースコード表示領域411、変数値表示領域412、シーケンスチャート表示領域413を含んでいる。
ソースコード表示領域411にはソースコード310が表示される。このソースコード310は、ユーザインタフェース機能172によってユーザが入力したものである。
【0057】
変数値表示領域412には、ターゲットマシン200の値保持メモリ252から読み出された変数値333が、ソースコード表示領域411の変数と対応する行に表示される。
すなわち、変数の値(変数値333)は、コンパイル機能173が作成した変数-アドレス対応表330から変数のアドレス情報332を取り出し、ターゲットマシン200のターゲット管理部250に対して、通信機能175を経由して当該アドレス情報332を通知して値保持メモリ252から読み出すことで獲得する。獲得した変数値333は、モニタ機能171によりモニタ画面410の変数値表示領域412に表示する。
【0058】
なお、本実施の形態の場合、モニタ画面410のシーケンスチャート表示領域413には、PLCでよくに用いられているラダープログラムに対応したシーケンスチャートが表示される。機械語オブジェクト320は、上述のラダープログラムと等価な機能をターゲットマシン200で実現するようにプログラムされている。
【0059】
モニタ画面410のように、シーケンスチャート表示領域413とソースコード表示領域411とを同時に表示する事により、ユーザはシーケンスチャートとソースコード310とを対応付けて確認できる。
【0060】
条件モニタ機能174は、ユーザがモニタ上から採取条件を入力する。図6は、この条件モニタ機能174の操作画面である採取条件設定画面430の例を示している。この採取条件設定画面430には、条件入力欄431、比較データ入力欄432等の入力欄が設けられている。これらの入力欄を用いてユーザから設定された採取条件は、採取条件情報350に保存する。図6の例では、変数の値が100になった時、当該変数の変数値333を採取して保存する採取条件が成立する。
【0061】
図7に示されるように、ユーザがソースコード表示領域411のソースコード310上で、対象となる変数(ここでは、cnt1)のダブルクリック等の動作を行うと、これを検知した条件モニタ機能174はより採取条件設定画面430(図6参照)を表示する。この時、ソースコード表示領域411のソースコード上に表示されている複数の変数を監視対象変数情報340に登録する。
【0062】
すなわち、本実施の形態の場合には、一例として、条件モニタ機能174は、ソースコード表示領域411に表示中のソースコードの可視範囲に存在する変数や関数の一つをユーザがダブルクリック等の動作で選択したことを契機に、当該変数(関数)および/または可視範囲に存在する関数に含まれる変数のすべてを監視対象変数情報340に自動的に登録する。
【0063】
なお、関数は一例であり、サブルーチン名、分岐先名等の任意の論理ブロック名でもよい。
図8は、監視対象変数一覧画面440の一例を示している。監視対象変数一覧画面440は、変数表示欄441、インスタンス表示欄442を含んでいる。ソースコード表示領域411のソースコード上には、変数としてcnt、cnt1が表示されているため(図7、参照)、監視対象の変数としてこれらを登録できる。変数の抽出技術には、既存の仕組みを利用する。例えば、コンパイル時に、ソースコードの位置と変数を関連付ける方法や、表示されているソースコード310を文法解析(パージング)し、変数名341の文字列を取り出す方法、等を用いる。
【0064】
監視対象に登録できる変数には、上限があるため、条件モニタ機能174を実行する時、その上限を検査する。もし、上限を超えている場合は、図9に例示されるようなエラー警告メッセージ449等を監視対象変数一覧画面440に表示して、採取条件に基づいて変数の変数値333を採取する条件モニタを実施できないようにする。
【0065】
上限以内の場合は、条件モニタを実行する。監視対象の変数を削除する方法としては、図10に例示される監視対象変数一覧画面440の画面上の変数一覧で削除対象の変数を選択し削除する。大抵は、ソースコード毎で監視対象変数が変わるため、図10の監視対象変数一覧画面440のように画面毎に変数の一覧を表示するようにし、変数全てを選択し削除できるようにする。
【0066】
登録された変数を削除すると、再度登録するための煩雑な操作が必要となるので、操作性を向上させるため、一旦登録された各変数毎に有効/無効の状態を持つようにする。
例えば、図10に例示される監視対象変数一覧画面440では、画面の左端に各変数の表示位置に対応して有効/無効チェックボックス443を設け、この有効/無効チェックボックス443にチェックが付いている場合は有効であることを示し、外れている場合は無効であることを示す。全て削除ボタンの他に、全て有効ボタン444、全て無効ボタン445等のボタンを追加し、これらのボタンを押された場合、各変数の有効/無効の状態を変更する。すなわち、上述の監視対象変数情報340の有効フラグ342を設定する。有効フラグ342の状態が有効のものが監視対象の変数である。
【0067】
開発支援ツール170は、監視対象の変数(変数名331)から変数-アドレス対応表330を用いて変数のアドレス情報332を獲得する。獲得したアドレス情報332と採取条件情報350を通信機能175でターゲットマシン200に送信する。
【0068】
ターゲットマシン200は、それらの情報をアドレス一覧メモリ253に保持する。ターゲットマシン200は、機械語オブジェクト320(機械語オブジェクト320で構成されたユーザプログラム320A)の実行中に、条件判定部251によって条件成立の検査を実施する。条件が成立した時、アドレス一覧メモリ253に設定された監視対象の変数のアドレス情報332から、ユーザプログラム320Aにおける監視対象のアドレスにある値(変数値333)を保存する。
【0069】
モニタ機能171は、定期的にターゲットマシン200の状態を監視し、条件が成立した場合、値保持メモリ252に保存されているデータを読み出す。
モニタ機能171は、通常の表示(定期的にターゲットマシン200から読み出した値の表示)と条件が成立した場合の表示を区別するための情報を画面に表示する。例えば、図11に例示される条件成立時表示画面450の表示例のようにステータスバー451に条件が成立し、条件モニタが停止していることを示す文字列(メッセージ452)(この場合、“条件モニタ停止中”)を表示する。
【0070】
条件モニタの場合、監視対象として登録した変数のアドレス以外の値は、不定になる。そのため、登録した以外の変数の値は、不定であることを画面上で表示する。例えば、監視対象に登録されている変数は変数値333を表示し、それ以外の変数は、図12に例示されるソースコード表示画面420のように、不定文字列414として“???”を表示する。
【0071】
図13は、本実施の形態のソフトウェア開発支援装置100およびターゲットマシン200におけるデバッグ時の一連の連携動作を示す図である。
ソフトウェア開発支援装置100の側では、開発支援ツール170のユーザインタフェース機能172がユーザからの入力を受け付けることによりソースコード310の作成/編集を行う(ステップ601)。
【0072】
次に、ユーザからの指示により、コンパイル機能173は、ソースコード310から機械語オブジェクト320および変数-アドレス対応表330の生成を行う(ステップ602)。
【0073】
次に、条件モニタ機能174は、ユーザからの指示入力を受け付けて、採取条件情報350の設定、および当該設定に連動した監視対象の変数の候補の登録を行い、ユーザが候補から監視対象を選択しないときは、監視対象の候補を監視対象として全て選択する(ステップ603)。
【0074】
そして、開発支援ツール170のモニタ機能171は、機械語オブジェクト320、および採取条件情報350、さらには監視対象の変数(変数名331)に対応したアドレス情報332(機械語オブジェクト320内のアドレス値)をターゲットマシン200に送る(ステップ604)。
【0075】
ターゲットマシン200のターゲット管理部250は、ソフトウェア開発支援装置100から受信した機械語オブジェクト320を不揮発メモリ240に格納し、また採取条件情報350、アドレス情報332をアドレス一覧メモリ253に格納する(ステップ701)。
【0076】
その後、ソフトウェア開発支援装置100の側からターゲットマシン200に対してデバッグのためのユーザプログラム320Aの実行指令が送信されると(ステップ605)、これを受けたターゲットマシン200のターゲット管理部250は、不揮発メモリ240に格納されている機械語オブジェクト320からユーザプログラム320Aを生成してシステムメモリ220にロードしてユーザプログラム320Aを起動する(ステップ702)。
【0077】
そして、条件判定部251は、ユーザプログラム320Aの実行状態を監視しつつ、アドレス一覧メモリ253に設定された採取条件情報350の採取条件が成立するか否かを判別し(ステップ703)、成立した場合には、アドレス一覧メモリ253に登録されているアドレス情報332に対応したユーザプログラム320Aのアドレスの値(変数値333)を採取して値保持メモリ252に格納する(ステップ704)。
【0078】
一方、ソフトウェア開発支援装置100の開発支援ツール170は、ターゲットマシン200における採取条件情報350の成立の有無を定期的にターゲット管理部250に問い合わせて監視している(ステップ606)。
【0079】
同様にターゲットマシン200のターゲット管理部250は、ソフトウェア開発支援装置100の側からの変数値333の転送指令(ステップ606)の有無を監視し(ステップ705)、当該転送指令が検出された場合には、値保持メモリ252に格納されているアドレス情報332と変数値333のペアの情報を、ソフトウェア開発支援装置100のモニタ機能171に転送する(ステップ706)。
【0080】
そして、ソフトウェア開発支援装置100のモニタ機能171は、上述のステップ706でターゲットマシン200の側から送られてきたアドレス情報332と変数値333のペアの情報のうち、アドレス情報332に基づいて変数-アドレス対応表330を検索して対応する変数名331を特定し、図11に例示される条件成立時表示画面450をディスプレイ142に表示して、ソースコード表示領域411に表示されたソースコード310の対応する変数名331の表示行に対応する位置に変数値333を変数値表示領域412に出力する。
【0081】
また、上述のように、条件成立時表示画面450のステータスバー451にはメッセージ452を出力して、定期的な表示と区別する。
ターゲットマシン200の側のターゲット管理部250は、ユーザプログラム320Aの実行完了を監視し(ステップ707)、終了した場合には、ソフトウェア開発支援装置100の開発支援ツール170に通知する(ステップ708)。
・・・
【0085】
以上説明したように、本実施の形態のソフトウェア開発支援装置100では、ターゲットマシン200で実行される機械語オブジェクト320(ユーザプログラム320A)のデバッグを、開発支援ツール170を用いて実施する時、たとえば、開発支援ツール170の条件モニタ機能174における採取条件情報350の設定に際してソースコード表示領域411に表示中のソースコード310の変数を、監視対象の変数として自動で登録する。
【0086】
これにより、一つずつ手動で監視対象の変数を指定する場合に比較して、格段に開発支援ツール170の使い勝手が向上する。
更に、ソースコード310の量が多くなると、複数箇所でソースコード310の検証を実施する必要があり、検証するソースコード310の位置が変われば、監視対象の変数も変更する必要がある。従って、本実施の形態の開発支援ツール170のように自動で監視対象の変数を登録することによりユーザのデバッグ効率が向上する。
【0087】
また、ソフトウェア開発支援装置100の開発支援ツール170から、監視対象の変数のアドレス情報332をターゲットマシン200に送ってアドレス一覧メモリ253に設定することにより、ターゲットマシン200では、ユーザプログラム320Aのデバッグに際して、アドレス一覧メモリ253に設定されたアドレス情報332に対応する変数値333のみを値保持メモリ252に格納するだけで済む。
【0088】
これにより、ユーザプログラム320Aに含まれる多数の変数の値を網羅的にトレースメモリ等に記録する場合に比較して、値保持メモリ252やアドレス一覧メモリ253の容量を節約できる。
【0089】
すなわち、ターゲットマシン200に必要以上に大きなメモリ容量を必要とすることなく、機械語オブジェクト320からなるユーザプログラム320Aの効率的なデバッグを行うことが可能となる。」
(イ)図面
「【図1】
[図:0001425715000001.jpg]
【図2】
[図:0001425715000002.jpg]
・・・
【図13】
[図:0001425715000003.jpg]
」
イ 甲1の記載事項の整理
(ア)段落【0030】、【0039】、【0043】、図1~2の記載からみて、甲1記載のソフトウェア開発支援装置100は、ターゲットマシン200であるプログラマブルロジックコントローラに情報通信を行う。そして、このプログラマブルロジックコントローラは、ユーザプログラム320Aを実行して(段落【0047】、【0076】)、変数のアドレス情報332に対応する変数値333を格納し(段落【0050】)、採取条件情報350で設定される採取条件350aが成立すると、変数のアドレス情報332に格納された変数値333を値保持メモリ252に記録する(段落【0049】~【0050】、【0068】、【0077】、【0087】)。
(イ)段落【0030】、【0037】、【0062】、【0071】の記載からみて、甲1記載のソフトウェア開発支援装置100は、ユーザから入力された変数や関数を含むソースコード310を記憶する外部記憶装置130を備える。
(ウ)段落【0051】の記載からみて、甲1記載のソフトウェア開発支援装置100は、装置上で動作する開発支援ツール170が、コンパイル機能173を含み、このコンパイル機能173は、プログラマブルロジックコントローラでモニタされる変数のアドレス情報332を設定するために(段落【0067】~【0068】)、外部記憶装置130に記憶されたソースコード310をコンパイルすることにより、当該ソースコード310に記述される各変数のアドレス情報332を変数-アドレス対応表330に変換する(段落【0035】、【0053】~【0054】、【0063】、【0072】)。
(エ)段落【0051】の記載からみて、甲1記載のソフトウェア開発支援装置100は、装置上で動作する条件モニタ機能174が、コンパイル機能173を含み、この条件モニタ機能174は、上記(ウ)のコンパイル機能173により変数-アドレス対応表330に変換された複数の異なる変数のアドレス情報332を用いて、前記プログラマブルロジックコントローラでモニタされる変数のアドレス情報332を監視対象変数情報340に格納し(段落【0036】、【0062】、【0073】~【0074】)、前記採取条件350aとして監視対象のアドレス情報332の変数の値の変化を採取条件とする前記採取条件情報350を作成する(段落【0060】)。
(オ)段落【0051】の記載からみて、甲1記載のソフトウェア開発支援装置100は、装置上で動作する開発支援ツール170が、モニタ機能171を含み、このモニタ機能171は、監視対象変数の変数値として保存された前記変数のアドレス情報332に格納された変数値333の表示をする(段落【0034】、【0052】、【0055】~【0059】、【0078】~【0080】、【0085】)。
ウ 甲1記載の発明
上記ア~イより、甲1には次の発明(以下「甲1発明」という。)が記載されている。
「ユーザプログラム320Aを実行し、変数のアドレス情報332に対応する変数値333を格納し、採取条件情報350で設定される採取条件350aが成立すると、前記変数のアドレス情報332に格納された変数値333を値保持メモリ252に記録するプログラマブルロジックコントローラに情報通信を行うソフトウェア開発支援装置100であって、
ユーザから入力された変数や関数を含むソースコード310を記憶する外部記憶装置130と、
前記プログラマブルロジックコントローラでモニタされる変数のアドレス情報332を設定するために前記外部記憶装置130に記憶されたソースコード310をコンパイルすることにより、当該ソースコード310に記述される各変数のアドレス情報332を変数-アドレス対応表330に変換するコンパイル機能173と、
前記コンパイル機能173により変数-アドレス対応表330に変換された複数の異なる変数のアドレス情報332を用いて、前記プログラマブルロジックコントローラでモニタされる変数のアドレス情報332を監視対象変数情報340に格納し、前記採取条件350aとして監視対象のアドレス情報332の変数の値の変化を採取条件とする前記採取条件情報350を作成する条件モニタ機能174と、
監視対象変数の変数値として保存された前記変数のアドレス情報332に格納された変数値333の表示をするモニタ機能171と
を備えるソフトウェア開発支援装置100。」
(4)本件特許発明1に対する甲1を主引用例とする理由C(新規性)及び理由D(進歩性)に対する判断(上記(2)ア(ア)及び(2)イ(ア)の理由)
ア 本件特許発明1と甲1発明の対比
(ア)甲1発明の「ユーザプログラム320A」は本件特許発明1の「ラダープログラム」に相当し、同様に「変数のアドレス情報332に対応する変数値333」は「複数のデバイスのデバイス値」に、「変数のアドレス情報332に対応する変数値333を格納」することは「複数のデバイスのデバイス値を」「記録」することに、「採取条件情報350」は「ログ設定データ」に、「採取条件情報350で設定される」は「ログ設定データで指定される」に、「採取条件350a」は「保存条件」に、「成立する」は「満たされる」に、「値保持メモリ252に記録する」は「読み出して保存する」に、「プログラマブルロジックコントローラに情報通信を行う」は「プログラマブルロジックコントローラに接続される」に、「ソフトウェア開発支援装置100」は「外部設定機器」に、それぞれ相当する。そして、甲1発明が適用されるソフトウェアのデバッグの工程において、ソースコード310を繰り返し実行することは自明な事項である。
(イ)甲1発明の「ソースコード310」は実質的に、ユーザプログラム320Aと同じ内容であるから、本件特許発明1の「ラダープログラム」に、同様に「外部記憶装置130」は「記憶部」に相当する。そして、甲1発明のソースコード310として、甲1の段落【0058】には本件特許発明1と同じラダープログラムが記載されており、プログラムにおける命令語は関数の一種であるといえ、ラダープログラムが、「ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語」、例えば「MOV」、「FMOV」、「BMOV」等の命令語で記述されることは技術常識であるから、甲1発明の「ユーザから入力された変数や関数を含むソースコード310」は本件特許発明1の「ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラム」に相当する。
(ウ)甲1発明の「モニタ」は本件特許発明1の「ロギング」に相当し、以下同様に、「変数のアドレス情報332」は「デバイス」に、「コンパイルすること」が「解析すること」に、「変数-アドレス対応表330に変換」は「抽出」に、「コンパイル機能173」は「デバイス抽出部」に、それぞれ相当する。
(エ)甲1発明の「監視対象変数情報340に格納」は本件特許発明1の「設定」に相当し、「変数のアドレス情報332を監視対象変数情報340に格納し」は「デバイスを設定し」に相当する。そして、甲1発明の「監視対象のアドレス情報332の変数の値の変化」は本件特許発明1の「特定のデバイスおよび当該特定のデバイスの状態変化」に相当し、以下同様に、「採取条件とする」ことは「指定」することに、「条件モニタ機能174」は「ログ設定部」に、それぞれ相当する。
(オ)甲1発明の「監視対象変数の変数値」は本件特許発明1の「ログデータ」に相当し、同様に「モニタ機能171」は「ログ表示部」に、それぞれ相当する。
イ 本件特許発明1と甲1発明の一致点
上記アの対比より、本件特許発明1と甲1発明は次の点で一致する。
ラダープログラムを繰り返し実行し、複数のデバイスのデバイス値を記録し、ログ設定データで指定される保存条件が満たされると、複数のデバイスのデバイス値を読み出して保存するプログラマブルロジックコントローラに接続される外部設定機器であって、
ユーザから受け付けられた命令語であって、先頭デバイスおよび当該先頭デバイスを基準としたデバイスの個数を引数とする命令語を含むラダープログラムを記憶する記憶部と、
前記プログラマブルロジックコントローラでロギングされるデバイスを設定するために前記記憶部に記憶されたラダープログラムを解析することにより、当該ラダープログラムに記述される各デバイスを抽出するデバイス抽出部と、
前記デバイス抽出部により抽出された複数の異なるデバイスを用いて、前記プログラマブルロジックコントローラでロギングされるデバイスを設定し、前記保存条件として特定のデバイスおよび当該特定のデバイスの状態変化を指定する前記ログ設定データを作成するログ設定部と、
ログデータとして保存された前記複数のデバイスのデバイス値の表示をするログ表示部と
を備える外部設定機器。
ウ 本件特許発明1と甲1発明の相違点
そして、上記アの対比より、本件特許発明1と甲1発明は、次の(ア)~(エ)の点で相違する。
(ア)相違点1
プログラマブルロジックコントローラにおけるデバイス値の保存に関して、本件特許発明1が、ログ設定データで指定される収集周期ごとに、複数のデバイスのデバイス値を収集時刻に関する情報と対応付けて記録し、ログ設定データで指定される所定期間分の複数のデバイスのデバイス値および対応付けられた収集時刻に関する情報を読み出して保存するのに対して、甲1発明においては、複数のデバイスのデバイス値を記録するものの、収集周期は特に定められておらず、デバイス値と収集時刻に関する情報の対応付けは行われず、したがって、対応付けられた両者を読み出して保存することはない点。
(イ)相違点2
ログ設定部が作成するログ設定データについて、本件特許発明1が、保存条件として特定のデバイスおよび当該特定のデバイスの状態変化によって定まるタイミングを指定し、所定期間として当該タイミングを基準とする時間を指定するのに対して、甲1発明は、保存条件として特定のデバイスおよび当該特定のデバイスの状態変化を指定するのみであって、状態変化のタイミングを指定することはなく、したがって、所定期間として当該タイミングを基準とする時間を指定することもない点。
(ウ)相違点3
デバイス抽出部について、本件特許発明1が、ラダープログラムに記述される各デバイスとともに、当該ラダープログラムに含まれる命令語の引数から特定される先頭デバイス及び当該先頭デバイスを基準としたデバイスの個数分のデバイス範囲に対応する複数の異なるデバイスを抽出するのに対して、甲1発明は、前者のデバイスを抽出するが、後者のデバイスは抽出するか不明な点。
(エ)相違点4
ログ表示部について、本件特許発明1が、ログデータとして保存された複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するのに対して、甲1発明は、ログデータとして保存された複数のデバイスのデバイス値を表示するものの、データの収集時刻に関する情報に基づき、監視機器から入力されるデータとの表示タイミングを調整することはない点。
エ 本件特許発明1に対する甲1を主引用例とする理由C(新規性)(上記(2)ア(ア))についての結論
上記ウのとおり、本件特許発明1と甲1発明には相違点が存在し、本件特許発明1と甲1発明は同一ではなく、本件特許発明1は甲1に記載された発明ではないから、請求項1に係る特許は、甲1を主引用例とする理由C(新規性)によっては、取り消すことができない。
オ 甲1を主引用例とする理由D(進歩性)(上記(2)イ(ア))についての検討
事案に鑑み、上記ウ(エ)の相違点4から検討する。
(ア)相違点4の内容について
ログ表示部に関し、甲1発明は「ログデータとして保存された前記複数のデバイスの表示をする」のみであって、本件特許発明1のように「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整する」もの(以下「相違点4に係る本件特許発明1の構成」という。)ではない。
(イ)甲2~甲7について
そして、異議申立人が提出した他の甲2~甲7を参照しても、上記相違点4に係る構成が記載されていない。
(ウ)甲8について
甲8には、段落【0026】~【0027】、【0077】、図16の記載からみて、「設定された収集周期(サイクルタイム)毎に、所定時間(記録時間)分の複数のデバイス(CI/Oアドレス)のデバイス値(CI/Oデータ)を収集時刻(PLC時刻)に関する情報と対応付けて記録すること」(以下「甲8記載の技術的事項」という。)について記載されている。
しかしながら、甲1発明は、デバイス値を収集時刻に対応付けるものではない。また、甲1発明は、ソフトウェアのデバッグを行うためのソフトウェア開発支援装置であるから、カメラのような監視機器から入力される画像のデータを扱うものではなく、上記相違点4に係る本件特許発明1の構成とする動機、すなわち、複数のデバイスのデバイス値、及び監視機器から入力されるデータを収集時刻に対応付けること、さらには、当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整することへの動機がない。
また、甲8の段落【0003】には、従来技術として、「そして、データの再生要請に応じてロギング装置14で記録したPLCの内部情報と、画像情報及び音響情報との各データを同期してディスプレイ17及びスピーカ18で再生している。」との記載はあるものの、上記のとおり、甲1発明が、ソフトウェアのデバッグを行うためのソフトウェア開発支援装置である以上、ソフトウェアとは関係のない、画像情報や音響情報に係る甲8記載の技術的事項を甲1発明に適用する動機があるとはいえないから、上記甲8の従来技術の記載によって、本件特許発明1の進歩性を否定することはできない。
(エ)甲1を主引用例とする理由D(進歩性)についてのまとめ
そうすると、甲1発明及び甲2~甲8に基づいて、相違点4に係る本件特許発明1に想到することが容易であるとはいえない。
したがって、相違点1~3について検討するまでもなく、本件特許発明1は、甲1に記載された発明、及び甲2~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではないから、請求項1に係る特許は、甲1を主引用例とする理由D(進歩性)によって、取り消すことはできない。
(5)本件特許発明2~8に対する甲1を主引用例とする理由C(新規性)及び理由D(進歩性)に対する判断(上記(2)ア(ア)及び(2)イ(ア)の理由)
本件特許発明2~8は、本件特許発明1を引用する発明であり、それぞれ、本件特許発明1に対してさらに発明特定事項を追加したものであるから、本件特許発明2~8は、上記(4)で検討したのと同様に、甲1に記載した発明ではなく、また、甲1に記載された発明、及び甲2~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
したがって、請求項2~8に係る特許を、甲1を主引用例とする理由C(新規性)及び理由D(進歩性)により取り消すことはできない。
(6)本件特許発明9~11に対する甲1を主引用例とする理由C(新規性)及び理由D(進歩性)に対する判断(上記(2)ア(ア)及び(2)イ(ア)の理由)
本件特許発明9は、本件特許発明1と同じく「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整するログ表示部」を発明特定事項として含み、少なくとも上記(4)ウ(エ)の相違点4で甲1発明と異なるから、本件特許発明9は、本件特許発明1と同様に、甲1に記載された発明でなく、また、甲1に記載された発明、及び甲2~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
そして、本件特許発明10~11は、本件特許発明9を引用する発明であり、それぞれ、本件特許発明9に対してさらに発明特定事項を追加したものであるから、本件特許発明10~11は、本件特許発明9と同様に、甲1に記載された発明ではなく、また、甲1に記載された発明、及び甲2~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
したがって、請求項9~11に係る特許を、甲1を主引用例とする理由C(新規性)及び理由D(進歩性)により取り消すことはできない。
(7)本件特許発明12、13に対する甲1を主引用例とする理由C(新規性)及び理由D(進歩性)に対する判断(上記(2)ア(ア)及び(2)イ(ア)の理由)
本件特許発明12、13は、いずれも、「ログデータとして保存された前記複数のデバイスのデバイス値、監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整する」ことを発明特定事項として含むが、当該発明特定事項の内容は、上記(4)ウ(エ)のと相違点4に係る本件特許発明1の構成と実質的に同じである。
そうすると、本件特許発明12、13は、甲1に記載された発明と少なくとも相違点4と同様の点において異なるから、本件特許発明12、13は、本件特許発明1と同様に、甲1に記載された発明ではなく、甲1に記載された発明、及び甲2~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
したがって、請求項12、13に係る特許を、甲1を主引用例とする理由C(新規性)及び理由D(進歩性)により取り消すことはできない。
(8)本件特許発明1~13に対する甲2を主引用例とする理由C(新規性)及び理由D(進歩性)に対する判断(上記(2)ア(イ)及び(2)イ(イ)の理由)
上記(4)オで検討したとおり、甲2には相違点4に係る本件特許発明1の構成について記載されていないから、本件特許発明1と甲2発明は、少なくとも相違点4において異なり、また甲1、甲3~甲8にも、相違点4に係る本件特許発明1の構成について記載されていない。
したがって、本件特許発明1は、甲2に記載された発明でなく、また、甲2に記載された発明、及び甲1、甲3~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
そして、本件特許発明1を引用する本件特許発明2~8、甲2発明とは少なくとも本件特許発明1と同じく相違点4で相違する本件特許発明9、及び本件特許発明9を引用する本件特許発明10、11、並びに同じく甲2発明とは少なくとも相違点4と同様の点で相違する本件特許発明12、13についても、本件特許発明1と同様に、甲2に記載された発明ではなく、甲2に記載された発明、及び甲1、甲3~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
したがって、請求項1~13に係る特許を、甲2を主引用例とする理由C(新規性)及び理由D(進歩性)により取り消すことはできない。
(9)本件特許発明1~13に対する甲3を主引用例とする理由D(進歩性)に対する判断(上記(2)イ(ウ)の理由)
上記(4)オで検討したとおり、甲3には相違点4に係る本件特許発明1の構成について記載されていないから、本件特許発明1と甲3発明は、少なくとも相違点4において異なり、また、甲1、甲2,甲4~甲8にも、相違点4に係る本件特許発明1の構成について記載されていない。
したがって、本件特許発明1は、甲3に記載された発明、及び甲1、甲2、甲4~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
そして、本件特許発明1を引用する本件特許発明2~8、甲3発明とは少なくとも本件特許発明1と同じく相違点4で相違する本件特許発明9、及び本件特許発明9を引用する本件特許発明10、11、並びに同じく甲3発明とは少なくとも相違点4と同様の点で相違する本件特許発明12、13についても、本件特許発明1と同様に、甲3に記載された発明、及び甲1、甲2、甲4~甲8に記載された発明に基づいて当業者が容易に発明をすることができたものではない。
したがって、請求項1~13に係る特許を、甲3を主引用例とする理由D(進歩性)により取り消すことはできない。
(10)理由C(新規性)及び理由D(進歩性)についての結論
以上のとおり、請求項1~13に係る特許は、甲1~3のいずれを主引用例としても、理由C(新規性)及び理由D(進歩性)によって、取り消すことはできない。
5 小括
よって、請求項1~13に係る特許は、取消理由通知(決定の予告)においては採用しなかった特許異議申立書に記載された上記理由A(サポート要件)、理由B(明確性)、理由C(新規性)、及び理由D(進歩性)によって、取り消すことはできない。
第6 申立人の令和7年2月5日提出の意見書における主張
1 意見書の3(1-2)「特許法第36条第6項第1号について」の主張
(1)主張の内容
ア 請求項1~13におけるプログラマブルロジックコントローラにおいて、監視機器から入力されるデータと収集時刻に関する情報を対応付けて記録することが記載されてなく、本件特許発明1~13は、本件の発明の詳細な説明において、発明の課題が解決できると認識できると当業者が認識できるように記載された範囲を超えているから、本件特許発明1~13は発明の詳細な説明に記載したものでない。
イ 請求項1~13において、「表示タイミングを調整する」ことには、監視機器から入力されるデータとデバイス値との時間的な関係を特定しにくくなるように調整することも含まれるから、請求項1~13に係る発明は、発明の課題が解決できることを当業者が認識できるように記載した範囲を超えている。
(2)主張の検討
ア 上記(1)アの主張について
本件訂正により、請求項1、9、12、13において、「監視機器から入力されるデータおよびこれらに対応付けられた収集時刻に関する情報について、当該複数のデバイスのデバイス値および当該監視機器から入力されるデータの収集時刻に関する情報に基づき当該デバイスおよび監視機器から入力されるデータの表示タイミングを調整する」ことが記載された。
そして、デバイスおよび監視機器から入力されるデータの表示タイミングを調整するためには、監視機器から入力されるデータと収集時刻の情報及びデバイス値と収集時刻の情報が存在すれば十分であり、監視機器から入力されるデータと収集時刻の情報を取得するための具体的な手段(監視機器から入力されるデータを収集時刻に関する情報と対応付けて記録するための具体的な手段)まで特定する必要はない。
したがって、本件特許発明1~13がサポート要件違反であるとはいえない。
イ 上記(1)イの主張について
技術常識をふまえた当業者であれば、請求項1~13における「表示タイミングを調整する」ことに関して、監視機器から入力されるデータとデバイス値との時間的な関係を特定できるように調整することを意味すると理解するから、本件特許発明1~13により、発明の課題が解決できることは明らかである。
したがって、本件特許発明1~13がサポート要件違反であるとはいえない。
2 意見書の3(1-3)「特許法第36条第6項第2号について」の主張
(1)主張の内容
請求項1、9、12、13に記載した「表示タイミングを調整する」の発明特定事項は、「調整」の語の意味からみて、表示タイミングを程よくする、程度のことにすぎないものと認識されることから、どのようなことを指しているのか、具体的な内容が不明であり、本件特許発明1~13は明確でない。
(2)主張の検討
本件明細書の段落【0133】及び図26には、デバイス値とワーク画像の取得時刻や取得周期が一致していないことが説明され、【0134】~【0136】には、取得時刻の最も近いデバイス値の表示の開始に合わせてワーク画像の表示を開始することが説明されており、ワーク画像の表示開始時間を「調整して」デバイス値の表示の開始の時間に合わせることが記載されている。
そして、本件特許発明の課題が、明細書の段落【0005】に記載されているように、カメラ、モータアンプ、センサ、通信コントローラ等の各種監視機器から入力されるデータとデバイス値との時間的な関係を特定しやすくすること」であることからみても、「表示タイミングの調整」が、取得時刻や取得周期が異なる複数のデータについて、取得時間の近いデータを対応させて一緒に表示するために、それぞれのデータの表示開始時間がそろうように合わせる(同じ時間軸上に並べる)意味であることは明らかである。
したがって、本件特許発明に関し、請求項1、9、12、13に記載した「表示タイミングを調整する」の意味は明確であり、本件発明1~13が明確性要件違反であるとはいえない。
第7 むすび
以上のとおりであるから、取消理由通知(決定の予告)に記載した取消理由、及び特許異議申立書に記載した特許異議申立理由によっては、本件請求項1~13に係る特許を取り消すことができない。そして、他に本件請求項1~13に係る特許を取り消すべき理由を発見しない。
よって、結論のとおり決定する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2023-701201