(57)【要約】【課題】ＰＯＵ追加のための領域を確保するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法を提供する。【解決手段】ＰＬＣ（即ち、プログラマブルロジックコントローラ）のメモリ内においてＰＯＵのインスタンス格納領域Ｄ１をタスク毎に確保し、該インスタンス格納領域内に該ＰＯＵのインスタンス領域ｄ１を置いて、該ＰＬＣのメモリを管理するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法である。【選択図】図１
2008269449.tif 000002
【特許請求の範囲】
【請求項１】
ＰＯＵによって構成されたタスクを有し、
メモリを有し管理するプログラマブルロジックコントローラであって、
前記タスク毎にインスタンス格納領域を前記プログラマブルロジックコントローラのメモリ内に確保し、前記ＰＯＵのインスタンス領域を該インスタンス格納領域内に置いて管理することを特徴とするプログラマブルロジックコントローラ。
【請求項２】
前記プログラマブルロジックコントローラが前記インスタンス格納領域内の空き領域の位置情報を提出する手段と、
該プログラマブルロジックコントローラが追加されるＰＯＵのインスタンス領域の位置情報を受け取る手段と、
該追加されるＰＯＵのインスタンス領域の位置情報に基づいて、前記インスタンス格納領域内に存在する空き領域中に、該追加されるＰＯＵのインスタンス領域を確保する手段と、
を含むことを特徴とする請求項１記載のプログラマブルロジックコントローラ。
【請求項３】
前記インスタンス格納領域とは独立に拡張インスタンス格納領域を確保し、追加されるＰＯＵに該拡張インスタンス格納領域をアクセスさせる手段を含むことを特徴とする請求項１または２記載のプログラマブルロジックコントローラ。
【請求項４】
ＰＯＵによって構成されたタスクを制御するプログラマブルロジックコントローラのメモリを管理するプログラマブルロジックコントローラメモリ管理方法であって、
前記タスク毎にインスタンス格納領域を前記プログラマブルロジックコントローラのメモリ内に確保し、前記ＰＯＵのインスタンス領域を該インスタンス格納領域内に置いて管理することを特徴とするプログラマブルロジックコントローラメモリ管理方法。
【請求項５】
前記プログラマブルロジックコントローラが前記インスタンス格納領域内の空き領域の位置情報を提出し、
該プログラマブルロジックコントローラが追加されるＰＯＵのインスタンス領域の位置情報を受け取り、
該追加されるＰＯＵのインスタンス領域の位置情報に基づいて、前記インスタンス格納領域内に存在する空き領域中に、該追加されるＰＯＵのインスタンス領域を確保する、
ことを特徴とする請求項４記載のプログラマブルロジックコントローラメモリ管理方法。
【請求項６】
前記インスタンス格納領域とは独立に拡張インスタンス格納領域を確保し、追加されるＰＯＵに該拡張インスタンス格納領域をアクセスさせることを特徴とする請求項４または５記載のプログラマブルロジックコントローラメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法であって、例えば、メモリ管理方法に関するものである。
【背景技術】
【０００２】
今日では、コントローラの動作は専用のプログラムによって制御されることが、一般的になっている（例えば、特許文献１及び２）。例えば、そのプログラムの記述言語は、ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）６１１３１−３規格に準拠した言語などが使用される。
【０００３】
その言語によってプログラミングされたＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ；プログラマブルロジックコントローラ）中のプログラムを、その動作中にオンライン変更することは、困難であることも知られている。
【０００４】
ここで、一般的なＰＬＣメモリ管理方法を図４に基づいて以下に説明する。なお、図４は、一般的なＰＬＣ内のメモリ空間を表す概念図である。
【０００５】
通常、ＰＬＣ中のプログラムは、図４中の符号１で示されるＰＯＵ（Ｐｒｏｇｒａｍ  Ｏｒｇａｎｉｚａｔｉｏｎ  Ｕｎｉｔ）によって構成されている。
【０００６】
なお、前記ＰＯＵ１は、アルゴリズム（即ち、プログラムコード）１ｂ，該アルゴリズム１ｂで使用される変数定義１ａ，該ＰＯＵ１中の変数定義１ａに対応するインスタンスを格納する領域（以下、インスタンス領域と称する）１ｄ，該インスタンス領域１ｄを格納する領域（以下、インスタンス格納領域と称する）１ｃを、ＰＬＣの記憶装置（即ち、メモリ）内に有している。即ち、ＰＯＵ毎にインスタンス格納領域を有しており、さらに、該インスタンス格納領域内部に変数定義に対応するインスタンス領域を有していることになる。一般的には、用途別に１つのＰＯＵに対して複数のインスタンス領域を有することがある。
【０００７】
また、前記プログラムの実行単位にはタスクが存在し、該タスク内に任意のＰＯＵを登録し実行できるものである。
【０００８】
例えば、前記プログラムが変更された場合、前記ＰＯＵ１のインスタンス領域１ｄ（あるいは、インスタンス格納領域１ｃ）のアドレスも変更されてしまうことがあるため、該プログラムのオンライン変更を困難にしている。
【０００９】
また、前記の言語によるプログラミングの特徴は、ユーザがインスタンス領域の位置のアドレスを意識しないことである。しかし、動作中プログラムの変更を行うためには、その動作中プログラムのインスタンス領域を確認し、その変更のための新規プログラムのインスタンス領域を、既存のプログラムが使っていない領域に配置する必要がある。
【特許文献１】特開平１０−２０７５１２（段落［００２０］〜［００２６］等）。
【特許文献２】特開２００１−１４２５１０（段落［００２３］〜［００２８］等）。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
前述のようなプログラムをオンライン変更するためには、該プログラムの実行に使用されるインスタンスが格納されているインスタンス領域の内容及びアドレスを変更しないようにすることが必要である。
【００１１】
例えば、ＰＬＣに対してプログラム（即ち、ＰＯＵ）を追加した場合、該ＰＯＵを追加した分だけ、使用するインスタンス容量が大きくなる。そのため、前記ＰＯＵに対応するインスタンス領域のための空き領域が無かった場合には、オンライン変更はできないことになる。
【００１２】
前記のようなプログラム追加に対応するために、例えば、図５のように、ＰＯＵ作成時において、インスタンス格納領域１ｃの大きさに、予め余裕（即ち、所定の空き領域；例えば、図５中の空き領域ｆ１）を持たせておくＰＬＣも現存する。
【００１３】
しかし、前記のような空き領域ｆ１は、ＰＯＵ毎に数Ｗ（Ｗｏｒｄ）から数１０Ｗの容量となることが一般的であり、この容量を超えるようなプログラム変更を行うことはできない。
【００１４】
本発明は、前記課題に基づいてなされたものであり、追加するＰＯＵのインスタンス領域を確保するために、ＰＯＵのインスタンス格納領域をタスク毎に管理するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、前記課題の解決を図るために、請求項１記載の発明は、ＰＯＵによって構成されたタスクを有し、メモリを有し管理するプログラマブルロジックコントローラであって、前記タスク毎にインスタンス格納領域を前記プログラマブルロジックコントローラのメモリ内に確保し、前記ＰＯＵのインスタンス領域を該インスタンス格納領域内に置いて管理することを特徴とする。
【００１６】
請求項２記載の発明は、請求項１記載の発明において、前記プログラマブルロジックコントローラが前記インスタンス格納領域内の空き領域の位置情報を提出する手段と、該プログラマブルロジックコントローラが追加されるＰＯＵのインスタンス領域の位置情報を受け取る手段と、該追加されるＰＯＵのインスタンス領域の位置情報に基づいて、前記インスタンス格納領域内に存在する空き領域中に、該追加されるＰＯＵのインスタンス領域を確保する手段と、を含むことを特徴とする。
【００１７】
請求項３記載の発明は、請求項１または２記載の発明において、前記インスタンス格納領域とは独立に拡張インスタンス格納領域を確保し、追加されるＰＯＵに該拡張インスタンス格納領域をアクセスさせる手段を含むことを特徴とする。
【００１８】
請求項４記載の発明は、ＰＯＵによって構成されたタスクを制御するプログラマブルロジックコントローラのメモリを管理するプログラマブルロジックコントローラメモリ管理方法であって、前記タスク毎にインスタンス格納領域を前記プログラマブルロジックコントローラのメモリ内に確保し、前記ＰＯＵのインスタンス領域を該インスタンス格納領域内に置いて管理することを特徴とする。
【００１９】
請求項５記載の発明は、請求項４記載の発明において、前記プログラマブルロジックコントローラが前記インスタンス格納領域内の空き領域の位置情報を提出し、該プログラマブルロジックコントローラが追加されるＰＯＵのインスタンス領域の位置情報を受け取り、該追加されるＰＯＵのインスタンス領域の位置情報に基づいて、前記インスタンス格納領域内に存在する空き領域中に、該追加されるＰＯＵのインスタンス領域を確保する、ことを特徴とする。
【００２０】
請求項６記載の発明は、請求項４または５記載の発明において、前記インスタンス格納領域とは独立に拡張インスタンス格納領域を確保し、追加されるＰＯＵに該拡張インスタンス格納領域をアクセスさせることを特徴とする。
【００２１】
前記の請求項１，４記載の発明によれば、ＰＯＵのインスタンス領域を統合できる。
【００２２】
前記の請求項２，５記載の発明によれば、追加されるＰＯＵのインスタンス領域の位置を精細に指定できる。
【００２３】
前記の請求項３，６記載の発明によれば、独立したインスタンス格納領域を確保できる。
【発明の効果】
【００２４】
以上示したように、請求項１，４記載の発明によれば、タスク毎にインスタンス格納領域を管理できる。
【００２５】
請求項２，５記載の発明によれば、インスタンス格納領域を無駄なく使用できる。
【００２６】
請求項３，６記載の発明によれば、動作中のＰＬＣ（もしくは、ＰＬＣ中のプログラム）に影響を及ぼさずに、ＰＯＵ追加を行うことができる。
【００２７】
これらを以ってＰＬＣの分野に貢献できる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の第１乃至第３形態におけるプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法を図面等に基づいて詳細に説明する。
【００２９】
本発明の実施の第１乃至第３形態は、ＰＬＣのメモリ内において、ＰＯＵのインスタンス格納領域をタスク毎に確保し、該インスタンス格納領域内に該ＰＯＵのインスタンス領域を置いて、該ＰＬＣのメモリを管理するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法である。
【００３０】
まず、本実施の第１乃至第３形態におけるＰＬＣのプログラム変更時の装置構成を図６に基づいて説明する。
【００３１】
図６中のＰＡＤＴ（Ｐｒｏｇｒａｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇ  Ｔｏｏｌ）１０とＰＬＣ本体１１は、通信回線（或いは、伝送回線）１００で接続されおり、ＰＡＤＴ１０からの指示によって、ＰＬＣ本体１１中のプログラムを変更する。
【００３２】
次に、本実施の第１乃至第３形態におけるＰＬＣ本体の構成を図７に基づいて説明する。
【００３３】
図７中のＰＬＣ本体１１は、ＰＬＣ本体１１中の各装置を制御し、ＰＡＤＴ１０との通信を行う管理ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１ａ，ＰＯＵを格納し管理するプログラムメモリ１１ｂ，各ＰＯＵに対応するインスタンス格納領域を有するデータメモリ１１ｃを備えている。例えば、図７中のＰＯＵ１に対応するインスタンス格納領域はインスタンス格納領域ｉ1、図７中のＰＯＵ２に対応するインスタンス格納領域はインスタンス格納領域ｉn、図７中のＰＯＵｎに対応するインスタンス格納領域はインスタンス格納領域ｉ2となる。
【００３４】
［本実施の第１形態］
本実施の第１形態は、タスク単位にインスタンス格納領域を確保するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法である。
【００３５】
ＰＯＵ毎にインスタンス格納領域を確保した場合、各々のＰＯＵに空き領域が生じ、その空き領域が無駄な領域になり易い。そこで、プログラム変更を行う場合、タスク（即ち、ＰＯＵの集合体）単位に変更が行われることが多いことに着目し、タスク中のＰＯＵ毎に割り当てられたインスタンス格納領域を統合することによって、ＰＯＵ毎の空き領域も統合し、無駄な領域を作らないようにする。
【００３６】
即ち、本実施の第１形態では、インスタンス領域をＰＯＵ単位で管理するのではなく、タスク単位で管理することを特徴とする。
【００３７】
本実施の第１形態を図１に基づいて以下に説明する。なお、図１は本実施の第１形態におけるＰＬＣ内のメモリ空間を表す概念図である。
【００３８】
まず、図１中のＰＯＵ１とＰＯＵ２によって１タスクが構成されているものとする。さらに、前記タスクに対応するインスタンス格納領域Ｄ１がＰＬＣの記憶装置（即ち、メモリ）内に確保されているものとする。即ち、前記インスタンス格納領域は、１タスクを生成する際に、ＰＬＣによってメモリ中に確保されることになる。
【００３９】
例えば、ＰＬＣによってメモリ内に領域が確保されると、ＰＬＣ内に該領域の開始アドレス及び終了アドレスが登録される。そして、前記タスク中のＰＯＵからＰＬＣに該領域に対するアクセス指示があった場合に、それらの開始アドレス及び終了アドレスが参照されて、該領域にアクセスされる。
【００４０】
また、前記のＰＯＵ１，ＰＯＵ２は、インスタンス格納領域Ｄ１中のインスタンス領域ｄ１にアクセスできるように、アルゴリズム１ｂ，アルゴリズム２ｂを設計（即ち、プログラミング）する。例えば、前記のプログラミングとしては、ＰＯＵ中の変数定義にインスタンス格納領域の開始アドレスから所望のインスタンス領域までのオフセットを設定しても良い。
【００４１】
前記のようなオフセットを利用してＰＯＵから該ＰＯＵのインスタンスに対するアクセス方法は、例えば、次の通りである。
【００４２】
まず、ＰＬＣが、タスク単位のインスタンス格納領域を所定の位置及びサイズで該ＰＬＣのメモリ内に確保する。
【００４３】
次に、前記ＰＯＵが、該ＰＯＵのインスタンスに対するアクセスを、変数定義中のオフセットに基づいてＰＬＣに指示する。
【００４４】
次に、前記ＰＬＣが、前記インスタンス格納領域の開始アドレスに前記オフセットを加えて得られたアドレスに基づいて、前記ＰＯＵに前記インスタンス格納領域中のインスタンス領域に対してアクセスさせる。
【００４５】
例えば、前記タスクに対して図１中のＰＯＵ３を新たに追加する場合、前記のインスタンス格納領域Ｄ１中の空き領域ｆ２に、該ＰＯＵ３のインスタンス領域を新たに確保することになる。
【００４６】
以上のような本実施の第１形態によれば、プログラム変更（即ち、ＰＯＵ追加）に係るインスタンス領域を、タスク毎のインスタンス格納領域内の空き領域から容易に確保できる。
【００４７】
例えば、空き領域として１ＫＷ（ＫｉｌｏＷｏｒｄ）を予め確保できれば、１ＫＷ以内のオンライン変更ができることになる。通常、１ＫＷ程度あれば、一般的なプログラムの変更に対して十分である。
【００４８】
［本実施の第２形態］
本実施の第２形態は、インスタンス領域の位置情報を指定して、該インスタンス領域を確保するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法である。
【００４９】
本実施の第２形態の前提として、タスク単位に確保されたインスタンス格納領域中には空き領域（即ち、未使用領域）が存在するものとする。その前提の下に、本実施の第２形態は、前記の空き領域中に新たなインスタンス領域を確保する際に、その新たなインスタンス領域の位置情報を指定して確保するものである。
【００５０】
なお、領域の位置情報は、例えば、開始アドレスまたは終了アドレス、それらに加えて好ましくは、その領域のサイズ、によって表現されたものとする。
【００５１】
本実施の第２形態を図２に基づいて以下に説明する。なお、図２は本実施の第２形態におけるＰＬＣ内のメモリ空間を表す概念図である。
【００５２】
まず、図２中のＰＯＵ１及びＰＯＵ２は、インスタンス格納領域Ｄ１を使用しているものとする。
【００５３】
図２中のＰＯＵ３をＰＬＣに追加する手順の例は次の通りである。
【００５４】
まず、空き領域の位置情報の取得をＰＬＣに対して指示する。なお、前記の指示の方法は、例えば、ＰＬＣに接続した端末からの通信（即ち、コマンドなど）によって指示する方法でも良い。
【００５５】
次に、前記ＰＬＣは空き領域ｆ２の位置情報を提出する。なお、前記の提出の方法は、例えば、ＰＬＣに接続された端末に対して、ＰＬＣが通信によって前記の位置情報を提出する方法でも良い。
【００５６】
次に、前記ＰＯＵ３が空き領域ｆ２にアクセスできるように、前記の空き領域ｆ２の位置情報に基づいて該ＰＯＵ３を作成する。
【００５７】
例えば、前記ＰＯＵ３のインスタンス領域が前記の空き領域ｆ２に収まるように、拡張インスタンス格納領域Ｄ１の開始アドレスからＰＯＵ３のインスタンス領域までのオフセットを決定し、該ＰＯＵ３中の変数定義３ａに該オフセットが設定されるように該ＰＯＵ３を作成する。
【００５８】
次に、前記ＰＯＵ３のインスタンス領域の位置情報を前記ＰＬＣに対して指定し、該ＰＯＵ３を該ＰＬＣに新たに追加する。前記の指定方法は、例えば、ＰＯＵを追加するためのコマンド中に前記の位置情報を含め、ＰＬＣに対して指示する方法でもよい。
【００５９】
そして、前記ＰＬＣは、前記ＰＯＵ３のインスタンス領域の位置情報に基づいて、空き領域ｆ２内に該ＰＯＵ３のインスタンス領域を確保する。
【００６０】
以上のような本実施の第２形態によれば、ＰＬＣのメモリ上の的確な位置に、インスタンス領域を確保することができる。
【００６１】
［本実施の第３形態］
本実施の第３形態は、独立に拡張されたインスタンス格納領域を確保するプログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法である。
【００６２】
即ち、本実施の第３形態は、タスク単位に確保されたインスタンス格納領域中の空き領域が不足した（即ち、インスタンス格納領域がインスタンスで満たされている）場合に、該インスタンス格納領域とは独立に確保された（或いは、拡張された）インスタンス格納領域（以後、拡張インスタンス格納領域と称する）を確保及び使用して、その不足を補うものである。
【００６３】
なお、前記の拡張インスタンス格納領域は、ＰＬＣの記憶装置内に１つ確保され、該ＰＬＣ内の各ＰＯＵが共通に使用できる領域である。
【００６４】
本実施の第３形態を図３に基づいて以下に説明する。なお、図３は本実施の第３形態におけるＰＬＣ内のメモリ空間を表す概念図である。
【００６５】
まず、図３中のＰＯＵ１及びＰＯＵ２は、インスタンス格納領域Ｄ１を使用しているものとする。さらに、空き領域ｆ２は追加ＰＯＵのために必要なサイズを有していないものとする。
【００６６】
図３中のＰＯＵ３をＰＬＣに追加する場合、該ＰＯＵ３が拡張インスタンス格納領域Ｄ２にアクセスできるように該ＰＯＵ３を作成する。例えば、前記ＰＯＵ３中の変数定義３ａに拡張インスタンス格納領域Ｄ２の開始アドレスから該ＰＯＵ３のインスタンス領域までのオフセットが設定されるように、該ＰＯＵ３を作成する。
【００６７】
また、前記ＰＯＵ３から拡張インスタンス格納領域Ｄ２に対するアクセス方法は、例えば、次の通りである。
【００６８】
まず、ＰＬＣが、前記の拡張インスタンス格納領域Ｄ２を所定の位置及びサイズで該ＰＬＣのメモリ内に確保する。
【００６９】
次に、前記ＰＯＵ３が該ＰＯＵ３のインスタンスに対するアクセスを、変数定義３ａ中のオフセットに基づいてＰＬＣに指示する。なお、前記オフセットは、拡張インスタンス格納領域Ｄ２の開始アドレスから該ＰＯＵ３のインスタンス領域までのオフセットである。
【００７０】
次に、前記ＰＬＣが、前記拡張インスタンス格納領域Ｄ２の開始アドレスに前記オフセットを加算して得られたアドレス（即ち、インスタンス領域の開始アドレス）に基づいて、ＰＯＵに該拡張インスタンス格納領域Ｄ２に対してアクセスさせる。
【００７１】
以上のような本実施の第３形態によれば、前記の拡張インスタンス格納領域Ｄ２が、インスタンス格納領域Ｄ１から独立しているため、前記のインスタンス格納領域に影響を及ぼさずに、オンライン変更（例えば、ＰＬＣに対するＰＯＵ追加）を行うことができる。
【００７２】
以上、本発明において、記載された具体例に対してのみ詳細に説明したが、本発明の技術思想の範囲で多彩な変形および修正が可能であることは、当業者にとって明白なことであり、このような変形および修正が特許請求の範囲に属することは当然のことである。
【００７３】
例えば、本実施の第２形態における位置情報は、インスタンス格納領域の開始アドレスからのオフセット、それらに加えて好ましくは、その領域のサイズ、によって表現されたものでも良い。即ち、前記のオフセットは、ＰＬＣによってインスタンス格納領域の開始アドレスに基づいたアドレスに変換される。
【図面の簡単な説明】
【００７４】
【図１】本実施の第１形態におけるＰＬＣ内のメモリ空間概念図。
【図２】本実施の第２形態におけるＰＬＣ内のメモリ空間概念図。
【図３】本実施の第３形態におけるＰＬＣ内のメモリ空間概念図。
【図４】一般的なＰＬＣ内のメモリ空間の例１を表す概念図。
【図５】一般的なＰＬＣ内のメモリ空間の例２を表す概念図。
【図６】ＰＬＣのプログラム変更時の装置構成図。
【図７】ＰＬＣ本体の構成図。
【符号の説明】
【００７５】
１，２，３，ｎ…ＰＯＵ
１ａ，２ａ，３ａ…変数定義
１ｂ，２ｂ，３ｂ…アルゴリズム（プログラムコード）
１ｃ…ＰＯＵ単位のインスタンス格納領域
１ｄ…ＰＯＵ単位のインスタンス領域
１０…ＰＡＤＴ（Ｐｒｏｇｒａｍｉｎｇ  Ａｎｄ  Ｄｅｂｕｇ  Ｔｏｏｌ）
１１…ＰＬＣ本体
１００…通信回線（或いは、伝送回線）
１１ａ…管理ＣＰＵ
１１ｂ…プログラムメモリ
１１ｃ…データメモリ
ｆ１…ＰＯＵ単位の空き領域
ｆ２…タスク単位の空き領域
ｄ１…タスク単位のインスタンス領域
ｉ1，ｉ2，ｉn…インスタンス格納領域
Ｄ１…タスク単位のインスタンス格納領域
Ｄ２…拡張インスタンス格納領域
【図１】
2008269449.tif 000003
【図２】
2008269449.tif 000004
【図３】
2008269449.tif 000005
【図４】
2008269449.tif 000006
【図５】
2008269449.tif 000007
【図６】
2008269449.tif 000008
【図７】
2008269449.tif 000009