JPH05257510A - プログラマブル・コントローラとその制御方法 - Google Patents

プログラマブル・コントローラとその制御方法

Info

Publication number
JPH05257510A
JPH05257510A JP5501492A JP5501492A JPH05257510A JP H05257510 A JPH05257510 A JP H05257510A JP 5501492 A JP5501492 A JP 5501492A JP 5501492 A JP5501492 A JP 5501492A JP H05257510 A JPH05257510 A JP H05257510A
Authority
JP
Japan
Prior art keywords
program
cpu
programmable controller
address
scanning
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.)
Pending
Application number
JP5501492A
Other languages
English (en)
Inventor
Yasusuke Sakurai
保輔 桜井
Takashi Kuwano
孝 桑野
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
Original Assignee
Hitachi Techno Engineering Co Ltd
Hitachi Ltd
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 Techno Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Techno Engineering Co Ltd
Priority to JP5501492A priority Critical patent/JPH05257510A/ja
Publication of JPH05257510A publication Critical patent/JPH05257510A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】 スキャンニングとブロック転送を同時に行な
うことにより、運転中にプログラムを変更(RUN中変
更)可能なプログラマブル・コントローラとその制御方
法を提供する。 【構成】 状態(a)から、状態(b)〜状態(d)を
経てプログラムC中のC4、C5を矢印Yのように逐次
転送し、ブロック転送途中の状態(e)において、TR
レジスタ4で指定したアドレスC4から、C5を含むS
Rレジスタ5で指定した分に相当するプログラムを実行
せずに飛び越えることにより、矢印Xに示すようにA→
B→C1→C2→C3→C4′→C5′なるスキャンニ
ングを実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラマブル・コント
ローラに係り、特にプログラマブル・コントローラの運
転中にプログラムを変更するRUN中変更の技術であっ
て、電気的に消去可能なROMなど、読み出し時間に比
べて書き込み時間が多くかかるメモリの使用に好適なプ
ログラマブル・コントローラに関するものである。
【0002】
【従来の技術】プログラマブル・コントローラの一般構
成は、外部機器からの信号を入力部に入力し、プログラ
ムメモリに記憶された制御プログラムを出力部を介して
外部機器に出力するもので、CPU(中央演算処理装
置)はプログラムメモリの読み出しを実行すると共に、
入力部、出力部の制御を行なう。
【0003】生産ラインに組み込まれて稼働しているプ
ログラマブル・コントローラは、前記稼動を開始する
と、一般に連続運転となるため停止させることが困難な
ことが多い。このような状況の下で、デバッグ、いわゆ
るミスプログラムの修正、または仕様変更に伴ってシー
ケンスプログラムの内容を変更する必要が生じた場合、
プログラマブル・コントローラを運転したままプログラ
ムを変更する機能(以下、RUN中変更機能と記す)が
必要となってくる。
【0004】従来、RUN中変更機能の技術としては、
特開昭60−229106号公報に開示されている。す
なわち、図5に示すように、A→B→Cなるプログラム
を実行中、Bの部分を変更したいとき、変更部分Bに相
当するプログラムを、あらかじめ修正用のバッファメモ
リにB′を作成しておき、プログラムメモリ上のB部分
をB′部分にRUN中変更した後に、CPUがシーケン
スプログラムを読み出し実行(以下スキャンニングと呼
ぶ)し、A→B′→Cのように制御をジャンプさせる処
理制御を行なうものであった。以下、図中の矢印Xはス
キャンニングの流れを示す。
【0005】この処理制御によって、RUN中変更が実
現するが、変更部分のプログラムが本来のプログラムメ
モリと別の修正用バッファメモリに形成されることにな
るから、したがって、このようなRUN中変更をたびた
び繰り返してゆくと、第1に、必要な修正用バッファメ
モリの容量が増え、逆にプログラムメモリは使用してい
ない部分が次第に増えてゆくから、小規模のプログラマ
ブル・コントローラでは、プログラムメモリ容量に制約
があるためその影響は極めて大きく、第2に、プログラ
ムメモリとバッファメモリの併用によって、プログラム
がつぎはぎになって、同一プログラムに対して複数のビ
ットパターン表現を許してしまうという問題点があっ
た。
【0006】上記2つの問題点を解決するためには、R
UN中変更を行った後、修正用バッファメモリの内容を
元のプログラムメモリに戻すことが考えられる。RUN
中変更前とRUN中変更後で、変更を行なった部分のプ
ログラムの大きさが変わった場合には、修正用バッファ
メモリの内容を元のプログラムに戻す前に、プログラム
メモリのRUN中変更を行った部分以降のプログラムを
大きさが変わったステップ分だけずらす操作を行なう必
要がある。この操作は通常、CPUのレジスタを経由す
るか、あるいはDMAC(ダイレクト・メモリ・アクセ
ス・コントローラ)によって、CPUが直接プログラム
を転送(以下、ブロック転送と呼ぶ)することによって
実行される。
【0007】図6(a)、(b)、(c)は、このスキ
ャンニングの流れを示した図であって、(a)は、変更
前のプログラムメモリの状態を示している。プログラム
は説明のためA、B、Cの部分に分かれているものとす
る。(b)はBの部分をB′となるようにRUN中変更
した直後の状態を示している。この段階では、B′は修
正用バッファメモリ上に存在している。(c)は(b)
の状態から修正用バッファメモリ上のB′を再びプログ
ラムメモリ上に戻した状態を示している。(c)は
(b)の状態と比較して、修正用バッファメモリを必要
としないシーケンスプログラムがスキャンニングの実行
順に並んでいる、という2つのことからRUN中変更後
のシーケンスプログラムの理想的なメモリ上の配置とい
える。
【0008】(b)の状態から(c)の状態にするため
には、修正用バッファメモリ上にあるB′を元のプログ
ラムメモリ上に戻す前に、シーケンスプログラム上のC
を、修正したメモリの差、すなわちB′とBの差だけR
UN中変更によってブロック転送してやればよい。
【0009】
【発明が解決しようとする課題】しかし、一般に上記の
ようなブロック転送処理には時間を要し、特に読出しに
比べて書込みに時間を必要とする低速メモリを使用して
いた場合、ブロック転送の開始から終了までに要する時
間の長さは、スキャンニングの時間に比べて無視できな
い大きな時間のロスとなる。例えば、スキャンニング時
間10msで運転しているプログラマブル・コントロー
ラでRUN中変更を行ない、上記のプログラムのブロッ
ク転送に2秒を要したとすると、一般にブロック転送の
途中段階ではシーケンスプログラムの一部分が重複して
いるため、ブロック転送を開始してから終了するまでの
間、スキャンニングを行なうことができない。したがっ
て、この例では、通常スキャンニング時間10msで運
転しているプログラマブル・コントローラが、RUN中
変更を行なった直後に2秒間もブロック転送のためにス
キャンニングを行なわない状態になる。これは高速応答
を要求される技術分野では許容し難いロス時間とみなさ
れることから、結果的にRUN中変更は、図6に於ける
(b)に止めておくことが好ましい。
【0010】図7(a)、(b)、(c)、(d)、
(e)は、ブロック転送の途中段階でシーケンスプログ
ラムの一部分が異常または重複することを示した図であ
る。図7ではシーケンスプログラムのC部分がC1、C
2、C3、C4から構成されている。(a)はブロック
転送直前の状態である。いまC部分全体を2番地分だけ
アドレスの大きい方向へブロック転送することを考える
と、(a)の状態からC4を2番地分だけアドレスの大
きい方向へ転送すると(b)になる。この(b)の状態
からC3を2番地分だけアドレスの大きい方向へ転送す
ると(c)になる。以下、同様にC2を転送しさらにC
1まで転送を行なった状態を(e)に示す。図中、矢印
Yは転送を示す。
【0011】ここでブロック転送の途中段階である
(b)から(d)を詳細に検討すると、ブロック転送の
途中段階で、太線で囲った部分Zはシーケンスプログラ
ムが異常または重複していることがわかる。従って、こ
のZ部分が問題であって、このためにブロック転送の途
中ではスキャンニングを行なうことができなかった。
【0012】本発明は、シーケンスプログラムをブロッ
ク転送している途中でスキャンニングが行なわれても、
正常状態でシーケンスプログラムを実行するプログラマ
ブル・コントローラとその制御方法を提供することを目
的としている。
【0013】
【課題を解決するための手段】上記の目的を達成するた
めには、プログラマブル・コントローラを構成するCP
Uが、プログラムメモリをアクセスするアドレス信号を
監視する手段を備え、この監視によって、CPUがあら
かじめ第1のレジスタに設定しておいたアドレス(L番
地とする)になったことを検知したとき、CPUが第2
のレジスタに設定しておいたオフセット値nをCPUの
プログラムカウンタに加算する手段を備えることによっ
て、プログラムメモリ上のL番地からL+n番地の間の
指定範囲を実行しないプログラマブル・コントローラを
用いて、ブロック転送の途中段階で発生するシーケンス
プログラムの異常または重複部分に、前記CPUが実行
しないシーケンスプログラム範囲をあてはめることによ
り、ブロック転送途中でスキャンニングを行ってもシー
ケンスプログラムを正しく実行させることができ、前記
CPUが処理を実行しないL番地からL+n番地の間を
ずらしながら、スキャンニングとブロック転送の両方を
行なうことで可能となる。すなわち、本発明の第1は、
外部機器からの信号を取り込む入力部と、外部機器を駆
動する出力部と、制御プログラムを記憶するプログラム
メモリと、前記制御プログラムにしたがって演算を実行
するCPUと、前記プログラムメモリから制御プログラ
ムを順次読み出して繰返し実行するプログラマブル・コ
ントローラにおいて、前記プログラマブル・コントロー
ラ内部のCPUが出力するアドレス信号を監視する手段
と、前記CPUのプログラムカウンタを書き換える手段
と、シーケンスプログラムの指定区間の命令をとばして
実行する制御手段を有することを特徴とするプログラマ
ブル・コントローラである。また、第2の発明は、外部
機器からの信号を入力部に取り込み、出力部において外
部機器を駆動し、プログラムメモリにおいて制御プログ
ラムを記憶し、前記制御プログラムにしたがってCPU
が演算を実行し、前記プログラムメモリから制御プログ
ラムを順次読み出して繰返し実行するプログラマブル・
コントローラの制御方法において、シーケンスプログラ
ムのスキャンニングと、前記CPUがプログラムを直接
転送する、いわゆるブロック転送とを同時に行なうこと
を特徴とするプログラマブル・コントローラの制御方法
である。
【0014】
【作用】図1は、本発明のプログラマブル・コントロー
ラのブロック構成を示す図であって、CPU1はアドレ
スバス7上に乗せたアドレス信号によってプログラムメ
モリ2上のアドレスを指定し、データバス8を通じてシ
ーケンスプログラムの読み出しを実行する。CPU1か
ら出ているアドレスバス7はアドレス監視部3にも接続
されており、CPU1が出力するアドレス信号はアドレ
ス監視部3の内部にある第1のレジスタ4に記憶されて
いる値と常に比較することができる。
【0015】CPU1がプログラムメモリ2上のL番地
を読み出そうとして、アドレスバス7にアドレス信号L
を出力したとき、アドレス監視部3は範囲の先頭を指定
する第1のレジスタ4の値L番地と一致したことを検出
し、CPU1につながっている一致信号線9を通じて一
致信号をCPU1に伝える。CPU1はこの一致信号を
CPU1内にあるプログラムカウンタ6の加算命令と解
釈し、CPU1内の範囲のサイズを指定する第2のレジ
スタ5に記憶されている値nがプログラムカウンタ6に
加算される。その結果、CPU1は次の実行命令をL+
n番地から順に行なうものである。
【0016】以上の仕組みによって、CPU1は第1の
レジスタ4で指定されたL番地からL+n番地の命令を
飛ばしてスキャンニングを行うことができる。なお、こ
れら2つのレジスタはCPU1によって書き換えができ
るものである。
【0017】
【実施例】図2は、プログラムメモリ上の指定範囲を飛
ばしてスキャンニングすることのできるプログラマブル
・コントローラを用いてスキャンニングを行いながらシ
ーケンスプログラムを少しずつブロック転送する一実施
例のアルゴリズムを示す図であって、図中で矢印Xはス
キャンニングの流れを示し、CPUは、第1のレジス
タ、すなわち、実施例の範囲先頭指定レジスタ4(以下
TR4と略記す)が示すアドレスから、第2のレジス
タ、すなわち、実施例の範囲サイズ指定レジスタ5(以
下SR5と略記す)が示す番地の範囲に相当するシーケ
ンスプログラムを実行しない機能を有するものとする。
矢印Yは転送を示す。また、転送先のデータには「′」
記号を付け、転送元のデータと区別する。また図3は、
図2に示す実施例の主要フローを示す図である。本実施
例を図2、図3を用いて説明する。
【0018】図2において、状態(a)では1スキャン
ニング目が矢印XにしたがってA→B→C1→C2→C
3→C4→C5の順に実行される。状態(b)でC5を
n番地離れたアドレスへ矢印Yのように転送される。状
態(c)ではTR4がC5を指定しているためにC5は
実行されないが、SR5の内容がnであるため、C5の
代わりに状態(b)でn番地離れたアドレスに転送した
C5′が実行される。従って2スキャンニング目の実行
順序はA→B→C1→C2→C3→C4→C5′であ
る。状態(d)ではC4がn番地離れたアドレスへ転送
される。状態(e)ではTR4の値をディクリメント
(1を減ずる)すると、TR4がC4を指定するため、
C4以降のC4、C5は実行されないが、SR5の内容
がnであるためにC4、C5の代わりにn番地離れたア
ドレスのC4′、C5′が実行される。以下、同様の操
作を繰り返すことにより、 1スキャンニング目 A→B→C1→C2→C3→C
4→C5 2スキャンニング目 A→B→C1→C2→C3→C
4→C5′ 3スキャンニング目 A→B→C1→C2→C3→C
4′→C5′ 4スキャンニング目 A→B→C1→C2→C3′→
C4′→C5′ 5スキャンニング目 A→B→C1→C2′→C3′
→C4′→C5′ 6スキャンニング目 A→B→C1′→C2′→C
3′→C4′→C5′ のようにスキャンニングが実行され、C部分のスキャン
ニングは順次ブロック転送後の命令を実行するように変
化してゆく。
【0019】図2の説明では1スキャンニングに対して
転送を1回行ったが、一般にはプログラマブル・コント
ローラのスキャンニング周期の低下が許容される範囲内
ならば1スキャンニングに対して転送を複数回行うこと
が可能である。
【0020】また、図2の説明ではC部分をアドレスの
大きい方向へブロック転送したが、C部分をアドレスの
小さい方向へブロック転送するには、C1から転送を開
始して転送のたびにTRレジスタ4の内容をインクリメ
ント(1を加える)ことにより図2と同様の操作で実行
することができる。
【0021】一般にCPU1が指定の範囲のシーケンス
プログラムを実行しない機能を備えていればこのアルゴ
リズムは適用することが可能である。
【0022】なお、CPU1の構成としては、第1のレ
ジスタが指定したアドレスLから第2のレジスタが指定
したアドレスnまでの命令を飛ばしてスキャンニングを
行なうプログラマブル・コントローラもある。これは、
図1においてSR5の値をnとし、CPU1が一致信号
を受信したらプログラムカウンタ6にSR5の値nを加
算せずにそのまま転送すればよい。
【0023】図4は、本発明の一実施例のプログラマブ
ル・コントローラの構成を示す図である。図4において
プログラマブル・コントローラの概要構成は、CPU
1、プログラムメモリ2、アドレス監視部3からなって
いて、アドレス監視部3から出ている一致信号線9はC
PU1に接続されており、本実施例はCPU1とアドレ
ス監視部3の構成の一実施例を示し、その他は概ね図1
に示した構成と同一の構成を備えている。CPU1の内
部はマイクロプロセッサ10とその周辺回路で構成され
ている。マイクロプロセッサ10はアドレスバス7上に
乗せたアドレス信号によってプログラムメモリ2上のア
ドレスを指定し、データバス8を通じてシーケンスプロ
グラムを読み出し実行している。データバス8上にある
データセレクタ11は、通常プログラムメモリ2側のデ
ータバス8を選択しているため、マイクロプロセッサ1
0はデータバス8を通じてプログラムメモリ2上のシー
ケンスプログラムを読み出し実行する。すなわちスキャ
ンニングを行なうことができる。
【0024】CPU1がプログラムメモリ2上のアドレ
スL番地の命令を読み出そうとしてアドレスバス7にア
ドレス信号Lを出力したとき、そのアドレス信号はアド
レス監視部3の内部にあるディジタルコンパレータ13
にも入力されていて、常にTR4の値Lと比較されてい
るため、一致信号線9を通じてCPU1に一致信号が伝
えられる。この一致信号線9はCPU1内部のデータセ
レクタ11の選択入力端子につながっていて一致信号が
入力されたときだけは、現在のプログラムカウンタの値
を基準とする相対ジャンプ命令のオペコードのビットパ
ターンが記憶されているジャンプオペコードROM12
の内容とSR5の値nが選択され、マイクロプロセッサ
10に取り込まれる。したがって、マイクロプロセッサ
10はプログラムメモリ2上のL番地の命令を読み出そ
うとしたとき、プログラムメモリ2上の命令の代わりに
JUMPnという命令を与えられ、その結果としてマイ
クロプロセッサ10はプログラムカウンタをL+nの値
に書き換える。すなわちL番地からL+n番地へジャン
プしたことになる。以上の仕組みによってTR4、SR
5に設定した値L、nに対し、アドレスLからL+nの
範囲を実行しないプログラマブル・コントローラを実現
することができる。
【0025】また、図4において、ジャンプオペコード
ROM12に絶対アドレスジャンプ命令のビットパター
ンを記憶しておけば、L番地からn番地の範囲を実行し
ないプログラマブル・コントローラを実現することがで
きる。
【0026】前記プログラマブル・コントローラに対し
て、図2に示すスキャンニングと転送を交互に繰り返す
方法を適用すれば、RUN中変更後の処理に必要なブロ
ック転送をスキャンニングを行いながら実行することが
可能である。
【0027】上記実施例によりスキャンニングを行いな
がらブロック転送を行ってもプログラムを正しく実行す
ることが可能なCPU1が構成され、このCPU1を使
用したアルゴリズムを提示することができる。
【0028】
【発明の効果】本発明の実施により、RUN中変更を実
施した後修正用バッファメモリの内容を元のプログラム
メモリに戻すことができるため、RUN中変更を行って
も修正用バッファメモリは増大しない。また、ブロック
転送途中でもスキャンニングを行なうことができるた
め、特に書込みに時間を要する低速メモリをプログラム
メモリに使用したプログラマブル・コントローラによっ
てRUN中変更を行なう場合に極めて有用である。
【図面の簡単な説明】
【図1】本発明のプログラマブル・コントローラのブロ
ック構成図である。
【図2】本発明の一実施例のアルゴリズムを説明する図
である。
【図3】図2に示す実施例の主要フローを示す図であ
る。
【図4】本発明の一実施例のプログラマブル・コントロ
ーラの構成を示す図である。
【図5】従来技術におけるプログラムのRUN中変更を
示し変更部分のプログラムを元のプログラムメモリに戻
さない処理図である。
【図6】従来技術におけるプログラムのRUN中変更を
示し変更部分のプログラムを元のプログラムメモリに戻
す処理図である。
【図7】従来技術におけるプログラムのRUN中変更を
示しブロック転送の途中でシーケンスプログラムの一部
分が異常または重複する処理図である。
【符号の説明】
1…CPU 2…プログラムメ
モリ 3…アドレス監視部 4…範囲先頭指定
レジスタ(TR) 5…範囲サイズ指定レジスタ(SR)6…プログラムカ
ウンタ 7…アドレスバス 8…データバス 9…一致信号線 10…マイクロプロ
セッサ 11…データセレクタ 12…ジャンプオ
ペコードROM 13…ディジタルコンパレータ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 外部機器からの信号を取り込む入力部
    と、外部機器を駆動する出力部と、制御プログラムを記
    憶するプログラムメモリと、前記制御プログラムにした
    がって演算を実行するCPUと、前記プログラムメモリ
    から制御プログラムを順次読み出して繰返し実行するプ
    ログラマブル・コントローラにおいて、 前記プログラマブル・コントローラ内部のCPUが出力
    するアドレス信号を監視する手段と、 前記CPUのプログラムカウンタを書き換える手段と、 シーケンスプログラムの指定区間の命令をとばして実行
    する制御手段を有することを特徴とするプログラマブル
    ・コントローラ。
  2. 【請求項2】 外部機器からの信号を入力部に取り込
    み、出力部において外部機器を駆動し、プログラムメモ
    リにおいて制御プログラムを記憶し、前記制御プログラ
    ムにしたがってCPUが演算を実行し、前記プログラム
    メモリから制御プログラムを順次読み出して繰返し実行
    するプログラマブル・コントローラの制御方法におい
    て、 シーケンスプログラムのスキャンニングと、前記CPU
    がプログラムを直接転送する、いわゆるブロック転送と
    を同時に行なうことを特徴とするプログラマブル・コン
    トローラの制御方法。
JP5501492A 1992-03-13 1992-03-13 プログラマブル・コントローラとその制御方法 Pending JPH05257510A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5501492A JPH05257510A (ja) 1992-03-13 1992-03-13 プログラマブル・コントローラとその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5501492A JPH05257510A (ja) 1992-03-13 1992-03-13 プログラマブル・コントローラとその制御方法

Publications (1)

Publication Number Publication Date
JPH05257510A true JPH05257510A (ja) 1993-10-08

Family

ID=12986810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5501492A Pending JPH05257510A (ja) 1992-03-13 1992-03-13 プログラマブル・コントローラとその制御方法

Country Status (1)

Country Link
JP (1) JPH05257510A (ja)

Similar Documents

Publication Publication Date Title
EP0622732A1 (en) Microcomputer
US5600807A (en) Programmable controller capable of updating a user program during operation by switching between user program memories
JPH01147627A (ja) 質問応答装置
JPH05257510A (ja) プログラマブル・コントローラとその制御方法
US7076641B2 (en) Programmable controller
JP3462245B2 (ja) 中央演算処理装置
JPS59114602A (ja) プログラマブルコントロ−ラ
JP2526703B2 (ja) プログラマブルコントロ―ラ
US6718459B1 (en) Device and method for arithmetic processing
JP3207333B2 (ja) プログラマブルコントロ−ラ
JP2731166B2 (ja) プログラマブルコントローラ
KR100290280B1 (ko) 프로그램 가능한 플래시 메모리를 내장하는 마이크로콘트롤러
JPH0830453A (ja) プログラマブルコントローラ
JPH11167409A (ja) 並列実行言語で動作するプログラマブルコントローラ
JP3358113B2 (ja) プログラマブルコントローラ用プログラムの作成装置
JPH11288371A (ja) インサーキットエミュレータ
JPH03158940A (ja) データダンプ制御システム
JPH06202718A (ja) デバッグ方式
JPH0695710A (ja) プログラマブルコントローラのシーケンスプログラムの変更方法
JPH0821027B2 (ja) A/d変換装置内蔵マイクロコンピュータ
JP2007323491A (ja) ダイレクトメモリアクセス制御装置および制御方法
JPH09160786A (ja) マイクロプロセッサ
JPH01295347A (ja) マイクロコンピュータ装置
JPH01205338A (ja) 命令制御方式
JPH08241224A (ja) エミュレータ用インターフェース回路