JP4865634B2 - プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム - Google Patents

プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム Download PDF

Info

Publication number
JP4865634B2
JP4865634B2 JP2007128550A JP2007128550A JP4865634B2 JP 4865634 B2 JP4865634 B2 JP 4865634B2 JP 2007128550 A JP2007128550 A JP 2007128550A JP 2007128550 A JP2007128550 A JP 2007128550A JP 4865634 B2 JP4865634 B2 JP 4865634B2
Authority
JP
Japan
Prior art keywords
program
identification data
plc
programmable controller
editing
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
JP2007128550A
Other languages
English (en)
Other versions
JP2008282362A (ja
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.)
Keyence Corp
Original Assignee
Keyence 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 Keyence Corp filed Critical Keyence Corp
Priority to JP2007128550A priority Critical patent/JP4865634B2/ja
Publication of JP2008282362A publication Critical patent/JP2008282362A/ja
Application granted granted Critical
Publication of JP4865634B2 publication Critical patent/JP4865634B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、プログラム編集支援装置に係り、更に詳しくは、プログラマブルコントローラ用のプログラムを編集し、プログラマブルコントローラへ書き込むためのプログラム編集支援装置、当該装置をコンピュータ上で実現するためのコンピュータソフトウエア、当該装置を用いて実現される方法、並びに、当該装置を含むPLCシステムの改良に関する。
プログラマブルコントローラ(適宜、PLCと略す)は、FA(Factory Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムと呼ばれる専用プログラムに従って動作する。このため、PLC内のプログラムを書き換えることによって、所望のシーケンス制御装置を実現することができる。PLC用のプログラムは、通常、パーソナルコンピュータを利用したプログラム編集支援装置を用いてユーザが作成する。プログラム編集支援装置を用いて作成されたプログラムのソースコードは、当該プログラム編集支援装置において実行形式のオブジェクトコードへコンパイルされた後、通信ケーブルを介してPLCへ転送(アップロード)される。
PLC用のプログラムは、通常、デバッグや改良のためのバージョンアップが繰り返し行われている。つまり、プログラム編集支援装置上において繰り返し変更され、バージョンアップされた新たなプログラムとしてPLCへ繰り返しアップロードされる。しかしながら、PLCへ古いバージョンのプログラムをアップロードするような場合もあり、プログラム編集支援装置とPLCとの間でプログラムのバージョンが一致せず、どちらが最新バージョンであるのかがユーザ自身にも分からなくなってしまう場合があった。このため、ユーザは適切なバージョン管理を行っておく必要があり、この様なバージョン管理のためのユーザ負荷を軽減するために、従来から様々な提案が行われている(例えば、特許文献1〜特許文献4)。
特許文献1には、PLC用のプログラムに関するものではないが、プログラムのバージョン管理を行うバージョン管理装置が記載されている。このバージョン情報は、ファイル名やバージョン数からなり、プログラムのインストール先である外部記憶装置内に格納されており、インストール元の外部記憶装置から新たなプログラムをインストールする場合に、両プログラムのバージョン情報を比較して警告表示が行われる。
特許文献2には、プログラムプロパティを含むプログラムを生成するプログラム編集支援装置が記載されている。このプログラムプロパティは、プログラム名称やプログラム作成日時であり、プログラムを比較する際、プログラムプロパティが比較される。
特許文献3には、シーケンサー用プログラムのオブジェクトコード内に管理情報を格納することができる計算機システムが記載されている。この管理情報は文字列からなり、オブジェクトコードを文字列情報として表示させることにより、当該オブジェクトコードに含まれる管理情報を文字列として確認できるようになっている。
特許文献4には、プログラムを格納する領域と、当該プログラムのプロパティを格納する領域を有するプログラムコントローラが記載されている。このプロパティは、プログラムの名称、バージョン、更新日時からなり、プログラム作成支援装置のディスプレイに表示される。
要するに、特許文献1〜4に記載された従来技術によれば、PLC内にプログラムのバージョン情報を予め格納しておき、このバージョン情報をPLCからプログラム編集支援装置へダウンロードすることによって、バージョン情報を画面表示したり、他のプログラムのバージョン情報と比較したりすることができる。
ところが、PLCの高速化、高機能化にともなって、PLC用のプログラムも大型で複雑なものとなり、1つのプログラムの開発を複数の設計者が共同で行うというケースが増えているが、このようなケースでは、上述した従来技術によって十分なバージョン管理を行うことが難しくなってきた。つまり、従来技術では、1人の設計者がプログラムを開発していることを前提としていることから、1つのプログラムを複数人で開発する共同開発にそのまま利用することができないという問題があった。
大規模なプログラムを複数の設計者で開発する場合、プロジェクトと呼ばれる1つのプログラムを複数のモジュールに分割し、これらの各モジュールに設計者が割り当てられる。この場合、各設計者は、それぞれの端末装置において自らが担当しているモジュールのみを作成し、そのモジュールのみを共通のPLCへそれぞれアップロードするという方法が採用される。
ここで、各モジュールが、他のモジュールから完全に独立して動作するものであるとすれば、各設計者は、自らが担当しているモジュール以外のモジュールを全く気にする必要はない。しかしながら、実際には、各モジュールに共通のグローバル変数を利用していたり、また、他のモジュール内の変数を参照していたりする場合が少なくない。従って、各モジュールは、完全に独立ではなく、最小限の連携を行いながら動作するものとならざるを得ない。
また、各モジュールは、プログラム編集支援装置内においてシミュレーションを行ってその動作を事前に確認した上で、PLCへアップロードされる。このシミュレーションを行うためには、他の設計者が担当しているモジュールも必要となるため、各設計者の端末装置内には、他の設計者が担当しているモジュールも格納されている。
このような開発環境下において、ある設計者Aが、他の設計者Bの担当しているモジュールが先にPLCへアップロードされていることに気づかずに、自らが担当しているモジュールをアップロードした場合、PLC内にはシミュレーションが行われていないモジュールの組み合わせが格納された状態となる。このため、両モジュール間に不整合が生じていれば、PLCは正常に動作しなくなる。
また、ある設計者Aがアップロードを行った際、誤って他の設計者Bが担当しているモジュールを上書きしてしまう可能性がある。この場合、他の設計者Bがアップロードしていた最新のモジュールが、古いモジュール又は全く別のモジュールによって上書きされれば、PLCは正常に動作しなくなってしまう。しかしながら、その原因を発見するのは容易ではなく、デバッグに時間がかかるという問題があった。
また、ある設計者Aが、他の設計者Bが担当するモジュール内の記述であって、設計者Aの担当するモジュールと連携する部分を変更しなければならない場合に、意図的に設計者Bのモジュールを上書きすることも考えられる。この様な場合、設計者Bがそのことに気づかず、その後にモジュールの更新を行ったとすれば、設計者Aによる更新を元に戻してしまう結果となる。
つまり、プログラムを共同開発する場合、PLC内のモジュールは、複数の設計者によって更新されるため、自分が担当するモジュールを自分自身で更新する場合と、他人が担当するモジュールを他人が更新する場合と、自分が担当するモジュールを他人が更新する場合がそれぞれ考えられ、これらを区別して把握することが必要となる。
しかしながら、上述した従来のバージョン管理方法は、PLC内のプログラムと、端末装置内のプログラムとを比較し、両者の一致又は不一致を判別しているだけであった。このため、両者が一致しなかった場合、PLC及び端末装置のどちらのプログラムが変更されたのかを区別することはできない。また、PLC内のプログラムが更新されていた場合であれば、それが自分自身による更新の結果であるのか、あるいは、他人による更新の結果であるのかを区別することはできないという問題があった。
特開平10−21058号公報 特開平11−338519号公報 特開2001−92644号公報 特開2006−268485号公報
本発明は、上記の事情に鑑みてなされたものであり、複数のプログラム編集支援装置から書き込み可能なPLC内のプログラムについて、その最終更新者が自身であるのか、あるいは、他のプログラム編集支援装置であるのかを上記プログラム編集支援装置において判別可能にすることを目的とする。また、プログラム編集支援装置からPLCへのプログラムの書き込みによって、他人が作成したPLC内のプログラムが不用意に上書きされるのを抑制することを目的とする。
第1の本発明によるプログラム編集支援装置は、プログラマブルコントローラ用のプログラムを編集するためのプログラム編集支援装置であって、ユーザ操作に基づいて、プログラムを編集するプログラム編集手段と、上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と、上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え、ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納するように構成される。
第2の本発明によるプログラム編集支援装置は、上記構成に加えて、上記ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納する場合に、上記識別データ記憶手段が、上記プログラマブルコントローラから取得した上記識別データを格納するように構成される。
第3の本発明によるプログラム編集支援装置は、上記構成に加えて、上記PLCデータ取得手段が、ユーザが上記プログラム記憶手段に保持されているプログラムの上記プログラマブルコントローラへの書き込みを指示した場合に、当該プログラマブルコントローラから識別データを取得し、上記表示手段が、上記第1比較手段の比較結果に基づいて、上記プログラムの上記プログラマブルコントローラへの書き込み前に警告表示を行うように構成される。
第4の本発明によるプログラム編集支援装置は、上記構成に加えて、上記表示手段が、上記第1比較手段の比較結果として、識別データが一致しているか否かを表示し、上記第2比較手段の比較結果として、識別データが一致しているか否かを表示するように構成される。
第5の本発明によるプログラム編集支援装置は、上記構成に加えて、上記プログラムが、2以上のモジュールからなり、上記プログラム編集手段が、上記モジュールを編集することができ、上記識別データ生成手段が、上記モジュールが編集された場合に、当該編集に固有の識別データを生成し、上記PLCデータ書込手段が、上記モジュール及び上記識別データを上記プログラマブルコントローラへ書き込み、上記第1比較手段が、同一のモジュールについて、上記プログラマブルコントローラから読み出された識別データと上記識別データ記憶手段が保持する識別データと比較し、上記第2比較手段が、同一のモジュールについて、上記プログラム記憶手段に格納された識別データと上記識別データ記憶手段が保持する識別データを比較するように構成される。
第6の本発明によるプログラム編集支援装置は、上記構成に加えて、上記表示手段が、同一のモジュールに関する上記第1比較手段の比較結果と上記第2比較手段の比較結果を互いに対応づけ、かつ、同時に閲覧可能となるように表示するように構成される。
第7の本発明によるプログラム編集支援装置は、上記構成に加えて、上記プログラム記憶手段に保持されているプログラムを複製するプログラム複製手段を備え、上記プログラム複製手段が、プログラムを複製する際、上記プログラム記憶手段に当該プログラムに関連付けて格納された識別データも複製するように構成される。
第8の本発明によるコンピュータプログラムは、コンピュータをプログラム編集支援装置として機能させるためのコンピュータプログラムであって、ユーザ操作に基づいて、プログラムを編集するプログラム編集手段と、上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と、上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え、ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納するプログラム編集支援装置としてコンピュータを機能させるように構成される。
第9の本発明によるプログラム編集支援方法は、ユーザ操作に基づいて、プログラムを編集するプログラム編集ステップと、上記プログラム編集ステップにおいてプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成ステップと、上記プログラム編集ステップにおいて編集されたプログラムと上記識別データ生成ステップにおいて生成された識別データとを関連付けてプログラム記憶手段に格納するプログラム格納ステップと、ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込ステップと、上記PLCデータ書込ステップにおけるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを識別データ記憶手段に格納する識別データ格納ステップと、ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得ステップと、上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較ステップと、上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較ステップと、上記第1比較ステップの比較結果と、上記第2比較ステップの比較結果とを表示する表示ステップとを備え、ユーザのプログラム読出指示に基づいて、上記PLCデータ取得ステップが、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム格納ステップが、当該指示されたプログラム及び識別データを関連付けて上記プログラム記憶手段に格納するように構成される。
第10の本発明によるPLCシステムは、プログラマブルコントローラ及び複数のプログラム編集支援装置からなるPLCシステムであって、上記プログラマブルコントローラが、プログラム及び識別データを保持する記憶手段を備え、上記プログラム編集支援装置が、ユーザ操作に基づいて、プログラムを編集するプログラム編集手段と、上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と、上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え、ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納するように構成される。

本発明によれば、複数のプログラム編集支援装置から書き込み可能なPLC内のプログラムについて、その最終更新者が自分自身であるのか、あるいは、他のプログラム編集支援装置であるのかを各プログラム編集支援装置において判別することができる。また、プログラム編集支援装置からPLCへのプログラムの書き込みによって、他人が作成したPLC内のプログラムが不用意に上書きされるのを抑制することができる。
実施の形態1.
[システムの概略構成]
図1は、本発明の実施の形態1によるPLC(Programable Logic Controller)システムの概略構成の一例を示した図である。このシステムは、1つのPLC1、当該PLC1に接続された複数のプログラム編集支援装置2、入力装置3及び出力装置4によって構成される。
PLC1は、センサーなどの入力装置3と、モータなどの出力装置4が接続され、入力装置3からの検出信号に基づいて、出力装置4への制御信号を生成する小型コントローラであり、その動作は、PLC1内に保持しているプログラムによって決定される。
プログラム編集支援装置2は、ユーザがPLC1用のプログラムを作成するための端末装置であり、専用の端末装置であってもよいが、通常は、パーソナルコンピュータに専用ソフトウエアをインストールすることによって実現される。ユーザは、このプログラム編集支援装置2上において、プログラムを作成し、作成されたプログラムのシミュレーションを行ってその動作を検証し、検証後のプログラムをコンパイルしてソースコードからオブジェクトコード(実行コード)へ変換する。この様にして生成されたプログラムのオブジェクトコードが、プログラム編集支援装置2からPLC1へアップロードされる。また、アップロードだけでなく、PLC1内のプログラムをプログラム編集支援装置2へダウンロードして編集することもできる。
図示したPLCシステムは、1つのプログラムを複数の設計者が共同で開発するためのものである。各プログラム編集支援装置2は、それぞれ異なる設計者が利用している端末装置であり、複数のプログラム編集支援装置2が、通信ケーブルを介して、1つのPLC1にネットワーク接続されている。従って、各設計者は、独自にプログラムの編集、検証、コンパイル及びアップロードをそれぞれ行うことができる。
なお、複数のプログラム編集支援装置2は、それぞれが異なるハードウエア上で実現されるものであってもよいし、同一のハードウエア上で実現されるものであってもよい。同一のハードウエア上において複数のプログラム編集支援装置2が実現される場合とは、例えば、複数の設計者が同一の端末装置を使用しているが、互いに異なるログイン名でログインして編集作業を行っており、編集対象となるデータはログイン名ごとに異なっているような場合である。
図2は、PLC1用のプログラム5の概略について説明するための図である。本実施の形態では、1つのプログラム5、つまり、PLC1内において同時に実行することができるプログラム5を「プロジェクト」と呼ぶことにする。PLC1内には、複数のプロジェクトPj1〜Pj3を保持することができるが、これらのプログラム5は選択的にしか実行することができず、ユーザは、いずれか1つのプロジェクトPj1〜Pj3を実行対象としてプログラム実行前に指定しなければならない。同様にして、プログラム編集支援装置2内にも複数のプロジェクトPj1〜Pj3を保持することができるが、編集、動作検証、コンパイル等は各プロジェクトPj1〜Pj3ごとに行われる。
1つのプロジェクトPj1は、1又は2以上のモジュールmodA〜modDによって構成される。1つのプロジェクトPj1を複数の設計者で共同開発する場合、プロジェクトPj1を複数のモジュールmodA〜modDに分割し、各モジュールmodA〜modDに異なる設計者が割り当てられる。つまり、各モジュールmodA〜modDは、図1に示された異なるプログラム編集支援装置2において、それぞれ作成され、共通のPLC1へアップロードされる。ただし、動作検証のためのシミュレーションを行うためには、他の設計者が担当しているモジュールも必要となるため、これらのモジュールは、シミュレーション実行前に、PLC1からダウンロードし、あるいは、他のプログラム編集支援装置2から受信しておく。一方、全てのモジュールmodA〜modDがアップロードされたPLC1は、予め指定されている実行順序に従って、これらのモジュールmodA〜modDを順次に実行していく。
また、各モジュールmodA〜modDには、識別データidA〜idDがそれぞれ含まれている。識別データidA〜idDは、モジュールの新規作成時に生成され、その後もモジュールが変更されるたびに更新されるデータであり、異なるモジュールmodA〜modDには異なる識別データidA〜idDが格納されており、同じモジュールmodA〜modDであっても、バージョンが異なれば、異なる識別データidA〜idDが格納されている。ただし、複製されたモジュールには、複製前のモジュールと同じ識別データが格納されている。つまり、識別データidA〜idDは、モジュールmodA〜modDの編集に固有のデータである。
[プログラム編集支援装置2の詳細構成]
図3は、図1のプログラム編集支援装置2の一構成例を示したブロック図である。このプログラム編集支援装置2は、プログラム記憶部201、前回データ記憶部202、プログラム編集部21、識別データ生成部22、シミュレーション部23、コンパイル部24、データ出力部25、データ入力部26、通信I/F(Interface)部27、プログラム照合部28及び照合結果出力部29により構成される。
プログラム記憶部201は、PLC1用のプログラム5を記憶する記憶手段である。プログラム5は、複数の設計者で共同開発されるプログラムであり、複数のモジュールmodA〜modDからなり、各モジュールmodA〜modD内には、識別データidA〜idDがそれぞれ格納されている。
このプログラム編集支援装置2を利用している設計者は、モジュールmodAの作成を担当しているものとする。つまり、プログラム記憶部201内に保持されているモジュールmodA〜modDのうち、モジュールmodAのみが当該プログラム編集支援装置2内で作成されたモジュールであり、他のモジュールmodB〜modDは、他のプログラム編集支援装置2において作成されたモジュールであり、PLC1からダウンロードされたものである。
前回データ記憶部202は、識別データidA〜idDを記憶する記憶手段であり、プログラム5のアップロード時及びダウンロード時に更新される。当該プログラム編集支援装置2における編集対象はモジュールmodAであるため、前回データ記憶部202内に保持されている識別データidAは、モジュールmodAのPLC1へのアップロード時に更新され、その他の識別データidB〜idDは、モジュールmodB〜modDのPLC1からのダウンロード時に更新される。従って、前回データ記憶部202には、PLC1内に保持されていると推定される識別データidA〜idDが保持されており、他のプログラム編集支援装置2からPLC1へモジュールmodA〜modDのアップロードが行われない限り、前回データ記憶部202内及びPLC1内に保持されている識別データidA〜idDは一致する。
プログラム編集部21は、ユーザがプログラム5を新規に作成し、あるいは、既に作成されているプログラム5を変更するための手段である。本明細書では「プログラムの編集」をプログラムの新規作成及びその後の変更を含む語として使用する。プログラムの編集は、例えば、ユーザが画面表示を見ながら操作入力を行い、新たなデバイスシンボルを画面上に配置し、そのデバイス名などのパラメータを定義したり、あるいは、不要になった配置済みのデバイスシンボルを削除することによって行われる。また、デバイスシンボルについて置換、コピー又はペーストなどを行うこともできる。さらに、プログラムには、これらのデバイスシンボルから生成される命令コード以外に、PLC内の各種パラメータを設定するための設定データも含まれており、これらの設定データを編集することもできる。ここでは、プログラム5が複数のモジュールmodA〜modDで構成されているため、モジュールmodA〜modDごとに編集が行われ、編集後のモジュールmodA〜modDには、識別データidA〜idD及び更新時刻データ(例えば更新日時)が加えられて、プログラム記憶部201へ書き込まれる。
識別データ生成部22は、プログラム編集部21による編集終了時に、編集後のプログラム5に基づいて、識別データを生成する。ここでは、プログラム編集部21による編集対象がモジュールmodAであるため、編集後のモジュールmodAに基づいて、識別データidAを生成している。この識別データは、編集処理ごとに固有のデータとして生成される。例えば、予め定められたハッシュ関数を用いて、編集後のモジュールmodAから求められるハッシュ値を識別データidAとして利用することができる。また、モジュールmodAの編集が行われた日時や、編集を行った設計者の識別情報や、端末装置の識別情報などに基づいて識別データを生成することもできる。
なお、プログラム5又はモジュールmodA〜modDを複製する場合には、識別データも含めて複製される。つまり、プログラム記憶部201内に保持されているモジュールを複製する場合、同じ識別データをもつ別のモジュールとして、プログラム記憶部201へ書き込まれる。
シミュレーション部23は、プログラム記憶部201内に保持されているプログラム5のシミュレーションを行う。ユーザは、このシミュレーション結果を見て、プログラム5が所望の動作を行うものであることを確認する。このシミュレーションは、プログラム5が複数のモジュールmodA〜modDで構成される場合であっても、モジュール単位ではなく、プログラム5単位で行われ、1つのプログラム5を構成している複数のモジュールmodA〜modD間の連携を含めた動作検証が行われる。
コンパイル部24は、プログラム記憶部201に記憶されているプログラム5のソースコードをオブジェクトコードに変換する処理を行う。プログラム5が複数のモジュールmodA〜modDで構成される場合、このコンパイル処理によって、モジュールmodA〜modDごとのオブジェクトコードを生成することができる。なお、生成されたオブジェクトコード内には、ソースコードに含まれていた識別データと同じデータが格納されており、コンパイル処理によって識別データidA〜idDは変更されない。
データ出力部25は、通信I/F部27を介して、PLC1へのプログラム5の書き込み(アップロード)を行っている。また、プログラム5のアップロード時には、当該プログラム5に含まれる識別データが前回データ記憶部202に書き込まれる。プログラム5が複数のモジュールmodA〜modDで構成されている場合には、モジュールmodA〜modDごとにアップロードすることができる。このプログラム編集支援装置2の場合、プログラム記憶部201からモジュールmodAが読み出され、当該モジュールmodAに含まれる識別データidAが前回データ記憶部202に書き込まれ、その後に、当該識別データを含むモジュールmodAがPLC1へアップロードされる。
データ入力部26は、通信I/F部27を介して、PLC1からのプログラム5の取得(ダウンロード)を行っている。また、プログラム5のダウンロード時には、ダウンロードしたプログラム5に含まれる識別データが前回データ記憶部202にも書き込まれる。プログラム5が複数のモジュールmodA〜modDで構成されている場合には、モジュールごとにダウンロードすることができる。このプログラム編集支援装置2の場合、他のプログラム編集支援装置2で生成され、PLC1へアップロードされたモジュールmodB〜modDが、PLC1からダウンロードされる。ダウンロードされたモジュールmodB〜modDは、プログラム記憶部201へ書き込まれるとともに、当該モジュールmodB〜modDから識別データidB〜idDが抽出され、前回データ記憶部202に書き込まれる。
PLC1に対するアップロード及びダウンロード時に前回データ記憶部202を更新することによって、前回データ記憶部202内には、常に、PLC1に最後にアクセスした時点における識別データが保持されている。つまり、モジュールmodAについては、最後のアップロード時における識別データidAが保持されており、モジュールmodB〜modDについては、最後のダウンロード時における識別データidB〜idDが保持されている。
また、データ入力部26は、PLC1からプログラム5又はモジュールmodA〜modDをダウンロードすることなく、識別データidA〜idDのみを取得することもできる。この様にしてPLC1からダウンロードされた識別データidA〜idDは、プログラム照合部28へ出力される。
プログラム照合部28は、注目しているプログラム5について最後のアップロード又はダウンロードが行われた後に、当該プログラム編集支援装置2内又はPLC1内のいずれかで当該プログラム5が更新されたか否かを判別する。この判別処理は、プログラム記憶部201内、前回データ記憶部202内及びPLC1内に保持されている識別データを比較することによって行われる。ここでは、ユーザによってプロジェクトPj1が予め指定されており、当該プロジェクトPj1に属する各モジュールmodA〜modDの識別情報idA〜idDについて比較が行われる。
PLC1内のモジュールmodA〜modDを他人が更新したか否かは、前回データ記憶部202内に保持されている識別データidA〜idDと、PLC1からダウンロードした識別データidA〜idDとを比較することによって判別できる。両者が一致しなければ、前回データ記憶部202の更新後に、PLC1内のモジュールmodA〜modDが、他のプログラム編集支援装置2からのアップロードによって更新されたと判別することができる。
また、プログラム記憶部201内のモジュールmodA〜modDが編集されたか否かは、前回データ記憶部202内の識別データidA〜idDと、プログラム記憶部201内の識別データidA〜idDとを比較することによって判別できる。両者が一致しなければ、前回データ記憶部202の更新後に、PLC1内のモジュールmodA〜modDが、プログラム編集部21によって更新されたと判別することができる。
照合結果出力部29は、プログラム照合部28の照合結果に基づいて出力動作を行っている。例えば、ユーザがプログラム照合処理を指示した場合であれば、上記照合結果が画面表示される。また、ユーザがモジュールのアップロードを指示した場合であって、当該アップロードによって更新されるPLC1内のモジュールが他のプログラム編集支援装置2によって先に更新されていた場合には、警告メッセージを画面表示し、ユーザに確認のための操作入力を行わせたり、あるいは、ダウンロード処理を禁止する。
[PLC1の詳細構成]
図4は、図1のPLC1の一構成例を示したブロック図である。このPLC1は、通信I/F部11、データ入力部12、データ出力部13、プログラム記憶部14、プログラム実行部15、入力装置I/F部16及び出力装置I/F部17により構成される。
プログラム記憶部14は、プログラム5を記憶する記憶手段であり、プログラム編集支援装置2からアップロードされたプログラム5が保持されている。このプログラム5は、プログラム編集支援装置2のプログラム記憶部201と同様、複数のモジュールmodA〜modDからなり、各モジュールmodA〜modD内には、識別データidA〜idD及び更新時刻データがそれぞれ格納されている。
通信I/F部11は、有線又は無線の通信回線を介して、各プログラム編集支援装置2と接続され、双方向のデータ通信を行っている。データ入力部12は、プログラム編集支援装置2からアップロードされたモジュールmodA〜modDをプログラム記憶部14へ書き込む。一方、データ出力部13は、いずれかのプログラム編集支援装置2からモジュールmodA〜modD又は識別データidA〜idDのダウンロード要求があった場合に、要求されたデータをプログラム記憶部14から読み出し、要求元のプログラム編集支援装置2へ送信する。
プログラム実行部15は、プログラム記憶部14内のプログラム5に基づいて制御を行うプロセッサである。例えば、入力装置I/F部16を介して、入力装置3から入力される検出信号に基づいて制御信号を生成し、出力装置I/F部17を介して、上記制御信号を出力装置4へ出力している。
[プログラム編集支援装置2の動作]
図5は、本発明の実施の形態1によるプログラム照合処理を簡略化して示した説明図である。プログラム編集支援装置2内のプログラム記憶部201には、複数のモジュールA〜Dにより構成されるプログラム5が格納されている。同様にして、PLC1内のプログラム記憶部14にも、複数のモジュールA〜Dにより構成されるプログラム5が格納されている。これらの各モジュール内には、識別データがそれぞれ格納されている。また、 プログラム編集支援装置2内の前回データ記憶部202には、プログラム記憶部201及びプログラム記憶部14間における最後のアップロード又はダウンロード時における識別データが格納されている。
従って、プログラム記憶部14及び前回データ記憶部202内の識別データを対応するモジュールごとに比較すれば、PLC1への最後のアクセス後に、他のプログラム編集支援装置2によってPLC1内のモジュールが更新されたか否かを判別することができる。また、プログラム記憶部201及び前回データ記憶部202内の識別データを対応するモジュールごとに比較すれば、PLC1への最後のアクセス後に、プログラム編集支援装置2内のモジュールが編集されたか否かを判別することができる。
図6のステップS101〜S103は、図3のプログラム編集支援装置2の動作の一例を示したフローチャートであり、モジュールのアップロード時におけるデータ出力部25の動作が示されている。
モジュールmodAをアップロードする場合、モジュールmodAが、転送対象としてユーザによって指定され、プログラム記憶部201から読み出される(ステップS101)。データ出力部25は、読み出されたモジュールmodAから識別データidAを抽出し、前回データ記憶部202内の識別データidAを更新する(ステップS102)。この前回データ記憶部202の更新後に、上記モジュールmodAは、通信I/F部27からPLC1へ送信される(ステップS103)。
図7のステップS201〜S204は、図3のプログラム編集支援装置2の動作の一例を示したフローチャートであり、モジュールのダウンロード時におけるデータ入力部26の動作が示されている。
モジュールmodB〜modDをダウンロードする場合、まずPLC1へダウンロード要求を送信した後(ステップS201)、PLC1からモジュールmodB〜modDを受信する(ステップS202)。データ入力部26は、受信したモジュールmodB〜modDから識別データidB〜idDを抽出し、前回データ記憶部202内の識別データidB〜idDを更新する(ステップS203)。この前回データ記憶部202の更新後に、上記モジュールmodB〜modDは、プログラム記憶部201に書き込まれる(ステップS204)。
図8のステップS301〜S306は、図3のプログラム編集支援装置2の動作の一例を示したフローチャートであり、プログラム照合処理が示されている。このプログラム照合処理は、プログラム編集支援装置2において、ユーザがプログラム照合を指示した場合に、プログラム照合部28によって実行される。
ユーザがプロジェクトPj1を指定してプログラム照合を指示すると、プログラム照合部28は、当該プロジェクトPj1に属する全てのモジュールmodA〜modDについて、その識別データidA〜idD及び更新時刻データをPLC1からダウンロードする(ステップS301)。このとき、モジュールmodA〜modD自体をダウンロードしてもよいが、プログラム照合に必要となる識別データidA〜idD及び更新時刻データのみをダウンロードすれば、ダウンロード時間を大幅に短縮することができる。
次に、前回データ記憶部202から識別データidA〜idDが読み出され(ステップS302)、ダウンロードされた識別データidA〜idDとの比較が行われる(ステップS303)。つまり、照合対象となる各モジュールmodA〜modDごとに、前回データ記憶部202内に保持されている識別データと、PLC1のプログラム記憶部14内に保持されている識別データとの比較が行われる。
同様にして、プログラム記憶部201から識別データidA〜idD及び更新時刻データが読み出され(ステップS304)、ダウンロードされた識別データidA〜idDとの比較が行われる(ステップS305)。つまり、照合対象となる各モジュールmodA〜modDごとに、プログラム編集支援装置2のプログラムデータ記憶部201内に保持されている識別データと、PLC1のプログラム記憶部14内に保持されている識別データとの比較が行われる。
照合結果出力部29は、ステップS303及びS305の比較結果を画面表示してユーザに知らせる(ステップS306)。例えば、ステップS303及びS305における各比較結果が、モジュールmodA〜modDごとに対応づけられて画面表示される。
なお、このプログラム照合処理では、プログラム編集支援装置2及びPLC1間で、識別データのダウンロードが行われているが、モジュールのアップロード及びダウンロードは行われていない。このため、前回データ記憶部202は更新されない。
図9は、プログラム照合部28による比較結果についての説明図である。プログラム照合部28では、プログラム照合処理の結果として、モジュールごとに2つの比較結果が得られる(図8のステップS303及びS305)。従って、これらの比較結果を組み合わせることによって、図示した4通りの照合結果(a)〜(d)が得られる。
照合結果(a)は、注目しているモジュールmodAに関する識別データの比較結果として、ステップS303及びS305のいずれにおいても一致するという結果が出た場合である。つまり、モジュールmodAの識別データとして、プログラム記憶部201、前回データ記憶部202及びプログラム記憶部14のいずれにも同じデータが保持されていた場合である。この場合、モジュールmodAに関する最後のアクセス(アップロード又はダウンロード)後に、PLC1内のモジュールmodAは他人によって更新されておらず、また、当該プログラム編集支援装置2内のモジュールmodAも編集されていないことがわかる。
照合結果(b)は、注目しているモジュールmodAに関する識別データの比較結果として、ステップS303では一致するという結果が出る一方、ステップS305では一致しないという結果が出た場合である。この場合、モジュールmodAに関する最後のアクセス(アップロード又はダウンロード)後に、PLC1内のモジュールmodAは他人によって更新されていないが、当該プログラム編集支援装置2内のモジュールmodAは編集されていることがわかる。
照合結果(c)は、注目しているモジュールmodAに関する識別データの比較結果として、ステップS303では一致しないという結果が出る一方、ステップS305では一致するという結果が出た場合である。この場合、モジュールmodAに関する最後のアクセス(アップロード又はダウンロード)後に、PLC1内のモジュールmodAが他人によって更新されているが、当該プログラム編集支援装置2内のモジュールmodAは編集されていないことがわかる。
照合結果(d)は、注目しているモジュールmodAに関する識別データの比較結果として、ステップS303及びS305のいずれにおいても一致しないという結果が出た場合である。この場合、モジュールmodAに関する最後のアクセス(アップロード又はダウンロード)後に、PLC1内のモジュールmodAが他人によって更新されており、当該プログラム編集支援装置2内のモジュールmodAも編集されていることがわかる。
図10は、照合結果出力部29によって表示されるPLC照合/同期画面6の一例を示した図である。ユーザは、いずれかのプロジェクトを指定した後に、PLC照合/同期画面6を表示させることができる。このPLC照合/同期画面6上には、照合ボタン61、PLC書込ボタン62、PLC読出ボタン63及び照合結果表示エリア64が設けられている。これらのボタン61〜63は、マウスなどのポインティング入力手段を用いて操作することができ、ユーザは、プログラム照合処理、アップロード処理又はダウンロード処理を指示することができる。
ユーザが照合ボタン61を操作すれば、図8に示したプログラム照合処理が実行され、その照合結果が照合結果表示エリア64に表示される。図示した照合結果表示エリア64内には、指定されたプロジェクトに属するモジュールA〜Dが異なる行にそれぞれ表示される例が示されている。
各行の左側のエリアは、当該プログラム編集支援装置2のプログラム記憶部201内に保持されているモジュール名と、その更新時刻データが表示されるエディタ表示欄641である。同様にして、各行の右側のエリアは、PLC1のプログラム記憶部14内に保持されているモジュール名と、その更新時刻データが表示されるPLC表示欄643である。
各行の中央のエリアは、プログラム照合部28による照合結果を文字で表示する照合結果表示欄642である。ステップS303及びS305による照合結果が、ともに一致であったモジュールについては、照合結果表示欄642に「OK」が表示される。一方、いずれかが不一致であったモジュールについては、照合結果表示欄642には何も表示されず、エディタ表示欄641又はPLC表示欄643内の当該モジュールがハイライト(強調)表示される。つまり、ステップS303で不一致であった場合には、PLC表示欄643内の当該モジュールがハイライト表示66となり、ステップS305で不一致であった場合には、エディタ表示欄641内の当該モジュールがハイライト表示66となる。この様にして、ステップS303及びS305の比較結果をモジュールごとに対応づけて表示している。
チェックボックス65は、アップロード又はダウンロードの対象となるモジュールをユーザが指定するためのチェックボックスであり、各行の左端に設けられている。ユーザは、このチェックボックス65をクリック操作し、アップロード又はダウンロードするモジュールを選択する。
PLC書込ボタン62は、PLC1へのアップロードを指示するための操作ボタンである。ユーザがPLC書込ボタン62を操作すれば、図6に示したアップロード処理が実行される。アップロードされるモジュールは、チェックボックス65のユーザ操作によって選択されたモジュールである。
PLC読出ボタン63は、PLC1からのダウンロードを指示するための操作ボタンである。ユーザがPLC読出ボタン63を操作すれば、図7に示したダウンロード処理が実行される。ダウンロードされるモジュールは、チェックボックス65のユーザ操作によって選択されたモジュールである。
図10に示された各モジュールA〜Dの照合結果の例について説明する。プログラム編集支援装置2内のモジュールAは編集済みであるが、この編集はPLC1内のモジュールAには反映されておらず、モジュールAをPLC1へアップロードしておく必要があることがわかる。また、PLC1内のモジュールAは他人によって更新されておらず、上記アップロードは安全に行うことができる。
プログラム編集支援装置2内のモジュールBは編集されていないが、PLC1内のモジュールBは、他のプログラム編集支援装置2によって更新されている。このため、シミュレーションを正しく行うためには、モジュールBをPLC1からダウンロードしておく必要があることがわかる。
モジュールCについては「OK」が表示されており、プログラム編集支援装置2内及びPLC1内のモジュールが一致していることが示されている。この場合、モジュールCについてはアップロード及びダウンロードのいずれも行う必要がないことがわかる。
プログラム編集支援装置2内のモジュールDは編集済みであるが、この編集はPLC1内のモジュールDには反映されていない。一方、PLC1内のモジュールDは他のプログラム編集支援装置2によって先に更新されている。この場合、モジュールDのPLC1へのアップロードは、他人が先に更新したPLC1内のモジュールDを上書きすることになるため、慎重に行わなければならないことがわかる。
本実施の形態によれば、プログラム照合処理によって、プログラム5の最後のアップロード又はダウンロード後に、プログラム編集支援装置2内の当該プログラムが編集されたか否かを判別することができる。また、プログラム5の最後のアップロード又はダウンロード後に、PLC1内の当該プログラムが更新されたか否かを判別することができる。従って、PLC1用のプログラム5を複数の設計者が共同で開発している場合に、自分自身によるプログラム5の変更と、他人によるプログラム5の変更とを区別して適切なバージョン管理を行うことができ、開発効率を向上させることができる。
実施の形態2.
実施の形態1では、プログラム照合処理を行って照合結果を表示するプログラム編集支援装置2の例について説明した。これに対し、実施の形態2では、プログラム5のアップロード時に、プログラム照合結果に基づいて警告表示を行うプログラム編集支援装置2の動作について説明する。なお、本実施の形態では、実施の形態1との相違点を中心に説明し、その他の点については実施の形態1及び2と同様であるものとする。
図11のステップS401〜S409は、本発明の実施の形態2によるプログラム編集支援装置2の動作の一例を示したフローチャートであり、モジュールのアップロード処理の例が示されている。このアップロード処理は、図10のPLC照合/同期画面6において、いずれかのモジュールが選択された後にPLC書込ボタン62が操作された場合に実行される。なお、2以上のモジュールが選択されている場合には、各モジュールごとに実行される。
ステップS401〜S403では、アップロード対象に指定されたモジュールについて、図8のプログラム照合処理の一部(S301〜S303)と同様の処理が行われる。すなわち、指定されたモジュールの識別データが、PLC1からダウンロードされるとともに(ステップS401)、これに対応する識別データが、前回データ記憶部202から読み出され(ステップS401)、これらの識別データが比較される(ステップS403)。
この結果、識別データが一致していれば、指定されたモジュールがPLC1へアップロードされる(ステップS407〜S409)。このアップロード処理は、図6のアップロード処理(S101〜S103)と同様である。
一方、ステップS403における比較の結果、識別データが一致していなかった場合には、画面上に警告メッセージが表示される(ステップS404,S405)。例えば「他人による更新済みモジュールに上書きしますか?」と表示され、安全なアップロードではないことをユーザに知らせて特段の注意を払うように促す。その後に、ユーザが、アップロードを了承する操作を行えば、アップロード処理(ステップS407〜S409)が行われ、アップロードを中止する操作を行えば、アップロード処理は行われない。
図12のステップS401〜S409は、モジュールのアップロード処理の他の例を示したフローチャートである。このフローチャートを図11と比較すれば、ユーザの意思確認のためのステップS406が省略され、ステップS405からステップS407へ遷移することができない点で異なる。つまり、アップロードが安全でない場合には、ユーザの意思にかかわらずアップロード処理が禁止されている。従って、他人が先に更新したPLC1内のモジュールを更新しようとすれば、そのモジュールを一旦ダウンロードしなければならない。
本実施の形態によれば、プログラム編集支援装置2からPLC1へプログラム5をアップロードする際、アップロード前にプログラム照合を行って、PLC1内のプログラムが他人によって先に更新されていれば警告表示が行われる。従って、複数の設計者がプログラムを共同開発している場合、PLC1内のプログラムが不用意に上書きされるのを防止することができ、開発効率を向上させることができる。
実施の形態3.
実施の形態1では、1つのPLC1に対し、複数のプログラム編集支援装置2が接続され、各プログラム編集支援装置2を用いて、同じPLC1のプログラム5を共同で開発するPLCシステムの例について説明した。これに対し、本実施の形態では、複数のプログラム編集支援装置2と、複数のPLC1a〜1cとが互いに接続されたPLCシステムの場合について説明する。なお、本実施の形態では、実施の形態1及び2との相違点を中心に説明し、その他の点については実施の形態1と同様であるものとする。
図13は、本発明の実施の形態3によるPLCシステムの概略構成の一例を示した図である。このPLCシステムは、複数のPLC1a〜1cと、複数のプログラム編集支援装置2a〜2dによって構成される。なお、図1に示された入力装置3及び出力装置4は省略している。
各PLC1a〜1cは、いずれも同じプログラム5を内蔵し、同じ制御動作を行っている。また、このプログラム5は、複数のプログラム編集支援装置2a〜2dを用いて、複数の設計者によって共同開発されている。つまり、実施の形態1の場合と同様、プログラム5は複数のモジュールからなり、各モジュールが、プログラム編集支援装置2a〜2dにおいて作成されている。ただし、作成されたモジュールが1つのプログラム編集支援装置から全てのPLC1a〜1cへアップロードされる点において、実施の形態1の場合とは異なっている。
図14は、本発明の実施の形態3によるプログラム照合処理を簡略化して示した説明図である。この図では、説明の都合上、照合対象となっている1種類のモジュールのみについて識別データが表示されている。プログラム記憶部201及び前回データ記憶部202間における識別データの比較は、図8のステップS302、305及びS306(実施の形態1)と同様である。
一方、PLC1a〜1c及び前回データ記憶部202間における識別データの比較は、前回データ記憶部202から読み出された同じ識別データを各PLC1a〜1c内の識別データと順次に比較することによって行われる。つまり、図8のステップS301及びS303が、PLC1a〜1cの数だけ繰り返され、PLC1a〜1cごとの比較結果が得られる。そして、いずれかのPLC1a〜1cとの比較において、不一致という結果が得られた場合には、当該モジュールは、他人によって先に更新されたモジュールであると判断され、図10のPLC表示欄643にハイライト66が表示される。なお、この様な表示に代えて、照合結果として、PLC1a〜1cごとの比較結果をそれぞれ表示してもよい。
実施の形態4.
実施の形態3では、プログラム編集支援装置2a〜2dが、前回データ記憶部202内に複数のPLC1a〜1cに共通の識別データを保持している例について説明した。これに対し、本実施の形態では、プログラム編集支援装置2が、前回データ記憶部202内に、複数のPLC1a〜1cごとに識別データを保持している場合について説明する。なお、本実施の形態では、実施の形態1〜3との相違点を中心に説明し、その他の点については実施の形態1〜3と同様であるものとする。
図15は、本発明の実施の形態4によるプログラム照合処理を簡略化して示した説明図である。この図では、説明の都合上、照合対象となっている1種類のモジュールのみについて識別データが表示されいている。
前回データ記憶部202内には、同じモジュールについて、各PLC1a〜1cごとの識別データが記憶されている。これらの識別データは、それぞれが対応するPLC1a〜1cへの最後のアップロード又はダウンロード時に更新されている。従って、同じモジュールの識別データであっても、各PLC1a〜1c内に保持されている当該モジュールのバージョンが異なっていれば、異なる識別データとなる。
プログラム記憶部201及び前回データ記憶部202間における識別データの比較は、プログラム記憶部201から読み出された同じ識別データを前回データ記憶部202から読み出されたPLC1a〜1cごとの識別データと順次に比較することによって行われる。つまり、図8のステップS302及びS305が、PLC1a〜1cの数だけ繰り返され、PLC1a〜1cごとの比較結果が得られる。そして、いずれかの比較において、不一致という結果が得られた場合には、当該モジュールは、いずれかのPLC1a〜1cとの関係において、アップロード後に編集されたモジュールであると判断され、図10のエディタ表示欄641にハイライト66が表示される。なお、この様な表示に代えて、照合結果として、PLC1a〜1cごとの比較結果をそれぞれ表示してもよい。
一方、PLC1a〜1c及び前回データ記憶部202間における識別データの比較は、各PLC1a〜1cからダウンロードされた識別データが、当該PLC1a〜1cに対応づけられた前回データ記憶部202内の識別データと順次に比較することによって行われる。つまり、図8のステップS301〜S303が、PLC1a〜1cの数だけ繰り返される。そして、いずれかのPLC1a〜1cとの比較において、不一致という結果が得られた場合には、当該モジュールは、他人によって先に更新されたモジュールであると判断され、図10のPLC表示欄643にハイライト66が表示される。なお、この様な表示に代えて、照合結果として、PLC1a〜1cごとの比較結果をそれぞれ表示してもよい。
なお、上記の各実施の形態では、主として、プログラム5が複数のモジュールにより構成される場合の例について説明したが、本発明は、このような場合には限定されない。すなわち、モジュールに分割されていないプログラム5(1つのモジュールで構成されるプログラム)についても本発明を適用することができる。
また、上記の各実施の形態では、プログラム編集支援装置2及びPLC1内において、識別データがモジュール内に格納されている場合の例について説明したが、本発明は、このような場合には限定されない。すなわち、モジュールと、その識別データとが対応づけて保持されていればよく、識別データがモジュール内に格納されている必要は必ずしもない。
本発明の実施の形態1によるPLCシステムの概略構成の一例を示した図である。 PLC用プログラム5の概略について説明するための図である。 図1のプログラム編集支援装置2の一構成例を示したブロック図である。 図1のPLC1の一構成例を示したブロック図である。 本発明の実施の形態1によるプログラム照合処理を簡略化して示した説明図である。 モジュールのアップロード時におけるデータ出力部25の動作を示したフローチャートである。 モジュールのダウンロード時におけるデータ入力部26の動作を示したフローチャートである。 プログラム照合処理を示したフローチャートである。 プログラム照合部28による比較結果についての説明図である。 照合結果出力部29によって表示されるPLC照合/同期画面6の一例を示した図である。 モジュールのアップロード処理の一例をを示したフローチャートである(実施の形態2)。 モジュールのアップロード処理の他の例を示したフローチャートである。 本発明の実施の形態3によるPLCシステムの概略構成の一例を示した図である。 プログラム照合処理を簡略化して示した説明図である。 プログラム照合処理を簡略化して示した説明図である(実施の形態4)。
符号の説明
idA〜idD 識別データ
modA〜modD モジュール
Pj1〜Pj3 プロジェクト
1,1a〜1c PLC
11 通信I/F部
12 データ入力部
13 データ出力部
14 プログラム記憶部
15 プログラム実行部
2,2a〜2d プログラム編集支援装置
201 プログラム記憶部
202 前回データ記憶部
21 プログラム編集部
22 識別データ生成部
23 シミュレーション部
24 コンパイル部
25 データ出力部
26 データ入力部
27 通信I/F部
28 プログラム照合部
29 照合結果出力部
5 プログラム
6 PLC照合/同期画面
61 照合ボタン
62 書込ボタン
63 読出ボタン
64 照合結果表示エリア
641 エディタ表示欄
642 照合結果表示欄
643 PLC表示欄
65 チェックボックス
66 ハイライト表示

Claims (10)

  1. プログラマブルコントローラ用のプログラムを編集するためのプログラム編集支援装置であって、
    ユーザ操作に基づいて、プログラムを編集するプログラム編集手段と、
    上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、
    上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、
    ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、
    上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、
    ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、
    上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と、
    上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、
    上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え
    ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納することを特徴とするプログラム編集支援装置。
  2. 上記ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納する場合に、上記識別データ記憶手段は、上記プログラマブルコントローラから取得した上記識別データを格納することを特徴とする請求項1に記載のプログラム編集支援装置。
  3. 上記PLCデータ取得手段は、ユーザが上記プログラム記憶手段に保持されているプログラムの上記プログラマブルコントローラへの書き込みを指示した場合に、当該プログラマブルコントローラから識別データを取得し、
    上記表示手段は、上記第1比較手段の比較結果に基づいて、上記プログラムの上記プログラマブルコントローラへの書き込み前に警告表示を行うことを特徴とする請求項1又は2に記載のプログラム編集支援装置。
  4. 記表示手段は、上記第1比較手段の比較結果として、識別データが一致しているか否かを表示し、上記第2比較手段の比較結果として、識別データが一致しているか否かを表示することを特徴とする請求項1又は2に記載のプログラム編集支援装置。
  5. 上記プログラムは、2以上のモジュールからなり、
    上記プログラム編集手段は、上記モジュールを編集することができ、
    上記識別データ生成手段は、上記モジュールが編集された場合に、当該編集に固有の識別データを生成し、
    上記PLCデータ書込手段は、上記モジュール及び上記識別データを上記プログラマブルコントローラへ書き込み、
    上記第1比較手段は、同一のモジュールについて、上記プログラマブルコントローラから読み出された識別データと上記識別データ記憶手段が保持する識別データと比較し、
    上記第2比較手段は、同一のモジュールについて、上記プログラム記憶手段に格納された識別データと上記識別データ記憶手段が保持する識別データを比較することを特徴とする請求項1又は2に記載のプログラム編集支援装置。
  6. 上記表示手段は、同一のモジュールに関する上記第1比較手段の比較結果と上記第2比較手段の比較結果を互いに対応づけ、かつ、同時に閲覧可能となるように表示することを特徴とする請求項5に記載のプログラム編集支援装置。
  7. 上記プログラム記憶手段に保持されているプログラムを複製するプログラム複製手段を備え、
    上記プログラム複製手段は、プログラムを複製する際、上記プログラム記憶手段に当該プログラムに関連付けて格納された識別データも複製することを特徴とする請求項1又は2に記載のプログラム編集支援装置。
  8. コンピュータをプログラム編集支援装置として機能させるためのコンピュータプログラムであって、
    ーザ操作に基づいて、プログラムを編集するプログラム編集手段と、
    上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、
    上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、
    ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、
    上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、
    ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、
    上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と
    上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、
    上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え、ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納するプログラム編集支援装置としてコンピュータを機能させることを特徴とするコンピュータプログラム。
  9. ユーザ操作に基づいて、プログラムを編集するプログラム編集ステップと、
    上記プログラム編集ステップにおいてプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成ステップと、
    上記プログラム編集ステップにおいて編集されたプログラムと上記識別データ生成ステップにおいて生成された識別データとを関連付けてプログラム記憶手段に格納するプログラム格納ステップと、
    ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込ステップと、
    上記PLCデータ書込ステップにおけるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを識別データ記憶手段に格納する識別データ格納ステップと、
    ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得ステップと、
    上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較ステップと、
    上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較ステップと、
    上記第1比較ステップの比較結果と、上記第2比較ステップの比較結果とを表示する表示ステップとを備え、
    ユーザのプログラム読出指示に基づいて、上記PLCデータ取得ステップが、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム格納ステップが、当該指示されたプログラム及び識別データを関連付けて上記プログラム記憶手段に格納することを特徴とするプログラム編集支援方法。
  10. プログラマブルコントローラ及び複数のプログラム編集支援装置からなるPLCシステムであって、
    上記プログラマブルコントローラが、プログラム及び識別データを保持する記憶手段を備え、
    上記プログラム編集支援装置が、
    ーザ操作に基づいて、プログラムを編集するプログラム編集手段と、
    上記プログラム編集手段によりプログラムが編集された場合に、当該編集に固有の識別データを生成する識別データ生成手段と、
    上記プログラム編集手段により編集されたプログラムと上記識別データ生成手段により生成された識別データとを関連付けて格納するプログラム記憶手段と、
    ユーザのプログラム書込指示に基づいて、上記プログラム記憶手段から当該指示されたプログラムと、当該プログラムに関連付けて格納された識別データとを読み出し、プログラマブルコントローラへ書き込むPLCデータ書込手段と、
    上記PLCデータ書込手段によるプログラマブルコントローラへのプログラム及び識別データの書込に応じて、上記プログラマブルコントローラへ書き込まれる識別データを保持する識別データ記憶手段と、
    ユーザのプログラム照合指示に基づいて、上記プログラマブルコントローラから当該指示されたプログラムに関連付けて書き込まれた識別データを取得するPLCデータ取得手段と、
    上記プログラマブルコントローラから取得した識別データと、上記識別データ記憶手段が保持する識別データと比較する第1比較手段と、
    上記プログラム記憶手段に格納された識別データと、上記識別データ記憶手段が保持する識別データとを比較する第2比較手段と、
    上記第1比較手段の比較結果と、上記第2比較手段の比較結果とを表示する表示手段とを備え
    ユーザのプログラム読出指示に基づいて、上記PLCデータ取得手段が、上記プログラマブルコントローラから当該指示されたプログラム及び識別データを取得し、上記プログラム記憶手段が、当該指示されたプログラム及び識別データを関連付けて格納することを特徴とするPLCシステム。
JP2007128550A 2007-05-14 2007-05-14 プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム Active JP4865634B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007128550A JP4865634B2 (ja) 2007-05-14 2007-05-14 プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007128550A JP4865634B2 (ja) 2007-05-14 2007-05-14 プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム

Publications (2)

Publication Number Publication Date
JP2008282362A JP2008282362A (ja) 2008-11-20
JP4865634B2 true JP4865634B2 (ja) 2012-02-01

Family

ID=40143099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007128550A Active JP4865634B2 (ja) 2007-05-14 2007-05-14 プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム

Country Status (1)

Country Link
JP (1) JP4865634B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110208324A1 (en) * 2010-02-25 2011-08-25 Mitsubishi Electric Corporation Sysyem, method, and apparatus for maintenance of sensor and control systems
DE112010005484T5 (de) 2010-04-14 2013-01-24 Mitsubishi Electric Corporation Sicherheitsverfahren für Engineering-Tools und Industrieprodukte und Sicherheitssystem
CN102236333B (zh) * 2010-04-30 2015-04-15 深圳市合信自动化技术有限公司 一种可编程逻辑控制器程序上载装置和方法
WO2012017522A1 (ja) * 2010-08-03 2012-02-09 富士通株式会社 検証プログラムおよび検証装置
JP5957936B2 (ja) * 2012-02-15 2016-07-27 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラム
JP2014127055A (ja) * 2012-12-27 2014-07-07 Jtekt Corp Plcの周辺装置
JP6299095B2 (ja) * 2013-07-09 2018-03-28 富士電機株式会社 共有データ定義支援システム、そのマスタ装置、ローカル端末、プログラム
JP6205934B2 (ja) * 2013-07-18 2017-10-04 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラム
JP6072714B2 (ja) * 2014-02-20 2017-02-01 三菱電機株式会社 プログラム照合装置
US10162328B2 (en) 2014-03-14 2018-12-25 Omron Corporation Controller and control system
JP6455096B2 (ja) * 2014-11-25 2019-01-23 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
JP6454530B2 (ja) * 2014-12-09 2019-01-16 株式会社キーエンス 監視システム、エリア監視センサ及び設定データ作成装置
JP6401657B2 (ja) * 2015-04-28 2018-10-10 株式会社日立製作所 プロセス制御システム、保守支援装置及びコントローラ
JP6518601B2 (ja) * 2016-02-22 2019-05-22 株式会社キーエンス 光学安全センサ用の設定支援装置、設定支援プログラム、光学安全システム及び光学安全センサ
JP6518211B2 (ja) * 2016-05-24 2019-05-22 株式会社日立ビルシステム 遠隔書込みシステム、および、そのプログラムファイル更新方法
GB2601080B (en) 2016-10-24 2022-10-19 Fisher Rosemount Systems Inc Systems and methods for merging modular control systems into a process plant
WO2018179206A1 (ja) 2017-03-30 2018-10-04 三菱電機株式会社 システム設計支援装置およびシステム設計支援方法
JP7087299B2 (ja) * 2017-08-04 2022-06-21 株式会社明電舎 プログラマブルコントローラの管理システムおよびプログラム
GB2608281B (en) 2017-09-13 2023-05-10 Fisher Rosemount Systems Inc Assistant application for a modular control system
JP6541902B1 (ja) * 2018-05-29 2019-07-10 三菱電機株式会社 プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP7180158B2 (ja) * 2018-07-13 2022-11-30 オムロン株式会社 プログラム開発装置、およびコントローラ
JP7227015B2 (ja) * 2019-01-24 2023-02-21 ファナック株式会社 ラダープログラム編集システム、サーバ、端末装置、ラダープログラム編集方法及びプログラム
US10962962B2 (en) 2019-05-20 2021-03-30 Fisher-Rosemount Systems, Inc. Quick connection techniques for skid communicator tool
WO2024261848A1 (ja) * 2023-06-20 2024-12-26 三菱電機株式会社 プログラム可能機器、開発装置、バージョン管理システム、バージョン管理方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278809A (ja) * 1995-04-07 1996-10-22 Toshiba Corp プラント制御装置
JP2000003270A (ja) * 1998-06-12 2000-01-07 Mitsubishi Electric Corp バージョン管理装置及び出荷管理装置
JP2003208327A (ja) * 2002-01-15 2003-07-25 Konica Corp データ管理方法およびデータ管理装置ならびにデータ管理プログラム
JP2005316778A (ja) * 2004-04-28 2005-11-10 Toshiba Corp プラント監視制御装置
JP2007079651A (ja) * 2005-09-12 2007-03-29 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラのプログラミング装置

Also Published As

Publication number Publication date
JP2008282362A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4865634B2 (ja) プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
US10705500B2 (en) Support device, method, and recording medium for simplifying control program changing operation
JP2008282363A (ja) プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム
CN112711403B (zh) 游戏开发同步的方法、装置、计算机设备和存储介质
CN117312270A (zh) 一种数据库自动化构建和部署的变更管理方法
EP3220218B1 (en) Program development support device, program development support method, and program development support program
WO2014128920A1 (ja) システム開発装置、方法およびプログラム
CN103339573B (zh) 运动sfc程序部件生成装置
JP2012168900A (ja) プログラミング装置、プログラム
JP2015022511A (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP2016224559A (ja) プログラム作成支援装置、制御方法およびプログラム
JP7238678B2 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
JPWO2019229845A1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
CN111542790A (zh) 用于处理软件项目的方法
JP5481267B2 (ja) 制御プログラム作成装置および制御プログラム作成装置の駆動方法
EP4261678A1 (en) Generation of a technical instruction
CN109019217B (zh) 一种电梯控制软件现场调试系统
US20230101320A1 (en) Method for creating and executing a control program for controlling an automation system, and automation system
JP6566151B2 (ja) システム設計支援装置およびシステム設計支援方法
JP6287093B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
TWI907922B (zh) 文件資訊提供方法及其電子裝置
JP2020021157A (ja) サポート装置およびサポートプログラム
JP2008234379A (ja) ソフトウェア生成装置ならびにソフトウェア生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110620

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111110

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4865634

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250