(57)【特許請求の範囲】
【請求項１】
ユーザプログラムを記憶するフラッシュメモリを備えた制御装置において、
前記フラッシュメモリに記憶されているユーザプログラムを変更させるフラッシュメモリ書込み処理が発生した場合に、前記ユーザプログラムの実行を停止させずに１サイクル中に一括して前記フラッシュメモリに書き込む一括書込み処理、前記ユーザプログラムの実行を停止させずに複数のサイクルに渡って分割して前記フラッシュメモリに書き込む分割書込み処理、および前記ユーザプログラムの実行を停止させたのち一括して前記フラッシュメモリに書き込む停止時における一括書込み処理のいずれか１つの処理を指定するための設定値を記憶する設定値記憶手段と、
この設定値記憶手段に記憶されている設定値に基づき、前記フラッシュメモリに記憶されているユーザプログラムを変更するデータ変更手段とを具備し、
前記停止時における一括書込み処理においては、
前記ユーザプログラムが実行中であるか否かを判断し、前記ユーザプログラムが実行中でないと判断した場合には、前記フラッシュメモリに対して一括して書込み処理を行うこと
を特徴とする制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザプログラムをスキャン実行する際に必要となるユーザプログラムを記憶するフラッシュメモリを備えた制御装置に関する。
【０００２】
【従来の技術】
近年、センサ，リレー，アクチュエータ等の外部機器を制御する制御装置としてのプログラマブルコントローラは、ユーザプログラムを記憶する媒体としてフラッシュメモリが使用されている。
【０００３】
このプログラマブルコントローラでは、フラッシュメモリがその特性として、ブロック単位で消去したのち書き込む必要があるため、書込みが完了するのにＲＡＭに比べ時間を要するので、フラッシュメモリに有するユーザプログラムに対する書き込み処理、すなわちユーザプログラムを変更する処理がシステムで固定されていた。
【０００４】
【発明が解決しようとする課題】
従来のプログラマブルロジックコントローラでは、上述したように、ユーザプログラムを変更する処理がシステムで固定されていたので、例えユーザプログラムのパラメータ設定値の変更等のように変更量が小さい場合においても、システムで固定された時点においてのみでしかユーザがユーザプログラムを変更するこができないという問題点があった。
【０００５】
そこで、本発明は上述した問題点に鑑み、ユーザがユーザプログラムの変更量に応じてユーザプログラムを変更する時点を設定し得るようにして、ユーザの取り得る自由度を高めた制御装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上述した目的を達成するため、請求項１記載の発明は、ユーザプログラムを記憶するフラッシュメモリを備えた制御装置において、前記フラッシュメモリに記憶されているユーザプログラムを変更させるフラッシュメモリ書込み処理が発生した場合に、前記ユーザプログラムの実行を停止させずに１サイクル中に一括して前記フラッシュメモリに書き込む一括書込み処理、前記ユーザプログラムの実行を停止させずに複数のサイクルに渡って分割して前記フラッシュメモリに書き込む分割書込み処理、および前記ユーザプログラムの実行を停止させたのち一括して前記フラッシュメモリに書き込む停止時における一括書込み処理のいずれか１つの処理を指定するための設定値を記憶する設定値記憶手段と、この設定値記憶手段に記憶されている設定値に基づき、前記フラッシュメモリに記憶されているユーザプログラムを変更するデータ変更手段とを具備し、前記停止時における一括書込み処理においては、前記ユーザプログラムが実行中であるか否かを判断し、前記ユーザプログラムが実行中でないと判断した場合には、前記フラッシュメモリに対して一括して書込み処理を行うことを特徴とする。
【０００７】
本発明では、ユーザがあらかじめ設定した設定値記憶手段に記憶されている設定値に基づき、フラッシュメモリに記憶されているユーザプログラムを変更することができる。
【０００８】
【発明の実施の形態】
以下、本発明に係る制御装置の実施形態を図面に基づき説明する。
【０００９】
図１は本発明に係る制御装置の一実施形態の構成を示すブロック図である。
【００１０】
この実施形態の制御装置は、ＣＰＵ，Ｉ／Ｏ，端子等が一体化されたマイクロプログラマブルロジックコントローラ（以下、ＰＬＣという）１であって、ＭＰＵ１０と、フラッシュメモリ１１と、スタティックラム（ＳＲＡＭ）１２と、ＲＴＣ（Real Time Clock)１３と、バッテリ１４と、ＡＳＩＣ１５と、ＬＥＤ１６と、＃１〜＃３のコネクタ１７と、ディップスイッチ１８と、アナログボリューム１９と、端子台２０とから構成されている。
【００１１】
ＭＰＵ１０は、内部バス３０，４０に接続されており、フラッシュメモリ１１に有するシステムプログラムおよびユーザプログラムに基づき、この実施形態のＰＬＣ１全体を制御するものである。
【００１２】
フラッシュメモリ１１は、内部バス３０に接続されておりシステムプログラムおよびユーザプログラムを記憶するものである。
【００１３】
スタティックラム（ＳＲＡＭ）１２は、内部バス３０に接続されており、図２に示すように、Ｉ／Ｏデータを記憶するＩ／Ｏメモリエリア１２１と、ワークメモリとして使用さるワークメモリエリア１２２と、ユーザがユーザプログラムの変更量に応じてユーザプログラムを変更する時点を設定し得る設定値を記憶する設定値エリア１２３とを有しているものである。
【００１４】
設定値エリア１２３に有する設定値には次のようなものがある。
【００１５】
ユーザプログラムの実行中に、一括してフラッシュメモリ１１に書き込む場合には、設定値エリア１２３に“００００”という設定値がユーザにより設定される。
【００１６】
ユーザプログラムの実行中に分割してフラッシュメモリに書き込む場合には、設定値エリア１２３に“０００１”という設定値がユーザにより設定される。
【００１７】
ユーザによる停止操作により、ユーザプログラムの実行を停止させたのち一括してフラッシュメモリに書き込む場合には、設定値エリア１２３に“０００２”という設定値がユーザにより設定される。
【００１８】
ＲＴＣ１３は、内部バス３０に接続されており時刻を計時するようになっており、バッテリ１４は、スタティックラム（ＳＲＡＭ）１２およびＲＴＣ１３に対して電力を供給するようになっている。ＡＳＩＣ１５は、ＭＰＵ１０が実行しない所定の処理を実行するものである。
【００１９】
ＬＥＤ１６は、ＰＬＣ１の稼働状態等を表示するようになっている。＃１のコネクタ１７はペリフェラルポートに使用されるものであり、＃２のコネクタ１７はＲＳ２３２Ｃポートに使用されるものであり、＃３のコネクタ１７は拡張Ｉ／Ｆポートに使用されるものである。
【００２０】
ディップスイッチ１８は、このＰＬＣ１の稼働条件等を設定するものであり、アナログボリューム１９は、外部から入力されたアナログ信号を使用される所定レベルのデジタル電圧に設定するための調整用のボリューム（つまみ）である。
【００２１】
端子台２０は、センサ，リレー，アクチュエータ等の外部機器と接続する端子を有する部材である。
【００２２】
この実施形態のＰＬＣは、図３に示すように、周辺サービス処理中に、例えばプログラミングパネルを用いてフラッシュメモリ１１に記憶されているユーザプログラムを変更させるフラッシュメモリ書込み処理が発生すると、スタティックラム（ＳＲＡＭ）１２中の条件設定エリア１２３に記憶されている設定値に基づき、次のような処理を行う。
【００２３】
すなわち、▲１▼ユーザプログラムの実行を停止させずに１サイクル中に一括して処理する場合と、▲２▼ユーザプログラムの実行を停止させずに複数のサイクルに渡って分割処理する場合と、▲３▼ユーザプログラムの実行をユーザによる停止操作等などにより一時停止させて一括処理する場合とがある。
【００２４】
▲１▼上述したユーザプログラムの実行を停止させずに１サイクル中に一括して処理する場合の処理を、図４を参照して説明する。
【００２５】
ＰＬＣ１は、ユーザプログラムを変更させるフラッシュメモリ書込み処理が発生すると、次のサイクルにおける共通処理を実行したのち、ユーザプログラムの命令を実行し、次に、スタティックラム（ＳＲＡＭ）１２に記憶されているＩ／Ｏデータを実行し終えたのちの周辺サービス処理において、プログラミングパネルから指示された通りユーザプログラムを一括して処理する。
【００２６】
その後、ＰＬＣ１は、次サイクルの共通処理、命令実行，Ｉ／Ｏリフレッシュおよび周辺サービス処理を続行する。
【００２７】
▲２▼上述したユーザプログラムの実行を停止させずに複数のサイクルに渡って分割処理する場合の処理を、図５を参照して説明する。
【００２８】
上述したように、ＰＬＣ１は、ある処理サイクルの周辺サービスにおいてフラッシュメモリ１１にフラッシュメモリ書込み処理が発生すると、例えばプログラミングパネルから指示されたユーザプログラムを略３分割した第１変更プログラム，第２変更プログラムおよび第３変更プログラムを、次のサイクル以降順次、周辺サービス処理において処理する。
【００２９】
▲３▼上述したユーザプログラムの実行をユーザによる停止操作等などにより一時停止させて一括処理する場合の処理を、図６を参照して説明する。
【００３０】
上述したように、ＰＬＣ１は、ある処理サイクルの周辺サービスにおいてフラッシュメモリ１１にフラッシュメモリ書込み処理が発生すると、次のサイクルの共通処理を行い、フラッシュメモリ１１に記憶されているユーザプログラムの命令実行をユーザより一時停止させてＩ／Ｏリフレッシュ処理を行ったのち、周辺サービス処理において、プログラミングパネルから指示されたユーザプログラムを処理する。
【００３１】
次にこの実施形態のＰＬＣの動作を、図７を参照して説明する。
【００３２】
この実施形態のＰＬＣ１は、スキャン実行中の共通処理を実行し（ステップ１２０）、ユーザプログラムが実行停止中であるか否かを判断する（ステップ１３０）。
【００３３】
ＰＬＣ１は、ユーザプログラムが実行停止中であると判断した場合（ステップ１３０；Ｙｅｓ）、処理をステップ１５０に移行する。
【００３４】
ＰＬＣ１は、ユーザプログラムが実行停止中でないと判断した場合（ステップ１３０；Ｎｏ）、ユーザプログラムに記述されている命令を実行する（ステップ１４０）。
【００３５】
次に、ＰＬＣ１は、スタティックラム（ＳＲＡＭ）１２に記憶されているＩ／Ｏデータをリフレッシュする（ステップ１５０）。
【００３６】
ＰＬＣ１は、Ｉ／Ｏデータをリフレッシュすると、つぎに周辺サービス処理に移行し（ステップ１６０）、この周辺サービス処理において、プログラミングパネルよりフラッシュメモリ１１に対するフラッシュメモリ書込み処理が発生したか否かを判断する（ステップ１７０）。
【００３７】
ＰＬＣ１は、フラッシュメモリ１１に対するフラッシュメモリ書込み処理が発生しなかったと判断した場合には（ステップ１７０；Ｎｏ）、ステップ１１０に移行して上述したと同様な処理を続行する。
【００３８】
一方、ＰＬＣ１は、フラッシュメモリ１１にフラッシュメモリ書込み処理が発生したと判断した場合には（ステップ１７０；Ｙｅｓ）、スタティックラム（ＲＡＭ）１２の設定エリア１２３に有する設定値に基づき、上述した一括書込み処理（ステップ１８０）、分割書込み処理（ステップ１９０）、停止時における一括書込み処理（ステップ２００）のいずれかを実行し、ステップ１２０に移行して上述したと同様な処理を続行する。
【００３９】
なお、停止時における一括書込み処理（ステップ２００）においては、ＰＬＣ１は、ユーザプログラムが実行中であるか否かを判断し（ステップ２０５）、ユーザプログラムが実行中であると判断した場合には（ステップ２０５；Ｙｅｓ）、フラッシュメモリ１１に書込みを行わず、ステップ１１０に移行する。
【００４０】
一方、ＰＬＣ１は、ユーザプログラムが実行中でないと判断した場合には（ステップ２０５；Ｎｏ）、フラッシュメモリ１２に対して上述した一括書き込むを行う（ステップ２１０）。
【００４１】
この実施形態のＰＬＣ１では、ユーザプログラムを変更させる実行条件をスタティックラム（ＳＲＡＭ）１２の設定値エリア１２３に有することにより、ユーザがこの設定値エリア１２３に記憶されている設定値に基づき、フラッシュメモリ１１に記憶されているユーザプログラムを変更するので、ユーザプログラムを変更する処理の自由度を高めることができる。
【００４２】
上述したＰＬＣは、マイクロプログラマブルロジックコントローラであるが、これに代えて、ビルディングタイプのプログラマブルロジックコントローラであってもよい。
【００４３】
【発明の効果】
以上本発明によれば、あらかじめ設定した設定値記憶手段に記憶されている設定値に基づき、ユーザがフラッシュメモリに記憶されているユーザプログラムを変更することができるので、ユーザプログラムを変更する処理の自由度を高めることができる。
【図面の簡単な説明】
【図１】本発明に係る制御装置としてのプログラマブルロジックコントローラの一実施形態の構成を示すブロック図。
【図２】図１中のフラッシュメモリの構成を示すブロック図。
【図３】フラッシュメモリ書込み処理の発生タイミングを説明する図。
【図４】一括書込み処理を実行するタイミングを説明する図。
【図５】分割書込み処理を実行するタイミングを説明する図。
【図６】停止時に一括書込み処理を実行するタイミングを説明する図。
【図７】この実施形態の制御装置としてのＰＬＣの動作を示すフローチャート。
【符号の説明】
１  プログラマブルロジックコントローラ（ＰＬＣ）
１０  ＭＰＵ
１１  フラッシュメモリ
１２  スタティックラム（ＳＲＡＭ）
１３  ＲＴＣ
１４  バッテリ
１５  ＡＳＩＣ
１６  ＬＥＤ
１７  コネクタ
１８  ディップスイッチ
１９  アナログボリューム
２０  端子台
３０，４０  内部バス
【図１】
0003678269.tif 000002
【図２】
0003678269.tif 000003
【図３】
0003678269.tif 000004
【図４】
0003678269.tif 000005
【図５】
0003678269.tif 000006
【図６】
0003678269.tif 000007
【図７】
0003678269.tif 000008