JP5957936B2 - プログラマブルコントローラシステム、その支援装置、プログラム - Google Patents

プログラマブルコントローラシステム、その支援装置、プログラム Download PDF

Info

Publication number
JP5957936B2
JP5957936B2 JP2012031054A JP2012031054A JP5957936B2 JP 5957936 B2 JP5957936 B2 JP 5957936B2 JP 2012031054 A JP2012031054 A JP 2012031054A JP 2012031054 A JP2012031054 A JP 2012031054A JP 5957936 B2 JP5957936 B2 JP 5957936B2
Authority
JP
Japan
Prior art keywords
program
identification information
programmable controller
download
plc
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
JP2012031054A
Other languages
English (en)
Other versions
JP2013168031A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2012031054A priority Critical patent/JP5957936B2/ja
Publication of JP2013168031A publication Critical patent/JP2013168031A/ja
Application granted granted Critical
Publication of JP5957936B2 publication Critical patent/JP5957936B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、稼働中のプログラマブルコントローラの動作を停止しないでプログラム更新を行える支援装置等に関する。
プログラマブルコントローラ(PLC)に関して、一旦、稼働を開始したら、例えば基本的に定期点検時等以外は停止できない状況で運用されている場合がある。一方、PLCのプログラムは、例えばバージョンアップ等の理由で変更する必要が生じるケースが少なくない。この為、従来、支援装置等を用いて、PLCを稼働中でもそのプログラムを変更できるようにしていた。
PLCが稼働中に、ユーザが支援装置を利用して、PLCで動作しているプログラムを変更する場合、安全性のために、支援装置が、下記の手順でのみPLCのプログラム変更を行えるようにしている。
まず、PLCのプログラム変更は、支援装置からのオンライン更新によってのみ行える。オンライン更新する場合には、まず、支援装置をPLCに接続する。また、基本的には、支援装置側で保持しているプログラムに対してユーザが何らかの編集(修正/変更など)を行うことで、新規プログラム(更新版プログラム)が作成され、この新規プログラムをPLCにダウンロードすることで、PLCプログラムのオンライン更新が成されることになる。
(a)支援措置は、ユーザによるプログラムの変更が開始される前に、変更対象になるプログラムとPLCで動作しているプログラムとが一致していることを確認する処理を実行する(認証ステップ)。
(b)支援装置は、両プログラムが一致した場合のみ、プログラムの変更(更新)及び更新版プログラムのPLCへのダウンロードを許可する。これより、上記プログラム一致確認後、ユーザがプログラムの変更を実施し、支援装置は、更新版(バージョンアップ版等)のプログラムをコンパイルして機械語オブジェクトに変換してPLCに送信する。
尚、当然、(プログラム不一致により)上記認証ステップによる認証が失敗した状態でユーザがプログラムを変更した場合には、更新版プログラムはPLCに転送されない(ダウンロードが許可されないので)。
(c)PLCは、上記機械語オブジェクトを受信後、現在動作している機械語オブジェクトから受信した機械語オブジェクトに切り替えてプログラムを実行する。これは、例えば、実行中のプログラムのスキャンエンドに同期して、プログラムを更新/切換え等する。
しかし、上記の従来手法では、ユーザが変更した内容が即、稼働中のPLCに反映されるため、ユーザのプログラム記述に間違えがある場合、システムに重大な被害を与える可能性がある。この為、上記更新版プログラムについて、別環境(実システムとは別の検証用システム)で動作確認/動作検証を行って、この検証で不具合がないことを確認したうえで実システムに反映させるというのが実状であった。
しかしながら、別環境で正常動作することが確認された更新版プログラムを、そのまま上記支援装置からPLCにダウンロードすることはできない。上記の通り、支援装置は、当該支援装置上で上記一致確認されたプログラムに対して、編集/変更作業が行われて成る更新版プログラムのみ、PLCへのダウンロードを許可する仕組みであるからである。
この為、ユーザは、別環境で動作を確認した更新版プログラムを稼働中のPLCに反映させるため、上記別環境で検証済みの更新版プログラムを支援装置にコピーすると共に、支援装置において、変更前のプログラム(オリジナルプログラム)を開き、上記(a)の認証ステップによってPLCのプログラムと照合させて一致確認した状態にした後、手作業で、更新版プログラムの内容を上記オリジナルプログラムにコピーする等していた。これは、例えば、検証済みの更新版プログラムの内容をテキストエディタ等で参照しながら、上記オリジナルプログラムにコピーペーストする等していた。この作業が煩雑であり、作業時間の無駄が発生していた。またこの様に手作業を実施することにより人為的ミスが発生する可能性があった。
また、稼働中のPLCのプログラムを変更するためには、いくつかの制約条件がある。そこで、プログラムに対する変更が制約条件を満足していることを保障するため、支援装置は、プログラムの一致を確認した後、制約条件内の操作しかユーザに許可しないようにしている。すなわち、プログラムの一致を確認した後、ユーザがこのプログラムに対して所望の変更を行うことで更新版のプログラムを作成し、その後コンパイルが実行されるが、ユーザが制約条件外の変更を行った場合、コンパイルは成功しない。
プログラムを一意な識別情報で管理する方法として、例えば特許文献1に記載の従来技術がある。特許文献1には、プログラムの変更に伴って識別情報を更新し、この更新された識別情報を、前回データとして(プログラムをPLCに転送する際)記憶し、さらに、PLCのメモリに記憶されている識別情報と、自身が記憶した識別情報とを比較し、最終更新者を判別するPLCシステムが開示されている。このようにして他人が作成したプログラムが不用意に上書きされることを抑制している。
特開2008−282362号公報
ここで、上記のようにプログラムに対する変更が制約条件を満足していることが保障される場合であっても、このプログラムをPLCにダウンロードして更新させると、問題が生じる場合がある。
これは、稼働中のPLCに対する変更に適合したプログラムではないことが原因となる。そして、これは、上記プログラムに対する変更が制約条件を満足している場合にも起こり得る。但し、これは、制約条件を満足していることが保障されるはずであったが、実際には制約条件を満足していなかったものと言うこともできる。
換言すれば、上記従来のコンパイラの機能によってコンパイルが成功するようなプログラムであっても、稼働中のPLCに対する変更に適合したプログラムではないということが起こり得る。
また、上記特許文献1の従来技術では、最新のプログラムを管理することは可能であるが、ユーザが、稼働中のPLCに適合しない不適合プログラムを誤ってPLCに転送させるような、人為的ミスを防ぐことは考慮されていない。
本発明の課題は、PLCに接続した支援装置によりPLCが稼働中でもプログラム更新が可能であるPLCシステムにおいて、稼働中のPLCに対する変更に適合したプログラムであることを確認して更新することができるようにし、以って適合しないプログラムの転送などによる障害発生を確実に防ぐことができるプログラマブルコントローラシステム、その支援装置等を提供することである。
本発明のプログラマブルコントローラシステムは、支援装置とプログラマブルコントローラを有するプログラマブルコントローラシステムであって、前記支援装置は、ユーザに前記プログラマブルコントローラ用のプログラムを任意に作成させる手段であって、既存のプログラムを編集させることで該プログラムの更新版を作成させるプログラム作成支援手段と、該更新版のプログラムをコンパイルして機械語オブジェクトを生成するコンパイル手段と、前記コンパイル手段によるコンパイルが成功して前記機械語オブジェクトが生成される毎に、対応する一意の識別情報を生成すると共に、該生成した識別情報を前記プログラムに係る識別情報記憶部に追加登録する識別情報生成・登録手段と、ダウンロード許可される場合には、前記更新版のプログラムと対応する前記識別情報とを前記プログラマブルコントローラにダウンロードするダウンロード手段とを有し、前記プログラマブルコントローラは、前記プログラマブルコントローラ用のプログラムを記憶するプログラム記憶手段と、識別情報を記憶する識別情報記憶手段と、前記ダウンロード手段によってダウンロードされた前記更新版のプログラムと対応する前記識別情報とによって、前記プログラム記憶手段と前記識別情報記憶手段の記憶内容を更新する管理手段とを有し、前記支援装置の前記ダウンロード手段は、前記識別情報記憶手段に記憶されている識別情報を取得して、該識別情報が前記識別情報記憶部に登録されている場合にはダウンロード許可されると判定する。
そして、前記コンパイル手段は、前記機械語オブジェクト生成の際に、少なくとも既存変数のアドレスを維持する制約条件を守るように、変数のアドレス割当てを行う。
前記ダウンロード手段は、前記プログラマブルコントローラの前記プログラム記憶手段に記憶されるプログラムと、前記ダウンロード対象となる前記更新版のプログラムとの差分を抽出して一覧表示して、該差分の全部または一部をユーザに選択させて、該選択部分のみを前記プログラマブルコントローラにダウンロードする。
例えばプログラムの更新が2系統に別れて、一方の系統の更新版プログラムがプログラマブルコントローラにダウンロードされて運用されている状態で、他方の系統で最新の更新版プログラムが作成された場合、当該他方の系統の識別情報記憶部には、PLCの識別情報記憶手段に記憶されている識別情報は登録されていないので、これによってダウンロード不許可にできる。この例では、当該他方の系統の更新版プログラムでは、稼働中のPLCに対する変更に適合したプログラムであることは保障されないからである。
本発明のプログラマブルコントローラシステム、その支援装置等によれば、PLCに接続した支援装置によりPLCが稼働中でもプログラム更新が可能であるPLCシステムにおいて、稼働中のPLCに対する変更に適合したプログラムであることを確認して更新することができるようにし、以って適合しないプログラムの転送などによる障害発生を確実に防ぐことができる。
本例のPLCシステムの構成図である。 識別情報管理テーブルの一例である。 制約条件に係る従来の課題と本手法による課題解決について説明する為の図である。 プログラム編集とコンパイル時の処理フローチャート図である。 ダウンロード時の処理フローチャート図である。
以下、図面を参照した本発明の実施の形態について説明する。
図1は、本例のPLC(プログラマブルコントローラ)システムの構成図である。
本システムは、パソコン等のコンピュータ上で動作する支援装置10が、PLC(プログラマブルコントローラ)20と接続されて、相互にデータ送受信可能な構成となっている。尚、図示は省略するが、PLC20には何らかの制御対象機器が接続されている。
支援装置10は、ユーザインターフェース機能部11、コンパイラ部12、識別情報生成部13、識別情報管理部14等の各種機能部を有する。支援装置10は、不図示のCPU/MPU等の演算プロセッサや、ハードディスク、メモリ等の記憶装置も有しており、記憶装置には予め所定のアプリケーションプログラムが記憶されている。上記各種機能部の後述する処理機能は、上記不図示の演算プロセッサが、このアプリケーションプログラムを読出し・実行することにより実現される。
尚、本説明において単にプログラムと記した場合には、それは基本的にはPLC用プログラム(制御プログラム)を意味するものとする。
また、支援装置10は、ディスプレイ画面や入力装置等も有している。
上記ユーザインターフェース機能部11は、ユーザが所望のPLC用プログラムを作成するのを支援する機能を有する。この機能自体は、従来からよく知られたものであるので、ここでは特に説明しないが、概略的には、ユーザインターフェース機能部11は、ディスプレイに不図示の所定の編集用画面を表示して、この編集用画面上でユーザに所望のPLC用プログラムを作成させる。ユーザは、キーボード、マウス等の入力装置を操作して、任意のプログラムのソースコード16を作成する。作成されたプログラム・ソースコード16は、上記不図示の記憶装置等に記憶される。
コンパイラ部12は、上記ユーザが作成したソースコード16を、ターゲット(PLC20)上で動作する機械語オブジェクト17に変換する。コンパイラ部12は、この変換(コンパイル)の際に各変数に対するアドレス割当てを行うが、例えば後述する「既存変数のアドレスを固定する」という制約条件を満足すると見做せるようなアドレス割当てを行う。もし、この様な制約条件を満足することができない場合には、コンパイル失敗となる。
上記機械語オブジェクト17は、通信機能部15によってPLC20にダウンロードされる。但し、その前に、従来で説明したように、別環境(実システムとは別の検証用システム)で更新版プログラムの動作確認/動作検証を行って、検証OKである場合に更新版プログラム(その機械語オブジェクト17)をPLC20にダウンロードすることが望ましい。本手法では、従来のような変更対象になるプログラムとPLCのプログラムとが一致していることを確認する処理(認証ステップ)が無いので、問題なくダウンロードできる。
上記PLC用プログラムの作成は、基本的には、既存のプログラムの更新版(バージョンアップ版等)を作成するものである。この様な場合、ユーザは、上記ユーザインターフェース機能部11の機能により、上記記憶されているソースコード16のファイルを開いて、所望の変更を行う。この様な、変更/更新版のプログラムは、上記コンパイラ部12でコンパイルされて機械語オブジェクト17に変換されて(例えば別環境での動作確認/動作検証を行った後)上記通信機能部15によって不図示の通信線を介してPLC20にダウンロードされる。
ここまで説明した処理機能は、従来より存在する支援装置の既存の処理機能と略同様と見做しても構わない(但し、上記の通り、プログラムの一致する処理(認証ステップ)が無くなっている)。本手法による支援装置10では、更に下記の処理機能を有する。
まず、上記コンパイル部12は、コンパイルが成功する毎に、識別情報生成部13の機能を利用して、一意になるデータとしての識別情報18を生成させる。この識別情報18は、識別情報管理部14で管理する。識別情報18は、例えば後述する識別情報管理テーブル30に格納され管理される。また、上記通信機能部15は、上記機械語オブジェクト17をPLC20にダウンロードする際、これに対応して生成された識別情報18を付してダウンロードする。
ここで、上記一意になるデータとは、本支援装置10内に限ったものではなく、他の全ての支援装置10も含めた話である。例えば、仮に、支援装置A、支援装置B、支援装置Cの3台の支援装置10があった場合、支援装置Aにおいてある時点で作成された識別情報18を仮に識別情報αとするならば、その後もこの支援装置Aにおいてコンパイル成功毎に識別情報18が生成されるが、識別情報αが生成されることはない。更に、本手法では、支援装置Bと支援装置Cにおいても、識別情報αが生成されることはない。これは、上記“ある時点”以降という意味ではなく、“ある時点”以前であっても識別情報αが生成されることはない。
この様な識別情報18の生成処理については、後に具体例を挙げて説明するが、識別情報生成部13は、例えば、日付、時刻、PC固有の情報などを用いて、一意になる情報を生成する。
識別情報管理部14は、識別情報生成部13が生成した識別情報18の世代管理を行う。例えば、図2に示す識別情報管理テーブル30で識別情報18を管理する。
図2に示す識別情報管理テーブル30は、世代31と識別情報32より成る。
識別情報32には、上記識別情報生成部13で生成された識別情報18が格納される。世代31は、新たな識別情報18が識別情報32に格納される毎に、当該識別情報32に対して割当てられる世代管理用の番号であり、本例では図示のように、初期値を‘1’とし、新規レコード追加毎に+1インクリメントされるものとする。
ここで、上記“コンパイル成功する毎に識別情報18を生成”とは、“新たなプログラム(更新版)作成毎に識別情報18を生成”を意味するものと見做してもよい。この場合、図2において世代31の番号が最も小さい(‘1’の)識別情報32が、最も古い(初版の)プログラムに対応して生成された識別情報18であり、世代31の番号が最も大きい(‘3’の)識別情報32が、最新版のプログラムに対応して生成された識別情報18を意味することになる。そして、仮に図2に示す状態で新たな識別情報18が生成されて識別情報管理テーブル30に格納される場合には、その世代31の番号は‘4’となることになる。
また、図1のPLC20の構成について簡単に説明するならば、PLC20は通信機能部21、プログラム実行管理機能部22等の各種機能部を有する。ここで、PLC20は、不図示のCPU/MPU等の演算プロセッサや、メモリ等の不図示の記憶装置も有しており、記憶装置には予め所定のアプリケーションプログラムが記憶されている。上記各種機能部の後述する処理機能は、上記不図示の演算プロセッサが、このアプリケーションプログラムを読出し・実行することにより実現される。
また、上記不図示の記憶装置には、識別情報23や機械語オブジェクト24等が記憶される。PLC20は、機械語オブジェクト24を実行することで、例えば不図示の制御対象機器の制御等を行う。また、本例では、機械語オブジェクト24の更新は、PLC20を停止することなく稼働中に行うことを前提とする。
通信機能部21は、上記支援装置10と上記不図示の通信線を介してデータ送受信等を行う機能部であり、特に上記通信機能部15から上記識別情報18付きの機械語オブジェクト17がダウンロードされてくると、この識別情報18を新たな識別情報23として上書き記憶すると共に、この機械語オブジェクト17を新たな機械語オブジェクト24として上記不図示の記憶装置等に記憶する。但し、機械語オブジェクトは上書き記憶ではなく、従って少なくともこの段階では既存の機械語オブジェクト24はそのまま残っている。運用中であるので既存の機械語オブジェクト24は実行中であり、その後、所定のタイミングで新たな機械語オブジェクト24の実行に切り換える。尚、この様な機械語オブジェクト24の実行の新旧切換えを含めた機械語オブジェクト24の実行管理は、上記プログラム実行管理機能部22が行う。既存の機械語オブジェクト24は、新旧切換えが完了したら削除するようにしてもよい。
ここで、PLC20が稼働中にそのプログラム(機械語オブジェクト24)の変更を実施するためには、既に述べたように制約条件が存在する。制約条件の一つに「既存変数のアドレスを固定(維持)する」がある。そのため、既存変数のアドレスを固定にするためのコンパイル指定が継続している必要がある。
図3は、この様な制約条件に係る従来の課題と本手法による課題解決について説明する為の図である。
但し、ここでは、図3の説明を行う前に、上記「既存変数のアドレスを固定(維持)する」条件を満たすためのコンパイラ12の機能について説明する。
これは、例えば本出願人による先願(特願2011−100991号)で提案した機能をコンパイラ12に備えさせればよいが、この例に限らず、例えば当該先願において背景技術として説明した従来技術を用いても良い。ここでは、この従来技術について説明する。
上記先願の背景技術に記載の通り、PLCが稼動中にそのプログラムを変更する場合は(プログラムのバージョンアップ等)、既に割り付けた変数(既存の変数というものとする)のアドレスを変更することができない(変数の割当位置が変化すると、変更前と変更後とで変数の値がプログラムで正常に扱えないため、誤動作する。;変数のアドレスが変更されることにより、アドレスの変更前と変更後とでデータを引き継ぐことができない)。
そのため、従来技術では、変数を追加しても既存の変数のアドレスが変更されないようにするために予備領域を設けておき、追加した変数(追加変数というものとする)をこの予備領域に割り付けるようにしている。予備領域に追加変数を割り付けることにより、既に割り付けた変数(既存の変数)の割当位置を変更しないで、変数の追加が可能になる。勿論、既存の変数の割当位置(アドレス)は記録しておく必要がある。
例えば初版プログラムでは変数A、変数Bがあり、変数Aは1000番地、変数Bは1001番地を割当てたとした場合、これら変数の割当位置(アドレス)を記憶しておく。また、予備領域として例えば1002番地、1003番地を確保しておく。
その後、ユーザが上記初版プログラムを変更等して作成した第2版プログラムでは、新たな変数Cが追加されたとする。この場合、コンパイラは、まず各変数が記憶されているか否かを判定し、この例では変数A,変数Bは記憶されているが、変数Cは記憶されていない。よって、変数A,変数Bは記憶内容に従って1000番地、1001番地を割当て、変数Cは上記予備領域(例えば1002番地)を割当てる。
あるいは、上記第2版プログラムが、仮に上記変数Cの追加だけでなく、変数Bの削除が行われたものとする。この場合、変数Aは記憶されているが、変数Cは記憶されていない。よって、変数Aは記憶内容に従って1000番地を割当て、変数Cは上記予備領域(例えば1002番地)を割当てる。
但し、ユーザが、予備領域の数を越えるような変数の追加を伴うプログラムの変更を実施すると、既存の変数のアドレス(割当位置)を変更する必要があり、既存変数のアドレスが変更されると上記の通り正常なデータ引き継ぎができなくなる。この為、PLCの動作を継続しながらプログラムを変更すること(オンライン変更)はできなくなる。
これに対して、先願では予備領域では足りないような変数の追加があった場合でも対応可能とするものであり、上記「既存変数のアドレスを固定(維持)する」条件を満たすための機能自体は上記従来技術と略同様であってよいので、よって、ここでは特に先願については説明しない。
図3において、まず、識別情報管理テーブル30の具体例について説明する。この例では、識別情報32は、簡単の為、DID1、DID2、・・・DID10等としている。また、DID1が第1世代(世代31が‘1’)、DID2が第2世代、DID10が第10世代であり、この時点ではDID10が最新版のプログラムに対応する識別情報となっている。尚、以下、例えばDID10に対応するプログラムは、プログラムDID10等と記す場合があるものとする。
そして、例えば、初版のプログラムDID1は、変数A,変数Bを有しており、コンパイラ部12によるコンパイルの際にこれら各変数に任意のアドレス(1000番地、1001番地)が割当てられたものとする。これより、図示のように、PLC20側において、変数Aは1000番地、変数Bには1001番地が割り付けられる。
その後、プログラムDID1をベースにしてプログラムDID2を作成し、更にその後、プログラムDID2をベースにしてプログラムDID3を作成するというようにして、世代更新を10世代目のプログラムDID10まで重ねたとする。更に、何れに世代でも上記変数A,Bに関しては変更はなかったものとする。この場合、コンパイラ部12は、プログラムDID2〜プログラムDID10までの全てに関して、そのコンパイルの際に上記初版のプログラムDID1と同じく、変数Aには1000番地、変数Bには1001番地を割当てるようにする。これは、上記制約条件の1つである「既存変数のアドレスを固定(維持)する」を満たすようにするための処理である。
尚、当然、変数のアドレスを再配置するコンパイルを実施する場合には、変数のアドレス固定では無くなるため、制約条件が満足されない。例えば、変数Aに1001番地、変数Bには1000番地が割当てられた場合、例えば変数Aの現在値を読み出すはずが、実際には変数Bの現在値を読み出して、これに基づいて値を更新することになるので、正常な動作とならない可能性が高い。
一方、コンパイラ部12が上記制約条件の1つである「既存変数のアドレスを固定(維持)する」を満たすようにする処理を行うことで、変数のアドレス固定が継続される場合であっても、バックアップなどでプログラムをコピーした場合、別々にユーザがプログラム変更する可能性が存在する。
すなわち、上記の状況において、あるユーザAがプログラムDID10をベースにして新たな更新版プログラム(プログラムDID11とする)を作成したが、例えば同時期に別のユーザがプログラムDID10をコピーして、このプログラムDID10のコピーをベースにして新たな更新版プログラム(プログラムDID12とする)を作成したものとする。つまり、プログラムDID10までは1系統の更新であったが、2系統に分かれたものとする。
この場合、PLCが稼動中に安全にプログラムの変更を実施するためには、プログラムの最新の管理ではなく、制約条件の継続性の検査が重要になる。
すなわち、例えば図3に示すように、プログラムDID11では新たな変数Cが追加され、プログラムDID12では別の新たな変数Dが追加されたものとする。そして、プログラムDID11の方が先にコンパイルされてPLC20にダウンロードされたものとする。
この場合、各変数のアドレス割当ては、変数A,Bは固定(維持/継続)であるので上記の通り1000番地、1001番地となるが、変数Cは新たに割当てられることになり例えば1002番地が割当てられることになる。そして、この様な変数割り当てが成された機械語オブジェクト17がPLC20にダウンロードされて稼働中に新旧切換えて実行されることになる。
その後、プログラムDID12をコンパイルすると、変数のアドレス割当ては、変数A,Bは当然1000番地、1001番地となり、変数Dは例えば1002番地が割当てられることになる。しかしながら、既に、PLC20側では1002番地には変数Cが割当てられて稼働しているので、プログラムDID12の機械語オブジェクトをPLC20に転送して切換えさせると、正常に引き継がれず、正常に動作しない可能性が高いことになる。
あるいは、例えば、プログラムDID11では変数C、変数Dがこの順番で追加されてコンパイルした結果、例えば変数Cは1002番地、変数Dは1003番地に割り付けられたものとする。このプログラムをPLC20に転送して切換えさせた後に、プログラムDID12のコンパイルとPLC20へのダウンロードが行われたとする。例えば、プログラムDID12では変数D→変数Cの順番で追加されたとする。これをコンパイラ部12でコンパイルした結果、例えば変数Cは1003番地、変数Dは1002番地に割り付けられたものとする。よって、この様なプログラムDID12(その機械語)をPLC20に転送して稼働中に切換えさせた場合も、正常に継続されず、PLC20が正常に動作しない可能性が高いことになる。
上述したように、プログラムをコピーしただけであれば制約条件が満たされるが、その後、別々に変更すると制約条件の満たされなくなる(継続性がなくなる)可能性がある。換言すれば、プログラムのコンパイル成功した場合でも、つまり制約条件を満足していると見做される場合であっても、そのプログラムが稼働中のPLC20に対する変更に適合したプログラムであることが保障されるわけではない。稼働中のPLC20に対する変更に適合したプログラムであることが保障されない場合、PLC20が正常に動作しない可能性があるので、プログラムDID12(その機械語)をPLC20にダウンロードできないようにする必要ある。
その為に、本手法では、上記識別情報18を生成すると共に、テーブル30に記憶して世代管理している。そして、これらの情報を利用して例えば後述するフローチャート図の処理を行うことで、例えば上記の例の場合、プログラムDID12(その機械語)をPLC20にダウンロードできないようにすることができる。
このフローチャート図については後に説明するものとし、ここでは図3を参照して概略的に説明する。
まず、上記コンパイラ部12によるプログラムDID11のコンパイル完了時、PLC20の状態は、上記機械語オブジェクト24としてプログラムDID10(その機械語)を記憶・実行しており、上記識別情報23として‘DID10’が記憶されている。一方、支援装置10の状態は、上記テーブル30に、DID1、DID2、・・・DID9、DID10、DID11が記憶されている。この状態においてプログラムDID11のダウンロードが指示された場合、支援装置10は、上記識別情報23(DID10)を取得して、これと同一の識別情報がテーブル30に記憶されているか否かを判定し、記憶されている場合のみダウンロードを許可する。
この場合、上記の通りテーブル30にはDID10が記憶されているので、ダウンロードが許可される。その結果、PLC20の状態は、上記機械語オブジェクト24としてプログラムDID11(その機械語)を記憶・実行しており、上記識別情報23として‘DID11’が記憶されている。
その後、例えば別の支援装置(10’と記すものとする)で上記プログラムDID12が作成され、コンパイラ部12によるプログラムDID12のコンパイルが行われ、コンパイル成功して機械語が生成されたとする。
尚、上記プログラムDID10のコピーの際に、上記テーブル30もコピーされているものとする(テーブル30’とする)。もしテーブル30’が無ければ上記識別情報23によるチェック処理自体が実行できないことになり、結局、ダウンロードできないことになる。
上記プログラムDID12のコンパイル完了時、上記テーブル30’には、DID1、DID2、・・・、DID9、DID10、DID12が記憶されていることになる。この状態においてプログラムDID12のダウンロードが指示された場合、支援装置10’は、上記支援装置10と同様、上記識別情報23(このとき、上記の通り“DID11”となっている)を取得して、これと同一の識別情報がテーブル30’に記憶されているか否かを判定し、記憶されている場合のみダウンロードを許可する。
ここで、この場合、識別情報23(DID11)と同一の識別情報は、テーブル30’内に存在しないことになるので、ダウンロードは許可されないことになる。このようにして、上記制約条件の1つである「既存変数のアドレスを固定(維持)する」を満たしつつ、PLC20の稼働中にPLCプログラムを更新しても、PLC20の動作に異常が生じることがないようにできる。
尚、上記PLC20には未だプログラムDID10(その機械語)が記憶・実行されている状態で、支援装置10’からプログラムDID12をダウンロードすることは、許可されることになる。この場合、その後に支援装置10からプログラムDID11をダウンロードしようとすると、不許可になる。
また尚、例えば仮に、上記PLC20には未だプログラムDID10(その機械語)が記憶・実行されている状態で、上記支援装置10において上記プログラムDID11のコンパイル完了後、この機械語をPLC20にダウンロードせずに、更にプログラムDID11をベースにした更新版プログラム(プログラムDID13とする)が作成されたとする。
これは、例えば、プログラムDID10は変数A,変数Bを有しており、プログラムDID11では変数Cを追加したが、コンパイル後にユーザが更に変数Dを追加する必要性を感じた為、プログラムDID13において更に変数Dを追加した場合等が考えられる。この場合、上記テーブル30には、DID1、DID2、・・・、DID9、DID10、DID11、DID13が記憶されていることになる。そして、PLC20側にはDID10が保持されているので、DID10がテーブル30にあることを以ってダウンロード許可されることになる。これより、プログラムDID13がPLC20にダウンロードされて更新されることになる。
この場合、1世代分抜かされて(プログラムDID11が抜かされて)更新されることになるが、特に問題が生じるようなことはない。例えば上記の例において、プログラムDID10のコンパイル時には変数A,変数Bが、1000番地、1001番地に割当てられているものとする。その後、プログラムDID11のコンパイル時には変数A,変数Bの1000番地、1001番地への割当てが維持されると共に、変数Cに対しては例えば1002番地が割り当てられる。その後、プログラムDID13のコンパイル時には変数A,変数B、変数Cの1000番地、1001番地、1002番地への割当てが維持されると共に、変数Dに対しては例えば1003番地が割り当てられる。
従って、PLC20にプログラムDID10が保持・実行されている状態で、プログラムDID13をダウンロードして更新しても、変数A,変数Bのアドレス割当てが変わるわけではなく、動作に問題が生じることはない。
上記の例では、ダウンロード対象のプログラムDID13は、PLC20で保持・実行されているプログラムDID10(マスタプログラム)の次の世代ではないが(換言すればマスタプログラムを直接ベースにして作成されたものではないが)、マスタプログラムが基になった派生プログラム(世代管理されたプログラム)であると言える。この様な場合、上記のようにダウンロードしても特に問題ないので、ダウンロード許可される。
この様に、ダウンロード対象のプログラムが、現在のマスタプログラムが基になった派生プログラムであるか否かをチェックする為に、本手法では上記のように識別情報23と識別情報18群(テーブル30)を用いている。
ここで、例えば、パソコンに搭載されるOSやワープロソフト等のプログラムにおいては、その更新プログラムはメーカが作ったものが標準であり、世の中に1つしかないものである。従って、プログラムの更新作業は、メーカーが作った更新プログラムを一方的にインストールすれば、何等問題なくその更新が完結されることになる。
これに対して、PLCシステムでは、個々の顧客の要求仕様が違うため、一律の機能を提供すればよいというものではなく、顧客毎に違った機能(アプリケーション)を提供する必要がある。このアプリケーションを更新するには、そのときにそのPLCシステムが実際に実行しているプログラムに対して互換性(派生)を保ったプログラムを、PLCにダウンロードして更新させる必要がある(その個々の機能や既存の変数のアドレス割当てを継承する必要がある)。
この為、ダウンロード対象のプログラムが、PLC20に保持されたプログラム(マスタプログラムというものとする)が基になった派生プログラム(世代管理されたプログラム)であることを確認する必要がある。これを実現するために、上記のように一意の識別情報を用いたチェック処理を行うものである。
上述したように、従来では上記(a)の認証ステップによる確認を行っていたのに対して、本手法では、PLCに保持されたマスタプログラムが基となった派生プログラム(世代管理されたプログラム)であることを確認するようにしたことを特徴としている。すなわち、マスタプログラムを基に世代管理されたプログラムであれば、稼働中のPLCに対する変更に適合したプログラムであると見做すようにしている。世代管理されたプログラムであることを確認する為に、上記一意の識別情報18を用いて識別情報管理テーブル30で管理する構成としている。
尚、後述するフローチャートの処理では、上述した特徴に加えて、更に差分ダウンロードを行う処理となっているが、差分ダウンロードは必須ではない。尚、差分ダウンロードとは、例えば上記プログラムDID11(その機械語)をダウンロードする場合には、プログラムDID11においてプログラムDID10とは異なる部分だけをダウンロードするものである。
また、尚、支援装置10が、最初にPLC20にプログラムをダウンロードする場合は、PLC20を停止して、通信機能を利用してPLC20にプログラムとその識別情報をダウンロードする。その後、PLC20を稼動状態にする。これは、初期状態では、未だPLC20にプログラムが格納されておらず、よって識別情報も格納されていない状態となっており、本手法を適用できない(ダウンロードが許可されない)為であり、PLC20を停止してプログラム等をダウンロードするようにしている(稼働中ではないので問題ない)。
以上説明した処理の具体的処理例を、図4、図5のフローチャート図に示す。
以下、図4、図5のフローチャート図について説明する。
図4は、プログラム編集(更新)とコンパイル時の処理を示す。
図4において、ユーザは、支援装置10において、任意のソースプログラム(ソースコード16)を作成する。これは、基本的には、既存のソースプログラムに基づいて何らかの所望の変更を行うことで作成される。そして、ユーザが、作成したソースコード16のコンパイルを指示することで、コンパイラ部12が当該ソースコード16のコンパイルを実行する(ステップS11)。そして、コンパイル成功して(ステップS12、YES)機械語オブジェクト17が生成されたら、識別情報生成部13が、生成された機械語オブジェクト17に対応付ける一意の識別情報18を生成する(ステップS13)。
上記コンパイルは、制約条件を満たさない場合は、成功しない。これは、例えば上記先願の背景技術として説明した従来技術において、例えば上記「予備領域では足りないような変数の追加があった場合」には、上記「既存変数のアドレスを固定(維持)する」条件を満たさなくなるので、実質的にコンパイル失敗となる。
従って、ステップS12がYESになる場合には、制約条件を満足するはずの機械語オブジェクト17が生成されることになり、識別情報18はこの様な機械語オブジェクト17に対してのみ生成されてテーブル30に登録・管理されることになる。但し、この様な機械語オブジェクト17をPLC20にダウンロードして実行させても動作異常が生じる可能性がある(理由は既に述べた)。この為、本手法では、識別情報を用いてダウンロード許可の判定を行う。例えば後述する図5の処理でテーブル30を参照してダウンロード許可された場合、ダウンロードされる機械語オブジェクト17は、制約条件(特に、既存変数のアドレスを固定(維持)すること)を満足することが保障されたものとなる。これについては詳しくは後述する。
識別情報18は、例えば、現在日時情報とプログラムの識別情報と支援装置10の識別情報とを用いて生成されるものであり(但し、この例に限らない)、その生成元の支援装置10だけでなく他の支援装置10であってもこれと同一の識別情報が生成されることはない一意な識別情報である。
ここで、この識別情報18生成について、具体例を挙げて説明する。
例えば、「識別情報18=Mac+PJ+日時」
によって、識別情報18を生成する。上記Macは支援装置10のMACアドレスである。但し、この例に限らず、各支援装置10を一意に識別できる情報であれば何でも良く、例えば製造番号等であってもよい。上記PJは、プロジェクトファイル名である。つまり、プログラムをプロジェクト単位で管理している場合におけるプロジェクトファイルの名称であるが、フォルダ名などであってもよい。勿論、PJの代わりに例えばプログラムファイル名等を用いてもよい。尚、“プロジェクト”は、例えばIEC61131-3で定義されているが、この定義に限るものではない。例えば、一般的にも、複数のPOU(プログラム)とそれに付随する設定情報が、プロジェクトの情報としてパソコン等に保存される。
あるいは、プロジェクトは、フォルダ単位で管理されるものであり、フォルダ内にはこのプロジェクトに係る各種ファイル(プログラムファイルや設定情報ファイル等)が格納されるものであって、上記識別情報管理テーブル30もファイルの1つとして格納されるものであってもよい。
上記日時は、例えば、西暦2011年12月26日14時27分35.078秒等というように、年月日時分秒(秒は1/100秒)のレベルで示されるものとする。このレベルであれば、支援装置10が、全く同じ日時に複数の識別情報18を生成するのは困難であり、他の支援装置10では全く同じ日時に識別情報18を生成することは可能であっても今度はMacが異なることになる。従って、例えば上記のように生成される識別番号18は、必ず一意のものになると見做してよいと言える。
識別情報管理部14は、上記ステップS13で生成された識別情報18を、最新の世代として識別情報管理テーブル30に記憶する(ステップS14)。これは、例えば、テーブル30における現在の最新の世代31に対して+1インクリメントして世代数を1つ増加させ、当該新たな最新の世代数と、上記生成された識別情報18とを、識別情報管理テーブル30の新規レコードの世代31と識別情報32に格納する。
次に、図5のダウンロード処理について説明する。
PLC20が稼働中にそのプログラムを更新させる為に新たなプログラム(更新版プログラム)を支援装置10からPLC20へダウンロードする場合、本手法では支援装置10が、上記識別情報管理テーブル30等を用いて、ダウンロードを許可するか否かを判定する。
すなわち、ユーザ等が支援装置10をPLC20に接続すると、オンラインモード開始となり、支援装置10はまずPLC20から当該PLC20が保持している識別情報23を取得する(ステップS21)。尚、既に述べたように、識別情報23は、PLC20が現在、保持・実行している機械語オブジェクト24に対応する識別情報である。
支援装置10は、続いて、上記取得した識別情報23が、識別情報管理テーブル30内に存在するか否かを判定する。すなわち、識別情報管理テーブル30の各識別情報32のなかに、識別情報23と同一の識別情報が存在するか否かをチェックする(ステップS22)。
もし、識別情報管理テーブル30内に識別情報23と一致するものが存在しない場合には(ステップS22,NO)、ダウンロードは不許可となり、例えば「ダウンロードを実施できない」旨のメッセージを表示する等して(ステップS26)、本処理を終了する。
一方、識別情報管理テーブル30内に識別情報23と一致するものが存在する場合には(ステップS22,YES)、ダウンロードを許可するものと判定し、本例では差分のみをダウンロードするので、まず差分部分を求める。
すなわち、PLC20内のプログラムとの照合処理を実施し、相互に異なる部分をPLCに送信する。これは、例えば、プログラムが複数のPOU(あるいはプログラムファイル等)から成るものである場合には、支援装置10の上記変更版プログラム17を構成する各POUと、PLC20に保持され動作しているプログラム24の各POUとを比較照合して(POUの内容を比較照合して)、完全に一致しない場合には不一致と判定し、“不一致となるPOU”(差分)を全て抽出して一覧表示する(ステップS23)。尚、POUとは、プログラム構成単位を意味し、例えばPG(プログラム)、FB(ファンクションブロック)、FCT(ファンクション)等の種類があるが、この例に限らない。
その後、この差分一覧表示を参照したユーザが、そのなかからダウンロードすべきPOUを任意に選択指定して(勿論、全てを選択してもよい)差分ダウンロード開始指示を出すと(ステップS24,YES)、支援装置10は、上記“不一致となるPOU”(差分)であってユーザ指定されたPOU全てを、PLC20にダウンロードする(ステップS25)。尚、ユーザがダウンロードをキャンセル等した場合には(ステップS24,NO)、ダウンロードすることなく本処理を終了する。
尚、上記ステップS22の判定がYESの場合であっても、当該一致確認した識別情報が最新の場合は、ステップS23以降の処理を実行しないようにしてもよい。PLC20の識別情報23と最新プログラムの識別情報が一致した場合、当該最新プログラムが既にPLC20にダウンロードされていることを意味するので、同じプログラムを再度ダウンロードする必要が無いからである。尚、本例ではその世代番号(世代31)が一番大きい識別情報32が、最新となる(最新のプログラムに対応するものとなる)。その為に、識別情報32だけでなく世代31の情報も生成して格納している。
上記のことから、例えば、ステップS22の判定がYESの場合、識別情報23に対応する世代も、この世代が最新の世代(世代31として登録されている各世代のうち最大)であるか否かも、識別情報管理テーブル30を参照すれば分かるので、識別情報23に対応する世代が最新の世代である場合にはステップS23以降の処理を実行せずに本処理を終了し、最新の世代ではない場合にはステップS23以降の処理を実行する。
尚、本処理例では、差分のなかからユーザが任意に選択した一部のみをダウンロードするが、この例に限らず、差分全てを強制的にダウンロードすることで、PLC20の保持プログラムを、最新版へと更新させるようにしてもよい。尚、基本的に、PLC20には最新版のプログラムを保持させる必要がある(そうしないと、支援装置10側でのモニタ処理に支障がでる)。
上記のように、世代管理することで、PLC20側に既に最新プログラムがある場合には、無意味なダウンロード処理が実行されずに済み、ユーザは直ちにモニタを行えるようになる。
尚、上記ソースコード16や機械語オブジェクト17、24等のプログラマブルコントローラにおいて実行させるPLC用プログラム(制御プログラム)は、プロジェクト(プロジェクトファイルまたはプロジェクトデータ等)単位で管理・実行される場合がある。プロジェクトは、例えば、複数のPOU(Program Organization Unit)すなわちPOU群などで構成される。POU群は、ユーザの作成したプログラムを構成する要素全てであり、例えばファンクションやファンクションブロックなどの実行コード等から構成される。
これより、支援装置10は、プロジェクト単位でユーザが記述したプログラムや各種設定を管理するものであってもよい。プロジェクトには、複数のプログラム(POU群等)や各種設定情報などが含まれる。本手法は、制約条件の継続性の確認を、プログラム単位だけでなく、プロジェクト単位でも実施可能である。
稼働中のPLCのプログラムを変更するためには、いくつかの制約条件がある。そこで、プログラムに対する変更が制約条件を満足してあることを保障するため、支援装置は、プログラムの一致を確認した後、制約条件内の操作しかユーザに許可しないようにしている(但し、既に述べたように、必ずしも制約条件を満足していることが保障されるわけではない)。これは、既に従来で述べたコンパイラの機能によるものであり、制約条件を満足しない変更が行われたプログラムは、コンパイル成功しないことになる。しかしながら、コンパイル成功した場合でも、つまり制約条件を満足していることは保障されると見做される場合であっても、稼働中のPLCに対する変更に適合したプログラムであること(本当に制約条件を満足していること)が保障されるわけではない。
例えばプログラムの更新が2系統に別れて、一方の系統の更新版プログラムがプログラマブルコントローラにダウンロードされて運用されている状態で、他方の系統で最新の更新版プログラムが作成された場合、当該他方の系統の更新版プログラムでは、稼働中のPLC20に対する変更に適合したプログラムであることは保障されない。本手法によれば、当該他方の系統の識別情報管理テーブル30には、PLC20の現在の識別情報23は登録されていないので、これによってダウンロード不許可にできる。
これに対して、上述した本手法によれば、変更・更新されたプログラムが、稼働中のPLCに対する変更に適合したプログラムであることを確認して更新することができるため、例えば、システムに適合しないプログラムの転送などによる人為的ミスを確実に防ぐことができる高信頼なプログラマブルコントローラシステムを提供することができる。
換言すれば、本例の支援装置は、制約条件内でプログラム変更の継続性を、識別情報を管理することにより保証し、ユーザの手作業による更新版プログラムの反映を行う必要なく、支援装置が変更されたプログラムをPLCに転送することにより、人為的ミスの防止、作業時間の低減が可能である。
10 支援装置
11 ユーザインターフェース機能部
12 コンパイラ部
13 識別情報生成部
14 識別情報管理部
15 通信機能部
16 ソースコード
17 機械語オブジェクト
18 識別情報
20 PLC
21 通信機能部
22 プログラム実行管理機能部
23 識別情報
24 機械語オブジェクト
30 識別情報管理テーブル
31 世代
32 識別情報

Claims (6)

  1. 支援装置とプログラマブルコントローラを有するプログラマブルコントローラシステムであって、
    前記支援装置は、
    ユーザに前記プログラマブルコントローラ用のプログラムを任意に作成させる手段であって、既存のプログラムを編集させることで該プログラムの更新版を作成させるプログラム作成支援手段と、
    該更新版のプログラムをコンパイルして機械語オブジェクトを生成するコンパイル手段と、
    前記コンパイル手段によって前記機械語オブジェクトが生成される毎に、対応する一意の識別情報を生成すると共に、該生成した識別情報を前記プログラムに係る識別情報記憶部に追加登録する識別情報生成・登録手段と、
    ダウンロード許可される場合には、前記更新版のプログラムと対応する前記識別情報とを前記プログラマブルコントローラにダウンロードするダウンロード手段とを有し、
    前記コンパイル手段は、前記機械語オブジェクト生成の際に、少なくとも既存変数のアドレスを維持する制約条件を守るように、変数のアドレス割当てを行い、
    前記ダウンロード手段は、前記プログラマブルコントローラの前記プログラム記憶手段に記憶されるプログラムと、前記ダウンロード対象となる前記更新版のプログラムとの差分を抽出して一覧表示して、該差分の全部または一部をユーザに選択させて、該選択部分のみを前記プログラマブルコントローラにダウンロードし、
    前記プログラマブルコントローラは、
    前記プログラマブルコントローラ用のプログラムを記憶するプログラム記憶手段と、
    識別情報を記憶する識別情報記憶手段と、
    前記ダウンロード手段によってダウンロードされた前記更新版のプログラムと対応する前記識別情報とによって、前記プログラム記憶手段と前記識別情報記憶手段の記憶内容を更新する管理手段とを有し、
    前記支援装置の前記ダウンロード手段は、前記識別情報記憶手段に記憶されている識別情報を取得して、該識別情報が前記識別情報記憶部に登録されている場合にはダウンロード許可されると判定することを特徴とするプログラマブルコントローラシステム。
  2. 前記識別情報は、該生成元の支援装置だけでなく他の支援装置であってもこれと同一の識別情報が生成されることはない一意な識別情報であることを特徴とする請求項1記載のプログラマブルコントローラシステム。
  3. 前記識別情報は、現在日時情報と前記プログラムの識別情報と前記支援装置の識別情報とを用いて生成されることを特徴とする請求項記載のプログラマブルコントローラシステム。
  4. 識別情報生成・登録手段は、前記生成した識別情報に対応する世代情報を生成して、該識別情報に該世代情報を対応付けて前記識別情報記憶部に追加登録することを特徴とする請求項1〜の何れかに記載のプログラマブルコントローラシステム。
  5. 支援装置とプログラマブルコントローラを有するプログラマブルコントローラシステムの該支援装置であって、
    ユーザに前記プログラマブルコントローラ用のプログラムを任意に作成させる手段であって、既存のプログラムを編集させることで該プログラムの更新版を作成させるプログラム作成支援手段と、
    該更新版のプログラムをコンパイルして機械語オブジェクトを生成するコンパイル手段と、
    前記コンパイル手段によって前記機械語オブジェクトが生成される毎に、対応する一意の識別情報を生成すると共に、該生成した識別情報を前記プログラムに係る識別情報記憶部に追加登録する識別情報生成・登録手段と、
    ダウンロード許可される場合には、前記更新版のプログラムと対応する前記識別情報とを前記プログラマブルコントローラにダウンロードするダウンロード手段とを有し、
    前記ダウンロード手段は、前記プログラマブルコントローラに記憶されている、該プログラマブルコントローラが保持・実行しているプログラムに対応する識別情報を取得して、該取得した識別情報が前記識別情報記憶部に登録されている場合にはダウンロード許可されると判定し、
    前記コンパイル手段は、前記機械語オブジェクト生成の際に、少なくとも既存変数のアドレスを維持する制約条件を守るように、変数のアドレス割当てを行い、
    前記ダウンロード手段は、前記プログラマブルコントローラの前記プログラム記憶手段に記憶されるプログラムと、前記ダウンロード対象となる前記更新版のプログラムとの差分を抽出して一覧表示して、該差分の全部または一部をユーザに選択させて、該選択部分のみを前記プログラマブルコントローラにダウンロードすることを特徴とするプログラマブルコントローラの支援装置。
  6. 支援装置とプログラマブルコントローラを有するプログラマブルコントローラシステムの該支援装置のコンピュータを、
    ユーザに前記プログラマブルコントローラ用のプログラムを任意に作成させる手段であって、既存のプログラムを編集させることで該プログラムの更新版を作成させるプログラム作成支援手段と、
    該更新版のプログラムをコンパイルして機械語オブジェクトを生成し、該機械語オブジェクト生成の際に、少なくとも既存変数のアドレスを維持する制約条件を守るように、変数のアドレス割当てを行うコンパイル手段と、
    前記コンパイル手段によって前記機械語オブジェクトが生成される毎に、対応する一意の識別情報を生成すると共に、該生成した識別情報を前記プログラムに係る識別情報記憶部に追加登録する識別情報生成・登録手段と、
    ダウンロード許可される場合には前記更新版のプログラムと対応する前記識別情報とを前記プログラマブルコントローラにダウンロードする手段であって、前記プログラマブルコントローラに記憶されている、該プログラマブルコントローラが保持・実行しているプログラムに対応する識別情報を取得して、該取得した識別情報が前記識別情報記憶部に登録されている場合にはダウンロード許可されると判定し、前記プログラマブルコントローラの前記プログラム記憶手段に記憶されるプログラムと、前記ダウンロード対象となる前記更新版のプログラムとの差分を抽出して一覧表示して、該差分の全部または一部をユーザに選択させて、該選択部分のみを前記プログラマブルコントローラにダウンロードするダウンロード手段、
    として機能させるためのプログラム。
JP2012031054A 2012-02-15 2012-02-15 プログラマブルコントローラシステム、その支援装置、プログラム Active JP5957936B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012031054A JP5957936B2 (ja) 2012-02-15 2012-02-15 プログラマブルコントローラシステム、その支援装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012031054A JP5957936B2 (ja) 2012-02-15 2012-02-15 プログラマブルコントローラシステム、その支援装置、プログラム

Publications (2)

Publication Number Publication Date
JP2013168031A JP2013168031A (ja) 2013-08-29
JP5957936B2 true JP5957936B2 (ja) 2016-07-27

Family

ID=49178381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012031054A Active JP5957936B2 (ja) 2012-02-15 2012-02-15 プログラマブルコントローラシステム、その支援装置、プログラム

Country Status (1)

Country Link
JP (1) JP5957936B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6243259B2 (ja) * 2014-02-28 2017-12-06 ファナック株式会社 プログラマブルコントローラのシーケンスプログラム置き換え方法
JP6455096B2 (ja) * 2014-11-25 2019-01-23 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
JP6520545B2 (ja) * 2015-08-10 2019-05-29 オムロン株式会社 サポート装置およびサポートプログラム
JP6686496B2 (ja) * 2015-09-25 2020-04-22 富士電機株式会社 コントローラシステム、その支援装置
WO2017128160A1 (zh) * 2016-01-28 2017-08-03 深圳配天智能技术研究院有限公司 加工复位实现方法、编译器、机器人、数控系统及机床
JP6790541B2 (ja) * 2016-07-20 2020-11-25 株式会社Ihi ロジック更新装置及びロジック更新方法
JP6579123B2 (ja) * 2017-02-13 2019-09-25 横河電機株式会社 エンジニアリング装置、エンジニアリング方法及びプログラム
US10365641B2 (en) * 2017-06-19 2019-07-30 Fisher-Rosemount Systems, Inc. Synchronization of configuration changes in a process plant
KR102225850B1 (ko) 2018-05-29 2021-03-11 미쓰비시덴키 가부시키가이샤 프로그램 관리 시스템, 프로그래밍 지원 장치, 프로그램 관리 방법 및 프로그래밍 지원 프로그램
JP7067273B2 (ja) * 2018-05-29 2022-05-16 オムロン株式会社 サポート装置、制御システム、および開発支援プログラム
JP2022183939A (ja) * 2021-05-31 2022-12-13 オムロン株式会社 制御装置、制御システム、および制御プログラムの更新を管理するプログラム
JP7456557B1 (ja) 2022-12-19 2024-03-27 三菱電機株式会社 作画支援プログラム、作画支援方法、作画支援装置、及び作画支援システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284815A (ja) * 1999-03-30 2000-10-13 Fuji Electric Co Ltd プログラム作成装置
JP2003058380A (ja) * 2001-08-09 2003-02-28 Fuji Electric Co Ltd プログラマブルコントローラの支援装置、コンパイル方法、及びコンパイラ
JP2007080167A (ja) * 2005-09-16 2007-03-29 Hitachi Information Systems Ltd ソフトウェア資源配信システムと方法およびプログラム
JP4865634B2 (ja) * 2007-05-14 2012-02-01 株式会社キーエンス プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
JP2009146229A (ja) * 2007-12-14 2009-07-02 Fuji Electric Systems Co Ltd プログラマブルコントローラシステム
JP5636783B2 (ja) * 2010-07-22 2014-12-10 富士電機株式会社 プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法
JP5669652B2 (ja) * 2011-04-01 2015-02-12 三菱電機株式会社 プログラマブルコントローラシステムおよびメモリ整理方法
JP5790128B2 (ja) * 2011-04-28 2015-10-07 富士電機株式会社 プログラマブルコントローラ・システム、その支援装置
JP5800135B2 (ja) * 2011-07-15 2015-10-28 富士電機株式会社 プログラマブルコントローラ

Also Published As

Publication number Publication date
JP2013168031A (ja) 2013-08-29

Similar Documents

Publication Publication Date Title
JP5957936B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP5095013B2 (ja) プログラマブルコントローラシステムおよび開発システム
JP4865634B2 (ja) プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
US20030051235A1 (en) Method and apparatus for verifying and analyzing computer software installation
JP4828271B2 (ja) 複数osバージョン用ソフトウェア生成装置及び複数osバージョン用ソフトウェア生成支援プログラム
CN105389187B (zh) 一种系统更新的方法
CN109814873B (zh) 一种代码发布方法及装置
JP2007102625A (ja) Nc工作機械の制御プログラムの更新方法及び装置
JP6520241B2 (ja) 制御システム、その管理サーバ装置、支援装置
JP4621709B2 (ja) バージョン管理システム及びプログラムバージョン管理方法
JP2016001376A (ja) プログラマブルコントローラシステム、その支援装置
EP3734445A1 (en) Secure and reliable remote update of a control device in an elevator
JP6205934B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラム
JP6025165B2 (ja) 半導体製造装置の制御プログラムの更新システム
WO2019229845A1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP4490084B2 (ja) プログラム開発システムにおけるプログラム作成方法
CN115544521B (zh) 一种离线安装文件的校验和生成方法及装置
JP3741581B2 (ja) 分散システム
JP5428050B2 (ja) 計算機システム、及び、モジュール実行方法
JP5441198B2 (ja) プログラムのバージョン同期システム及びその方法並びにプログラムのバージョン同期装置及びそのプログラム
CN113661456B (zh) 数据创建装置、数据转发方法及计算机可读取的记录介质
JP2009098963A (ja) モジュール自動生成システム
Mantion et al. Modernisation of the Toolchain and Continuous Integration of Front-End Computer Software at CERN
JP2008234466A (ja) 情報処理装置、バージョン管理方法及びバージョン管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20151204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151229

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5957936

Country of ref document: JP

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