(57)【特許請求の範囲】
【請求項１】
制御項目に対応して用意された複数のソフトウエア及びこのソフトウエア毎に使用するメモリエリアが割付けられたテンポラリメモリ部を有するプログラマブルコントローラにおいて、上記テンポラリメモリ部は、上記ソフトウエア毎に割付けられ、実使用されている実使用エリア及び実使用されていない余裕エリアを有する割付エリアと、上記ソフトウエア毎に割付けられていない空きエリアとにより構成され、上記割付エリア内の実使用エリアのメモリ数を算出するメモリ数算出部、上記テンポラリメモリ部内の上記各ソフトウエア毎の割付エリアの割付情報を記憶するメモリ使用状況情報記憶部、及び上記ソフトウエアに追加のメモリエリアが必要な場合に、上記メモリ数算出部及び上記メモリ使用状況情報記憶部の情報に基づいて、上記追加が必要なメモリ数に応じて上記テンポラリメモリ部の空きエリアに上記ソフトウエアに対する追加割付けを行うメモリ割付部を備え、上記メモリ割付部は、上記追加が必要なメモリ数が上記ソフトウエアの割付エリア内の余裕エリアより大きい場合に、上記ソフトウエアの割付エリアに追加して、上記空きエリアに上記追加が必要なメモリ数より大きい上記ソフトウエアの新たな割付エリアを割付けることを特徴とするプログラマブルコントローラ。
【請求項２】
制御項目に対応して用意された複数のソフトウエア及びこのソフトウエア毎に使用するメモリエリアが割付けられたテンポラリメモリ部を有するプログラマブルコントローラにおいて、上記テンポラリメモリ部は、上記ソフトウエア毎に割付けられ、実使用されている実使用エリア及び実使用されていない余裕エリアを有する割付エリアと、上記ソフトウエア毎に割付けられていない空きエリアとにより構成され、上記割付エリア内の実使用エリアのメモリ数を算出するメモリ数算出部、上記テンポラリメモリ部内の上記各ソフトウエア毎の割付エリアの割付情報を記憶するメモリ使用状況情報記憶部、及び上記ソフトウエアに追加のメモリエリアが必要な場合に、上記メモリ数算出部及び上記メモリ使用状況情報記憶部の情報に基づいて、上記追加が必要なメモリ数に応じて上記テンポラリメモリ部の空きエリアに上記ソフトウエアに対する追加割付けを行うメモリ割付部を備え、上記メモリ割付部は、上記追加が必要なメモリ数が上記ソフトウエアの割付エリア内の余裕エリアより大きい場合に、上記ソフトウエアの割付エリアに追加して、上記空きエリアに上記追加が必要なメモリ数から上記余裕エリアを減算した残りより大きい上記ソフトウエアの新たな割付エリアを割付けることを特徴とするプログラマブルコントローラ。
【請求項３】
上記割付エリアに割付けられるメモリ数を指定するテンポラリメモリ指定部を備えたことを特徴とする請求項１または請求項２記載のプログラマブルコントローラ。
【請求項４】
上記メモリ割付部によって追加割付けされる上記新たな割付エリアの先頭アドレスを決定する割付先頭アドレス決定部を備えたことを特徴とする請求項１〜請求項３のいずれかに記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は鉄鋼・化学等のプラントに於いて、プラント内の機器を制御するＳ／Ｗ（ソフトウエア、以下同じ）を搭載するプログラマブル・コントローラ、特にそのテンポラリメモリの割付に関するものである。
【０００２】
【従来の技術】
図８、図９、図１０、図１１は、例えば特開昭６２―１１９０３に示された従来のプログラマブルコントローラの構成及びテンポラリメモリの割付方法を示す図である。図８において、１０１はプログラマブルコントローラに搭載されたＳ／Ｗを実行するＣＰＵ、１０２は対象機器を制御するための複数のＳ／Ｗを格納するプログラムメモリである。１０３は、Ｓ／Ｗを実行する際に参照する数値データ等の情報を格納するテンポラリメモリで例えばＲＡＭ等で構成される。１０４はＳ／Ｗやデータを入力するための入力操作部、１０５及び１０６は、それぞれ、制御対象機器からの情報を入力する入力信号Ｉ／Ｆ部、および制御対象機器への制御信号を出力するための出力信号Ｉ／Ｆ部である。また、１０７は各部を接続するバスである。
図９乃至図１１はテンポラリメモリ１０３の使用形態の例を示す。１１０および１１１はコントローラに搭載された複数のＳ／Ｗが各々参照するデータを格納したテンポラリエリアであり、１１０はＳ／Ｗ１が使用するテンポラリメモリエリア、１１１はＳ／Ｗ２が使用するテンポラリメモリエリアである。１１２はテンポラリメモリ１０３内でどのＳ／Ｗも使用していない空領域であり、Ｓ／Ｗが追加されたり、既存Ｓ／Ｗが増加して新たなテンポラリメモリが必要となった場合に、この空領域を使用する。
【０００３】
次に上記プログラマブルコントローラにおけるテンポラリメモリの割付に関する動作について説明する。Ｓ／Ｗ１が使用するテンポラリメモリエリア１１０の使用エリアが増加し、図１０（Ａ）の斜線部分１１３まで拡張する必要がある場合、Ｓ／Ｗ１が使用するテンポラリメモリエリア１１０と、Ｓ／Ｗ２が使用するテンポラリメモリエリア１１１との間で領域の重複が生じることになる。そこで図１０（Ｂ）に示すように、テンポラリメモリエリア１１１の先頭位置をテンポラリメモリエリア１１０の最終位置の直後まで移動し、同時にテンポラリメモリ１１１に格納されていた情報を新たに再配置されたテンポラリメモリエリア１１１に移動させる。Ｓ／Ｗ１が使用するテンポラリメモリエリア１１０の使用エリアが減った場合は、テンポラリメモリエリア１１０は少なくて済むので、圧縮されたテンポラリメモリ１１０の最終位置の直後にテンポラリメモリエリア１１１の先頭位置を再移動し、同時にテンポラリメモリエリア１１１に格納されていた情報を再配置されたテンポラリメモリエリア１１１に移動させる。これによりメモリエリアが有効に使用され、また格納されていた情報も保護されることになる。
【０００４】
【発明が解決しようとする課題】
従来のプログラマブルコントローラでは以上のように構成されていたので、Ｓ／Ｗが使用するテンポラリメモリ量の増減によって使用するテンポラリメモリエリアが変更された場合に、テンポラリメモリを有効に活用でき、更に格納されているデータの保護も行う事が出来ていた。しかし、プログラマブルコントローラに搭載されるＳ／Ｗは実行速度を高速にする必要があるため、メモリアクセスを容易に出来るよう、Ｓ／Ｗ内に直接テンポラリメモリのアドレスを記述することがー般的に行われている。このため、上記のようにテンポラリメモリエリアにおけるテンポラリメモリの先頭位置を移動させる従来方式の場合には、対応してＳ／Ｗ内のテンポラリメモリアドレス記述部分を全て書き換えなければならない。この書き換え作業は膨大になるとともに、修正ミス等が発生する可能性が高い。また、Ｓ／Ｗ内に記述されているテンポラリメモリアドレスを、再設定されたテンポラリメモリエリアに合致するように自動変換することも考えられるが、この場合プログラムの内容が変更されることになり、Ｓ／Ｗの動作確認を再度行う必要が生じる。またＳ／Ｗのメインテナンス用に作成されるドキュメント等にはテンポラリメモリのアドレスが記載されているため、これらのドキュメントも再作成しなければならない、といった問題があった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、新たにテンポラリメモリエリアの拡大または圧縮が必要になった場合に、テンポラリメモリエリアの既配置状態を変更せずに対応できるようにしたプログラマブルコントローラを提供する事を目的とする。
【０００６】
【課題を解決するための手段】
この発明におけるプログラマブルコントローラは、制御項目に対応して用意された複数のソフトウエア及びこのソフトウエア毎に使用するメモリエリアが割付けられたテンポラリメモリ部を有するプログラマブルコントローラにおいて、テンポラリメモリ部は、ソフトウエア毎に割付けられ、実使用されている実使用エリア及び実使用されていない余裕エリアを有する割付エリアと、ソフトウエア毎に割付けられていない空きエリアとにより構成され、割付エリア内の実使用エリアのメモリ数を算出するメモリ数算出部、テンポラリメモリ部内の各ソフトウエア毎の割付エリアの割付情報を記憶するメモリ使用状況情報記憶部、及びソフトウエアに追加のメモリエリアが必要な場合に、メモリ数算出部及びメモリ使用状況情報記憶部の情報に基づいて、追加が必要なメモリ数に応じてテンポラリメモリ部の空きエリアにソフトウエアに対する追加割付けを行うメモリ割付部を備え、メモリ割付部は、追加が必要なメモリ数がソフトウエアの割付エリア内の余裕エリアより大きい場合に、ソフトウエアの割付エリアに追加して、空きエリアに追加が必要なメモリ数より大きいソフトウエアの新たな割付エリアを割付けるものである。
【０００７】
また、制御項目に対応して用意された複数のソフトウエア及びこのソフトウエア毎に使用するメモリエリアが割付けられたテンポラリメモリ部を有するプログラマブルコントローラにおいて、テンポラリメモリ部は、ソフトウエア毎に割付けられ、実使用されている実使用エリア及び実使用されていない余裕エリアを有する割付エリアと、ソフトウエア毎に割付けられていない空きエリアとにより構成され、割付エリア内の実使用エリアのメモリ数を算出するメモリ数算出部、テンポラリメモリ部内の各ソフトウエア毎の割付エリアの割付情報を記憶するメモリ使用状況情報記憶部、及びソフトウエアに追加のメモリエリアが必要な場合に、メモリ数算出部及びメモリ使用状況情報記憶部の情報に基づいて、追加が必要なメモリ数に応じてテンポラリメモリ部の空きエリアにソフトウエアに対する追加割付けを行うメモリ割付部を備え、メモリ割付部は、追加が必要なメモリ数がソフトウエアの割付エリア内の余裕エリアより大きい場合に、ソフトウエアの割付エリアに追加して、空きエリアに追加が必要なメモリ数から余裕エリアを減算した残りより大きいソフトウエアの新たな割付エリアを割付けるものである。
【０００８】
また、割付エリアに割付けられるメモリ数を指定するテンポラリメモリ指定部を備えたものである。
【０００９】
さらに、メモリ割付部によって追加割付けされる新たな割付エリアの先頭アドレスを決定する割付先頭アドレス決定部を備えたものである。
【００１０】
【発明の実施の形態】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。図１は、この発明の実施の形態１によるプログラマブルコントローラの構成を示す図である。図１において、１は、プログラマブルコントローラに搭載されるＳ／Ｗが使用するテンポラリメモリ部、２は、プログラマブルコントローラに搭載されるＳ／Ｗ群、３は、前記各Ｓ／Ｗが実使用するテンポラリメモリ部１のメモリ数（割付エリア内の実使用エリアのメモリ数）を算出するメモリ数算出部、４は、前記各Ｓ／Ｗ用のテンポラリメモリの割付状態を管理する割付状態管理部、５は、割付状態管理部４によって生成されるメモリ数割付状態に係る情報を記憶するメモリ使用状況情報記憶部、６は、メモリ数算出部３とメモリ使用状況情報記憶部５から、既に割付が行われているテンポラリメモリの割付エリア内の余裕エリアに、新たに追加することとなったテンポラリメモリの割付が可能か否かを判定する割付判定部、７は、テンポラリメモリ部１内の空エリアに対し、新たに割付が必要になったテンポラリメモリ（新たな割付エリア）の割付の先頭アドレスを指定する先頭アドレス指定部、８は、先頭アドレスを設定する先頭アドレス入力部、９は、先頭アドレスの指定に基づきテンポラリメモリ部１にテンポラリメモリの割付を行うメモリ割付部である。
【００１１】
次に動作について説明する。
プログラマブルコントローラに搭載されるＳ／Ｗ群２は、テンポラリメモリ部１に情報を格納し、またテンポラリメモリ部１から情報を取得しながら必要な各種の処理を行う。また、各Ｓ／Ｗを作成する際には、他のＳ／Ｗと区別するためのＳ／Ｗ識別子と、Ｓ／Ｗ内に存在する各命令が出力するデータを他の命令が入力データとして使用するための命令間のデータの授受の流れを表す出力元命令及び入力先命令の関連情報とを同時に定義するようにしている。
【００１２】
メモリ数算出部３は、この出力元命令及び入力先命令の関連情報から、各入出力命令のペア毎にテンポラリメモリを１つ割付けるものとし、必要なテンポラリメモリの数を算出する。これが、各Ｓ／Ｗが使用するテンポラリメモリの実使用メモリ数となる。ただし、ある命令が出力するデータを、複数の命令が入力データとして使用する場合には、割付けられたテンポラリメモリを、複数の入力命令が使用することになるため、その分のテンポラリメモリ数は実使用数から減算される。さらに、将来Ｓ／Ｗが改修され必要テンポラリメモリ数が増加することを想定し、余裕分を加算して必要テンポラリメモリ数とする。メモリ数算出部３にて算出された必要テンポラリメモリ数は、前記Ｓ／Ｗ識別子と共にメモリ割付部９に送られる。
【００１３】
メモリ割付部９は、送られて来た前記Ｓ／Ｗ識別子と必要テンポラリメモリ数に係る情報に基づいて、テンポラリメモリ部１内にそのＳ／Ｗ用のテンポラリメモリエリアを割付ける。この時、メモリ割付部９は、メモリ使用状況情報記憶部５により、そのＳ／Ｗ用に割付けられているテンポラリメモリエリア内に、追加のテンポラリメモリを割り付けるメモリエリアが存在するか否かをチェックする。必要なテンポラリメモリエリアが存在していなければ、テンポラリメモリ部１内の空エリアに新たに割付ける。そして、割付状態管理部４に対し、当該Ｓ／Ｗの識別子、新たに割付けたテンポラリメモリ部１内の先頭アドレス、必要テンポラリメモリ数に基づく割付範囲及び実使用メモリ数の情報を告知する。割付状態管理部４は、メモリ割付部９から告知された情報に基づき、前記Ｓ／Ｗ識別子とともに割付先頭アドレス、割付エリア及び実使用メモリ数をメモリ使用状況情報記憶部５に格納する。
【００１４】
ここで、テンポラリメモリを割り付けるメモリエリアが存在するか否かのチェックは以下のように行われる。メモリ使用状況情報記憶部５に蓄積されている情報より、Ｓ／Ｗ用に割付けられているテンポラリメモリエリアが存在することが判明した場合は、メモリ割付部９は割付判定部６に対しＳ／Ｗ識別子と新たに算出された実使用メモリ数の情報を告知する。割付判定部６は、告知されたＳ／Ｗ識別子をもとに、メモリ使用状況情報記憶部５内に既に格納されているＳ／Ｗ用テンポラリメモリエリア及び実使用メモリ数の情報を取得し、Ｓ／Ｗ用テンポラリメモリエリアから実使用メモリ数を減算して、余裕分として割付けられたテンポラリメモリ数を算出する。メモリ使用状況情報記憶部５から取得した実使用メモリ数と、通知された新たな実使用メモリ数の情報とを比較し、実使用メモリ数が増加しておればその増分を算出する。算出した余裕分のテンポラリメモリ数及び増分から、増加した実使用テンポラリメモリ数が余裕分のテンポラリメモリエリアに割付可能か否かを判定し、割付可能であればメモリ割付部９に対し割付可能であることを告知する。メモリ割付部９は、割付状態管理部４に対しメモリ使用状況情報記憶部５の実使用メモリ数の情報の更新を指示する。割付状態管理部４はメモリ使用状況情報記憶部５内の該当Ｓ／Ｗ用の実使用数を更新する。
【００１５】
テンポラリメモリエリアのメモリ数の確保が困難である場合には、メモリ割付部９に対し割付が不可能であることを告知するとともに、先頭アドレス指定部７に対しても、テンポラリメモリエリアの割付が出来ないＳ／Ｗ識別子と割付できない実使用メモリ数に係る情報およびテンポラリメモリ部１内に新たな該当Ｓ／Ｗ用テンポラリメモリエリアを確保する必要がある旨の告知を行う。先頭アドレス指定部７は作業者に対し、テンポラリメモリエリアが不足しているＳ／Ｗと、不足数、テンポラリメモリ部１内の空エリア情報等を提供し、そのＳ／Ｗ用に新たに割付けるテンポラリメモリエリアの先頭アドレス及び割付数の指定を促す。
【００１６】
作業者は、先頭アドレス入力部８を使用して、そのＳ／Ｗ用に新たに割付けるテンポラリエリアの先頭アドレス及び割付数を指定する。指定内容に基づいてテンポラリメモリエリアを割付けた際、指定された先頭アドレスとテンポラリメモリの割付数及びテンポラリメモリ部１内の空エリア情報から、他のＳ／Ｗ用テンポラリメモリエリアと重複が発生しないかをチェックし、重複する場合には、指定内容を変更するように作業者に対し告知する。重複が発生しない場合、割付判定部６は作業者の指定内容をメモリ割付部９に返し、メモリ割付部９はテンポラリメモリ部１内に該当Ｓ／Ｗ用テンポラリメモリエリアを新たに割付ける。この時、メモリ割付部９は新たに割付けられたテンポラリメモリ部１内のテンポラリメモリエリアに関する先頭アドレスと割付数および実使用数を、割付状態管理部４に対し通知し、割付状態管理部４は、テンポラリメモリ部１の割付状態をメモリ使用状況情報記憶部５に格納する。
【００１７】
次に、上記テンポラリメモリ部１に対し、新たにテンポラリメモリエリアを追加した場合のテンポラリメモリ部１の割付状態の変化を図５および図６により説明する。１３はテンポラリメモリ、１４はＳ／Ｗ１用に割付けられたＳ／Ｗ１用テンポラリメモリ割付エリア、１５はＳ／Ｗ１がＳ／Ｗ１用テンポラリメモリ割付エリア１４においてテンポラリメモリを実使用している実使用エリア、１６はＳ／Ｗ１用テンポラリメモリ割付エリア１４内でのメモリの余裕エリア、１７はＳ／Ｗ２用に割付けられたＳ／Ｗ２用テンポラリメモリ割付エリア、１８はＳ／Ｗ２がＳ／Ｗ２用テンポラリメモリ割付エリア１７においてテンポラリメモリを実使用している実使用エリア、１９はどのＳ／Ｗにも割付けられていないテンポラリメモリ１3 の空エリア、２０はＳ／Ｗ１の修正等でＳ／Ｗ１が新たに必要とするテンポラリメモリのテンポラリメモリ数を表す。また、図６において、２１はＳ／Ｗ１用として新たに追加が必要となったテンポラリメモリ数２０をテンポラリメモリ１３の空エリア１９に割付けた追加テンポラリメモリ割付エリア、２２は前記Ｓ／Ｗ１用の追加テンポラリメモリ割付エリア２１内で実使用されている追加テンポラリメモリの実使用エリアを示す。
【００１８】
図５の様に、Ｓ／Ｗ１の修正等でＳ／Ｗ１が必要とするテンポラリメモリ数が増加した場合、新たに必要となったテンポラリメモリ数２０はＳ／Ｗ１用テンポラリメモリ割付エリア１４内での余裕エリア１６より小さいため、Ｓ／Ｗ１用テンポラリメモリ割付エリア１４を拡張することなく新たに必要となったテンポラリメモリ数２０をＳ／Ｗ１用テンポラリメモリ割付エリア１４内に確保することが出来る。新たに必要となったテンポラリメモリ数２０が、Ｓ／Ｗ１用テンポラリメモリ割付エリア１４内での余裕エリア１６より大きい場合には、Ｓ／Ｗ１用テンポラリメモリ割付エリア１４を拡張しなければ、新たに必要となったテンポラリメモリ数２０をＳ／Ｗ１用テンポラリメモリ割付エリア１４に確保できない。この場合は、図６に示すように、新たに必要となったテンポラリメモリ数２０全体を空きエリア１３に割付けるようにする。具体的には、追加のＳ／Ｗ１用テンポラリメモリ割付エリア２１を、テンポラリメモリ１３内の空エリア１９内に生成し、これに追加のＳ／Ｗ１用テンポラリメモリを割付ける。これによって、Ｓ／Ｗ２用テンポラリメモリ割付エリア１７を移行させることなく、新たに必要となったテンポラリメモリ数２０をテンポラリメモリ１３内に確保することが可能となる。また、実施例ではテンポラリメモリについての割付方法を述べたが、この割付方法はプログラマブルコントローラ内の他のメモリの割付方法にも転用可能である。
【００１９】
以上のように、実施の形態１．では新たに割付が必要となったテンポラリメモリ数を全てテンポラリメモリ内の空エリアに割付けるようにしたので、既に割付が行われているテンポラリメモリエリアを移動させることなくテンポラリメモリの増加に対応できる。
【００２０】
実施の形態２．
実施の形態２は、実施の形態１における、テンポラリメモリ部１の使用効率が悪いという問題の改善策に関するものである。実施の形態１では新たに割付が必要となったテンポラリメモリ数２０を全て一体でテンポラリメモリ内の空エリアに割付けるようにしたので、割付が簡単に行える利点があるが、一方テンポラリメモリ部１内の各Ｓ／Ｗ用割付エリア内に使用されていない空エリアが散在することになり、テンポラリメモリ部１の使用効率が悪いという問題がある。実施の形態２では、該当Ｓ／Ｗ用のテンポラリメモリの実使用メモリ数が増加した場合に、既に存在する該当Ｓ／Ｗ用割付エリア内の余裕エリアに割付できる分はそこに割付け、一つの余裕エリアでは割付出来ない分についてはテンポラリメモリ内の空エリア１３に分けて割付けるようにしたものである。
これによって、テンポラリメモリ部１の使用効率を高めることが出来る。
【００２１】
次に、実施の形態２について図２に基づいて説明する。図２において、図１と同一符号は同一または相当部を示す。１０は、実施の形態１における割付判定部６を拡張した割付不可メモリ数算出部である。
【００２２】
割付不可メモリ数算出部１０はメモリ割付部９から告知されたＳ／Ｗ識別子をもとに、メモリ使用状況情報記憶部５内に既に格納されている該当Ｓ／Ｗ用テンポラリメモリエリア及び実使用メモリ数の情報を取得し、該当Ｓ／Ｗ用テンポラリメモリエリアに余裕分として割付けたテンポラリメモリ数を算出する。
メモリ使用状況情報記憶部５から取得した実使用メモリ数と通知された新たな実使用メモリ数の情報とを比較し、実使用メモリ数が増加していればその増分を算出する。余裕分のテンポラリメモリ数が存在する場合には増加した実使用テンポラリメモリの内、割付可能分を余裕分テンポラリメモリに割付け、割付不可の増加分のテンポラリメモリを先頭アドレス指定部７に告知する。
先頭アドレス指定部７は、割付不可メモリ数算出部１０から告知された割付不可増分数と、テンポラリメモリの割付が出来ないＳ／Ｗ識別子の情報と、テンポラリメモリ内に新たな該当Ｓ／Ｗ用テンポラリメモリを確保する必要がある旨の告知を作業者に行う。作業者は不足増分のみのテンポラリメモリ数をテンポラリメモリ部１に割付ける先頭アドレスを指示する。この指示を受けて、既割付エリア内で割付できなかった分は空エリアに割付けられ、結果的にテンポラリメモリを効率的に使用できる。
【００２３】
次に、上記テンポラリメモリ部１に対し、新たにテンポラリメモリエリアを追加した場合のテンポラリメモリ部１の割付状態の変化を図７に基づいて説明する。
図７において、図５，図６と同一符号のものは同一または相当部を示す。
増加必要テンポラリメモリ数２０はＳ／Ｗ１用テンポラリメモリ割付エリア１４の余裕エリア１６に収まりきれないので、一部を余裕エリア１６に割付し、残りを空きエリア１９に追加テンポラリエリア２１（新たな割付エリア）を設けここに割り付ける。２２は追加テンポラリメモリエリア２１の中での、実使用エリアである。
【００２４】
実施の形態３．
実施の形態３はテンポラリメモリエリアを大きく確保し、Ｓ／Ｗの大幅な改造が将来行われる場合でも対応できるようにしたものである。
【００２５】
以下図３に基づき、実施の形態３について説明する。図３は、実施の形態３の機能構成図である。図３において、図１、図２と同一符号のものは同一または相当機能のものである。１１はテンポラリメモリ指定部である。
【００２６】
実施の形態３では、実施の形態１のメモリ数算出部３と並列にテンポラリメモリ指定部１１を設けた。テンポラリメモリ指定部１１は、メモリ数算出部３が算出した必要テンポラリメモリ数を受け、作業者に知らせると共に、作業者からのテンポラリメモリエリアの増加指示により必要テンポラリメモリエリアを増加側へ変更する。これにより、メモリ数算出部３が算出した必要テンポラリメモリ数よりも大きなテンポラリメモリ数のエリアをテンポラリメモリ部１内に確保することが可能となる。なお、必要テンポラリメモリ数の増加を指示するテンポラリメモリ指定部１１は、先頭アドレス入力部８と共有する事が出来る。
【００２７】
Ｓ／Ｗによっては大幅な改造が行われる事があり、予め該当Ｓ／Ｗ用テンポラリメモリエリアを大きく確保する必要がある場合がある。実施の形態１では必要テンポラリメモリ数を算出し、不足分のみをテンポラリメモリ部１内に確保する構成となっているが、これでは大きなテンポラリメモリエリアを確保することが出来ない。実施の形態３はこの問題を解決するためのものであり、実施の形態１のメモリ数算出部３と並列にテンポラリメモリ指定部１１を設け、メモリ数算出部３が算出した必要テンポラリメモリ数を受け、作業者に知らせると共に、作業者からの増加指示により必要テンポラリメモリ数を増加側へ変更する機能を持たせた。これにより、メモリ数算出部３が算出した必要テンポラリメモリ数よりも大きなテンポラリメモリ数のメモリエリアをテンポラリメモリ部１内に確保することが可能となり、該当Ｓ／Ｗ用テンポラリメモリエリアを大きく確保する必要がある場合に対応できる。
【００２８】
実施の形態４．
以上の実施の形態では、いずれも各Ｓ／Ｗの必要テンポラリメモリが増えた場合、新たな割付エリアの先頭アドレス、割付数を作業者に指定させていたが、実施の形態４．では、さらに、必要テンポラリメモリの必要数が変わったときに、テンポラリメモリの不足数から割付エリアの先頭アドレス、割付数を計算して自動的にテンポラリメモリ部の空エリアに割付けるようにしたものである。
【００２９】
以下図４に基づいて実施の形態４を説明する。図４は、実施の形態４の機能構成図である。図４において、図１、図２、図３に記載の符号と同一のものは同一または相当部を示す。１２は割付先頭アドレス決定部である。
【００３０】
実施の形態１では各Ｓ／Ｗの必要テンポラリメモリが増えた場合、新たな割付エリアの先頭アドレス、割付数を作業者に指定させていたが、実施の形態４では、これを必要テンポラリメモリの不足数から自動的に割付けるようにしたものである。図４に示すように、実施の形態１の割付先頭アドレス指定部７を拡張し、割付先頭アドレス決定部１２とし、先頭アドレス入力部８を省いたものである。メモリ割付部９は割付判定部６から割付不可であることを告知された場合、割付先頭アドレス決定部１２に対し、テンポラリメモリの割付が出来ないＳ／Ｗ識別子と、割付けできない実使用メモリ数を告知する。割付先頭アドレス決定部１２はメモリ使用状況情報記憶部５の情報に基づき、割付けできない実使用メモリ数を割付けるための空エリアをテンポラリメモリ部１内に検出し、メモリ割付部９に対し、メモリ割付のための先頭アドレスを告知する。メモリ割付部９は、告知された先頭アドレスに基づきメモリエリアの割付を行う。これにより作業者の指示無しで新たなテンポラリメモリエリアを確保することが出来る。
【００３１】
【発明の効果】
以上のように、この発明によれば、既に割付けられている各Ｓ／Ｗのテンポラリメモリエリアを変更することなく追加のテンポラリメモリのメモリエリアの確保が可能となるので、既割付エリア内の情報をコピーする必要が無く、容易に必要テンポラリメモリの割付を行う事が可能となる効果がある。
【００３２】
また、各Ｓ／Ｗ用に割付けられているテンポラリメモリの空エリアを有効に使用するようにしたので、テンポラリメモリ内に不要な空エリアの発生を無くすことが出来る効果がある。
【００３３】
また、作業者がテンポラリメモリの割付数を指定できるようにしたので、将来のＳ／Ｗ変更等を考慮して予め大きくエリア設定が可能となり、必要テンポラリメモリ数の増加によるテンポラリメモリ内の割付変更を最小限に抑えることが可能となる。またテンポラリメモリの割付部そのものを簡素化できる効果がある。
【００３４】
さらに、操作者による割付エリアの指定作業をなくし、テンポラリメモリの新たな割付が必要になった場合に自動的に割付を行うようにしたので、テンポラリメモリの割付に要する作業効率が向上する効果がある。
【図面の簡単な説明】
【図１】  実施の形態１に係る機能構成図である。
【図２】  実施の形態２に係る機能構成図である。
【図３】  実施の形態３に係る機能構成図である。
【図４】  実施の形態４に係る機能構成図である。
【図５】  実施の形態１に係るテンポラリメモリへの追加割付方法の説明図である。
【図６】  実施の形態１に係るテンポラリメモリへの追加割付方法の説明図である。
【図７】  実施の形態２に係るテンポラリメモリへの追加割付方法の説明図である。
【図８】  一般的なプログラマブルコントローラの構成図である。
【図９】  従来のテンポラリメモリの割付方法を示す図である。
【図１０】  従来のテンポラリメモリの追加割付方法を示す図である。
【図１１】  従来のテンポラリメモリの追加圧縮方法を示す図である。
【符号の説明】
１  テンポラリメモリ部、２  Ｓ／Ｗ群、３  メモリ数算出部、
４  割付状態管理部、５  メモリ使用状況情報記憶部、６  割付判定部、
７  先頭アドレス指定部、８  先頭アドレス入力部、９  メモリ割付部、
１０  割付不可メモリ数算出部、１１  必要テンポラリメモリ指定部、
１２  割付先頭アドレス決定部、  １３  テンポラリメモリ、
１４  Ｓ／Ｗ１用テンポラリメモリ割付エリア、
１５  Ｓ／Ｗ１用テンポラリメモリの実使用エリア、
１６  Ｓ／Ｗ１用テンポラリメモリの余裕エリア、
１７  Ｓ／Ｗ２用テンポラリメモリ割付エリア、
１８  Ｓ／Ｗ２用テンポラリメモリの実使用エリア、
１９  空エリア、２０  増加必要テンポラリメモリ数、
２１  追加テンポラリメモリ割付エリア、
２２  追加テンポラリメモリの実使用エリア、
１０１  ＣＰＵ、１０２  プログラムメモリ、１０３  テンポラリメモリ、
１０４  入力操作部、１０５  入力信号Ｉ／Ｆ部、
１０５  出力信号Ｉ／Ｆ部、１０７  バス、
１１０  Ｓ／Ｗ１使用テンポラリエリア、
１１１  Ｓ／Ｗ２使用テンポラリエリア、
１１２  空エリア、１１３  拡張テンポラリエリア、
１１４  圧縮テンポラリエリア。
【図１】
0003703624.tif 000002
【図２】
0003703624.tif 000003
【図３】
0003703624.tif 000004
【図４】
0003703624.tif 000005
【図５】
0003703624.tif 000006
【図６】
0003703624.tif 000007
【図７】
0003703624.tif 000008
【図８】
0003703624.tif 000009
【図９】
0003703624.tif 000010
【図１０】
0003703624.tif 000011
【図１１】
0003703624.tif 000012