JP2022188197A - プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム - Google Patents
プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム Download PDFInfo
- Publication number
- JP2022188197A JP2022188197A JP2022160782A JP2022160782A JP2022188197A JP 2022188197 A JP2022188197 A JP 2022188197A JP 2022160782 A JP2022160782 A JP 2022160782A JP 2022160782 A JP2022160782 A JP 2022160782A JP 2022188197 A JP2022188197 A JP 2022188197A
- Authority
- JP
- Japan
- Prior art keywords
- program
- version
- programmable logic
- logic controller
- unit
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 claims description 74
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 101100408455 Arabidopsis thaliana PLC7 gene Proteins 0.000 description 4
- 238000013024 troubleshooting Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
【課題】プログラマブルロジックコントローラに保存されるプログラムの変化点を容易に管理する。【解決手段】PLC10は、PLC10で実行されるプログラムを保存するプログラム記憶部120と、プログラム記憶部120に保存されたプログラムを更新する更新部110と、プログラム記憶部120に保存されたプログラムのバージョン管理を行うバージョン管理部140と、を備える。バージョン管理部140は、更新部110によりプログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、プログラム記憶部120に保存されたプログラムのバージョン管理を行う。【選択図】図1
Description
本開示は、プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラムに関する。
プログラマブルロジックコントローラ(Programmable Logic Controller。以下PLCともいう)に関するトラブルが生じたときに、PLCが記録したログとPLCが実行していたプログラムとを分析してトラブルシューティングをすることがある。
上記の事情に関連する技術として、特許文献1には、PLCの運用中に特定の事象が発生したときに、現在PLCにて実行されているプログラムと、プログラムを実行して得られるデータとをともに保存するPLCが開示されている。
一方、トラブルシューティングのためには、PLCに保存されるプログラムの変化点の特定が重要となる場合がある。例えば、プログラムに存在するバグが原因でトラブルが生じる場合を考える。この場合、バグを特定するためには、バグが混入したときのプログラムの変化点を特定する必要がある。
しかし、特許文献1に記載の技術では、特定の事象が発生するより前にプログラムにどのような変更があったかが確認できないため、プログラムの変化点を特定することができない。
この問題に対する策の1つとして、PLCで実行されるプログラムを開発するための端末装置に一般的なバージョン管理システムを導入し、プログラムの開発に係るプロジェクトファイルを当該バージョン管理システムにてバージョン管理することが考えられる。
しかし、端末装置上でのプログラム開発においては、メタデータの設定、テストデータの追加等、PLCには反映されない変更がバージョン管理システム上にて多数行われるため、PLCに保存されるプログラムの変化点と、バージョン管理システム上におけるプロジェクトファイルの変化点とは、1対1に対応しない。また、1つのPLCに対して端末装置が複数存在する場合、端末装置ごとにプロジェクトファイルの変化点が存在し得る。そのため、バージョン管理システム上におけるプロジェクトファイルの変化点に基づいて、PLCに保存されているプログラムの変化点を特定するのは簡便ではない。
本開示の目的は、上記の事情に鑑み、プログラマブルロジックコントローラに保存されるプログラムの変化点を容易に管理できるプログラマブルロジックコントローラ等を提供することにある。
上記の目的を達成するため、本開示に係るプログラマブルロジックコントローラは、
プログラマブルロジックコントローラであって、
前記プログラマブルロジックコントローラで実行されるプログラムを保存するプログラム記憶手段と、
前記プログラム記憶手段に保存されたプログラムを更新する更新手段と、
前記プログラム記憶手段に保存されたプログラムのバージョン管理を行うバージョン管理手段と、
を備え、
前記バージョン管理手段は、前記更新手段により前記プログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、前記プログラム記憶手段に保存されたプログラムのバージョン管理を行う。
プログラマブルロジックコントローラであって、
前記プログラマブルロジックコントローラで実行されるプログラムを保存するプログラム記憶手段と、
前記プログラム記憶手段に保存されたプログラムを更新する更新手段と、
前記プログラム記憶手段に保存されたプログラムのバージョン管理を行うバージョン管理手段と、
を備え、
前記バージョン管理手段は、前記更新手段により前記プログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、前記プログラム記憶手段に保存されたプログラムのバージョン管理を行う。
本開示によれば、プログラマブルロジックコントローラに保存されるプログラムの変化点を容易に管理できる。
以下、図面を参照しながら、本開示の実施の形態に係るプログラム管理システムを説明する。各図面においては、同一又は同等の部分に同一の符号を付す。
(実施の形態1)
図1を参照しながら、実施の形態1に係るプログラム管理システム1を説明する。プログラム管理システム1は、PLC10と端末装置20とを備える。PLC10と端末装置20とは通信可能に接続されている。プログラム管理システム1によれば、プログラマブルロジックコントローラであるPLC10にて実行されるプログラムの変化点を簡便に管理することができる。プログラム管理システム1は、本開示に係るプログラム管理システムの一例である。
図1を参照しながら、実施の形態1に係るプログラム管理システム1を説明する。プログラム管理システム1は、PLC10と端末装置20とを備える。PLC10と端末装置20とは通信可能に接続されている。プログラム管理システム1によれば、プログラマブルロジックコントローラであるPLC10にて実行されるプログラムの変化点を簡便に管理することができる。プログラム管理システム1は、本開示に係るプログラム管理システムの一例である。
PLC10は、端末装置20にて開発されたプログラムを実行することができるプログラマブルロジックコントローラ(PLC)である。また、PLC10は、PLC10自身にて実行されるプログラムをPLC10自身にてバージョン管理することができる。また、PLC10は、PLC10自身の動作に関するログを記録する。PLC10は、例えば生産現場に設置され、同様に生産現場に設置された図示しないセンサ、アクチュエータ等のフィールド機器を制御する。PLC10の機能的構成については後述する。PLC10は、本開示に係るプログラマブルロジックコントローラの一例である。
なお、PLCの分野においては、PLCにプログラムを書き込む際に、実行ファイルとしてのプログラムのみでなく、実行ファイルとしてのプログラムの元となった可読プログラムも書き込むことが行われている。可読プログラムとは、例えばラダー図にて表現されたプログラムである。そのため、本実施の形態において「プログラム」は実行ファイルのみならず可読プログラムも含み得るものとする。
端末装置20は、PLC10にて実行されるプログラムを開発するための端末装置である。端末装置20は、例えばPLC10の製造者が提供するエンジニアリングツールのプログラムがインストールされたパーソナルコンピュータである。端末装置20は、PLC10にて実行されるプログラムをPLC10に送信することにより、PLC10にて実行されるプログラムを更新することができる。また、端末装置20は、PLC10にて記録されたログと、PLC10にて実行されるプログラムとを関連付けて表示することができる。端末装置20の機能的構成については後述する。端末装置20は、本開示に係る端末装置の一例である。
次に、図1を参照しながら、PLC10の機能的構成を説明する。PLC10は、通信部100と更新部110とプログラム記憶部120とプログラム実行部130とバージョン管理部140とデータベース記憶部150とロギング部160とログ記憶部170とを備える。また、PLC10は、図1に示す機能的構成のほか、プログラマブルロジックコントローラとしての一般的な機能的構成を備える。
通信部100は、端末装置20と通信する。通信部100は、例えばネットワークインタフェースにより実現される。通信部100は特に、端末装置20から、PLC10にて実行されるプログラムを受信する。
更新部110は、端末装置20が送信し通信部100が受信したプログラムにより、後述のプログラム記憶部120に保存されたプログラムを更新する。更新部110は、本開示に係る更新手段の一例である。
プログラム記憶部120は、後述のプログラム実行部130にて実行されるプログラムを保存する。プログラム記憶部120に保存されるプログラムが、PLC10にて実行されるプログラムである。プログラム記憶部120は、本開示に係るプログラム記憶手段の一例である。
プログラム実行部130は、プログラム記憶部120に保存されたプログラムを読み出して実行する。プログラム実行部130がプログラム記憶部120に保存されたプログラムを読み出して実行することにより、例えば図示しないフィールド機器を制御することができる。
バージョン管理部140は、プログラム記憶部120に保存されたプログラムのバージョン管理を行う。より詳細には、バージョン管理部140は、更新部110による更新により新たにプログラム記憶部120に保存されたプログラムをバージョン管理の対象とする。そのため、プログラム記憶部120に保存されたプログラムが更新部110により更新されるたびにバージョン管理の対象となるプログラムが追加されることとなる。バージョン管理部140は、本開示に係るバージョン管理手段の一例である。
バージョン管理について具体的に説明する。まず、バージョン管理部140は、更新部110による更新があったときに、新たにプログラム記憶部120に保存されたプログラムについてバージョン番号を採番する。バージョン番号は、例えば1から順に採番されるものであってもよいし、UUID(Universally Unique Identifier)バージョン4のようにランダムに採番されるものであってもよいし、プログラムをバイナリデータとみなしたときに得られるハッシュ値であってもよい。バージョン番号により、バージョン管理の対象となるプログラムを個別に識別することができる。バージョン番号は、本開示に係る識別情報の一例である。
バージョン番号の採番ののちに、バージョン管理部140は、新たにプログラム記憶部120に保存されたプログラムを、バージョン番号及び更新時刻と対応付けて後述のバージョン管理データベースVDBに登録する。この登録により、新たにプログラム記憶部120に保存されたプログラムがバージョン管理部140によるバージョン管理の対象となる。
バージョン管理部140は、例えば以下のいずれかのタイミングでバージョン管理を行う。
(1)更新部110から、プログラム記憶部120に保存されたプログラムを更新した旨の通知があったとき。
(2)バージョン管理部140が定期的にプログラム記憶部120をチェックし、プログラム記憶部120に保存されたプログラムが更新されたことを検知できたとき。
(3)端末装置20から更新通知があったとき。
以下、それぞれの場合について具体的に説明する。
(1)更新部110から、プログラム記憶部120に保存されたプログラムを更新した旨の通知があったとき。
(2)バージョン管理部140が定期的にプログラム記憶部120をチェックし、プログラム記憶部120に保存されたプログラムが更新されたことを検知できたとき。
(3)端末装置20から更新通知があったとき。
以下、それぞれの場合について具体的に説明する。
(1)の場合、更新部110は、プログラム記憶部120に保存されたプログラムを更新したときに、プログラムを更新した旨をバージョン管理部140に通知する機能を備える。バージョン管理部140は、更新部110から通知を受けたタイミングでバージョン管理を行う。
(2)の場合、更新部110は、プログラムの更新の際に、プログラムの更新時刻をプログラム記憶部120に保存する機能を備える。バージョン管理部140は、プログラム記憶部120に保存された更新時刻を定期的にチェックし、更新時刻が変更されたことを検知したときに、バージョン管理を行う。なお、NTFS(NT File System)、ext4(fourth extended file system)などの一般的なファイルシステムがプログラム記憶部120上に構築されている場合、更新部110がプログラムを更新したときに更新時刻も必然的に更新されることとなる。
あるいは、更新部110は、プログラムの更新の際に、プログラムをバイナリデータとみなしたときに得られるハッシュ値をプログラム記憶部120に保存する機能を備える。バージョン管理部140は、プログラム記憶部120に保存されたハッシュ値を定期的にチェックし、ハッシュ値が変更されたことを検知したときに、バージョン管理を行う。
(3)の場合、端末装置20は、プログラムをPLC10に送信する際に、プログラムの更新を示す更新通知をPLC10に送信する機能を備える。バージョン管理部140は、通信部100が受信する信号を監視する。バージョン管理部140は、通信部100が端末装置20から更新通知を受信したことを検知したときに、バージョン管理を行う。
データベース記憶部150は、バージョン管理データベースVDBを保存する。バージョン管理データベースVDBは、バージョン管理部140によりバージョン管理されるプログラムに関する情報を格納する。バージョン管理データベースVDBは、例えば図2に示すようなテーブルにて表される。図2に示す例では、バージョン番号は古い順に001から連続に採番されている。なお、「プログラム」の列は、プログラムそのものを示す。つまり、図2においては、プログラムがバージョン番号及び更新時刻と対応付けてバージョン管理データベースVDBに登録されている。なお、プログラムそのものがバージョン管理データベースVDBに登録される代わりに、プログラムは一般的なファイルシステムの管理下に保存され、当該プログラムのファイル名がバージョン番号及び更新時刻と対応付けられてバージョン管理データベースVDBに登録されるものであってもよい。
また、バージョン管理部140は、後述のロギング部160に、現在プログラム実行部130にて実行されているプログラムのバージョン番号を示す信号を出力する。具体的には、バージョン管理部140は、バージョン管理の対象となっているプログラムのうち最新のプログラムに対応するバージョン番号を示す信号を、ロギング部160に出力する。バージョン管理の対象となっているプログラムのうち最新のプログラムが、現在プログラム記憶部120に保存されプログラム実行部130により実行されているプログラムだからである。
再び図1を参照する。ロギング部160は、PLC10の動作に関する動作ログを後述のログ記憶部170に記録する。より詳細には、ロギング部160は、動作ログを現在時刻及びバージョン番号とともにロギングデータとしてログ記憶部170に記録する。ここで、バージョン番号は、現在プログラム実行部130にて実行されているプログラムのバージョン番号である。また、「現在時刻」はロギングデータの記録が行われた「記録時刻」となる。ロギング部160は、現在プログラム実行部130にて実行されているプログラムのバージョン番号を示す信号をバージョン管理部140から受信することにより、現在プログラム実行部130にて実行されているプログラムのバージョン番号を取得する。ロギング部160は、本開示に係るロギング手段の一例である。
ログ記憶部170は、ロギング部160にて記録されたロギングデータを保存する。ロギングデータは、例えば図3に示すテーブルにて表される。図3に示す例において、例えば上から2行目のログが異常を示すものでありトラブルシューティングが必要となる場合、バージョン番号が002以前(002を含む)のプログラムに異常の原因が含まれることとなるので、バージョン番号が002以前のプログラムのみを分析対象とすればよい。ログ記憶部170は、本開示に係るログ記憶手段の一例である。
次に、図4を参照しながら、端末装置20の機能的構成を説明する。端末装置20は、通信部200とログ読み出し部210とプログラム読み出し部220と表示制御部230と入力部240と表示部250とを備える。端末装置20は、図4に示す機能的構成のほか、ユーザがPLC10にて実行されるプログラムを開発するために必要な一般的な機能的構成を備える。
通信部200は、PLC10と通信する。通信部200は、例えばネットワークインタフェースにより実現される。通信部200は特に、PLC10からロギングデータ及びプログラムを受信する。
ログ読み出し部210は、通信部200を介してPLC10のログ記憶部170にアクセスし、PLC10からログ記憶部170に保存されたロギングデータを読み出す。ログ読み出し部210は、例えば後述の入力部240を介したユーザの指示に基づいてロギングデータを読み出す。ログ読み出し部210は、本開示に係るログ読み出し手段の一例である。
プログラム読み出し部220は、通信部200を介してPLC10のデータベース記憶部150にアクセスし、PLC10からバージョン管理データベースVDBに登録されたプログラムを読み出す。より詳細には、プログラム読み出し部220は、ログ読み出し部210により読み出されたロギングデータに含まれるバージョン番号に対応するプログラムを、バージョン管理データベースVDBから読み出す。これにより、プログラム読み出し部220は、ロギングデータの記録時にPLC10にて実行されていたプログラム(つまりロギングデータの記録時にPLC10のプログラム記憶部120に保存されていたプログラム)のみを読み出すことができる。プログラム読み出し部220は、本開示に係るプログラム読み出し手段の一例である。
表示制御部230は、後述の表示部250を制御して、ログ読み出し部210により読み出されたロギングデータと、プログラム読み出し部220により読み出されたプログラムとを表示部250に表示させる。これにより、ユーザは、ロギングデータの詳細及びロギングデータに対応するプログラムの詳細を確認することができる。また、表示制御部230は、後述の入力部240を介したユーザの指示に基づいて表示部250を制御する。例えば、表示制御部230は、ユーザが表示対象となるロギングデータを切り替える操作をしたときに、表示部250に表示するロギングデータ及び対応するプログラムの表示を切り替える。表示制御部230は、本開示に係る表示制御手段の一例である。
入力部240は、ユーザからの入力を受け付けて、ユーザの入力を示す信号をログ読み出し部210及び表示制御部230に出力する。入力部240は、例えばキーボード、マウス、タッチパネルなどの入力装置である。
表示部250は、表示制御部230の制御に基づいてロギングデータ及びプログラムを表示する。表示部250は、例えば液晶ディスプレイである。表示部250は、本開示に係る表示手段の一例である。
次に、PLC10及び端末装置20のハードウェア構成の一例について、図5を参照しながら説明する。図5に示す構成は、PLC10においては、例えばプログラマブルロジックコントローラが備えるコンピュータにより実現され、端末装置20においては、例えばパーソナルコンピュータ、スマートフォン、タブレット端末などのコンピュータにより実現される。
PLC10及び端末装置20は、バス1000を介して互いに接続された、プロセッサ1001と、メモリ1002と、インタフェース1003と、二次記憶装置1004と、を備える。
プロセッサ1001は、例えばCPU(Central Processing Unit:中央演算装置)である。プロセッサ1001が、二次記憶装置1004に記憶された動作プログラムをメモリ1002に読み込んで実行することにより、PLC10及び端末装置20の各機能が実現される。
メモリ1002は、例えば、RAM(Random Access Memory)により構成される主記憶装置である。メモリ1002は、プロセッサ1001が二次記憶装置1004から読み込んだ動作プログラムを記憶する。また、メモリ1002は、プロセッサ1001が動作プログラムを実行する際のワークメモリとして機能する。
インタフェース1003は、例えばシリアルポート、USB(Universal Serial Bus)ポート、ネットワークインタフェースなどのI/O(Input/Output)インタフェースである。インタフェース1003により、通信部100及び通信部200の機能が実現される。
二次記憶装置1004は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。二次記憶装置1004は、プロセッサ1001が実行する動作プログラムを記憶する。また、二次記憶装置1004により、プログラム記憶部120、データベース記憶部150及びログ記憶部170の機能が実現される。
次に、図6を参照しながら、PLC10によるバージョン管理の動作の一例を説明する。図6に示す動作は、例えばPLC10の起動時に開始される。
PLC10の更新部110は、端末装置20からPLC10の通信部100に新たなプログラムが送信されるのを待ち受ける(ステップS101)。
端末装置20から新たなプログラムが送信されたとき、更新部110は、通信部100が受信した新たなプログラムをプログラム記憶部120に書き込むことによりプログラム記憶部120に保存されたプログラムを更新する(ステップS102)。
PLC10のバージョン管理部140は、更新部110により更新された新たなプログラムについてバージョン番号を採番する(ステップS103)。
バージョン管理部140は、新たなプログラムを、バージョン番号及び更新時刻と対応付けてデータベース記憶部150のバージョン管理データベースVDBに登録することにより、新たなプログラムをバージョン管理の対象とする(ステップS104)。そしてPLC10は、ステップS101からの動作を繰り返す。
次に、図7を参照しながら、PLC10によるロギングの動作の一例を説明する。図7に示す動作は、例えばPLC10の起動時に開始される。
PLC10のロギング部160は、現在プログラム実行部130にて実行されているプログラムのバージョン番号を取得する(ステップS201)。
ロギング部160は、PLC10の動作ログを、時刻及びステップS201にて取得したバージョン番号とともにロギングデータとしてログ記憶部170に記録する(ステップS202)。そしてロギング部160は、ステップS201からの動作を繰り返す。
以上、実施の形態1に係るプログラム管理システム1を説明した。プログラム管理システム1においては、PLC10にて実行されるプログラムのバージョン管理をPLC10自身が行う。バージョン管理の対象となるプログラムの追加は、PLC10にて実行されるプログラムが更新されたときに行われるため、PLC10にて実行されるプログラムの変化点と、バージョン管理の対象となるプログラムとは1対1に対応する。そのため、PLC10のユーザは、PLC10にて実行されるプログラムの変化点を簡便に管理できる。
(実施の形態1の変形例)
実施の形態1において、PLC10のロギング部160は、図3にも示すとおり、ログを時刻及びバージョン番号とともに記録した。しかし、ロギング部160は、バージョン番号を記録せず、ログと時刻のみを記録するものであってもよい。ロギングデータがバージョン番号を含まないものであっても、図2にて示すとおり更新時刻とバージョンとが対応付けられていることから、ログの記録時刻においてどのバージョンのプログラムが実行されていたかは特定可能だからである。
実施の形態1において、PLC10のロギング部160は、図3にも示すとおり、ログを時刻及びバージョン番号とともに記録した。しかし、ロギング部160は、バージョン番号を記録せず、ログと時刻のみを記録するものであってもよい。ロギングデータがバージョン番号を含まないものであっても、図2にて示すとおり更新時刻とバージョンとが対応付けられていることから、ログの記録時刻においてどのバージョンのプログラムが実行されていたかは特定可能だからである。
(実施の形態2)
実施の形態1において、PLC10のバージョン管理部140は、現在プログラム記憶部120に保存されている最新のプログラムもバージョン管理の対象としている。しかし、現在プログラム記憶部120に保存されている最新のプログラムは明らかにバージョン管理対象となっているプログラムのうち最新のものであるため、最新のプログラムについては必ずしもバージョン管理の対象としなくてもよい。この場合、プログラムの更新があったときに、更新直前のプログラムをバージョン管理の対象とする必要がある。
実施の形態1において、PLC10のバージョン管理部140は、現在プログラム記憶部120に保存されている最新のプログラムもバージョン管理の対象としている。しかし、現在プログラム記憶部120に保存されている最新のプログラムは明らかにバージョン管理対象となっているプログラムのうち最新のものであるため、最新のプログラムについては必ずしもバージョン管理の対象としなくてもよい。この場合、プログラムの更新があったときに、更新直前のプログラムをバージョン管理の対象とする必要がある。
実施の形態2に係るプログラム管理システム1のPLC10は、上記のように、最新のプログラムはバージョン管理の対象としないものである。機能的構成については図1に示す実施の形態1と同様であるため説明を省略し、動作の違いのみを説明する。
以下、図8を参照しながら、PLC10によるバージョン管理の動作のうち図6に示す実施の形態1と異なる点を説明する。
PLC10の更新部110は、実施の形態1の場合と同様に、新たなプログラムを待ち受ける(ステップS301)。この動作は、図6に示すステップS101に対応する。
新たなプログラムが送信されたとき、PLC10のバージョン管理部140は、プログラムが更新されるより前に、現在プログラム記憶部120に保存されているプログラムについてバージョン番号を採番する(ステップS302)。この動作は、図6に示すステップS103に対応する。
バージョン管理部140は、現在プログラム記憶部120に保存されているプログラムを、ステップS302にて採番したバージョン番号及び更新時刻と対応付けてバージョン管理の対象とする(ステップS303)。この動作は、図6に示すステップS104に対応する。
更新部110は、新たなプログラムをプログラム記憶部120に書き込み、プログラムを更新する(ステップS304)。この動作は、図6に示すステップS102に対応する。
そしてPLC10は、ステップS301からの動作を繰り返す。
以上の動作により、実施の形態2に係るPLC10は、更新による新たなプログラムをバージョン管理の対象とせずに、更新される直前のプログラムをバージョン管理の対象とすることができる。
なお、実施の形態2においては、上述の実施の形態1の変形例と同様に、ロギングデータはバージョン番号を含まないものとなる。実施の形態2においては、現在プログラム記憶部120に保存されているプログラムにはバージョン番号が採番されていないからである。
(実施の形態3)
図9を参照しながら、実施の形態3に係るプログラム管理システム1を説明する。実施の形態3に係るプログラム管理システム1は、図1に示す実施の形態1と比べて、PLC10と通信可能に接続されているサーバ30をさらに備える点と、PLC10がデータ送信部180を備える点とが実施の形態1と異なる。
図9を参照しながら、実施の形態3に係るプログラム管理システム1を説明する。実施の形態3に係るプログラム管理システム1は、図1に示す実施の形態1と比べて、PLC10と通信可能に接続されているサーバ30をさらに備える点と、PLC10がデータ送信部180を備える点とが実施の形態1と異なる。
サーバ30は、例えば一般的なファイルサーバである。サーバ30は、PLC10が送信するロギングデータ及びロギングデータに対応するプログラムを保存する。サーバ30は、本開示に係るサーバの一例である。ロギングデータに対応するプログラムとは、ロギングデータの記録時にプログラム記憶部120に保存されていたプログラムである。
PLC10のデータ送信部180は、ログ記憶部170に記録されたロギングデータを、ロギングデータに対応するプログラムとともに、通信部100を介してサーバに送信する。データ送信部180は、データベース記憶部150のバージョン管理データベースVDBを参照し、バージョン管理部140によるバージョン管理の対象となるプログラムのうちロギングデータの記録時にプログラム記憶部120に保存されていたプログラムを特定する。データ送信部180は、本開示に係るロギングデータ送信手段の一例である。
実施の形態3に係るプログラム管理システム1によれば、PLC10がロギングデータを、ロギングデータに対応するプログラムとともにサーバ30に送信する。そのため、サーバ30にはロギングデータと、ロギングデータに対応するプログラムとが蓄積されるので、サーバ30に蓄積されたデータをトラブルシューティングに活かすことができる。
(実施の形態3の変形例)
実施の形態3においては、PLC10のデータ送信部180が、ロギングデータと、ロギングデータに対応するプログラムとをサーバ30に送信するものとした。これに代えて、データ送信部180は、バージョン管理の対象となる新たなプログラムが追加されたときに、当該プログラムをサーバ30に送信してもよい。これにより、PLC10にてバージョン管理されているプログラムのバックアップをサーバ30に保存することができる。この場合において、サーバ30は、一般的なファイルサーバであってもよいし、一般的なバージョン管理システムが動作するサーバであってもよい。サーバ30が一般的なバージョン管理システムが動作するサーバであるとき、PLC10は、当該バージョン管理システムのクライアントとして動作することとなる。この場合、データ送信部180は、本開示に係るプログラム送信手段の一例である。
実施の形態3においては、PLC10のデータ送信部180が、ロギングデータと、ロギングデータに対応するプログラムとをサーバ30に送信するものとした。これに代えて、データ送信部180は、バージョン管理の対象となる新たなプログラムが追加されたときに、当該プログラムをサーバ30に送信してもよい。これにより、PLC10にてバージョン管理されているプログラムのバックアップをサーバ30に保存することができる。この場合において、サーバ30は、一般的なファイルサーバであってもよいし、一般的なバージョン管理システムが動作するサーバであってもよい。サーバ30が一般的なバージョン管理システムが動作するサーバであるとき、PLC10は、当該バージョン管理システムのクライアントとして動作することとなる。この場合、データ送信部180は、本開示に係るプログラム送信手段の一例である。
(その他の変形例)
上記の各実施の形態においては、プログラムはバージョン番号と更新時刻とを対応付けてバージョン管理されるものとした。しかし、バージョン番号と更新時刻のみならず、当該プログラムの変更元となる「親バージョン」をさらに対応付けてもよい。
上記の各実施の形態においては、プログラムはバージョン番号と更新時刻とを対応付けてバージョン管理されるものとした。しかし、バージョン番号と更新時刻のみならず、当該プログラムの変更元となる「親バージョン」をさらに対応付けてもよい。
例えば、図10に示すように、バージョン管理データベースは、各バージョンにおいて「親バージョン」がどのバージョンかを示す情報を含んでもよい。図10に示す例では、バージョン001のプログラムは最も古いプログラムであるため親バージョンがなく、バージョン002のプログラムの親バージョンはバージョン001である。また、バージョン005のプログラムの親バージョンはバージョン004ではなくバージョン001であることから、バージョン001から2つの系統に分岐していることがわかる。
このように、親バージョンがどれかを示すことにより、どのように変更履歴が分岐しているかがわかるため、より詳細に変化点を管理することができる。
ただし、このように親バージョンを含めて管理するには、端末装置20にてプログラムを修正する際に、親バージョンがどのバージョンであるかを特定した上で、端末装置20がPLC10にプログラムを送信する際に、親バージョンを示す情報を併せて送信する必要がある。プログラムはあくまで端末装置20にて開発されることから、端末装置20上でどのバージョンのプログラムを元に新たなプログラムが開発されたかを特定する必要があるからである。
そのため、端末装置20のユーザは、まずPLC10のバージョン管理データベースVDBにアクセスし、変更元となるプログラムと当該変更元プログラムのバージョン番号を取得する必要がある。
図5に示すハードウェア構成においては、PLC10及び端末装置20が二次記憶装置1004を備えている。しかし、これに限らず、二次記憶装置1004をPLC10及び端末装置20の外部に設け、インタフェース1003を介してPLC10及び端末装置20と二次記憶装置1004とが接続される形態としてもよい。この形態においては、USBフラッシュドライブ、メモリカードなどのリムーバブルメディアも二次記憶装置1004として使用可能である。
また、図5に示すハードウェア構成に代えて、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)、FPGA(Field Programmable Gate Array)などを用いた専用回路によりPLC10及び端末装置20を構成してもよい。また、図5に示すハードウェア構成において、PLC10及び端末装置20の機能の一部を、例えばインタフェース1003に接続された専用回路により実現してもよい。
PLC10及び端末装置20で用いられるプログラムは、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、USBフラッシュドライブ、メモリカード、HDD等のコンピュータ読み取り可能な記録媒体に格納して配布することが可能である。そして、かかるプログラムを特定の又は汎用のコンピュータにインストールすることによって、当該コンピュータをPLC10及び端末装置20として機能させることが可能である。
また、上述のプログラムをインターネット上の他のサーバが有する記憶装置に格納しておき、当該サーバから上述のプログラムがダウンロードされるようにしてもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
1 プログラム管理システム、10 PLC、20 端末装置、30 サーバ、100 通信部、110 更新部、120 プログラム記憶部、130 プログラム実行部、140 バージョン管理部、150 データベース記憶部、160 ロギング部、170 ログ記憶部、180 データ送信部、200 通信部、210 ログ読み出し部、220 プログラム読み出し部、230 表示制御部、240 入力部、250 表示部、1000 バス、1001 プロセッサ、1002 メモリ、1003 インタフェース、1004 二次記憶装置、VDB バージョン管理データベース。
Claims (11)
- プログラマブルロジックコントローラであって、
前記プログラマブルロジックコントローラで実行されるプログラムを保存するプログラム記憶手段と、
前記プログラム記憶手段に保存されたプログラムを更新する更新手段と、
前記プログラム記憶手段に保存されたプログラムのバージョン管理を行うバージョン管理手段と、
を備え、
前記バージョン管理手段は、前記更新手段により前記プログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、前記プログラム記憶手段に保存されたプログラムのバージョン管理を行う、
プログラマブルロジックコントローラ。 - 前記バージョン管理手段は、前記更新手段による更新が起きたとき、更新により新たに前記プログラム記憶手段に保存されたプログラムをバージョン管理の対象とする、
請求項1に記載のプログラマブルロジックコントローラ。 - 前記バージョン管理手段は、前記更新手段による更新が起きたとき、更新により新たに前記プログラム記憶手段に保存されたプログラムをバージョン管理の対象とせずに、更新される直前に前記プログラム記憶手段に保存されていた前記プログラムをバージョン管理の対象とする、
請求項1に記載のプログラマブルロジックコントローラ。 - ログ記憶手段と、
前記プログラマブルロジックコントローラの動作に関するログを時刻とともにロギングデータとして前記ログ記憶手段に記録するロギング手段と、
をさらに備える請求項1から3のいずれか1項に記載のプログラマブルロジックコントローラ。 - 前記ロギング手段は、前記識別情報とともに前記ロギングデータを記録する、
請求項4に記載のプログラマブルロジックコントローラ。 - 前記ログ記憶手段に記録されたロギングデータをサーバに送信するロギングデータ送信手段をさらに備え、
前記ロギングデータ送信手段は、前記バージョン管理手段による管理の対象となるプログラムのうち前記ロギングデータの記録時に前記プログラム記憶手段に保存されていたプログラムをあわせて送信する、
請求項4又は5に記載のプログラマブルロジックコントローラ。 - 前記バージョン管理手段が新たなプログラムをバージョン管理の対象としたときに、前記新たなプログラムをサーバに送信するプログラム送信手段をさらに備える、
請求項1から5のいずれか1項に記載のプログラマブルロジックコントローラ。 - 請求項4から6のいずれか1項に記載のプログラマブルロジックコントローラから前記ロギングデータを読み出すログ読み出し手段と、
前記ログ読み出し手段により読み出された前記ロギングデータに基づいて、前記バージョン管理手段による管理の対象となるプログラムのうち前記ロギングデータの記録時に前記プログラム記憶手段に保存されていたプログラムを前記プログラマブルロジックコントローラから読み出すプログラム読み出し手段と、
前記ログ読み出し手段により読み出された前記ロギングデータと、前記プログラム読み出し手段により読み出された前記プログラムとを表示手段に表示させる表示制御手段と、
を備える端末装置。 - 請求項4から6のいずれか1項に記載のプログラマブルロジックコントローラと、
請求項8に記載の端末装置と、
を備えるプログラム管理システム。 - プログラマブルロジックコントローラにて実行されるプログラムを管理するプログラム管理方法であって、
前記プログラマブルロジックコントローラで実行されるプログラムを保存するプログラム記憶手段に保存されたプログラムを更新し、
前記プログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、前記プログラム記憶手段に保存されたプログラムのバージョン管理を行う、
プログラム管理方法。 - プログラマブルロジックコントローラが備えるコンピュータを、
前記プログラマブルロジックコントローラで実行されるプログラムを保存するプログラム記憶手段、
前記プログラム記憶手段に保存されたプログラムを更新する更新手段、
前記プログラム記憶手段に保存されたプログラムのバージョン管理を行うバージョン管理手段、
として機能させ、
前記バージョン管理手段は、前記更新手段により前記プログラムが更新されたときの時刻と、バージョン管理の対象となるプログラムを個別に識別する識別情報とに基づいて、前記プログラム記憶手段に保存されたプログラムのバージョン管理を行う、
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022160782A JP2022188197A (ja) | 2021-06-08 | 2022-10-05 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/021779 WO2022259374A1 (ja) | 2021-06-08 | 2021-06-08 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
JP2022511271A JP7155454B1 (ja) | 2021-06-08 | 2021-06-08 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
JP2022160782A JP2022188197A (ja) | 2021-06-08 | 2022-10-05 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022511271A Division JP7155454B1 (ja) | 2021-06-08 | 2021-06-08 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022188197A true JP2022188197A (ja) | 2022-12-20 |
Family
ID=83658131
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022511271A Active JP7155454B1 (ja) | 2021-06-08 | 2021-06-08 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
JP2022160782A Pending JP2022188197A (ja) | 2021-06-08 | 2022-10-05 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022511271A Active JP7155454B1 (ja) | 2021-06-08 | 2021-06-08 | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
JP (2) | JP7155454B1 (ja) |
CN (1) | CN117337413A (ja) |
WO (1) | WO2022259374A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7462860B1 (ja) | 2023-06-20 | 2024-04-05 | 三菱電機株式会社 | プログラム可能機器、バージョン管理システム、バージョン管理方法及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268485A (ja) * | 2005-03-24 | 2006-10-05 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラ、プログラマブルコントローラ用プログラム作成支援装置及びプログラム作成支援方法 |
JP2013030034A (ja) * | 2011-07-29 | 2013-02-07 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ用プログラミング装置 |
JP6757385B2 (ja) * | 2018-10-23 | 2020-09-16 | 株式会社キーエンス | プログラマブルロジックコントローラおよびメインユニット |
-
2021
- 2021-06-08 JP JP2022511271A patent/JP7155454B1/ja active Active
- 2021-06-08 CN CN202180088462.1A patent/CN117337413A/zh active Pending
- 2021-06-08 WO PCT/JP2021/021779 patent/WO2022259374A1/ja unknown
-
2022
- 2022-10-05 JP JP2022160782A patent/JP2022188197A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022259374A1 (ja) | 2022-12-15 |
JPWO2022259374A1 (ja) | 2022-12-15 |
CN117337413A (zh) | 2024-01-02 |
JP7155454B1 (ja) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639347B2 (en) | Updating a firmware package | |
TW201706836A (zh) | 更新方法、伺服器系統以及非暫態電腦可讀取媒體 | |
US9665469B2 (en) | System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices | |
JP7190834B2 (ja) | 装置およびコンピュータプログラム | |
US10048978B2 (en) | Apparatus and method for identifying a virtual machine having changeable settings | |
US20140032833A1 (en) | Dynamic Disk Space Management In A File System | |
JP6119535B2 (ja) | トレース方法、処理プログラム、および情報処理装置 | |
US11106520B2 (en) | Systems and methods for preventing client application crashes due to operating system updates | |
US20150378773A1 (en) | Communication system, programmable indicator, information processing device, operation control method, information processing method, and program | |
JP2022188197A (ja) | プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム | |
WO2015136621A1 (ja) | コンピュータシステムの管理方法および管理装置 | |
JP2017033079A (ja) | ソフトウェア導入支援プログラム、ソフトウェア導入支援装置およびソフトウェア導入支援方法 | |
JP7204726B2 (ja) | 制御システム、移動体、サーバ、制御方法、更新制御方法、及びプログラム | |
JP7031224B2 (ja) | 情報処理装置及びプログラム | |
JP2009157441A (ja) | 情報処理装置、ファイル再配置方法およびプログラム | |
US11921496B2 (en) | Information processing apparatus, information processing method and computer readable medium | |
CN114026506B (zh) | 可编程显示器及数据管理方法 | |
JP2017004429A (ja) | サーバ運用作業履歴管理装置、システム、方法、およびプログラム | |
JP2016173746A (ja) | 情報処理装置及びその制御方法、プログラム | |
JP6369333B2 (ja) | ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置 | |
JP2015121970A (ja) | 情報処理システム、情報処理装置、及び情報処理方法 | |
JP2019133519A (ja) | 表示制御プログラム、表示制御方法及び表示制御装置 | |
JP6221621B2 (ja) | 検索システム、情報処理装置、及び情報処理方法 | |
JP5861518B2 (ja) | 情報処理システム | |
JP2020004091A (ja) | データ処理装置及びデータ処理プログラム |