(57)【要約】【課題】制御ロジックの更新に伴うメモリアドレスの割り当てを適切に行うことができるロジック更新装置及びロジック更新方法を提供する。【解決手段】ロジック更新装置１０は、実行中の制御ロジックに代わり制御装置２０において実行される更新用の制御ロジックを生成する。ロジック更新装置は、実行中のメモリマップを記憶する記憶部１１と、更新用の制御ロジック及び更新用のメモリマップを生成する生成部１４と、更新用の制御ロジック及び更新用のメモリマップを出力する出力部１５と、を備える。生成部１４は、実行中のメモリマップを参照し、更新用の制御ロジックで使用される信号が実行中のメモリマップに含まれている場合は、実行中のメモリマップで当該信号に対して割り当てられているアドレスが当該信号に対して割り当てられるように、更新用のメモリマップを生成する。【選択図】図１
2018013917.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置において実行されている第１制御ロジックに代わり前記制御装置において実行される第２制御ロジックを生成するロジック更新装置であって、
前記第１制御ロジックで使用される各信号に対する前記制御装置のメモリアドレスの割り当てを示す第１割り当て情報を記憶する記憶手段と、
前記第２制御ロジック、及び前記第２制御ロジックで使用される各信号に対する前記制御装置のメモリアドレスの割り当てを示す第２割り当て情報を生成する生成手段と、
前記第２制御ロジック及び前記第２割り当て情報を出力する出力手段と、を備え、
前記生成手段は、前記第１割り当て情報を参照し、前記第２制御ロジックで使用される信号が前記第１割り当て情報に含まれている場合は、前記第１割り当て情報で当該信号に対して割り当てられている前記制御装置のメモリアドレスが当該信号に対して割り当てられるように、前記第２割り当て情報を生成する、ロジック更新装置。
【請求項２】
前記生成手段は、前記第１割り当て情報を参照し、前記第２制御ロジックで使用される信号が前記第１割り当て情報に含まれていない場合は、前記第１割り当て情報で他の信号に対して割り当てられている前記制御装置のメモリアドレスとは異なるメモリアドレスが当該信号に対して割り当てられるように、前記第２割り当て情報を生成する、請求項１に記載のロジック更新装置。
【請求項３】
制御対象を制御する制御装置において実行されている第１制御ロジックに代わり前記制御装置において実行される第２制御ロジックを、１又は複数の装置によって構成されるロジック更新装置を用いて生成するロジック更新方法であって、
前記第１制御ロジックで使用される各信号に対する前記制御装置のメモリアドレスの割り当てを示す第１割り当て情報を記憶する記憶ステップと、
前記第２制御ロジック、及び前記第２制御ロジックで使用される各信号に対する前記制御装置のメモリアドレスの割り当てを示す第２割り当て情報を生成する生成ステップと、
前記第２制御ロジック及び前記第２割り当て情報を出力する出力ステップと、を含み、
前記生成ステップは、前記第１割り当て情報を参照し、前記第２制御ロジックで使用される信号が前記第１割り当て情報に含まれている場合は、前記第１割り当て情報で当該信号に対して割り当てられている前記制御装置のメモリアドレスが当該信号に対して割り当てられるように、前記第２割り当て情報を生成する、ロジック更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロジック更新装置及びロジック更新方法に関する。
【背景技術】
【０００２】
従来から、制御対象を制御する制御装置を連続運転させた状態で、制御装置の制御ロジックを更新する方法が知られている。例えば、特許文献１には、変更前及び変更後の制御ロジックの両方をメモリ上に置いて、制御ロジックを切り替える方法が記載されている。この方法では、変更後の制御ロジックを構成する変数のうち、変更前の制御ロジックを構成する変数から変更される変数及び新規追加の変数について初期化演算が行われた後、制御ロジックの変更が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−６３０４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御ロジックが更新される際、更新用の制御ロジックで使用される信号に対して、ユーザによって手動でメモリアドレスが割り当てられる代わりに、自動でメモリアドレスが割り当てられる場合がある。この場合、ユーザの負担を減らすことができるものの、メモリアドレスの割り当てが適切に行われない可能性があり、改善の余地があった。
【０００５】
本発明は上記を鑑みてなされたものであり、制御ロジックの更新に伴うメモリアドレスの割り当てを適切に行うことができるロジック更新装置及びロジック更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一形態に係るロジック更新装置は、制御対象を制御する制御装置において実行されている第１制御ロジックに代わり制御装置において実行される第２制御ロジックを生成するロジック更新装置であって、第１制御ロジックで使用される各信号に対する制御装置のメモリアドレスの割り当てを示す第１割り当て情報を記憶する記憶手段と、第２制御ロジック、及び第２制御ロジックで使用される各信号に対する制御装置のメモリアドレスの割り当てを示す第２割り当て情報を生成する生成手段と、第２制御ロジック及び第２割り当て情報を出力する出力手段と、を備え、生成手段は、第１割り当て情報を参照し、第２制御ロジックで使用される信号が第１割り当て情報に含まれている場合は、第１割り当て情報で当該信号に対して割り当てられている制御装置のメモリアドレスが当該信号に対して割り当てられるように、第２割り当て情報を生成する。
【０００７】
本発明者らの知見によれば、制御ロジックの演算結果が前回までの演算結果の影響を受ける構成の場合、前回までの演算結果を保持するメモリアドレスの割り当てが変化すると、適切な演算結果が得られない可能性がある。そこで、本発明の一形態に係るロジック更新装置では、生成手段は、第１割り当て情報を参照し、第２制御ロジックで使用される信号が第１割り当て情報に含まれている場合は、第１割り当て情報で当該信号に対して割り当てられた制御装置のメモリアドレスが当該信号に対して割り当てられるように、第２割り当て情報を生成する。したがって、制御ロジックが変更されても、前回までの演算結果を保持するメモリアドレスの割り当てが維持される。これにより、制御ロジックの演算結果が前回までの演算結果の影響を受ける構成の場合でも適切な演算結果が得られるように、制御ロジックの更新に伴うメモリアドレスの割り当てを適切に行うことができる。
【０００８】
ここで、生成手段は、第１割り当て情報を参照し、第２制御ロジックで使用される信号が第１割り当て情報に含まれていない場合は、第１割り当て情報で他の信号に対して割り当てられている制御装置のメモリアドレスとは異なるメモリアドレスが当該信号に対して割り当てられるように、第２割り当て情報を生成する構成とすることができる。
【０００９】
上記の構成とすることで、第２制御ロジックで使用される信号のうち、第１制御ロジックで使用されていない信号に対しては、第１割り当て情報で他の信号に対して割り当てられていない制御装置のメモリアドレスが割り当てられる。このため、例えば、第２制御ロジックで新規追加された信号が、第１制御ロジックで使用されている信号に対して保持されている値により影響を受けることが抑制される。
【００１０】
本発明の一形態に係るロジック更新方法は、制御対象を制御する制御装置において実行されている第１制御ロジックに代わり制御装置において実行される第２制御ロジックを、１又は複数の装置によって構成されるロジック更新装置を用いて生成するロジック更新方法であって、第１制御ロジックで使用される各信号に対する制御装置のメモリアドレスの割り当てを示す第１割り当て情報を記憶する記憶ステップと、第２制御ロジック、及び第２制御ロジックで使用される各信号に対する制御装置のメモリアドレスの割り当てを示す第２割り当て情報を生成する生成ステップと、第２制御ロジック及び第２割り当て情報を出力する出力ステップと、を含み、生成ステップは、第１割り当て情報を参照し、第２制御ロジックで使用される信号が第１割り当て情報に含まれている場合は、第１割り当て情報で当該信号に対して割り当てられている制御装置のメモリアドレスが当該信号に対して割り当てられるように、第２割り当て情報を生成する。
【００１１】
本発明の一形態に係るロジック更新方法によれば、上述したロジック更新装置と同様に、制御ロジックの演算結果が前回までの演算結果の影響を受ける構成の場合でも適切な演算結果が得られるように、制御ロジックの更新に伴うメモリアドレスの割り当てを適切に行うことができる。
【発明の効果】
【００１２】
本発明によれば、制御ロジックの更新に伴うメモリアドレスの割り当てを適切に行うことができるロジック更新装置及びロジック更新方法が提供される。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る制御システムの概略構成図である。
【図２】マクロの一例を示す図である。
【図３】図２のマクロを使用した制御ロジックの一例を示す図である。
【図４】図３の制御ロジックに対応するメモリマップの一例を示す図である。
【図５】本発明の一実施形態に係るロジック更新方法を示すフローチャートである。
【図６】実行中の制御ロジック及び更新用の制御ロジックの一例を示す図である。
【図７】実行中のメモリマップ及び更新用のメモリマップの一例を示す図である。
【図８】比較例に係るロジック更新装置により生成された更新用のメモリマップを示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１５】
図１は、本発明の一実施形態に係る制御システムの概略構成図である。制御システム１は例えばプラント等において適用されるシステムであり、制御対象となる装置の状態を示すデータ等を収集し、当該データ及びその他の情報に基づいて制御対象となる装置の制御を行うシステムである。制御システム１は、ロジック更新装置１０、制御装置２０、及び制御対象装置３０を備えている。
【００１６】
ロジック更新装置１０は、制御装置２０において実行されている制御ロジック（第１制御ロジック）（以下、実行中の制御ロジックとも言う）に代わり制御装置２０において実行される制御ロジック（第２制御ロジック）（以下、更新用の制御ロジックとも言う）を生成する装置である。制御ロジックとは、例えば、ファンクション・ブロック・ダイアグラム（ＦＢＤ）言語等で作成されたロジックプログラムである。制御ロジックは、制御対象装置３０に係る情報に基づいた演算を実行するための複数のロジックにより構成される。制御ロジックの更新は、例えば、制御対象装置３０において監視対象とする変数の変更、又は一部ロジックの変更等の理由で行われる。
【００１７】
ロジック更新装置１０は、更に、更新用の制御ロジックに対応するメモリマップ（第２割り当て情報）（以下、更新用のメモリマップとも言う）を生成する。メモリマップは、制御ロジックで使用される各信号に対するアドレス（メモリアドレス）の割り当てを示す割り当て情報であり、制御ロジックごとに生成されるものである。メモリマップは、制御ロジックで使用される各信号と、各信号が記憶されるアドレスとの対応関係を規定する。ロジック更新装置１０により生成された更新用の制御ロジック及び更新用のメモリマップは、制御装置２０へ送られる。実行中の制御ロジック及び実行中のメモリマップは、ロジック更新装置１０で生成されたものであってもよいし、外部装置で生成されたものであってもよい。
【００１８】
ロジック更新装置１０は、ＣＰＵ（Central  Processing  Unit）、主記憶装置であるＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）、制御装置２０等の他の機器との間の通信を行う通信モジュール、並びにハードディスク等の補助記憶装置等のハードウェアを備えるコンピュータとして構成される。そして、これらの構成要素が動作することにより、ロジック更新装置１０としての機能が発揮される。ロジック更新装置１０の各機能部については後述する。
【００１９】
制御装置２０は、制御対象装置３０を制御する装置である。制御装置２０は、制御対象装置３０からのデータを取得すると共に、制御ロジックを実行することで制御対象装置３０の制御に係る動作を行う。制御装置２０は、実行エンジン２１と、入出力部２２と、メモリ２３とを備える。
【００２０】
実行エンジン２１は、制御ロジックを解釈して実行する機能を有する。入出力部２２は、制御対象装置３０からのデータ等を受信すると共に、実行エンジン２１により制御ロジックを実行した結果に基づいて、制御対象装置３０に対して処理の実行等を指示する機能を有する。メモリ２３は、実行中の制御ロジックで使用されている各信号を記憶する機能を有する。上述のように、各信号に対するアドレスの割り当ては、割り当て情報であるメモリマップにより規定される。メモリ２３は、実行中の制御ロジックに対応するメモリマップ（第１割り当て情報）（以下、実行中のメモリマップとも言う）に従って、各信号を割り当てられたアドレスに記憶する。
【００２１】
制御対象装置３０は、制御システム１において制御装置２０による制御の対象となる装置である。制御対象装置３０として、例えば、プラントにおける運転装置等が挙げられる。制御対象装置３０は、制御装置２０からの指示を受信すると、これに基づいて運転制御等を行う。また、制御対象装置３０は、制御装置２０からの指示に基づいて、自装置で取得された運転データ等を制御装置２０に対して送信する。このように、制御対象装置３０では、自装置の状態を示す情報を制御装置２０に送信し、自装置の状態に対応した指示を制御装置２０から受信することで、運転の制御が行われる。
【００２２】
ロジック更新装置１０の各機能部について説明する。ロジック更新装置１０は、記憶部１１（記憶手段）と、ユーザインタフェース１２に含まれる取得部１３（取得手段）と、生成部１４（生成手段）と、出力部（出力手段）１５と、を含んで構成される。
【００２３】
記憶部１１は、実行中の制御ロジック及び実行中のメモリマップを記憶する機能を有する。記憶部１１の機能は、例えば、ＲＡＭやＲＯＭにより実現される。実行中のメモリマップは、実行中の制御ロジックで使用される各信号に対するアドレスの割り当てを示す。実行中の制御ロジック及び実行中のメモリマップがロジック更新装置１０で生成されたものである場合は、記憶部１１は、例えば実行中の制御ロジック及び実行中のメモリマップの生成時にこれらを記憶する。実行中の制御ロジック及び実行中のメモリマップが外部装置で生成されたものである場合は、記憶部１１は、例えば外部装置から実行中の制御ロジック及び実行中のメモリマップを受け取った時にこれらを記憶する。
【００２４】
ユーザインタフェース１２は、ユーザによるロジック更新装置１０に対する入力と、ユーザからの入力に対するロジック更新装置１０による処理の結果の出力と、を行う機能を有する。ユーザインタフェース１２には、取得部１３が含まれる。
【００２５】
取得部１３は、実行中の制御ロジックの変更に係る情報である変更情報を取得する機能を有する。変更情報は、例えば、更新用の制御ロジックにおける実行中の制御ロジックからの変更点を示す情報である。変更情報は、ユーザインタフェース１２をユーザが操作することによって作成される。このようにロジック更新装置１０が、変更情報を作成する機能を備えるため、変更情報に修正が必要な場合、ロジック更新装置１０により、容易に修正を行うことができる。更新用の制御ロジックの生成は、変更情報の作成を契機に開始される。取得部１３により取得された変更情報は、生成部１４に送られる。
【００２６】
生成部１４は、更新用の制御ロジック及び更新用のメモリマップを生成する機能を有する。生成部１４の機能は、例えば、ＣＰＵにより実現される。生成部１４は、取得部１３から送られた変更情報に基づいて、更新用の制御ロジックを生成する。生成部１４は、例えば、記憶部１１から実行中の制御ロジックを読み出した後、変更情報に基づいて、実行中の制御ロジックを変更して更新用の制御ロジックを生成する。
【００２７】
制御ロジックで使用される信号には、制御装置２０の外部入出力に使用される信号（以下、外部入出力用の信号とも言う）と、制御装置２０の内部で行われる演算に使用される信号（以下、内部演算用の信号とも言う）とがある。本実施形態では、メモリ２３において、外部入出力用の各信号を記憶させるためのアドレスは、ユーザにより明示的に割り当てられる。これに対し、内部演算用の各信号を記憶させるためのアドレスは、生成部１４により自動的に割り当てられる。このように、生成部１４がアドレスの自動割り当てを行うことにより、アドレスの割り当てに係るユーザの負担を減らすことができる。
【００２８】
同一の構造で各信号の値だけが異なるような制御ロジックに対して、マクロが定義される場合がある。このようなマクロの使用によって、制御ロジックの流用性が向上する。図２は、マクロの一例を示す図である。図２に示されるように、マクロＡは、入力信号を積算した値を返す。図３は、図２のマクロを使用した制御ロジックの一例を示す図である。図４は、図３の制御ロジックに対応するメモリマップの一例を示す図である。図４に示されるように、メモリマップの前半は、外部入出力用の信号に対して割り当てられている。具体的には、アドレス１〜４が外部入出力用の信号に対して割り当てられている。外部入出力用の信号に対して割り当てられたアドレスの直後のアドレスは、内部演算用の信号に対して割り当てられている。具体的には、アドレス５〜８が外部入出力用の信号に対して割り当てられている。メモリマップの後半、具体的には、アドレス９，１０は、制御ロジックで使用されている信号が何も割り当てられていない未使用アドレスである。
【００２９】
図３の制御ロジックでは、マクロＡがマクロＡ１及びマクロＡ２として２回使用されている。マクロＡ１及びマクロＡ２のロジック演算が相互に影響されないように、マクロＡ１及びマクロＡ２で使用される信号はそれぞれ別のアドレスに記憶される必要がある。例えば、信号「MACRO_ANALOG1」はマクロＡ１及びマクロＡ２上では同じ信号であるものの、割り当てられるアドレスは別にされる必要がある。このため、図４に示されるように、マクロＡ１で使用される信号「IN_ANALOG1」、「ANALOG_RESULT1」、「A1_MACRO_ANALOG1」及び「A1_MACRO_ANALOG2」には、それぞれ順にアドレス１，２，５，６が割り当てられ、マクロＡ２で使用される信号「IN_ANALOG2」、「ANALOG_RESULT2」、「A2_MACRO_ANALOG1」及び「A2_MACRO_ANALOG2」には、それぞれ順にアドレス３，４，７，８が割り当てられている。
【００３０】
生成部１４は、記憶部１１に記憶された実行中のメモリマップを参照し、更新用の制御ロジックで使用される信号が実行中のメモリマップに含まれている場合、実行中のメモリマップでこの信号に対して割り当てられているアドレスを、更新用のメモリマップでもこの信号に対して割り当てるように、更新用のメモリマップを生成する。生成部１４によるアドレスの割り当てについての詳細は、後述する。本実施形態では、生成部１４は、更新用の制御ロジックで使用される内部演算用の各信号に対するアドレスの割り当てを行う。生成部１４は、内部演算用の各信号と、内部演算用の各信号に対して生成部１４により割り当てられたアドレスとの関係、及び、外部入出力用の各信号と、外部入出力用の各信号に対してユーザにより明示的に割り当てられたアドレスとの関係を含む情報として、更新用のメモリマップを生成する。
【００３１】
生成部１４により生成された更新用の制御ロジック及び更新用のメモリマップは、出力部１５に送られる。更新用の制御ロジック及び更新用のメモリマップは、記憶部１１にも送られる。記憶部１１では、生成部１４から送られた更新用の制御ロジック及び更新用のメモリマップが、実行中の制御ロジック及び実行中のメモリマップとして記憶される。
【００３２】
出力部１５は、生成部１４において生成された更新用の制御ロジック及び更新用のメモリマップを制御装置２０に送信する機能を有する。出力部１５の機能は、例えば、通信モジュールにより実現される。制御装置２０では、出力部１５から送信された更新用の制御ロジックが、実行中の制御ロジックに代わって実行される。制御装置２０では、これに併せて、出力部１５から送信された更新用のメモリマップに従って、アドレスの割り当てが行われる。
【００３３】
次に、ロジック更新装置１０を用いたロジック更新方法について、図１及び図５〜図７を参照しながら説明する。図５は、本発明の一実施形態に係るロジック更新方法を示すフローチャートである。図５に示される処理に先立って、記憶部１１が実行中の制御ロジック及び実行中のメモリマップを記憶する（記憶ステップ）。続いて、図５に示されるように、取得部１３が変更情報を取得する（Ｓ１１）。変更情報は、ユーザがユーザインタフェース１２を操作することにより作成される。取得部１３は、作成された変更情報を取得して生成部１４に送る。
【００３４】
図６は、実行中の制御ロジック及び更新用の制御ロジックの一例を示す図である。図６（ａ）に示される実行中の制御ロジックでは、入力信号を２倍して積算した値を返すマクロＡが、マクロＡ１として１回使用されている。図６（ｂ）に示される更新用の制御ロジックでは、入力信号を積算した値を返すマクロＡが、マクロＡ１として１回使用されている。この例では、図６（ａ）に示される実行中の制御ロジックに対して、破線Ｌで囲ったロジックを削除する変更を行って、図６（ｂ）に示される更新用のマクロＡ１が生成される。したがって、この例における変更情報は、図６（ａ）において破線Ｌで囲ったロジックを削除するという情報である。
【００３５】
次に、取得部１３から送られた変更情報に基づいて、生成部１４が更新用の制御ロジックを生成する（Ｓ１２）。続いて、生成部１４は、更新用のメモリマップを生成する（Ｓ１３〜Ｓ１５：生成ステップ）。生成部１４は、まず、実行中のメモリマップを参照し、更新用の制御ロジックで使用される信号が実行中のメモリマップに含まれているか否かを判定する（Ｓ１３）。本実施形態では、更新用の制御ロジックで使用される内部演算用の各信号を割り当て対象の信号として、これらの割り当て対象の信号に対してＳ１３の判定処理が行われる。
【００３６】
割り当て対象の信号が実行中のメモリマップに含まれている場合（Ｓ１３でＹｅｓの場合）、実行中のメモリマップで割り当て対象の信号に対して割り当てられているアドレスと同一アドレスを、更新用のメモリマップでも割り当て対象の信号に対して割り当てる（Ｓ１４）。一方、割り当て対象の信号が実行中のメモリマップに含まれていない場合（Ｓ１３でＮｏの場合）、実行中のメモリマップにおいて未使用アドレスであるアドレス（以下、実行中のメモリマップにおける未使用アドレスとも言う）を、更新用のメモリマップで割り当て対象の信号に対して割り当てる（Ｓ１５）。実行中のメモリマップに含まれない信号として、例えば、更新用の制御ロジックで新規追加となった信号が考えられる。生成部１４は、このような新規追加の割り当て対象の信号に対して、実行中のメモリマップで他の信号に対して割り当てられているアドレスとは異なるアドレスを割り当てると言える。生成部１４は、実行中のメモリマップにおける未使用アドレスを、例えば前方から順に詰めて割り当てる。
【００３７】
生成部１４は、内部演算用の各信号と、内部演算用の各信号に対してこのように割り当てたアドレスとの関係、及び、外部入出力用の各信号と、外部入出力用の各信号に対してユーザにより明示的に割り当てられたアドレスとの関係を含む情報として、更新用のメモリマップを生成する。生成部１４は、生成した更新用の制御ロジックとしての更新用のマクロＡ１及び更新用のメモリマップを記憶部１１に記憶させると共に、出力部１５に送る。
【００３８】
図７は、実行中のメモリマップ及び更新用のメモリマップの一例を示す図である。図７（ａ）に示される実行中のメモリマップでは、実行中の制御ロジックとしての実行中のマクロＡ１で使用される外部入出力用の各信号「IN_ANALOG1」及び「ANALOG_RESULT1」に対しては、アドレス１，２が割り当てられている。実行中のマクロＡ１で使用される内部演算用の各信号「A1_MACRO_ANALOG1」、「A1_MACRO_ANALOG2」及び「A1_MACRO_ANALOG3」に対しては、アドレス３〜５が割り当てられている。
【００３９】
図７（ｂ）に示される更新用のメモリマップでは、更新用のマクロＡ１で使用される外部入出力用の各信号「IN_ANALOG1」及び「ANALOG_RESULT1」に対しては、実行中のメモリマップと同様に、アドレス１，２がユーザによって予め割り当てられている。更新用のマクロＡ１で使用される内部演算用の信号「A1_MACRO_ANALOG2」及び「A1_MACRO_ANALOG3」は、いずれも実行中のメモリマップに含まれている（すなわち上記Ｓ１３でＹｅｓの場合に相当）。このため、実行中のメモリマップでこれらの信号に対して割り当てられたアドレスが、生成部１４によって更新用のメモリマップでもこれらの信号に対して割り当てられている。具体的には、信号「A1_MACRO_ANALOG2」に対して、実行中のメモリマップで割り当てられたアドレス４が割り当てられていると共に、信号「A1_MACRO_ANALOG3」に対して、実行中のメモリマップで割り当てられたアドレス５が割り当てられている。
【００４０】
続いて、出力部１５が、更新用のマクロＡ１及び更新用のメモリマップを出力する（Ｓ１６：出力ステップ）。具体的には、出力部１５が、更新用のマクロＡ１及び更新用のメモリマップを制御装置２０に送信する。制御装置２０では、更新用のマクロＡ１及び更新用のメモリマップが受信されると、制御装置２０の運転中に実行中のマクロＡ１が更新用のマクロＡ１に切り替えられると共に、実行中のメモリマップが更新用のメモリマップに切り替えられる。これにより、制御対象装置３０は更新用のマクロＡ１によって制御される。
【００４１】
以上で説明した本実施形態に係るロジック更新装置１０及びロジック更新方法によれば、制御ロジックの更新に伴うアドレスの割り当てを適切に行うことができる。この点について、比較例を参照して以下で説明する。
【００４２】
図８は、比較例に係るロジック更新装置により生成された更新用のメモリマップを示す図である。上述のように、本実施形態に係るロジック更新装置１０では、生成部１４が、実行中のメモリマップを参照し、更新用のメモリマップを生成する。これに対し、比較例に係るロジック更新装置では、生成部が、実行中のメモリマップを参照せずに、外部入出力用の信号に対して割り当てられたアドレスの直後のアドレスを、内部演算用の信号に対して前方から順に詰めて割り当てる。このため、実行中のマクロＡ１と更新用のマクロＡ１とで、同一信号に対して異なるアドレスが割り当てられる。
【００４３】
上述のように、実行中のマクロＡ１は、入力信号を積算した値を返すものであり、更新用のマクロＡ１は、入力信号を２倍して積算した値を返すものである。つまり、実行中のマクロＡ１及び更新用のマクロＡ１の演算結果は、いずれも過去量（前回までの演算結果）の影響を受ける。過去量は、いずれも信号「A1_MACRO_ANALOG3」の値として保持されている。実行中のメモリマップでは、図７（ａ）に示されるように、内部演算用の信号「A1_MACRO_ANALOG3」に対してアドレス５が割り当てられている。一方、更新用のメモリマップでは、図８に示されるように、同一信号に対してアドレス４が割り当てられる。したがって、制御装置２０の運転中に制御装置２０の制御ロジックを更新した場合、更新直後の演算において、過去量がアドレス５ではなくアドレス４から取得されるために適切な演算結果が得られないおそれがある。
【００４４】
これに対して、本実施形態に係るロジック更新装置１０及びロジック更新方法では、生成部１４は、実行中のメモリマップを参照し、割り当て対象の信号が実行中のメモリマップに含まれている場合、実行中のメモリマップでこの信号に対して割り当てられているアドレスを、更新用のメモリマップでもこの信号に対して割り当てるように、更新用のメモリマップを生成する。したがって、実行中のメモリマップで信号「A1_MACRO_ANALOG3」に対してアドレス５が割り当てられていれば、更新用のメモリマップでも、信号「A1_MACRO_ANALOG3」に対してアドレス５が割り当てられる。このため、制御装置２０の運転中に制御ロジックが実行中のマクロＡ１から更新用のマクロＡ１に切り替わっても、過去量が保持された信号「A1_MACRO_ANALOG3」のアドレスは同一であるため、適切な演算結果が得られる。このように、ロジック更新装置１０及びロジック更新方法では、更新用のメモリマップのレイアウトが、実行中のメモリマップのレイアウトを極力維持して生成される。この結果、制御ロジックが更新されても、制御装置２０は制御対象装置３０を安定して制御することができる。
【００４５】
生成部１４は、割り当て対象の信号が実行中のメモリマップに含まれていない場合は、実行中のメモリマップにおける未使用アドレスが割り当て対象の信号に対して割り当てられるように、更新用のメモリマップを生成する。つまり、更新用の制御ロジックで使用される信号のうち、実行中の制御ロジックで使用されていない信号に対しては、実行中のメモリマップにおける未使用アドレスが割り当てられる。このため、例えば、更新用の制御ロジックで新規追加された信号が、実行中の制御ロジックで使用されている信号に対して保持されている値により影響を受けることが抑制される。
【００４６】
以上で説明した実施形態は本発明の一例を示すものである。本発明に係るロジック更新装置及びロジック更新方法は、上記実施形態に限られるものではなく、各請求項に記載した要旨を変更しない範囲で変形し、又は他のものに適用したものであってもよい。
【００４７】
例えば、ロジック更新装置１０は、上記実施形態で説明したように１つの装置によって構成されていてもよいし、複数の装置の組み合わせによって構成されていてもよい。また、制御システム１を構成する制御装置２０及び制御対象装置３０の数はそれぞれ複数であってもよい。この場合、例えば、制御装置２０が複数の制御対象装置３０を制御する構成とすることもできる。
【００４８】
生成部１４は、割り当て対象の信号が実行中のメモリマップに含まれていない場合は、実行中のメモリマップで他の信号に対して割り当てられているアドレスが割り当て対象の信号に対して割り当てられるように、更新用のメモリマップを生成してもよい。つまり、割り当て対象の信号に対して、更新用のメモリマップにおいて割り当てられているアドレスは、実行中のメモリマップにおける未使用アドレスに限られない。例えば、実行中のメモリマップで信号が割り当てられているアドレスであっても、更新用の制御ロジックでは使用されない信号が割り当てられているアドレスについては、更新用のメモリマップで割り当て対象の信号に対して割り当てられる構成とすることができる。生成部１４は、割り当て対象の信号に対して、このようなアドレスを、例えば前方から順に詰めて割り当てることができる。これにより、割り当て後のメモリ２３において連続した空き領域が確保され易くなる。
【００４９】
記憶部１１は、実行中の制御ロジック及び実行中のメモリマップだけでなく、複数の過去の制御ロジック及び複数の過去のメモリマップを記憶して、過去のメモリマップを参照し、更新用のメモリマップを生成する構成としてもよい。過去の制御ロジックとは、制御装置２０が前回リセットされた時点以降に制御装置２０で実行された制御ロジックである。実行中の制御ロジックは、複数の過去の制御ロジックの１つであり、複数の過去の制御ロジックの中で最も新しい制御ロジックである。過去のメモリマップとは、過去の制御ロジックで使用される各信号に対するアドレスの割り当てを示すメモリマップである。実行中のメモリマップは、複数の過去のメモリマップの１つであり、複数の過去のメモリマップの中で最も新しいメモリマップである。
【００５０】
この構成では、生成部１４は、内部演算用の信号を割り当て対象の信号としてアドレスを割り当てる際、割り当て対象の信号が実行中のメモリマップに含まれていない場合、過去の他のメモリマップを新しい順に参照し、割り当て対象の信号がその中に含まれているかを更に判定する。含まれている場合、生成部１４は、割り当て対象の信号に対して、過去のメモリマップで割り当てられたアドレスと同一アドレスを割り当てる。含まれていない場合、生成部１４は、割り当て対象の信号に対して、複数の過去のメモリマップで他の信号に対して割り当てられたいずれのアドレスとも異なるという条件を満たす未使用アドレスを割り当てる。
【００５１】
例えば、実行中のマクロＡ１で使用されている内部演算用の信号「A1_MACRO_ANALOG1」は、更新用のマクロＡ１で使用されない。このため、実行中のメモリマップで当該信号に対して割り当てられていたアドレス３は、更新用のメモリマップでは使用されず、未使用アドレスとなる。しかしながら、このアドレス３は実行中のメモリマップに含まれ、上述の条件を満たさない。このため、割り当て対象の信号が更新用の制御ロジックで新規追加となった信号であったとしても、アドレス３は割り当てられない。生成部１４は、過去の制御ロジックで使用された信号のうち更新用の制御ロジックで使用されない信号に対して、過去のメモリマップで割り当てられているアドレスの使用を制限して、更新用のメモリマップを生成すると言える。これにより、信号「A1_MACRO_ANALOG1」の値は上書きされずに保持される。このように信号の値が保持されることで、この信号が後に再使用される際に、保持された値を用いることができる。生成部１４は、上述の条件を満たす未使用アドレスがある場合に限り、上述の条件を考慮する構成とすることができる。
【００５２】
また、ロジック更新装置１０は、変更情報を作成する機能を備えなくてもよい。この場合、変更情報は、外部装置で作成された後、取得部１３により取得される構成とすることができる。これにより、ロジック更新装置１０の構成を簡単にできる。また、変更情報は、更新用の制御ロジックにおける実行中の制御ロジックからの変更点を示す情報に限られない。また、生成部１４は、変更情報を用いずに（変更情報とは異なる情報に基づいて）更新用の制御ロジックを生成してもよい。また、生成部１４では、生成後の制御ロジックが正しいものであるか（適切に動作するか）を確認するためのエラーチェックを併せて行う構成としてもよい。
【符号の説明】
【００５３】
１  制御システム
１０  ロジック更新装置
１１  記憶部
１２  ユーザインタフェース
１３  取得部
１４  生成部
１５  出力部
２０  制御装置
２１  実行エンジン
２２  入出力部
２３  メモリ
３０  制御対象装置
【図１】
2018013917.tif 000003
【図２】
2018013917.tif 000004
【図３】
2018013917.tif 000005
【図４】
2018013917.tif 000006
【図５】
2018013917.tif 000007
【図６】
2018013917.tif 000008
【図７】
2018013917.tif 000009
【図８】
2018013917.tif 000010