JP7415091B1 - プログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法 - Google Patents

プログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法 Download PDF

Info

Publication number
JP7415091B1
JP7415091B1 JP2023551954A JP2023551954A JP7415091B1 JP 7415091 B1 JP7415091 B1 JP 7415091B1 JP 2023551954 A JP2023551954 A JP 2023551954A JP 2023551954 A JP2023551954 A JP 2023551954A JP 7415091 B1 JP7415091 B1 JP 7415091B1
Authority
JP
Japan
Prior art keywords
program
error
control
project
writing
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
Application number
JP2023551954A
Other languages
English (en)
Inventor
紘明 山川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7415091B1 publication Critical patent/JP7415091B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

プログラム管理装置(100)は、機器を制御する制御装置(200)により実行される制御プログラムのエラー情報を取得する取得部と、エラー情報に含まれる制御装置(200)の識別情報と、制御プログラムの書き込み実績とに基づいて、エラー発生プログラムを特定するエラー発生プログラム特定部と、対応付け情報に基づき、エラー発生プログラムの改訂元プログラムを特定する改訂元特定部と、各制御プログラムのエラー履歴情報に基づいて、特定された改訂元プログラムの中から、実行エラーの発生実績がない改訂元プログラムを更新プログラムとして決定する更新プログラム決定部と、決定された更新プログラムを、エラー発生プログラムを実行した制御装置(200)が備える記憶部に書き込む書き込み処理を実行する書き込み部と、を備える。

Description

本開示は、プログラム、プログラム管理装置、プログラム管理装置システム、およびプログラム管理方法に関する。
FA機器を制御する制御装置は、書き込まれた制御プログラムに基づいてFA機器を制御する。開発者は、制御装置のプログラムを開発する際、バージョン管理システムを用いてプログラムを管理することがある。例えば、特許文献1には、開発対象の装置の装置要件と、この装置向けに開発された制御プログラムのバージョンと、を関連付けて記憶することにより、制御プログラムがどのように修正され、どのバージョンがどの装置開発にて利用されたかを確認できるシステムが開示されている。
特開2008-226005号公報
製造現場において、制御プログラムの実行エラーが発生した場合、実行エラーがどのプログラムのどのバージョンから発生しているかを特定してエラーを解消する必要がある。特許文献1のシステムでは、人手によって、実行エラーが発生した制御プログラムのバージョンを特定し、エラーを解消しなければならず、少ない手間で迅速にエラーを解消するという観点からは改善の余地がある。
本開示は、上記のような問題点に鑑みてなされたものであり、少ない手間で迅速に管理対象装置のエラーを解消することができるプログラム、プログラム管理装置、プログラム管理装置システム、およびプログラム管理方法を提案することを目的にする。
上記の目的を達成するため、本開示に係るプログラムは、コンピュータを、機器を制御する制御装置により実行される制御プログラムの実行エラーが発生したことを示すエラー情報を取得する取得手段、取得されたエラー情報に含まれる制御装置の識別情報と、制御プログラムが複数の制御装置に書き込まれたそれぞれの実績を示す書き込み実績とに基づいて、実行エラーが発生した制御プログラムであるエラー発生プログラムを特定するエラー発生プログラム特定手段、各制御プログラムと、制御プログラムを開発するために使用された制御プログラムである改訂元プログラムとを対応付けた対応付け情報に基づき、エラー発生プログラムの改訂元プログラムを特定する改訂元特定手段、制御プログラム毎の実行エラーが発生した実績を示すエラー履歴情報に基づいて、特定された改訂元プログラムの中から、実行エラーの発生実績がない改訂元プログラムを、更新用の制御プログラムである更新プログラムとして決定する更新プログラム決定手段、決定された更新プログラムを、エラー発生プログラムを実行した制御装置が備える記憶部に書き込む書き込み処理を実行する書き込み手段として機能させる。
本開示によれば、実行エラーが発生した制御プログラムの改訂元の制御プログラムを特定し、エラー履歴情報に基づいて、改訂元の制御プログラムの中から、実行エラーの発生実績がない制御プログラムを更新プログラムとして決定する。そして、決定された更新プログラムを、エラー発生プログラムを実行した制御装置が備える記憶部に書き込む。したがって、迅速に不具合を解消することができる。
本開示の実施の形態に係るプログラム管理装置の構成を示すブロック図 図1に示すデータ保存部に記憶されるプロジェクト管理情報の一例を示す図 図1に示す改訂履歴管理部により管理されるバージョン情報の一例を示す図 図1に示すスケジュール管理部により生成される稼働状況テーブルの一例を示す図 図1に示すスケジュール管理部により表示されるスケジュール設定画面の一例を示す図 実施の形態に係るプログラム管理装置の物理構成の一例を示すブロック図 実施の形態に係るプログラム管理装置によるエラー解消処理を示すフローチャート 図1に示すエラー解消部により表示される表示画面の一例を示す図 図1に示すエラー解消部により表示される通知画面の一例を示す図
以下、本開示の実施の形態に係るプログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法について、図面を参照して説明する。なお、図中同一または相当する部分には同じ符号を付す。
図1に示す通り、本実施の形態に係るプログラム管理装置100は、工場A-Cにそれぞれ設置され、接続される複数の制御装置200からデータを収集するゲートウェイ300と、ネットワーク400を介して通信可能に接続される。制御装置200は、例えば、PLC(Programmable Logic Controller)を含む。制御装置200は、ラダープログラムに代表される制御プログラムを実行することにより、制御対象のFA機器を制御する。制御装置200のメモリには、制御プログラムと制御装置200の設定情報とを含むプロジェクトファイルが格納される。各制御装置200に格納されるプロジェクトファイルは、制御プログラムにより実行される機能、装置の型番、制御内容等に応じて、バージョン、または、リビジョンが異なる。各制御装置200は、格納されたプロジェクトファイルに含まれる制御プログラムをそれぞれ実行する。制御装置200は、制御プログラムの実行エラーが発生した場合、ゲートウェイ300に対し、実行エラーが発生したことを示すエラー情報を送信する。ゲートウェイ300は、エラー情報を受信すると、エラー情報に、エラーが発生した制御装置200の装置IDを付与して、プログラム管理装置100に送信する。なお、図示する例において、制御装置200が、プログラム管理装置100と通信する機能を備えている場合、プログラム管理装置100は、ゲートウェイ300を介さずに、制御装置200と通信してもよい。なお、制御装置200のメモリは、記憶部の一例である。
プログラム管理装置100は、ゲートウェイ300から、エラー情報を受信すると、エラーが検出された制御装置200と、この制御装置200により実行された制御プログラムを含むプロジェクトファイルとを特定する。プログラム管理装置100は、各プロジェクトファイルの改訂履歴と実行エラーの発生履歴とを参照して、改訂履歴に含まれるプロジェクトファイルの中から、エラー発生の実績がないプロジェクトファイルを特定する。プログラム管理装置100は、ユーザの選択により、実行エラーが検出された制御装置200に、エラー発生の実績がないプロジェクトファイルを書き込むことができる。なお、制御装置200にプロジェクトファイルを書き込むとは、制御装置200が備えるメモリにプロジェクトファイルを格納することを意味する。また、プログラム管理装置100は、実行エラーが発生した制御プログラムを含むプロジェクトファイルを改訂して開発された派生プロジェクトファイルを特定する。プロジェクトファイルの改訂は、制御プログラムの更新、制御装置200の設定情報の更新、制御プログラムおよび設定情報それぞれの更新を含む。プログラム管理装置100は、特定した派生プロジェクトファイルを、エラー発生の可能性があるプロジェクトファイルとしてユーザに通知する。
プログラム管理装置100は、制御プログラムを含むプロジェクトファイルを作成するプログラム作成部110と、プロジェクトファイル毎の、制御装置200のメモリへの書き込み履歴とエラー発生履歴とを関連付けたプロジェクト管理情報を記憶するデータ保存部120と、プロジェクトファイルの改訂履歴を管理し、発生した実行エラーを解消するプロジェクト管理部130と、制御プログラムの実行エラーの発生を監視し、制御装置200のメモリへプロジェクトファイルを書き込むアセット管理部140と、プロジェクトファイルを書き込むスケジュールを管理するスケジュール管理部150と、を備える。
プログラム作成部110は、制御装置200に実行させる制御プログラムと制御装置200の設定情報とを含むプロジェクトファイルを作成し、又は、編集する。具体的に、プログラム作成部110の機能は、プログラム管理装置100に備えられているプロセッサが、エンジニアリングツールを実行することによって実現される。設定情報には、制御装置200の型名、制御装置200の接続情報、制御装置200に設定されている各種パラメータなどが含まれる。プログラム作成部110は、データ保存部120に作成したプロジェクトファイルを記憶させる。なお、プログラム作成部110は、プログラム生成手段の一例である。
データ保存部120は、プログラム作成部110により作成されたプロジェクトファイルと、プロジェクトファイル毎の書き込み履歴とエラー発生履歴との情報を関連付けたプロジェクト管理情報と、を記憶する。図2に示す通り、プロジェクト管理情報は、各プロジェクトファイルを一意に識別する情報を示す「リビジョン番号」と、プロジェクトファイルの名前を示す「プロジェクト名」と、各プロジェクトファイルがどの制御装置200のメモリに書き込まれたかの履歴を示す「書き込み履歴」と、各プロジェクトファイルが書き込まれた日時を示す「書き込み日時」とエラー発生の実績を示す「エラー発生履歴」と、を含む。図示する例において、リビジョン番号「31」のプロジェクトファイルは、プロジェクト名が「プロジェクトA」であり、「工場B」に設置されている装置ID「620」により識別される制御装置200に、「2023年2月1日の0時00分」に書き込まれた実績があることを示す。また、「エラー発生履歴」に「なし」が入力されているため、このプロジェクトファイルは、エラー発生の実績がないことを示す。なお、プロジェクト管理情報は、書き込み実績、エラー履歴情報の一例である。
図1に戻り、プロジェクト管理部130は、プログラム作成部110により作成されたプロジェクトファイルの改訂履歴を管理する改訂履歴管理部131と、実行エラーが発生した制御プロクラムを含むプロジェクトファイルを特定し、発生したエラーを解消するための更新用のプロジェクトファイルを特定するエラー解消部132と、を備える。
改訂履歴管理部131は、プログラム作成部110により作成されたプロジェクトファイルの改訂履歴を示すバージョン情報を生成する。図3に示す通り、バージョン情報は、プロジェクトファイルを一意に識別する情報を示す「リビジョン番号」と、各プロジェクトファイルのバージョンを特定する情報を示す「バージョン」と、各プロジェクトファイルの名前を示す「プロジェクト名」と、各プロジェクトファイルの改訂元となるプロジェクトファイルのリビジョン番号を示す「改訂元プロジェクト」との情報を有する。図示する例において、リビジョン番号「32」のプロジェクトファイルは、バージョンが「1.0.1(A社リリース)」であり、プロジェクト名が「プロジェクトB」であり、リビジョン番号が「31」のプロジェクトファイルを改訂して作成されたプロジェクトファイルであることを示す。このバージョン情報により、各プロジェクトファイルがそれぞれどのプロジェクトファイルを改訂して作成されたものであるかを把握することが可能となる。なお、バージョン情報は、対応付け情報、プロジェクト対応付け情報の一例である。
図1に戻り、エラー解消部132は、データ保存部120に保存されたプロジェクト管理情報に基づき、エラーが発生した制御プログラムを含むプロジェクトファイルを特定する。具体的に、エラー解消部132は、ゲートウェイ300から、エラー情報を受信すると、エラー情報に含まれる装置IDを取得して、実行エラーが発生した制御装置200を特定する。次に、エラー解消部132は、図2に示すプロジェクト管理情報を参照して、取得した装置IDの制御装置200のメモリに現在書き込まれているプロジェクトファイルを特定する。例えば、エラー解消部132は、エラー情報から装置ID「620」を取得した場合、「書き込み履歴」の情報を読み出して、装置ID「620」に書き込まれた履歴のあるプロジェクトファイルは、リビジョン番号「31」、「33」、「38」であることを特定する。次に、エラー解消部132は、それぞれの「書き込み日時」の情報を読み出す。リビジョン番号「31」のプロジェクトファイルは、2023年2月1日の0時00分に書き込まれ、リビジョン番号「33」のプロジェクトファイルは、2023年7月1日の0時00分に書き込まれ、リビジョン番号「38」のプロジェクトファイルは、2023年8月1日の0時00分に書き込まれていることから、エラー解消部132は、書き込み日時の遅いリビジョン番号「38」のプロジェクトファイルにエラーが発生したと特定する。
図1に戻り、エラー解消部132は、発生したエラーを解消するための更新用のプロジェクトファイルを特定する。具体的に、エラー解消部132は、図3に示すバージョン情報を参照して、エラーが発生したプロジェクトファイルがどのプロジェクトファイルを改訂して開発されたものかを示す改訂履歴を取得する。次に、エラー解消部132は、図2に示すプロジェクト管理情報を参照して、改訂履歴に含まれるエラー発生の実績を確認し、エラー実績のないプロジェクトファイルを更新用のプロジェクトファイルに決定する。エラー解消部132が更新用のプロジェクトファイルを特定する処理の詳細については、後述する。
エラー解消部132は、実行エラーが発生した制御プログラムを含むプロジェクトファイルを改訂して作成された派生プロジェクトファイルを特定してユーザに通知する。これにより、ユーザは、実行エラーが発生したプロジェクトファイルと同じエラーが発生し得るプロジェクトファイルを事前に把握することが可能になる。エラー解消部132が派生プロジェクトファイルを特定する処理の詳細については、後述する。なお、エラー解消部132は、エラー発生プログラム特定手段、改訂元特定手段、更新プログラム決定手段、派生先特定手段、通知手段の一例であり、派生プロジェクトファイルは、派生プログラムの一例である。
図1に戻り、アセット管理部140は、制御装置200のメモリにプロジェクト管理部130により特定された更新用のプロジェクトファイルを書き込む書き込み部141と、プロジェクトファイルに含まれる制御プログラムの実行エラーの発生を監視するエラー監視部142と、ゲートウェイ300と通信する通信部143と、を備える。
書き込み部141は、エラーが発生した制御装置200のメモリに、プロジェクト管理部130により正常に動作すると特定された更新用のプロジェクトファイルを書き込む。具体的に、書き込み部141は、プロジェクト管理部130により特定されたリビジョン番号のプロジェクトファイルをデータ保存部120から取得する。次に、書き込み部141は、取得したプロジェクトファイルをエラーが発生した制御装置200に送信し、制御装置200のメモリに送信したプロジェクトファイルを書き込む。なお、プロジェクトファイルの書き込みは、書き込み部141が、取得したプロジェクトファイルとこのファイルの書き込みを要求するメッセージとを制御装置200に送信し、制御装置200が、受信した書き込み要求に基づき、制御装置200が備えるメモリに、受信したプロジェクトファイルを書き込むことにより、実行されてもよい。なお、書き込み部141は、書き込み手段の一例である。
エラー監視部142は、制御プログラムの実行エラーの発生を監視する。具体的に、エラー監視部142は、ゲートウェイ300からのエラー情報を待ち受ける。エラー監視部142は、ゲートウェイ300からエラー情報を受信すると、受信したエラー情報をプロジェクト管理部130に送信する。
通信部143は、プログラム管理装置100とゲートウェイ300との間の通信のためのネットワークインタフェースを含む。通信部143は、書き込み部141からの書き込み要求を、制御装置200に送信し、ゲートウェイ300からエラー情報を受信する。なお、通信部143は、取得手段の一例である。
スケジュール管理部150は、更新用のプロジェクトファイルを制御装置200に書き込む日時を設定する。具体的に、スケジュール管理部150は、制御装置200から制御装置200の稼働状況を示す稼働データを取得して、制御装置200が過去に稼働した時間帯を割り出す。例えば、スケジュール管理部150は、過去1週間、過去1か月などの予め設定された期間内の稼働データに基づいて、図4に示す、制御装置200毎の稼働した実績のある時間帯を示す稼働状況テーブルを生成し、データ保存部120に保存する。更新用のプロジェクトファイルを書き込む日時を設定する際、ユーザは、図5に示すスケジュール設定画面上で設定操作を行う。スケジュール管理部150は、実行エラーが発生した制御装置200の機器IDと工場名と書き込み処理の開始予定日時を入力したスケジュール設定画面を表示部に表示させる。例えば、図示する機器ID「620」の例の場合、スケジュール管理部150は、現在の日付「9/7」をタイマから取得し、翌日の日付である「9/8」を開始予定日の日付としてフォームに入力する。次に、スケジュール管理部150は、図4に示す稼働状況テーブルを参照して、機器ID「620」の稼働実績がない時間「23:00」を開始予定時間としてフォームに入力する。ユーザにより設定ボタンが押下されると、スケジュール管理部150は、開始予定日時のフォームに入力された日時に、書き込み部141に書き込み処理を実行する指示信号を送信する送信タイマを設定する。なお、ユーザは、開始予定日時のフォームに入力された日時を変更してもよく、フォームに新たな日時を入力して、設定ボタンを押下することにより、ユーザにより変更された日時に基づく送信タイマが設定される。また、ユーザにより、稼働実績のある時間が入力された場合、スケジュール管理部150は、エラーメッセージを表示させて、時間を変更する旨をユーザに通知してもよい。また、スケジュール管理部150は、フォームにおいて、稼働実績のある時間は表示させないことにしてもよい。なお、スケジュール管理部150は、スケジュール設定手段の一例であり、稼働状況テーブルは、稼働実績情報の一例である。
次に、図6を参照してプログラム管理装置100の物理的構成について説明する。プログラム管理装置100は、プログラムに従った処理を実行するプロセッサ11と、揮発性メモリであるRAM(Random Access Memory)12と、不揮発性メモリであるROM(Read Only Memory)13と、データを記憶する記憶部14と、情報の入力を受け付ける入力部15と、情報を可視化して表示する表示部16と、情報の送受信を行う通信部17と、を備え、これらが内部バス99を介して接続されている。
プロセッサ11は、CPU(Central Processing Unit)を含む。プロセッサ11は、記憶部14に記憶されるプログラムをRAM12に読み出して実行することにより、各種処理を実行する。プロセッサ11は、プログラムにより提供される主要な機能として、プログラム作成部110、プロジェクト管理部130、アセット管理部140、スケジュール管理部150による処理を実行する。
RAM12は、CPUのワークエリアとして使用される。ROM13は、プログラム管理装置100の基本動作のためにCPUが実行する制御プログラム、BIOS(Basic Input Output System)等を記憶する。
記憶部14は、ハードディスクドライブを備え、CPUが実行するプログラムを記憶し、プログラム実行の際に使用される各種データを記憶する。記憶部14は、データ保存部120として機能する。
入力部15は、キーボード、マウス等を備えるユーザインタフェースである。表示部16は情報を可視化して表示する液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置である。
通信部17は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェースまたはLANインタフェースである。通信部17は、外部から信号を受信して、この信号により示されるデータをプロセッサ11へ出力する。通信部17は、通信部143として機能する。
次に、上記構成を有するプログラム管理装置100による動作について、図7を参照して説明する。
プログラム管理装置100のデータ保存部120には、図2に示すプロジェクト管理情報と、図3に示すバージョン情報と、図4に示す稼働状況テーブルとが予め記憶されている。
アセット管理部140の書き込み部141は、制御装置200のメモリにプロジェクトファイルを書き込む処理を行った場合、書き込んだプロジェクトファイルのリビジョン番号とプロジェクト名、対象の制御装置200の装置IDと工場名、書き込む処理を行った日時の情報を、図2に示すプロジェクト管理情報に追加して、更新する。また、エラー解消部132は、エラー情報を受信してエラーが発生したプロジェクトファイルを特定した場合、データ保存部120からプロジェクト管理情報を読み出して、特定したプロジェクトファイルのリビジョン番号と同列の「エラー発生履歴」に「あり」を入力してプロジェクト管理情報を更新する。なお、書き込み部141が制御装置200に書き込み要求メッセージを出力した場合、書き込み要求メッセージを出力した日時をプロジェクト管理情報に追加して更新すればよい。
プロジェクトファイルの開発者は、新たなプロジェクトファイルを作成した場合、または、既存のプロジェクトファイルを改訂して新たなバージョン、または、新たなリビジョンのプロジェクトファイルを作成した場合、図3に示すバージョン情報を読み出して、「リビジョン番号」、「バージョン」、「プロジェクト名」、「改訂元プロジェクト」の項目に、情報を追加して、バージョン情報を更新する。
スケジュール管理部150は、制御装置200から制御装置200の稼働状況を示す稼働データを取得して、制御装置200毎の稼働した実績のある時間帯を示す稼働状況テーブルを生成する。具体的に、スケジュール管理部150は、過去1週間、過去1か月などの予め設定された期間内の稼働データに基づいて、制御装置200が稼働した実績のある時間帯を割り出す。スケジュール管理部150は、例えば、1週間毎、1か月毎などの一定期間毎に、稼働状況テーブルを生成して、データ保存部120に保存する。
図7に戻り、ユーザが入力部15を操作して、エラー解消処理の開始を要求すると、プログラム管理装置100は、処理を開始する。
アセット管理部140のエラー監視部142は、制御プログラムの実行エラーが発生したことを示すエラー情報を待ち受ける(ステップS11)。エラー監視部142は、通信部143を介して、ゲートウェイ300からエラー情報を受信すると(ステップS12;Yes)、受信したエラー情報をプロジェクト管理部130に送信して、ステップS13の処理に移行する。一方、エラー監視部142は、エラー情報を受信していない場合(ステップS12;No)、エラー情報を受信するまで、エラー情報を待ち受ける(ステップS11)。
プロジェクト管理部130のエラー解消部132は、エラー監視部142からエラー情報を受信すると、エラーが発生した制御プログラムを含むプロジェクトファイルを特定する(ステップS13)。具体的に、エラー解消部132は、エラー情報に含まれる制御装置200の装置IDを取得して、実行エラーが発生した制御装置200を特定する。次に、エラー解消部132は、図2に示すプロジェクト管理情報を参照して、取得した装置IDの制御装置200のメモリに現在書き込まれているプロジェクトファイルを特定する。
例えば、エラー解消部132は、エラー情報から装置ID「620」を取得した場合、「書き込み履歴」の情報を読み出して、装置ID「620」に書き込まれた履歴のあるプロジェクトファイルは、リビジョン番号「31」、「33」、「38」であることを特定する。次に、エラー解消部132は、それぞれの「書き込み日時」の情報を読み出す。リビジョン番号「31」のプロジェクトファイルは、2023年2月1日の0時00分に書き込まれ、リビジョン番号「33」のプロジェクトファイルは、2023年7月1日の0時00分に書き込まれ、リビジョン番号「38」のプロジェクトファイルは、2023年8月1日の0時00分に書き込まれていることから、エラー解消部132は、書き込み日時の遅いリビジョン番号「38」のプロジェクトファイルが装置ID620の制御装置200のメモリに現在書き込まれているプロジェクトファイルであり、エラーが発生したプロジェクトファイルであると特定する。エラー解消部132は、プロジェクト管理情報のリビジョン番号「38」の「エラー発生履歴」に、実行エラーが発生したことを示す「あり」を追加し、更新する。なお、リビジョン番号「38」のプロジェクトファイルは、エラー発生プログラムの一例である。
図7に戻り、次に、エラー解消部132は、発生したエラーを解消するための更新用のプロジェクトファイルを特定する(ステップS14)。具体的に、エラー解消部132は、図3に示すバージョン情報を参照して、エラーが発生した制御プログラムを含むプロジェクトファイルがどのプロジェクトファイルを改訂して開発されたものかを示す改訂履歴を取得する。例えば、ステップS13で特定したリビジョン番号「38」のプロジェクトファイルの場合、エラー解消部132は、バージョン情報の「改訂元プロジェクト」を読み出し、リビジョン番号「38」のプロジェクトファイルは、リビジョン番号「33」を改訂元とするプロジェクトファイルであると特定する。次に、エラー解消部132は、同様の処理により、リビジョン番号「33」のプロジェクトファイルは、リビジョン番号「31」を改訂元とするプロジェクトファイルであると特定する。これらの処理により、エラー解消部132は、リビジョン番号「31」、および、リビジョン番号「33」のプロジェクトファイルを、リビジョン番号「38」のプロジェクトファイルの改訂履歴として取得する。なお、リビジョン番号「31」、および、リビジョン番号「33」のプロジェクトファイルは、改訂元プログラムの一例である。
図7に戻り、次に、エラー解消部132は、図2に示すプロジェクト管理情報を参照して、改訂履歴に含まれるプロジェクトファイルのエラー発生の実績を確認し、エラー実績のないプロジェクトファイルを更新用のプロジェクトファイルに決定する。具体的に、エラー解消部132は、プロジェクト管理情報の「エラー発生履歴」を読み出して、リビジョン番号「31」、および、「33」のプロジェクトファイルのエラー発生の実績を取得する。図示する例において、書き込み日時の新しいリビジョン番号「33」のプロジェクトファイルは、エラー発生履歴が「あり」であり、書き込み日時の古いリビジョン番号「31」のプロジェクトファイルは、エラー発生履歴が「なし」である。エラー解消部132は、エラー発生履歴がない、リビジョン番号「31」のプロジェクトファイルを更新用のプロジェクトファイルに決定する。エラー解消部132は、リビジョン番号「31」のプロジェクトファイルを更新用のプロジェクトファイルに決定した旨を書き込み部141に通知する。なお、リビジョン番号「31」のプロジェクトファイルは、更新プログラムの一例である。
図8は、エラー解消部132により更新用のプロジェクトファイルが決定された結果を表示する表示画面の一例を示す。この表示画面の縦軸には、プロジェクトファイルのバージョンを示すバージョン情報が表示され、横軸には、プロジェクトファイルのリビジョン番号が表示される。また、実行エラーが発生したプロジェクトファイルのバージョン「1.0.3」とリビジョン番号「38」とが交差するセルと、ステップS14にて更新用のプロジェクトファイルとして決定されたプロジェクトファイルのバージョン「1.0.0」とリビジョン番号「31」とが交差するセルがそれぞれ強調されて表示される。また、各セルを結ぶ点線により、リビジョン番号「38」のプロジェクトファイルの改訂履歴と、リビジョン番号「38」のプロジェクトファイルを改訂して作成されたプロジェクトファイルとが可視化されて表示される。ユーザは、表示画面に表示された内容を確認し、「はい」のアイコンをクリックすることで、ステップS15に移行する。
図7に戻り、次に、スケジュール管理部150は、ステップS14により特定された更新用のプロジェクトファイルを制御装置200のメモリに書き込むスケジュールを設定する(ステップS15)。具体的に、スケジュール管理部150は、図5に例示するスケジュール設定画面を表示部16に表示させ、ユーザの入力操作を受け付ける。スケジュール設定画面において、スケジュール管理部150は、対象の制御装置200の機器IDと、工場名とをそれぞれのフォームに入力する。次に、スケジュール管理部150は、データ保存部120に記憶されている図4に示す稼働状況テーブルを参照して、稼働実績のない時間帯を割り出し、開始予定日時のフォームに入力する。例えば、機器ID「620」が対象の制御装置200の場合、スケジュール管理部150は、現在の日付「9/7」をタイマから取得し、翌日の日付である「9/8」を開始予定の日付としてフォームに入力する。次に、スケジュール管理部150は、稼働状況テーブルを参照して、機器ID「620」の稼働実績がない「23:00」を開始予定時間としてフォームに入力する。ユーザにより設定ボタンが押下されると、スケジュール管理部150は、開始日時のフォームに入力された日時に、書き込み部141に書き込み処理を実行する指示信号を送信する送信タイマを設定する。
図7に戻り、エラー解消部132は、実行エラーが発生した制御プログラムを含むプロジェクトファイルを改訂して作成された派生プロジェクトファイルがあるか否かを判定する(ステップS16)。具体的に、エラー解消部132は、図3に示すバージョン情報を参照して、派生プロジェクトファイルを特定する。エラー解消部132は、バージョン情報の「改訂元プロジェクト」に実行エラーが発生したプロジェクトファイルのリビジョン番号「38」を含むプロジェクトファイルを検索する。図示する例において、「改訂元プロジェクト」にリビジョン番号「38」を含むリビジョン番号「41」のプロジェクトファイルがあるため、エラー解消部132は、派生プロジェクトファイルがあると判定して(ステップS16;Yes)、リビジョン番号「41」のプロジェクトファイルを派生プロジェクトファイルとして特定する。次に、エラー解消部132は、図2に示すプロジェクト管理情報を参照して、リビジョン番号「41」のプロジェクトファイルが書き込まれた装置200は、装置ID「630」であると特定する。次に、エラー解消部132は、同様の処理により、リビジョン番号「41」のプロジェクトファイルを改訂して作成された派生プロジェクトファイルの有無を判定する。図示する例において、「改訂元プロジェクト」に、リビジョン番号「41」を含むプロジェクトファイルがないため、エラー解消部132は、リビジョン番号「41」のプロジェクトファイルを元とする派生プロジェクトファイルはないと判定する。
次に、エラー解消部132は、ステップS16で特定した派生プロジェクトファイルをユーザに通知する(ステップS17)。具体的に、エラー解消部132は、図9に示す通知画面を生成して、派生プロジェクトファイルを特定したことを示す情報を表示部に表示させる。これにより、ユーザは、同じエラーが発生し得る制御プログラムを含むプロジェクトファイルを事前に把握することが可能になる。なお、エラー解消部132は、リビジョン番号「41」の派生プロジェクトファイルがあると判定した場合、この派生プロジェクトファイルのリビジョン番号を特定し、派生プロジェクトファイルがないと判定するまで処理を繰り返す。
図7に戻り、次に、エラー解消部132は、ステップS16で特定した派生プロジェクトファイルに対する更新用のプロジェクトファイルを特定する(ステップS18)。具体的に、エラー解消部132は、ステップS14と同様の処理により、派生プロジェクトファイルの改訂履歴を取得し、改訂履歴に含まれるプロジェクトファイルのエラー発生の実績を確認して、エラー実績のないプロジェクトファイルを更新用のプロジェクトファイルに決定する。
次に、スケジュール管理部150は、ステップS18により特定された更新用のプロジェクトファイルを、派生プロジェクトファイルが書き込まれている制御装置200のメモリに書き込むスケジュールを設定する(ステップS19)。具体的に、スケジュール管理部150は、ステップS15と同様に、図5に例示するスケジュール設定画面を表示部16に表示させ、ユーザの入力操作に応じてスケジュールを設定する。
図7に戻り、ステップS16にて、エラー解消部132は、派生プロジェクトファイルがないと判定すると(ステップS16;No)、ステップS20に移行する。
次に、スケジュール管理部150は、ステップS15、または、ステップS19にて設定したスケジュールの日時になり、送信タイマが満了したことを検知すると、書き込み部141に書き込み処理を実行する指示信号を送信する。書き込み部141は、指示信号を受信すると、ステップS14、または、ステップS18にて決定された更新用のプロジェクトファイルを制御装置200のメモリに書き込む処理を実行する(ステップS20)。具体的に、ステップS15で設定した書き込みを実行する場合、書き込み部141は、プロジェクト管理部130により決定されたリビジョン番号「31」のプロジェクトファイルをデータ保存部120から取得する。次に、書き込み部141は、取得したプロジェクトファイルをエラーが発生した制御装置200に送信し、エラー制御装置200のメモリに送信したプロジェクトファイルを書き込む。
次に、書き込み部141は、図2に示すプロジェクト管理情報を更新する(ステップS21)。具体的に、書き込み部141は、プロジェクト管理情報を読み出して、ステップS20で書き込んだプロジェクトファイルのリビジョン番号「31」の「書き込み履歴」に、書き込み先の制御装置200の装置IDと工場名とを示す「工場B-装置ID:620」を追加し、書き込みを行った日時を「書き込み日時」に追加して、プロジェクト管理情報を更新し、処理を終了する。なお、ステップS18で特定した派生プロジェクトファイルに対する更新用のプロジェクトファイルの書き込みを実行した場合も、同様にプロジェクト管理情報を更新する。
以上のように、制御装置200が実行する制御プログラムに実行エラーが発生した場合、プログラム管理装置100は、実行エラーが発生した制御プログラムを含むプロジェクトファイルの改訂履歴とエラー発生履歴とを参照して、エラー発生実績のないプロジェクトファイルを特定する。プログラム管理装置100は、特定したプロジェクトファイルを制御装置200のメモリに書き込む。したがって、少ない手間で、迅速に制御装置200に発生したエラーを解消することが可能となる。
また、プログラム管理装置100は、実行エラーが発生した制御プログラムを含むプロジェクトファイルを改訂して作成された派生プロジェクトファイルを自動的に特定してユーザに通知する。したがって、ユーザは、発生した実行エラーと同じエラーが発生する可能性のあるプロジェクトファイルを予め把握することが可能となる。そして、実行エラーが発生する前に、制御装置200のメモリに更新用のプロジェクトファイルの書き込みをしたり、派生プロジェクトファイルの改訂作業を始めることができ、工場全体の信頼性を向上することができる。
また、プログラム管理装置100は、更新用のプロジェクトファイルを書き込むスケジュールを自動的に生成する。ユーザは、生成されたスケジュールの日時を確認し、必要に応じて日時を変更することによりスケジュールを変更する。したがって、対象の制御装置200の稼働状況を人手で確認して、スケジュールを作成する手間が省けるため、少ない手間でプロジェクトファイルを更新することが可能となる。
本開示の主旨を逸脱しない限り、上記実施の形態で挙げた構成を取捨選択したり、他の構成に適宜変更したりすることが可能である。
上記実施の形態において、各制御装置200は、1つのプロジェクトファイルに含まれる制御プログラムをそれぞれ実行するものとして説明したがこれに限られない。制御装置200は、複数のCPUを備え、CPU毎に異なるプロジェクトファイルに含まれる制御プログラムを実行してもよい。この場合、制御装置200は、エラー情報に、CPUを識別する情報を付加して、ゲートウェイ300に送信すればよい。また、書き込み部141は、図2に示すプロジェクト管理情報の「書き込み履歴」に装置IDとCPUの識別情報とを追加すればよい。プロジェクト管理部130のエラー解消部132は、図7のステップS13の処理において、エラー情報に含まれる制御装置200の装置IDとCPUの識別情報とを取得して、プロジェクト管理情報を参照し、取得した装置IDの制御装置200のCPUに現在書き込まれているプロジェクトファイルを特定すればよい。また、図7のステップS20において、書き込み部141は、スケジュール管理部150から指示信号を受信すると、ステップS13で特定したCPUが読み出すメモリの領域に更新用のプロジェクトファイルを書き込む処理を実行すればよい。
上記実施の形態において、プログラム管理装置100は、実行エラーが発生した制御装置200のメモリに更新用のプロジェクトファイルを書き込むものとして説明したがそれに限られない。プログラム管理装置100は、実行エラーが発生した制御装置200と同じプロジェクトファイルがメモリに書き込まれた他の制御装置200を特定して、これらのメモリに更新用のプロジェクトファイルを書き込んでもよい。具体的に、図2に示すプロジェクト管理情報において、図7のステップS13で特定したプロジェクトファイルが、複数の制御装置200のメモリに書き込まれている場合、エラー解消部132は、プロジェクト管理情報からそれぞれの制御装置200の装置IDを取得する。ステップS15において、スケジュール管理部150は、稼働状況テーブルを参照して、取得した装置IDの制御装置200それぞれの稼働実績のない時間帯を割り出す。スケジュール管理部150は、制御装置200それぞれの書き込み処理の開示予定日時をスケジュール設定画面に表示させ、書き込みスケジュールを設定する。ステップS20において、書き込み部141は、ステップS15で設定されたスケジュールにより送信された指示信号を受信すると、制御装置200のメモリにステップS14で特定されたプロジェクトファイルを書き込む。
また、上記実施の形態では、プログラム管理装置100は、制御プログラムを含むプロジェクトファイルを管理することとして説明したがこれに限られず、制御プログラムを管理し、エラーが発生した制御装置200のメモリに制御プログラムを書き込むものであってもよい。
また、データ保存部120が記憶する情報は、ネットワーク上に存在するクラウドサーバで一括管理され、プログラム管理装置100は必要に応じて当該クラウドサーバにアクセスして情報の読み書きを行うようにしてもよい。この場合プログラム管理装置100はデータ保存部120を備えなくてもよい。
また、上記実施の形態において、1台のプログラム管理装置100により処理を実行することとしたが、システム構成は任意である。例えば、プログラム作成部110と、プロジェクト管理部130と、アセット管理部140と、スケジュール管理部150と、の機能のいずれかの機能を実現する複数の装置を備えるシステムによりプログラム管理装置100の機能を実現してもよい。
また、プログラム管理装置100は、専用の装置によらず、通常のコンピュータシステムを用いて実現可能である。例えば、プログラム管理装置100における各機能を実現するためのプログラムを、コンピュータが読み取り可能なCD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)等の記録媒体に格納して配布し、このプログラムをコンピュータに書き込むことにより、上述の各機能を実現することができるコンピュータを構成してもよい。
また、各機能をOS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合には、アプリケーションのみを記録媒体に格納してもよい。
また、本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
100 プログラム管理装置、110 プログラム作成部、120 データ保存部、130 プロジェクト管理部、131 改訂履歴管理部、132 エラー解消部、140 アセット管理部、141 書き込み部、142 エラー監視部、143 通信部、150 スケジュール管理部、11 プロセッサ、12 RAM、13 ROM、14 記憶部、15 入力部、16 表示部、17 通信部、99 内部バス、200 制御装置、300 ゲートウェイ、400 ネットワーク。

Claims (8)

  1. コンピュータを、
    機器を制御する制御装置により実行される制御プログラムの実行エラーが発生したことを示すエラー情報を取得する取得手段、
    取得されたエラー情報に含まれる前記制御装置の識別情報と、前記制御プログラムが複数の前記制御装置に書き込まれたそれぞれの実績を示す書き込み実績とに基づいて、実行エラーが発生した前記制御プログラムであるエラー発生プログラムを特定するエラー発生プログラム特定手段、
    各前記制御プログラムと、該制御プログラムを開発するために使用された制御プログラムである改訂元プログラムとを対応付けた対応付け情報に基づき、前記エラー発生プログラムの前記改訂元プログラムを特定する改訂元特定手段、
    前記制御プログラム毎の実行エラーが発生した実績を示すエラー履歴情報に基づいて、特定された前記改訂元プログラムの中から、実行エラーの発生実績がない前記改訂元プログラムを、更新用の前記制御プログラムである更新プログラムとして決定する更新プログラム決定手段、
    決定された前記更新プログラムを、前記エラー発生プログラムを実行した制御装置が備える記憶部に書き込む書き込み処理を実行する書き込み手段、
    として機能させる、プログラム。
  2. 前記書き込み実績は、前記制御装置により実行される前記制御プログラムを含むプロジェクトが書き込まれた実績を含み、
    前記エラー発生プログラム特定手段は、前記識別情報と前記書き込み実績とに基づいて、実行エラーが発生した前記エラー発生プログラムを含むプロジェクトを特定し、
    前記改訂元特定手段は、各プロジェクトと該プロジェクトの改訂元のプロジェクトとの対応付けを含むプロジェクト対応付け情報に基づき、前記エラー発生プログラムを含むプロジェクトの改訂元のプロジェクトを特定し、
    前記更新プログラム決定手段は、前記改訂元特定手段により特定された改訂元のプロジェクトの中から、実行エラーの発生実績がない前記改訂元プログラムを含むプロジェクトを更新用のプロジェクトとして決定し、
    前記書き込み手段は、決定された更新用の前記プロジェクトを、前記エラー発生プログラムを実行した制御装置が備える記憶部に書き込む、
    請求項1に記載のプログラム。
  3. 前記コンピュータを、
    前記対応付け情報に基づき、前記エラー発生プログラム特定手段により特定された前記エラー発生プログラムを改訂して作成された制御プログラムである派生プログラムを特定する派生先特定手段、
    前記派生先特定手段により特定された前記派生プログラムを通知する通知手段、
    としてさらに機能させる、請求項1または2に記載のプログラム。
  4. 前記コンピュータを、
    前記制御装置の稼働時間の実績を示す稼働実績情報に基づき、前記書き込み手段が前記書き込み処理を実行する日時を設定するスケジュール設定手段、
    としてさらに機能させる、請求項1または2に記載のプログラム。
  5. 前記コンピュータを、
    機器を制御する制御装置により実行される制御プログラムを生成するプログラム生成手段、
    としてさらに機能させる、請求項1または2に記載のプログラム。
  6. 機器を制御する制御装置により実行される制御プログラムの実行エラーが発生したことを示すエラー情報を取得する取得手段と、
    前記取得手段により取得されたエラー情報に含まれる制御装置の識別情報と、前記制御プログラムの書き込み実績とに基づいて、実行エラーが発生した前記制御プログラムであるエラー発生プログラムを特定するエラー発生プログラム特定手段と、
    各前記制御プログラムと、該制御プログラムを開発するために使用された制御プログラムである改訂元プログラムとを対応付けた対応付け情報に基づき、前記エラー発生プログラムの前記改訂元プログラムを特定する改訂元特定手段と、
    各前記制御プログラムのエラー履歴情報に基づいて、特定された前記改訂元プログラムの中から、実行エラーの発生実績がない前記改訂元プログラムを、更新用の前記制御プログラムである更新プログラムとして決定する更新プログラム決定手段と、
    決定された前記更新プログラムを、前記エラー発生プログラムを実行した制御装置が備える記憶部に書き込む書き込み処理を実行する書き込み手段と、
    を備える、プログラム管理装置。
  7. 請求項6に記載のプログラム管理装置と、
    機器を制御する制御装置により実行される制御プログラムの実行エラーが発生したことを示すエラー情報を送信する制御装置と、
    前記制御装置から送信されたエラー情報を取得して、前記プログラム管理装置に送信するゲートウェイと、
    を備えるプログラム管理システム。
  8. 機器を制御する制御装置により実行される制御プログラムの実行エラーが発生したことを示すエラー情報を取得するステップと、
    取得されたエラー情報に含まれる制御装置の識別情報と、前記制御プログラムの書き込み実績とに基づいて、実行エラーが発生した前記制御プログラムであるエラー発生プログラムを特定するステップと、
    各前記制御プログラムと、該制御プログラムを開発するために使用された制御プログラムである改訂元プログラムとを対応付けた対応付け情報に基づき、前記エラー発生プログラムの前記改訂元プログラムを特定するステップと、
    各前記制御プログラムのエラー履歴情報に基づいて、特定された前記改訂元プログラムの中から、実行エラーの発生実績がない前記改訂元プログラムを、更新用の前記制御プログラムである更新プログラムとして決定するステップと、
    決定された前記更新プログラムを、前記エラー発生プログラムを実行した制御装置が備える記憶部に書き込むステップと、
    を含む、プログラム管理方法。
JP2023551954A 2023-03-24 2023-03-24 プログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法 Active JP7415091B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023011946 2023-03-24

Publications (1)

Publication Number Publication Date
JP7415091B1 true JP7415091B1 (ja) 2024-01-16

Family

ID=89534349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023551954A Active JP7415091B1 (ja) 2023-03-24 2023-03-24 プログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法

Country Status (1)

Country Link
JP (1) JP7415091B1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006243929A (ja) 2005-03-01 2006-09-14 Fujitsu Peripherals Ltd 端末装置管理システム、端末装置管理方法、およびコンピュータプログラム
JP2008217168A (ja) 2007-02-28 2008-09-18 Toshiba Corp バージョン管理装置
JP2011238007A (ja) 2010-05-10 2011-11-24 Canon Inc 配信装置、プログラム配信システム、配信方法及びプログラム
JP2018200536A (ja) 2017-05-26 2018-12-20 京セラドキュメントソリューションズ株式会社 画像形成システム、サーバー、及びファームウェア更新制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006243929A (ja) 2005-03-01 2006-09-14 Fujitsu Peripherals Ltd 端末装置管理システム、端末装置管理方法、およびコンピュータプログラム
JP2008217168A (ja) 2007-02-28 2008-09-18 Toshiba Corp バージョン管理装置
JP2011238007A (ja) 2010-05-10 2011-11-24 Canon Inc 配信装置、プログラム配信システム、配信方法及びプログラム
JP2018200536A (ja) 2017-05-26 2018-12-20 京セラドキュメントソリューションズ株式会社 画像形成システム、サーバー、及びファームウェア更新制御方法

Similar Documents

Publication Publication Date Title
JP7402957B2 (ja) Rpa保守支援装置
JP2009230398A (ja) ソフトウェア更新支援装置およびソフトウェア更新支援プログラム
JP5630190B2 (ja) 更新管理装置、更新管理方法および更新管理プログラム
JP2007334580A (ja) 支援装置、プログラム、情報処理システム及び支援方法
JP2002149754A (ja) 作業管理システム及び作業管理方法
JP2008204333A (ja) 仕様の追跡可能性を根拠とするプロジェクト管理システム及び仕様変更管理方法のプログラム
JPWO2014132390A1 (ja) プログラマブル表示器、プログラマブルコントローラシステム、プログラム
JP7415091B1 (ja) プログラム、プログラム管理装置、プログラム管理システム、およびプログラム管理方法
JP6169306B2 (ja) 制御システム及びプログラマブルロジックコントローラ
JP2008226005A (ja) 制御ソフトウェア部品の配布管理システム
JP2009266149A (ja) ジョブ管理プログラム及びジョブ管理装置
JP4889593B2 (ja) 構成管理システム
JP7023807B2 (ja) 管理システム、情報処理装置、設定管理方法、およびプログラム
JP2018180722A (ja) データ管理システム
WO2021044654A1 (ja) 情報処理システム、プログラマブル表示器および情報処理装置
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP2005092544A (ja) ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
JP7360086B2 (ja) 遠隔操作システム、管理クライアントおよび管理クライアントプログラム
JP5760618B2 (ja) 管理装置および管理方法
JP2000215038A (ja) 情報管理装置および記録媒体
JP2009169628A (ja) 監視制御システムの構築装置、構築方法およびプログラム
JP6626327B2 (ja) ガントチャート生成プログラム、ガントチャート生成装置、および、ガントチャート生成方法
JPWO2019167246A1 (ja) データ管理システム、データ管理方法およびデータ管理プログラム
CN113661456B (zh) 数据创建装置、数据转发方法及计算机可读取的记录介质
JPWO2019244327A1 (ja) 管理装置、管理方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230824

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230824

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: 20231205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231228

R150 Certificate of patent or registration of utility model

Ref document number: 7415091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150