JPH05216507A - プログラマブルコントローラのプログラム変更方法 - Google Patents

プログラマブルコントローラのプログラム変更方法

Info

Publication number
JPH05216507A
JPH05216507A JP1989392A JP1989392A JPH05216507A JP H05216507 A JPH05216507 A JP H05216507A JP 1989392 A JP1989392 A JP 1989392A JP 1989392 A JP1989392 A JP 1989392A JP H05216507 A JPH05216507 A JP H05216507A
Authority
JP
Japan
Prior art keywords
program
area
programmable controller
work area
executed
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.)
Granted
Application number
JP1989392A
Other languages
English (en)
Other versions
JP2846760B2 (ja
Inventor
Mitsuaki Kobayashi
光明 小林
Hiromasa Yamaoka
弘昌 山岡
Hiromitsu Kikuchi
洋光 菊池
Ryuichi Watabe
隆一 渡部
Takashi Kitada
孝志 北田
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
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 Hitachi Ltd, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP4019893A priority Critical patent/JP2846760B2/ja
Publication of JPH05216507A publication Critical patent/JPH05216507A/ja
Application granted granted Critical
Publication of JP2846760B2 publication Critical patent/JP2846760B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】プラント等を制御する制御プログラムの実行を
停止することなくプログラムの変更を行なう。 【構成】プログラマブルコントローラ(1)において、
CPU(2)は、メモリM(3)のエリアA内のプログ
ラムを実行しプラント(8)を制御する。プログラムを
書替る場合、DMAC(4)はサイクルスチルモ−ドで
プログラムをエリアAよりエリアBにコピ−し、割込み
処理でエリアB上のプログラムを書替、実行するプログ
ラムをエリアA上のものよりエリアB上のプログラムに
切り換える。その後、サイクルスチルモ−ドで、書替た
プログラムをエリアBよりエリアAにコピ−し、実行す
るプログラムをエリアA上にコピ−したプログラムに切
り換える。 【効果】CPUは、プログラムの切り換えまで、コピ−
や書替動作と平行して、コピ−前のプログラムを実行し
プラントの制御を継続できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プラントの制御等に用
いられるプログラマブルコントローラに関し、特に、プ
ログラマブルコントローラが実行するプログラムの内容
を変更する技術に関するものである。
【0002】
【従来の技術】従来、プログラマブルコントローラがプ
ラント等を制御するために実行する制御プログラムの変
更は、制御プログラムの実行を、一旦、ストップさせ、
その間にプログラマブルコントローラのメモリに格納さ
れた制御プログラムを書き替えるのが一般的であった。
【0003】ここで、図25に、従来のプログラマブル
コントローラの制御プログラムの変更手順を示す。
【0004】すなわち、まず状態をモニタし(ステップ
251)、制御プログラムの動作に異常があった場合ま
たは制御プログラムの修正を要する場合(ステップ25
2)、アドレスをストップさせることにより、制御プロ
グラムの実行を停止させる(ステップ253)。
【0005】その後、異常制御プログラムを検出し(ス
テップ255)、その制御プログラムを読み出して命令
語の書き込み、挿入、変更、削除等により修正を行う
(ステップ256)。修正完了後はプログラムチェック
機能等を用いて、制御プログラムの文法等のチェックを
行い(ステップ257)、制御プログラムをスタートさ
せる(ステップ258) このように、従来の、プログラマブルコントローラの制
御プログラム変更の技術によれば、図26に示すように
オペレータが制御プログラムの実行をストップさせてか
らメモリの内容を書き替えて再び制御プログラムをスタ
ートする間、すなわちメモリ内容の書き替え時間分制御
プログラムの実行をストップさせなければならなかっ
た。
【0006】
【発明が解決しようとする課題】ところで、近年、プロ
グラマブルコントローラの制御対象は多様化し、1日2
4時間継続して制御を行う必要のある制御対象も生じて
いる。
【0007】しかし、前記従来の技術によれば、前述し
たように、プログラマブルコントローラの制御プログラ
ムの変更を行う場合、制御プログラムの実行を一旦停止
しなければならない。
【0008】そこで、本発明は、プラント等を制御する
制御プログラムの実行を停止することなくプログラムの
変更を行なうことのできるプログラマブルコントローラ
を提供することを目的とする。
【0009】
【課題を解決するための手段】前記目的達成のために、
本発明は、メモリ上のプログラムエリアに格納された、
実行の対象となるプログラムを実行し、制御対象物の制
御を行うプログラマブルコントローラにおいて、前記プ
ログラムエリア上の変更対象プログラムを前記メモリと
同一もしくは異なるメモリ上のワークエリアに複写する
第1のステップと、プログラムエリアに格納されたプロ
グラムの実行と並行して、前記ワークエリアに複写され
たプログラムの内容を、ワークエリア上で変更する第2
のステップと、前記変更対象プログラムからワークエリ
アに格納されたプログラムに、実行の対象となるプログ
ラムを切り換える第3のステップとを有することを特徴
とするプログラマブルコントローラのプログラム変更方
法を提供する。
【0010】なお、本方法には、さらに、前記ワークエ
リアのプログラムをプログラムエリアに複写する第4の
ステップと、ワークエリアに格納されたプログラムか
ら、前記プログラムエリアに複写したプログラムに、実
行の対象となるプログラムを切り換える切り換える第5
のステップとを含むようにするのが望ましい。
【0011】また、前記第2、第4のステップを、実行
の対象となるワークエリアに格納されたプログラムもし
くはプログラムエリア上の前記変更対象プログラム以外
のプログラムの実行と並行して実行するようにするのが
望ましい。
【0012】
【作用】本発明に係るプログラマブルコントローラのプ
ログラム変更方法によれば、プログラムエリア上の変更
対象プログラムを前記メモリと同一もしくは異なるメモ
リ上のワークエリアに複写し、プログラムエリアに格納
されたプログラムの実行と並行して、前記ワークエリア
上で、プログラムの内容の変更を行い、変更が終了した
後に、変更対象プログラムからワークエリアに格納され
たプログラムに、実行の対象となるプログラムを切り換
える。
【0013】したがい、プログラムの修正や書替等の変
更操作を行う間も、プログラム実行手段は、プログラム
エリア上の変更前のプログラムを用いてプラント等の制
御を継続することができる。
【0014】また、前記ワークエリアのプログラムをプ
ログラムエリアに複写し、ワークエリアに格納されたプ
ログラムから、前記プログラムエリアに複写したプログ
ラムに、実行の対象となるプログラムを切り換えること
により、プログラマブルコントローラを初期状態に戻す
ことができる。
【0015】また、前記第2、第4のステップを、実行
の対象となるプログラムの実行と並行して実行するよう
にすれば、前記第2、第4のステップにおけるプログラ
ムの複写動作の間もプラントの制御を継続することがで
きる。
【0016】
【実施例】以下、本発明に係るプログラマブルコントロ
ーラの一実施例について説明する。
【0017】図1に、本実施例に係るプログラマブルコ
ントローラの構成を示す。
【0018】図示するように、プログラマブルコントロ
ーラ1は、中央処理装置(以下、「CPU」と記す)
2、メモリ(以下、「MEM」と記す)3、ダイレクト
メモリアクセスコントローラ(以下、「DMAC」と記
す)4、マンマシンシステムェース(以下、「MCSI
/F」と記す)5およびプロセス入出力インタフェース
(以下、「PIOI/F」と記す)6を有し、プロセス
入出力(以下、「PIO」と記す)7を介してプラント
8と接続されている。MEM3は、プログラムエリアA
とプログラムエリアBを有している。
【0019】次に、図2、本実施例に係るプログラマブ
ルコントローラが実行するソフトウェアの構成を示す。
【0020】図中、オペレーティングシステム(以下、
「OS」と記す)200は、プログラムを管理し、次に
起動すべきプログラムの選択を行い、当該プログラムの
起動および中断後の再開を行うマルチタスクオペレーテ
ィングシステムである。
【0021】各プログラム1〜mは、特定の処理を行う
プログラムであり、OS200からの起動され処理を行
う。また、その内、プログラム1〜nはシステムプログ
ラムであり、DMAC4の起動、MCSI/F5との交
信等の処理を行うプログラムである。一方、プログラム
n+1〜mは、ユーザプログラムであり、プラント8の
制御を行うプログラムである。各プログラム1〜mは、
通常MEM3のプログラムエリアA上に記憶され、CP
U2は、プログラムエリアA上のプログラムを実行す
る。
【0022】タスクコントロールブロック(以下、「T
CB」と記す)201は、これらプログラム1〜mの個
々の先頭アドレスおよび容量を記録しておくテーブルで
ある。OS200は、プログラムを起動する際、このT
CBを参照して当該プログラムを起動する。
【0023】なお、各プログラム1〜mの最終命令はE
NDであり、ENDが発行された場合、OS200が起
動されるる。また、各プログラム中での他プログラム起
動要求命令、タイマー割込み、プラント8からのプロセ
ス割込み要求命令によっても、OS200は起動され
る。
【0024】ここで、図3に、プログラマブルコントロ
ーラ1において、ユーザプログラムn+1〜mが、どの
ように実行されるのか、そのようすの一例を示してお
く。
【0025】図3は、プログラムn+1実行途中で、プ
ログラムn+2、プログラムn+3、プログラムn+4
がそれぞれ起動され、END命令の後、プログラムn+
1に戻り処理を示している。
【0026】図3中、プログラムn+1は、ベースプロ
グラムであり、プログラムn+1の先頭からプログラム
n+1ENDまで一貫してプラント8を制御し、終了後
は先頭より処理を再実行する。
【0027】プログラムn+2は、プログラムn+1内
のプログラムn+2起動要求により呼び出され、当該処
理を実行するプログラムである。プログラムn+2は、
プログラムn+2END命令で処理を終了する。
【0028】プログラムn+3は、周期的又は時刻によ
り発生するタイマーパルスを割込みとするタイマー割込
みにより起動するプログラムである。プログラムn+3
はプログラムn+3END命令で処理を終了する。
【0029】プログラムn+4はプラント8からのプロ
セス割込みにより起動するプログラムであり、プログラ
ムn+4END命令で処理を終了する。
【0030】また、プログラムn+1は、プログラムn
+1END命令後、再びプログラムn+1の先頭アドレ
スより実行を開始する。
【0031】ところで、このようなユーザプログラムの
実行の切り換えはOS200が行う。
【0032】このOS200によるプログラムの切り換
えのタイムチャートを図4に示す。
【0033】図示するように、最初にOS200が起動
する。OS200はTCB201よりベースプログラム
であるプログラムN+1の先頭アドレスを読み出し、プ
ログラムn+1を先頭より起動する。
【0034】この後、プログラムn+1内でプログラム
n+2起動要求が発行されると、前述したようにOSが
起動される。この時、プログラムn+2起動要求の、次
の命令のアドレスを、プログラムn+1再開のためにM
EM3内に記録しておく。
【0035】さて、起動したOS200は、要求に応じ
て、プログラムn+2の先頭アドレスをTCBより読み
出し、プログラムn+2を先頭より起動する。プログラ
ムn+2は当該処理を終了した後、プログラムn+2E
ND命令を発行し終了する。
【0036】これにより、OS200が再び起動され、
先にMEM3内に記憶したプログラムn+1の再開用ア
ドレスをMEM3より読出し、プログラムn+1を当該
アドレスより起動する。
【0037】この後、タイマー割込みが発生すると、再
びOS200が起動される。この時も、プログラムn+
1の次に実行すべき命令のアドレスをMEM3に記録す
る。起動したOS200はタイマー割込み処理プログラ
ムであるプログラムn+3の先頭アドレスをTCBより
読み出し、プログラムn+3を先頭より起動する。プロ
グラムn+3は当該処理を終了した後、プログラムn+
3END命令を発行し終了する。
【0038】これによりOS200が起動され、タイマ
ー割込みにより中断した、先に記憶したプログラムn+
1のアドレスをMEM3より読み出し、プログラムn+
1を当該アドレスより起動する。
【0039】この後、プラント8からのプロセス割込み
が発生するとOS200が起動される。この時も、プロ
グラムn+1の次に実行すべき命令のアドレスをMEM
3に記録する。起動したOS200はプロセス割込み処
理プログラムであるプログラムn+4の先頭アドレスを
TCB201より読み出し、プログラムn+4を先頭よ
り起動する。
【0040】プログラムn+4は当該処理を終了した
後、プログラムn+4END命令を発行し終了する。こ
れによりOS200が起動され、プロセス割込みにより
中断したプログラムn+1の先に記憶しておいたアドレ
スをMEM3より読み出しプログラムn+1を当該アド
レスより起動する。
【0041】この後、プログラムn+1が、全ての処理
を終了し、最後にプログラムn+1END命令を発行す
る。これにより、OS200が起動する。OS200
は、他に起動すべきプログラムが存在しない場合、ベー
スプログラムであるプログラムn+1を起動する。な
お、この時、OSは、プログラムn+1の先頭アドレス
をTCBより読み出し、プログラムn+1の先頭より再
び起動する。
【0042】以上のように、プログラムの終了又は中断
から、次のプログラムの起動までは、OS200が起動
され、起動したOSが各プログラムを管理している。こ
のOSの動作時間は、プラント制御プログラムの動作時
間に較べて充分に小さい時間である。
【0043】次に、前記DMAC4(図1参照)の動作
を説明する。
【0044】DMAC4はCPU2より起動され、ME
M3のデータの転送を行うものである。
【0045】CPU2は、DMAC4に対し、転送元デ
ータの先頭アドレス、データ数、転送先の先頭アドレス
を渡し、起動する。DMAC4は起動すると、CPU2
が実行中のプログラムに無関係に当該ブロックの転送を
実行し、終了後、終了割込みをCPU2に発生する。
【0046】この転送動作は、データ単位に行われる。
図5、6を用いて、この転送動作を説明する。
【0047】図5は、CPU2、DMAC4、MEM3
の接続を示したものである。
【0048】図示するように、CPU2とDMAC4間
に、メモリアクセスタイミング信号であるSTB信号1
01に接続し、さらに該STB信号101にはMEM3
を接続している。また、さらにバス要求信号102、バ
ス使用許可信号103、CPU以外がバス使用中信号1
04、を接続し、転送処理終了信号105、および、D
MAC起動要求であるDMACスタート信号110を接
続してる。
【0049】図6は、CPU2よりDMAC4に転送元
アドレス、データ数、転送先アドレスを渡した後の各信
号のようすを示したタイムチャートである。ここでは、
DMAC4による1データの転送についてのみ示してい
る。
【0050】まず、CPU2は、DMAC4に対し、D
MACスタート信号110を発行する。これによりDM
AC4は起動し、メモリアクセスを開始するが、CPU
2のアクセスと重複するとバス上の信号が混信し、正常
動作できないため、単独でバスを使用する必要がある。
【0051】そこで、DMAC4は、まず、バス要求信
号102をCPU2に発行する。CPU2は、自分のメ
モリアクセスが終了するとSTB信号101の発行をや
め、バス使用許可信号103を発行する。該バス使用許
可信号103をDMAC4が受信すると、該DMAC4
は、CPU以外がバス使用中信号104を発行する。C
PU2は自CPU以外がバス使用中信号104を受信し
ている間はバスを使用しないため、メモリアクセスはし
ない。この状態で、DMAC4はバスを単独で使用する
ことができるため、バス要求信号102の発行をやめ
る。これによりCPUはバス使用許可信号103の発行
をやめる。
【0052】一方、DMAC4はメモリアクセスを行
い、STB信号101を発行する。これにより1データ
のメモリアクセスが完了すると、DMAC4は、STB
信号101の発行をやめ、さらにバス要求信号102、
CPU以外がバス使用中信号104の発行をやめる。こ
の状態をCPU2が受信し、再びCPU2がバスを使用
しはじめる。以上の手続を1データアクセス毎に行う。
【0053】これによりDMAC4は、転送元データブ
ロックからデータを読み出し、転送先データブロックへ
データを書き込む動作を行い、全データ数分完了すると
終了割込み信号105をCPU2に対し発行する。この
ようにして、CPU2のメモリアクセスとぶつからない
ようにDMAC4は、データを1ステップずつ転送す
る。すなわち、本実施例で説明する各処理、動作におい
て、DMAC4は、サイクルスチールモードで転送を実
行する。
【0054】次に、MCSI/F5の動作について説明
する。
【0055】図7にMCSI/F5周辺の構成を示す。
【0056】図示するように、CPU2にバスを介し接
続されたMCSI/F5があり、さらに、マンマシンシ
ステム(MCS)710がありMCSI/F5と交信し
ている。MCS710はオペレータからの入力をMCS
I/F5に送信し、MCSI/F5からの受信をオペレ
ータに応答している。
【0057】MCSI/F5内には受信レジスタ702
と送信レジスタ703があり、CPU1は、バスを介し
てこれらのレジスタの読み出し、書き込みを行う。ま
た、MCSI/F5は、MCS710より入力を受信す
ると、入力を受信レジスタ707に格納し、CPU2に
対し、受信割込み信号701を出力する。また、送信レ
ジスタ703にCPU1によって書き込まれた内容をM
CS710に出力する。
【0058】この動作タイミングを、図8に示す。
【0059】オペレータがMCS710に入力すると、
MCS710はMCSI/F5に該入力を送信する。該
入力を受信したMCSI/F5は該入力を受信レジスタ
702にセットし、受信割込み信号701を出力する。
【0060】CPU2は該受信割込み信号701を受信
すると、他処理を中断し、受信割込処理を実行する。C
PU2は該受信割込処理中で受信レジスタ702内の入
力を読み出す。
【0061】また、CPU2は必要に応じ、応答をMC
SI/F5の送信レジスタ703に書き込む。MCSI
/F5は、送信レジスタ703に書き込まれた応答をM
CS710に送信する。
【0062】MCS710は応答を受信すると、該応答
をオペレータに対し表示する。
【0063】なお、オペレータより、MCS710、M
CSI/F5を介してCPU2におくられる入力には、
プログラム名、プログラム書替指令、プログラム切り換
え指令がある。プログラム書替指令の、フォーマットは
図9に示すようになっており、書替データ相対ステップ
数、書替データ、書替コマンドより構成される。
【0064】さて、CPU2において、このような、オ
ペレータよりの入力を処理するのが、システムプログラ
ムである。
【0065】以下、システムプログラム1〜n(図2参
照)の詳細を説明する。
【0066】システムプログラムには、受信割込処理プ
ログラム、コピープログラム、DMAC終了割込み処理
プログラム、TCB書替プログラムがある。
【0067】図10、11に受信割込み処理プログラム
の処理手順を示す。
【0068】本受信割込み処理プログラムは、MCSI
/F5より受信割込みが発生するとOS200により起
動される。
【0069】図10、11に示すように、本プログラム
は起動するとMCSI/F5の受信レジスタ702より
入力を読み出し(ステップ1000)、分析する(ステ
ップ10019。そして、入力内容に対応した以下の各
処理を実行する。
【0070】(1)プログラム名入力の場合1010 当該プログラム名をコピープログラムに渡し、OS20
0に対しコピープログラムの起動要求を発行する(ステ
ップ1011)。
【0071】(2)プログラム書替用ステップ数入力の
場合1030 入力ステップ数データをMEM3内に記録する(ステッ
プ1031)。
【0072】(3)プログラム書替用データ、書替用命
令入力の場合1040 当該入力データをMEM3に記録する(ステップ104
1)。
【0073】(4)プログラム書替コマンド入力の場合
1020 後述するように、コピープログラムによってプログラム
エリアBに転送されたプログラムを書替対象プログラム
とし、当該プログラムの先頭アドレスと、MEM3内に
先に記録したプログラム書替用ステップ数より書替対象
アドレスを算出し(ステップ1021)、先に入力され
た書替用データ、命令をMEM3内から読み出し、当該
アドレスに書き込み(ステップ1022)、送信レジス
タ703に書替完了応答を書き込む(ステップ102
3)。
【0074】(5)プログラム切り換え指令入力の場合
1050 後述するように、コピープログラムによってプログラム
エリアBに転送されたプログラムを切り換え対象プログ
ラムとし、当該プログラムのプログラム名をTCB20
1書替プログラムに渡し(ステップ1051)、OS2
00に対し、ベースプログラムn+1終了後、TCB書
替プログラムを起動するよう要求を発行する(ステップ
1052)。
【0075】さて、以上の処理の後、受信割り込み処理
プログラムはENDを発行し処理を終了する。
【0076】次に、図12にコピープログラムの処理手
順を示す。
【0077】コピープログラムは、プログラム名が入力
された場合に起動される。
【0078】コピープログラムはOS200より起動さ
れると、受信割込み処理プログラムより渡されたコピー
対象プログラム名より、該コピー対象プログラムの先頭
アドレスと容量をTCB201より読み出し(ステップ
1201)、DMAC4に渡すとともに、プログラムエ
リアBのコピー先アドレスを渡し(ステップ120
2)、DMACスタート信号101をオンし、DMAC
を起動する(ステップ1203)。
【0079】次に、図13にDMAC終了割込み処理プ
ログラムの処理手順を示す。
【0080】本プログラムは、DMAC4から発行され
るコピー終了割込みにより、OS200より起動され
る。本プログラムは送信レジスタ703にコピー完了応
答を書き込み、オペレータにコピー完了を知らせる(ス
テップ1301)。
【0081】次に、図14にTCB書替プログラムの処
理手順を示す。
【0082】本プログラムは、受信割込処理プログラム
のプログラム切り換え指令入力処理により起動要求を受
けたOS200が、プラント8制御ベースプログラムn
+1が終了した時点で起動する。本プログラムは、前記
コピープログラムがプログラムエリアAに転送し切り換
え対象プログラムとなったプログラムのTCB内の先頭
アドレス、容量を、プログラムエリアA内の先頭アドレ
ス、容量から、前記コピープログラムが転送した先プロ
グラムエリアB内の前記コピープログラムが転送した先
の先頭アドレス、容量へ書き替える(ステップ140
1)。
【0083】以上、各システムプログラムの詳細につい
て説明した。ところで、これらのシステムプログラムに
よって行われる動作を各入力に対応して、まとめて説明
すると次のようになる。
【0084】まず、プログラム名が入力された場合の動
作をまとめて説明する。
【0085】まず、オペレータによってプログラム名が
MCS710より入力されると、プログラム名は、MC
SI/F5に送信され、受信レジスタ702にプログラ
ム名がセットされ、受信割込み信号701がオンする。
これにより、CPU2において、受信割込み処理プログ
ラムが起動され、プログラム名がコピープログラムに渡
され、コピープログラムが起動される。
【0086】さらにコピープログラムは当該プログラム
の先頭アドレスと容量をTCBより読み出し、DMAC
4にコピー元先頭アドレスとデータ数として渡すととも
に、コピー先であるプログラムエリアB内の先頭アドレ
スを渡し、DMACスタート信号オンし、DMAC4を
起動する。
【0087】DMAC4は、バス要求信号102、バス
使用許可信号103、CPU以外がバス使用中信号10
4をCPU2と連絡しつつ、サイクルスチールモード
で、CPU2のメモリアクセスとぶつからないように1
ステップずつ転送する。図15は、このプログラム転送
処理の流れを示したものである。さて、全データコピー
完了すると、終了割込み105をオンする。
【0088】これにより、DMAC終了割込みプログラ
ムが起動し、送信レジスタ703にコピー完了応答を書
き込む。該応答はMCS710に送信され、オペレータ
に対する応答としてMCS710により表示される。
【0089】なお、以上の動作中も、CPU2はプログ
ラムエリアAのプログラムの実行を継続し、プラント8
制御をストップしない。
【0090】次に、プログラム書替指令が入力された場
合の動作をまとめて説明する。
【0091】プログラム書替指令は、先に図9に示した
ように、書替対象データの相対ステップ数、書替用デー
タまたは書替用命令、書替コマンドの順にMCS710
より入力される。最初に相対ステップ数がMCS710
に入力すると、MCSI/F5に送信され、受信レジス
タ702に入力データセットされるとともに受信割込み
が発する。これによりCPU2において、受信割込み処
理プログラムが起動し、入力データが、MEM3内に記
録される。次に書替用データも同様の経路で、MEM3
内に記録される。
【0092】次に、書替コマンドが入力されると、受信
割込みプログラムで分析され、先の相対ステップ数から
プログラムエリアB内の書替対象プログラムの書替対象
データ、命令のアドレスが算出され、書替対象プログラ
ムに、書替用データ、命令が書き込まれ、さらに、MC
S710に書替完了応答が出力される。図18は、この
書替動作の流れを示したものである。
【0093】ところで、以上の動作においては、、受信
割込みのCPU2への受付は、CPU2のメモリアクセ
ス終了まで待たされた後、受付けられ、その後1ステッ
プ毎に書替が実行される。なお、以上の動作において
も、CPU2は、プログラムエリアAのプログラムの実
行を継続し、プラント8制御をストップしない。
【0094】次に、プログラム切り換え指令が入力され
た場合の動作をまとめて説明する。
【0095】プログラム切り換え指令は、MCS710
より入力され、前記コマンドと同様MCSI/F5の受
信レジスタ702を経て、受信割込み処理プログラムに
読み出される。これにより、切り換え対象プログラム名
が、TCB書替プログラムに渡され、ベースプログラム
n+1終了時、当該切り換え対象プログラムの先頭アド
レスが、TCB書替プログラムによりプログラムエリア
A内の先頭アドレスからプログラムエリアB内の先頭ア
ドレスに書替えられる。図17は、このTCB書替処理
の流れを示したものである。
【0096】なお、以上の動作中においても、CPU2
は、プラント8制御を継続している。 以下、プラント
を制御するプログラムの追加修正を行う場合の動作を示
す。
【0097】図18に、この動作のようすを示す。
【0098】図中、(a)はオペレータの操作、(b)
はDMAC動作、(c)はCPUの状態、(d)はME
M内プログラムエリアAの内容、(e)はMEM内プロ
グラムエリアBの内容を示す。
【0099】図示するように、まず最初にオペレータが
書き替え対象のプログラム名を入力すると同時に、DM
AC4が図15に示すようにMEM3のプログラムエリ
アAからプログラムエリアBへCPU2がMEMをアク
セス中でないことをチェックしながら1ステップずつコ
ピーを開始し、全コピー終了後オペレータに対し応答す
る。このときCPU2はMEM3内プログラムエリアA
のプログラムにて動作中となる。
【0100】応答が返ったら、オペレータは該MEM3
内のプログラムエリアBのメモリ内容を書き替える。書
き替えは該DMAC4が、図16に示すように、CPU
2が該MEM3をアクセス中でないことをチェックしな
がら、1ステップずつ該MEM3プログラムエリアBの
メモリ内容書き替えを実行する。このときも該CPU2
は該MEM3内プログラムエリアAのプログラムにて動
作中となる。書き替え終了後該DMAC4はオペレータ
に対し応答を返す。
【0101】書き替え終了後、オペレータがプログラム
切り換え指令が発行されると、図17に示したようにプ
ログラムENDかどうかを判断して、ENDであればタ
スクコントロールブロックの先頭アドレスを該MEM3
内のプログラムエリアA内のアドレスからプログラムエ
リアB内のアドレスに書き替える。これにより該プラン
トを制御する制御プログラムが、該MEM3のプログラ
ムエリアA内のものから、プログラムエリアB内のもの
に切り換えられる。結果、該CPU2をSTOPさせる
ことなく、プログラムの修正や、修正後のプログラムへ
のプログラムの変更できる。
【0102】また、さらに、MEM3のプログラムエリ
アB上で書き替えたプログラムを、DMAC4が、プロ
グラムエリアBからプログラムエリアAへサイクルスチ
ールモードで1ステップずつコピーを行い、その後OS
200によりタスクコントロールブロックの先頭アドレ
スを、該MEM3のプログラムエリアB内の先頭アドレ
スから、転送した先プログラムエリアAの先頭アドレス
に書き替えることにより、CPU2が実行するプログラ
ムをMEM3のプログラムエリアBからプログラムエリ
アAに戻し、初期状態に戻すことができる。
【0103】結果、プラント制御に影響を与えることな
くオンライン中にプログラムの追加訂正ができたことに
なる。
【0104】以下、以上示した図18の動作中における
OS200、プログラムの実行タイミングを説明する。
【0105】まず、図19にプログラムエリアA内のプ
ログラムから、プログラムエリアB内のプログラムへの
切り換えの前後のタイムチャートを示す。
【0106】本図はベースプログラムn+1内にて、プ
ログラムmを処理を行う構成を示しており、該プログラ
ムmについて、プログラムエリアA内のプログラムか
ら、プログラムエリアB内のプログラムへ切り換える動
作を示している。
【0107】図中、前半はプログラムn+1の途中で、
プログラムエリアA内のプログラムmが動作している。
これはTCB内のプログラムmの先頭アドレスがプログ
ラムエリアA内のプログラムmの先頭アドレスを示して
いるためである。そして、プログラムn+1がENDに
より終了した後で、TCB書替プログラムが起動し、T
CB内のプログラムmの先頭アドレスを、プログラムエ
リアA内のプログラムmの先頭アドレスからプログラム
エリアB内のプログラムmの先頭アドレスに書き替えて
いる。
【0108】この後、再びベースプログラムn+1が起
動するが、この後に呼出されるプログラムmは、プログ
ラムエリアB内のプログラムmである。これは、TCB
内のプログラムmの先頭アドレスがプログラムエリアB
内のプログラムmの先頭アドレスを示しているためであ
る。
【0109】以上により、プログラムエリアAのプログ
ラムmからプログラムエリアBのプログラムmに切り換
わったが、TCB書替プログラムの実行時間は、プラン
ト制御プログラムに較べて充分に小さいので、プラント
制御は実質上ストップしていない。
【0110】次に、図20はプログラムエリアBから、
プログラムエリアAへのプログラムコピーのタイムチャ
ートを示している。
【0111】図19に示したように、TCB内のプログ
ラムmの先頭アドレスを、プログラムエリアBのプログ
ラムmに切り換え、書き替え後のプログラムエリアBの
プログラムmを動作するが、その後、ベースプログラム
n+1のEND命令が発行された時点で、OS200
は、図21に処理手順を示す正常判定プログラムにより
プログラムが正常か異常かを判定し(図21、ステップ
2101、2102)、正常であり他に起動すべきプロ
グラムが存在しなければ、コピープログラムを起動し
(ステップ2103)、TCBよりプログラムエリアB
のプログラムの先頭アドレスと容量を読み出し、DMA
C4に渡すとともに、プログラムエリアAのコピー先ア
ドレスを渡し、DMACスタート信号をオンし、DMA
C4を起動する。また、その後、ベースプログラムであ
るプログラムn+1を起動する。
【0112】もし、異常であれば、CPU2が、修正ま
えのプログラムにて動作するよう、TCB書替プログラ
ムを起動し(ステップ2104)、TCB内プログラム
mの先頭アドレスをプログラムエリアA内のプログラム
mの先頭アドレスに書き替える。
【0113】さて、プログラムエリアBのプログラム
の、プログラムエリアAへの転送が終了したら、OS2
00は、TCB書替プログラムを起動し、CPU2が実
行するプログラムを、プログラムエリアBのものからか
らプログラムエリアAへ転送したものに切り換える。
【0114】この切り換えの前後のタイムチャートを図
22に示す。
【0115】図中、前半はプログラムn+1の途中で、
プログラムエリアB内にあるプログラムmが動作してい
る。これはTCB内のプログラムmの先頭アドレスがプ
ログラムエリアB内のプログラムmの先頭アドレスを示
しているためである。ここで、プログラムn+1がEN
Dにより終了した後で、TCB書替プログラムを起動
し、TCB内のプログラムmの先頭アドレスをプログラ
ムエリアB内の先頭アドレスからプログラムエリアA内
のプログラムmの先頭アドレスに書き替える。この後、
再びベースプログラムn+1が起動するが、この後に呼
び出されるプログラムmはプログラムエリアA内のプロ
グラムmである。これはTCB内のプログラムmの先頭
アドレスがプログラムエリアA内のプログラムmの先頭
アドレスを示しているためである。
【0116】以上によりプログラムエリアBのプログラ
ムmからプログラムエリアAのプログラムmに切り換わ
ったが、TCB書替プログラムの実行時間は、プラント
制御プログラムに時間を較べて充分に小さいので、実質
上プラント制御はストップしない。
【0117】ところで、本実施例に係るプログラマブル
コントローラ1は、図23に示すように、先に図1に示
したの構成にオンライン/オフライン制御回路9、オフ
ラインメモリ10を組み合せて構成してもよい。
【0118】このようにプログラマブルコントローラ1
を構成することにより、書替、変更したプログラムにつ
いては、オフライン化し、オフラインメモリ10内のダ
ミーデータで入出力テストを行うことができる。すなわ
ち、プラントに影響を与えることなくプログラムのデバ
ッグができる。結果、オンライン中のプログラム追加、
変更時の信頼性の向上が図れる。
【0119】ところで、本実施例においては、前述した
ように、プログラム名を入力した時点で、DMAC4が
MEM3内プログラムエリアAからプログラムエリアB
へのプログラムコピーを行う。
【0120】これは、従来のはじめにコマンドを入力
し、そのうしろにオペランドとしてプログラム名を入力
する図24bに示すような手順とすると、書き替え時間
が大きいため、本実施例では、図24aに示すように、
最初にプログラム名を入力し、そのうしろにコマンド
(コピー、リード、ライト)を入力する手順とし、コマ
ンドの種類に関係なくプログラム名を入力した時点で、
DMAC4がMEM3内プログラムエリアAからプログ
ラムエリアBへプログラムのコピーを行うようにしたも
のである。
【0121】このようにすることにより、プログラマブ
ルコントローラ1の内部処理とオペレータのコマンド入
力処理を並列的に実行するため、図24cに示すよう
に、書き替え時間の短縮、特にオペレータの待ち時間短
縮を図ることができる。
【0122】この反面、リード等のようにプログラムの
コピ−が必要ないコマンドについてもコピ−を行ってし
まうことになる。しかし、前述したように、コピ−実行
中でもプラントの制御は並行して実行されるので支障は
生じない。
【0123】以上のように、本実施例によれば、プラン
ト制御に影響を与えることなくオンライン中にプログラ
ムの追加訂正ができる。また、内部で並列処理を行うた
め、書き替え時間の短縮、特にオペレータの待ち時間の
短縮を図ることができる。
【0124】なお、本実施例においては、DMACをサ
イクルスチルモードで動作させたが、たとえば、プラン
トの制御において、さほど高速な応答性を要しないシス
テムにおいては、DMACをバーストモードで動作させ
るようにしてもよい。
【0125】また、各プログラムについてプログラムメ
モリとワークメモリの容量を等しくしておけば、ワーク
メモリ上で書き替えたプログラムを、ワークメモリに戻
せなくなることはない。
【0126】
【発明の効果】以上のように、本発明によれば、プラン
ト等を制御する制御プログラムの実行を停止することな
くプログラムの変更を行なうことのできるプログラマブ
ルコントローラを提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るプログラマブルコント
ローラの構成を示すブロック図である。
【図2】本発明の一実施例において中央処理装置が実行
するソフトウェアの構成を示す説明図である。
【図3】本発明の一実施例におけるユーザプログラムの
実行状態をしめす説明図である。
【図4】本発明の一実施例における各ソフトウェアの実
行動作を示すタイムチャートである。
【図5】本発明に一実施例に係るダイレクトメモリアク
セスコントローラの周辺の詳細構成を示すブロック図で
ある。
【図6】本発明に一実施例に係るダイレクトメモリアク
セスコントローラの転送動作を示すタイムチャートであ
る。
【図7】本発明に一実施例に係るマンマシンシステムイ
ンタフェース周辺の構成を示すブロック図である。
【図8】本発明の一実施例におけるオペレータ入力とC
PU動作の関係を示すタイムチャートである。
【図9】本発明の一実施例に係るプログラム書替指令の
入力フォーマットを示す説明図である。
【図10】本発明の一実施例に係る受信割り込み処理プ
ログラムの処理手順を示すフローチャートの前半部分で
ある。
【図11】本発明の一実施例に係る受信割り込み処理プ
ログラムの処理手順を示すフローチャートの後半部分で
ある。
【図12】本発明の一実施例に係るコピープログラムの
処理手順を示すフローチャートである。
【図13】本発明の一実施例に係る終了割込み処理プロ
グラムの処理手順を示すフローチャートである。
【図14】本発明の一実施例に係るTCB書替プログラ
ムの処理手順を示すフローチャートである。
【図15】本発明の一実施例におけるプログラムコピー
動作の手順を示すフローチャートである。
【図16】本発明の一実施例におけるメモリ書替動作の
手順を示すフローチャートである。
【図17】本発明の一実施例におけるTCB書替動作の
手順を示すフローチャートである。
【図18】本発明の一実施例におけるプログラムの変更
動作を示すタイムチャートである。
【図19】本発明の一実施例におけるプログラム切り換
え動作を示すフローチャートである。
【図20】本発明の一実施例における書替後プログラム
のコピー動作を示すタイムチャートである。
【図21】本発明の一実施例に係る正常判定プログラム
の処理手順を示すフローチャートである。
【図22】本発明の一実施例における初期状態復帰のた
めのプログラム切り換え動作を示すタイムチャートであ
る。
【図23】本発明の一実施例に係るプログラマブルコン
トローラの他の構成を示すブロック図である。
【図24】本発明の一実施例に係るプログラムコピー指
令の入力フォーマットを示す説明図である。
【図25】従来のプログラマブルコントローラにおける
プログラム変更処理手順を示すフローチャートである。
【図26】従来のプログラマブルコントローラにおける
プログラム変更動作を示すタイムチャートである。
【符号の説明】
1 プログラマブルコントローラ 2 中央処理装置(CPU) 3 メモリ(MEM) 4 ダイレクトメモリアクセスコントローラ(DMA
C) 5 マンマシンシステムインタフェース(MCSI/
F) 6 プロセス入出力インタフェース(PIOI/F) 7 プロセス入出力(PIO) 8 プラント 9 オンライン/オフライン制御回路 10 オフラインメモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山岡 弘昌 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 菊池 洋光 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 渡部 隆一 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 北田 孝志 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】メモリ上のプログラムエリアに格納され
    た、実行の対象となるプログラムを実行し、制御対象物
    の制御を行うプログラマブルコントローラにおいて、 前記プログラムエリア上の変更対象プログラムを前記メ
    モリと同一もしくは異なるメモリ上のワークエリアに複
    写する第1のステップと、 プログラムエリアに格納されたプログラムの実行と並行
    して、前記ワークエリアに複写されたプログラムの内容
    を、ワークエリア上で変更する第2のステップと、 前記変更対象プログラムからワークエリアに格納された
    プログラムに、実行の対象となるプログラムを切り換え
    る第3のステップとを有することを特徴とするプログラ
    マブルコントローラのプログラム変更方法。
  2. 【請求項2】請求項1記載のプログラマブルコントロー
    ラのプログラム変更方法であって、 前記第1のステップを、プログラムエリアに格納された
    実行の対象となるプログラムの実行と並行して実行する
    ことを特徴とするプログラマブルコントローラのプログ
    ラム変更方法
  3. 【請求項3】請求項1または2記載のプログラマブルコ
    ントローラのプログラム変更方法であって、 さらに、前記ワークエリアのプログラムをプログラムエ
    リアに複写する第4のステップと、 ワークエリアに格納されたプログラムから、前記プログ
    ラムエリアに複写したプログラムに、実行の対象となる
    プログラムを切り換える第5のステップとを有すること
    を特徴とするプログラマブルコントローラのプログラム
    変更方法。
  4. 【請求項4】請求項3記載のプログラマブルコントロー
    ラのプログラム変更方法であって、 前記第4のステップを、実行の対象となるワークエリア
    に格納されたプログラムもしくはプログラムエリア上の
    前記変更対象プログラム以外のプログラムの実行と並行
    して実行することを特徴とするプログラマブルコントロ
    ーラのプログラム変更方法
  5. 【請求項5】1または複数のプログラムを格納するプロ
    グラムエリアと、ワークエリアと、実行対象となるプロ
    グラムを管理する管理テーブルと、管理テーブルに実行
    対象として管理されている1または複数のプログラム中
    のプログラムを処理に応じて実行するプログラム実行手
    段と、前記プログラムエリア上のプログラムをワークエ
    リアに複写する手段と、ワークエリア上に複写されたプ
    ログラムを、ワークエリア上で変更する手段と、プログ
    ラムエリアに格納されている複写元プログラムに代えて
    ワークエリアに格納されたプログラムに実行対象が切り
    換わるように前記管理テーブルの管理内容を変更する切
    り換え手段とを有することを特徴とするプログラマブル
    コントローラ。
  6. 【請求項6】請求項5記載のプログラマブルコントロー
    ラであって、 前記複写手段は、前記ワークエリアのプログラムをプロ
    グラムエリアに複写する機能を有し、前記切り換え手段
    は、ワークエリアに格納されている複写元プログラムに
    代えて、複写したプログラムに実行対象が切り換わるよ
    うに前記管理テーブルの管理内容を変更する機能を有す
    ることを特徴とするプログラマブルコントローラ。
  7. 【請求項7】請求項5または6記載のプログラマブルコ
    ントローラであって、 実行対象となった後に、前記ワークエリア上で変更され
    たプログラムの正常性を判定する正常性判定手段を有
    し、前記切り換え手段は、前記正常性判定手段が前記ワ
    ークエリア上で変更されたプログラムが正常でないと判
    定した場合に、ワークエリア上で変更されたプログラム
    に代えて、当該変更されたプログラムの変更前のプログ
    ラムの複写元であるプログラムエリアのプログラムに実
    行対象が切り換わるように前記管理テーブルの管理内容
    を変更することを特徴とするプログラマブルコントロー
    ラ。
  8. 【請求項8】請求項5、6または7記載のプログラマブ
    ルコントローラであって、 前記複写手段は、前記プログラム実行手段のプログラム
    の実行と並行して、前記プログラムの複写を行うことを
    特徴とするプログラマブルコントローラ。
  9. 【請求項9】請求項8記載のプログラマブルコントロー
    ラであって、 前記複写手段は、プログラムエリアとワークエリア間の
    プログラムの転送を、サイクルスチルモードのダイレク
    トメモリアクセス転送によって行うダイレクトメモリア
    クセスコントローラであることを特徴とするプログラマ
    ブルコントローラ。
JP4019893A 1992-02-05 1992-02-05 プログラマブルコントローラ Expired - Fee Related JP2846760B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4019893A JP2846760B2 (ja) 1992-02-05 1992-02-05 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4019893A JP2846760B2 (ja) 1992-02-05 1992-02-05 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH05216507A true JPH05216507A (ja) 1993-08-27
JP2846760B2 JP2846760B2 (ja) 1999-01-13

Family

ID=12011877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4019893A Expired - Fee Related JP2846760B2 (ja) 1992-02-05 1992-02-05 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2846760B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510710A (ja) * 1999-09-29 2003-03-18 フィッシャー−ローズマウント システムズ, インコーポレイテッド 分散型プロセス制御システム内における再プログラム可能フィールドデバイス
KR100464251B1 (ko) * 1997-12-17 2005-05-03 엘지산전 주식회사 피엘씨의운전중프로그램수정방법
WO2012124197A1 (ja) * 2011-03-15 2012-09-20 オムロン株式会社 制御装置およびシステムプログラムならびに記録媒体
US9377769B2 (en) 2011-03-15 2016-06-28 Omron Corporation Control apparatus for updating a user program while processing is being performed and recording medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464251B1 (ko) * 1997-12-17 2005-05-03 엘지산전 주식회사 피엘씨의운전중프로그램수정방법
JP2003510710A (ja) * 1999-09-29 2003-03-18 フィッシャー−ローズマウント システムズ, インコーポレイテッド 分散型プロセス制御システム内における再プログラム可能フィールドデバイス
JP5015398B2 (ja) * 1999-09-29 2012-08-29 フィッシャー−ローズマウント システムズ, インコーポレイテッド 分散型プロセス制御システム内における再プログラム可能フィールドデバイス
WO2012124197A1 (ja) * 2011-03-15 2012-09-20 オムロン株式会社 制御装置およびシステムプログラムならびに記録媒体
JP2012194681A (ja) * 2011-03-15 2012-10-11 Omron Corp 制御装置およびシステムプログラム
CN102804086A (zh) * 2011-03-15 2012-11-28 欧姆龙株式会社 控制装置和系统程序以及记录介质
US9377769B2 (en) 2011-03-15 2016-06-28 Omron Corporation Control apparatus for updating a user program while processing is being performed and recording medium

Also Published As

Publication number Publication date
JP2846760B2 (ja) 1999-01-13

Similar Documents

Publication Publication Date Title
JPH0793219A (ja) 情報処理装置
JPH02503485A (ja) 多目的メモリ
JPH04133102A (ja) プログラマブル・コントローラ及びその制御方法
EP0055623B1 (en) Direct memory-access mode for a high-speed memory system
JP2846760B2 (ja) プログラマブルコントローラ
JP2004516547A (ja) 中断制御装置
JPS60114947A (ja) デイスクキヤツシユ装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JPS6218932B2 (ja)
JPH07295761A (ja) ミラーリング磁気ディスク装置
JP3405513B2 (ja) プログラマブルコントローラの二重化制御装置
JPH08123725A (ja) ライトバック式キャッシュシステム
JPH11232206A (ja) 入出力制御回路
JPS60142450A (ja) 記憶システム
JPH0481939A (ja) マイクロコンピュータの制御方式
JPH1153224A (ja) ウォッチドッグタイマ及びマイクロコンピュータ
JPH01263763A (ja) 多重処理計算機
JPH0561610A (ja) 割り込み磁気デイスク装置選択方法
JPH09325935A (ja) バス切り換え回路
JPH04310140A (ja) 計算機システム
JPS6359633A (ja) 仮想計算機システム
JPH0644012A (ja) 擬似磁気ディスク装置を用いたデータ転送方式
JPH02234255A (ja) 入出力制御方式
JPH0823816B2 (ja) マイクロプログラム変更装置
JPH0378845A (ja) 主記憶キー制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees