JPH08147162A - プログラマブルコントローラのステータス格納処理方法 - Google Patents

プログラマブルコントローラのステータス格納処理方法

Info

Publication number
JPH08147162A
JPH08147162A JP6291756A JP29175694A JPH08147162A JP H08147162 A JPH08147162 A JP H08147162A JP 6291756 A JP6291756 A JP 6291756A JP 29175694 A JP29175694 A JP 29175694A JP H08147162 A JPH08147162 A JP H08147162A
Authority
JP
Japan
Prior art keywords
input
instruction
bits
status
data
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
JP6291756A
Other languages
English (en)
Inventor
Hiroshi Sakai
宏史 坂井
Tatsuo Masuda
達男 増田
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works 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 Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP6291756A priority Critical patent/JPH08147162A/ja
Publication of JPH08147162A publication Critical patent/JPH08147162A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】外部メモリの使用効率を向上させて、プログマ
ブルコントローラのコストパーフォマンスを向上できる
ステータス格納処理方法を提供するにある。 【構成】タイマ命令のNo.を示す16ビットデータの
内下位2ビットD0 ,D1 を除いた14ビットD2 〜D
14をアドレスとして外部メモリであるRAM3から16
ビットデータを読み出し、この16ビットデータを前回
のタイマ命令実行開始時のデータD0 乃至D15として保
持する。そして更新記憶する場合には、タイマ命令のN
oの上位14ビットD2 〜D14を外部メモリたるRAM
3の格納アドレスとして用い、タイマ命令のNoの下位
2ビットD0 ,D1 を上記ステータス格納エリアの指定
データとし、この指定データに基づいて選択ロジック回
路5から、更新先のデジットが指定されて、そのデジッ
トに更新される実行条件フラグ或いはタイマ補正値或い
は入力条件が取り込まれて更新されることになる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラマブルコント
ローラのステータス格納処理方法に関するものである。
【0002】
【従来の技術】図4はプログラマブルコントローラ(以
下コントローラと称する)の基本的な構成を示してお
り、プログラマブルコントローラはコントローラの中枢
となるCPU1と、コントローラの基本動作プログラム
等を格納してROM2と、ワークエリアの確保やユーザ
プログラムを格納するRAM3と外部入出力装置と接続
するI/O装置4とを備え、ユーザプログラムに沿って
各種命令処理を行うようになっている。
【0003】ところでコントローラのCPU1が実行す
る命令の一つとしてタイマ命令があるが、例えば図5に
示すようなシーケンスプログラムを実行する場合、先ず
入力Aがオンすると、タイマ命令(TMR K100)
の実行の起動がかかり、K100という値を初期値とし
て命令実行の度に予め与えられた減算すべき計時値(タ
イムベースレジスタ)を使って、経過時間を更新してい
く処理が為される。ここで実際には時間精度を上げる為
に命令の時間単位の何分の1かの精度で減算値をカウン
トしておく手法がとられるのが通常である。具体的には
図6に示すように例えば1/4精度であれば、タイムベ
ースレジスタの値(1/4精度のカウント数)と補正値
格納エリアにタイマ補正値(2ビット)として格納され
ている、前回の命令実行時に発生した1/4精度の余り
(0〜3)とを加算する。その加算結果より下位2ビッ
トを新タイマ補正値としてメモリへ書き戻し、ワーク上
の残りの上位ビットを2ビット分右へシフトさせた後、
それを4で割った値が今回の減算での引き数となる。そ
して(現在の経過値)−(引き数)→(新しい経過値)
として得、その新しい経過値をメモリへ書き戻す。引き
数を得る際に4で割った余りは、次回の演算時のときの
引き数算出の際に使用するために、上述のように新補正
値として記憶するのである。一方命令実行の条件として
の入力Aの値は、オフ→オンになった時には初期値を経
過値としてセットするだけであるため、前回オフで、今
回オンを判定すると入力Aの値も前回値を毎回記憶、更
新して行く必要がある。
【0004】図7(a)は同一の実行スキャン内に、一
度だけタイマ命令が実行される場合を示しており、この
場合はタイムベースレジスタを更新してタイム命令実行
により経過値(タイムベースに与える時間t)を1回減
算する。ところが図7(b)に示すように同一の実行ス
キャン内、つまりプログラム実行開始から次のプログラ
ム実行開始までに複数回同じタイマ命令が実行される
と、何回もタイマの経過値(タイムベースに与える時間
t)が減算されてしまい、実際の計時と異なってしまう
ことがある。そこで実行フラグを1ビット用意し、タイ
マ命令を実行するとオフしていた実行フラグをオンして
記憶し、再度同一の実行スキャン内に同じ命令を実行す
るときには、実行フラグのオンを判定して計時を行わな
いように処理する。そして次のプログラム実行開始時に
外部から実行フラグをオフしてから実行を開始する(図
8参照)。 このことにより、タイマ計時の不具合が解
消される。但し実行フラグを記憶しておくエリアを外部
メモリであるRAM3に確保して必要がある。
【0005】このようなタイマ命令実行において、前回
のタイマ補正値の2ビット、前回の入力条件(オン、オ
フ)の1ビット、実行フラグの1ビットの計4ビットを
ステータスとして常に更新、記憶する必要がある。この
ステータスは通常外部メモリであるRAM3に格納され
るが、通常タイマ命令は複数個指定することができるた
め夫々のタイマ命令のNo.をそのままRAM3の格納
アドレスとして指定することにより、ステータス格納先
を選択していた。 そのため例えば16ビットデータ幅
のRAM3を使用すると、(タイマ命令の数×16ビッ
ト)分のメモリ空間が必要となり、そのため大きなメモ
リ容量を必要としコストパーフォーマンスが悪いという
問題があった。
【0006】同様な問題は、カウンタ命令の実行につい
てもあった。つまり図9に示すカンタ命令(CNT K
100)を実行する場合、コントローラのカウンタ命令
に対する動作は、リセット入力RSTである入力Cがオ
ンの期間中ではカウンタ(CPU1の機能としてある)
の値を0とし、入力Cがオンからオフに変化すると、カ
ウンタ命令が実行されてプリセット動作を先ず行い、カ
ウンタの経過値を0から初期の設定値へと変化させる。
このことからカウンタ命令の入力C(リセット入力RS
T)の今回の値と、前回の命令実行時の値とを比較し
て、オフ→オン或いはオン→オフを判定する必要があ
る。
【0007】一方、リセット入力RSTである入力Bが
オフ(リセットでない期間)を継続していればクロック
(CLK)入力Cが有効となる。例えばカウンタ命令が
立ち上がりエッジ動作をするのであれば、前回の命令実
行時の入力Cがオフで、今回のそれがオンと判定すれ
ば、クロック(CLK)入力が立ち上がったとすること
ができる。このときカウンタの経過値は、1が減ぜられ
てその減ぜられた結果の値が新し経過値としえ再び記憶
される。以上のことから入力Cも同様に今回値と前回値
とが必要となり、この入力C,B〔つまりリセット入力
RSTと、クロック(CLK)入力〕の前回の命令実行
時の値がステータスとして外部メモリであるRAM3に
格納しておくのがカウンタ命令の処理構成である。また
カウンタは通常複数個指定することができるため、タイ
マの場合と同様にステータスの格納先はこのカウンタ命
令のNo.をそのままRAM3の格納アドレスとして指
定することにより選択していた。
【0008】従ってこのカウンタ命令におけるステータ
す格納方法であれば、タイマ命令の場合と同様に例えば
16ビットデータ幅のRAM3を使用すると、(カウン
タ命令の数×16ビット)分のメモリ空間が必要とな
り、そのため大きなメモリ容量を必要としコストパーフ
ォーマンスが悪いという問題があった。上記のタイマ命
令やカウンタ命令におけるステータス格納処理の問題
は、シフトレジスタ命令におけるステータス格納処理時
にも存在している。
【0009】つまり図10に示すようなシフトレジスタ
命令(SR WRQ)を実行する場合、リセット入力
(RST)である入力Fがオンの期間中はCPU1内蔵
のシフトレジスタの値は0となっている。一方入力Fが
ずとオフ(リセットでない期間)であればクロック入力
(CLK)たる入力Eが有効となる。例えばシフトレジ
スタ命令が立ち上がりエッジ動作をするのであれば、前
回の命令実行時の入力Eがオフで、今回のそれがオンで
あることを判定すれば、クロック入力(CLK)である
入力Eが立ち上がったとすることができる。このとき入
力Fはずとオフである必要があるため、前回命令実行時
の入力Fがオフで、今回の命令実行時の入力がオフであ
ることを同時に判定する必要がある。そしてシフト条件
が成立すると指定されたデータを1ビット入力すると同
時に新しいデータ1ビット(入力D)を挿入することに
なる。以上の動作から分かるように入力F,E、(つま
りリセット入力と、クロック(CLK)入力)の前回命
令実行時の値はステータスとして外部メモリたるRAM
3に記憶しておくのが一般的なシフトレジスタ命令のス
テータス処理方法であった。またシフトレジスタ命令は
指定先データを変えることにより、複数個使用できのが
通常であるため、ステータスの格納先も夫々別々に用意
しておくことが必要であり、その指定先は上記のタイマ
命令やカウント命令と同様にシフトレジスタ命令のN
o.をそのままRAM3の格納アドレスとして指定する
ことにより選択していた。
【0010】従って、シフトレジスタ命令の場合も、例
えば16ビットデータ幅のRAM3を使用すると、(カ
ウンタ命令の数×16ビット)分のメモリ空間が必要と
なり、そのため大きなメモリ容量を必要としコストパー
フォーマンスが悪いという問題があった。
【0011】
【発明が解決しようとする課題】上述のように従来プロ
グラマブルコントローラにおいて、タイマ命令、カウン
タ命令、シフトレジスタ命令を実行する場合におけるス
テータス格納処理方法では大きなメモリ容量を必要とし
コストパーフォーマンスが悪いという問題があった。
【0012】本発明は、上記の問題点に鑑みて為された
もので、その目的とするところは、外部メモリの使用効
率を向上させて、プログマブルコントローラのコストパ
ーフォマンスを向上できるステータス格納処理方法を提
供するにある。
【0013】
【課題を解決するための手段】上記目的を達成するため
に請求項1の発明では、時間を計時するタイマ命令を実
行処理する時において必要とするステータスを外部メモ
リに格納するプログラマブルコントローラのステータス
格納処理方法において、外部メモリの一つのアドレスの
データ幅をステータス格納に要するビット数で区切って
夫々をステータス格納部とし、タイマ命令に予め与えて
いるNo.を示す所定ビットのデータの所定下位ビット
でステータス格納部を指定し、外部メモリの格納アドレ
スを残りの上位ビットで指定することを特徴とする。
【0014】請求項2の発明では、入力の立ち上がり若
しくは立ち下がりエッジを計数するカウンタ命令の実行
処理の時に必要とするステータスを外部メモリに格納す
るプログラマブルコントローラのステータス格納処理方
法において、外部メモリの一つのアドレスのデータ幅を
ステータス格納に要するビット数で区切って夫々をステ
ータス格納部とし、タイマ命令に予め与えているNo.
を示す所定ビットのデータの所定下位ビットでステータ
ス格納部を指定し、外部メモリの格納アドレスを残りの
上位ビットで指定することを特徴とする。
【0015】請求項3の発明では、入力の立ち上がり若
しくは立ち下がりエッジにより所定のデータをシフトす
るシフトレジスタ命令を実行処理する時に必要とするス
テータスを外部メモリに格納するプログラマブルコント
ローラのステータス格納処理方法において、外部メモリ
の一つのアドレスのデータ幅をステータス格納に要する
ビット数で区切って夫々をステータス格納部とし、タイ
マ命令に予め与えているNo.を示す所定ビットのデー
タの所定下位ビットでステータス格納部を指定し、外部
メモリの格納アドレスを残りの上位ビットで指定するこ
とを特徴とする。
【0016】
【作用】請求項1の発明によれば、時間を計時するタイ
マ命令を実行処理する時において必要とするステータス
を外部メモリに格納するプログラマブルコントローラの
ステータス格納処理方法において、また請求項2の発明
によれば、入力の立ち上がり若しくは立ち下がりエッジ
を計数するカウンタ命令の実行処理の時に必要とするス
テータスを外部メモリに格納するプログラマブルコント
ローラのステータス格納処理方法において、更に請求項
3の発明によれば、入力の立ち上がり若しくは立ち下が
りエッジにより所定のデータをシフトするシフトレジス
タ命令を実行処理する時に必要とするステータスを外部
メモリに格納するプログラマブルコントローラのステー
タス格納処理方法において、夫々外部メモリの一つのア
ドレスのデータ幅をステータス格納に要するビット数で
区切って夫々をステータス格納部とし、タイマ命令に予
め与えているNo.を示す所定ビットのデータの所定下
位ビットでステータス格納部を指定し、外部メモリの格
納アドレスを残りの上位ビットで指定するので、外部メ
モリの一つのアドレスにおけるメモリ空間の使用効率を
向上させることができ、そのためプログラマブルコント
ローラとしてのメモリ使用量を減らしてコストダウンを
図ることが可能となり、また使用効率の向上によりメモ
リ空間に余裕ができ、そのため命令の点数を増やしたり
することでコストパーファマンスを向上させることがで
きる。
【0017】
【実施例】以下、本発明の実施例を図面を参照して説明
する。 (実施例1)本実施例は請求項1の発明に対応するもの
で、16ビットデータ幅のRAM3を用いてステータス
を格納する際、タイマ命令の実行に必要とする4ビット
のステータスに対応するようにRAM3の一つのアドレ
スの16ビットデータ幅を4ビットずつに区切って、一
つのアドレスに対して4つのステータス格納部を確保
し、各エリアの4ビットの内下位側から第1番のビット
には入力条件の1ビットを、第2番のビットには前回の
入力条件の1ビット、第3番、第4番のビットには前回
のタイマ補正値の2ビットをそれぞれ格納するように割
り当てている。
【0018】そして本実施例ではタイマ命令実行開始時
に図4におけるCPU1がまずタイマ命令のNo.を示
す16ビットデータの内下位2ビットを除いた14ビッ
トをアドレスとして外部メモリであるRAM3から16
ビットデータを読み出し、この16ビットデータを前回
のタイマ命令実行開始時のデータD0 乃至D15として保
持する。そして更新記憶する場合には、図1に示すよう
にタイマ命令のNo.の上位14ビットD2 〜D15を外
部メモリたるRAM3の格納アドレスとして用い、タイ
マ命令のNo.の下位2ビットD0 ,D1 を上記ステー
タス格納部の指定データとして用い、この指定データに
基づいて選択ロジック回路5から、更新先のデジットが
指定され、そのデジットに新しい実行条件フラグ或いは
タイマ補正値或いは入力条件が取り込まれて更新され
る。
【0019】ここで図1の場合には入力条件の格納する
場合の選択ロッジク回路5を示している。つまりこの場
合上記のタイマ命令のNo.の下位2ビットD0 ,D1
が”11”の場合選択ロジック回路5のタイマ命令のN
o.の下位2ビットD0 ,D1 を夫々入力するアンドゲ
ートAN1 乃至AN4 の内、RAM3のデータ端子D12
を選択するアンドゲートAN1 の出力のみが”1”とな
る。
【0020】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力条件の論理値をデータ入力
端D12へ出力することになる。つまりこの場合ステータ
ス格納部(D12乃至D15)の対応するデジットの内容が
新しい入力条件に更新されることになる。
【0021】同様にタイマ命令のNo.の下位2ビット
D0 ,D1 が”10”の場合選択ロジック回路5のタイ
マ命令のNo.の下位2ビットD0 ,D1 を夫々入力す
るアンドゲートAN1 乃至AN4 の内、RAM3のデー
タ端子D8 を選択するアンドゲートAN2 の出力のみ
が”1”となる。従ってこのアンドゲートAN2 の出力
を反転した信号と前回のD8 のデータを取り込むアンド
ゲートAN21の出力は”0”となり、一方アンドゲート
AN2 の出力と新しい入力条件の1ビットを取り込むア
ンドゲートAN22は新しい入力条件が”1”であれ
ば、”1”を、また”0”であれば”0”を出力する。
従ってこれらアンドゲートAN21,AN22の出力を入力
するオアゲートOR2 は新しい入力条件の論理値をデー
タ入力端D8 へ出力することになる。つまりこの場合ス
テータス格納部(D8 乃至D11)の対応するデジットの
内容が新しい入力条件に更新されることになる。
【0022】更にタイマ命令のNo.の下位2ビットD
0 ,D1 が”01”の場合選択ロジック回路5のタイマ
命令のNo.の下位2ビットD0 ,D1 を夫々入力する
アンドゲートAN1 乃至AN4 の内、RAM3のデータ
端子D4 を選択するアンドゲートAN3 の出力のみが”
1”となる。従ってこのアンドゲートAN3 の出力を反
転した信号と前回のD4 のデータを取り込むアンドゲー
トAN31の出力は”0”となり、一方アンドゲートAN
3 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN31は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN21,AN22の出力を入力するオ
アゲートOR3 は新しい入力条件の論理値をデータ入力
端D4 へ出力することになる。つまりこの場合ステータ
ス格納部(D4 乃至D7 )の対応するデジットの内容が
新しい入力条件に更新されることになる。
【0023】また更にタイマ命令のNo.の下位2ビッ
トD0 ,D1 が”00”の場合選択ロジック回路5のタ
イマ命令のNo.の下位2ビットD0 ,D1 を夫々入力
するアンドゲートAN1 乃至AN4 の内、RAM3のデ
ータ端子D0 を選択するアンドゲートAN1 の出力のみ
が”1”となる。従ってこのアンドゲートAN4 の出力
を反転した信号と前回のD0 のデータを取り込むアンド
ゲートAN41の出力は”0”となり、一方アンドゲート
AN2 の出力と新しい入力条件の1ビットを取り込むア
ンドゲートAN42は新しい入力条件が”1”であれ
ば、”1”を、また”0”であれば”0”を出力する。
従ってこれらアンドゲートAN21,AN22の出力を入力
するオアゲートOR2 は新しい入力条件の論理値をデー
タ入力端D0 へ出力することになる。つまりこの場合ス
テータス格納部(D3 乃至D0 )の対応するデジットの
内容が新しい入力条件に更新されることになる。
【0024】このようにタイマ命令のNo.を示す16
ビットデータD0 乃至D15の内の下位2ビットD0 ,D
1 をステータス格納部を指定するデータとし、このデー
タによって指定されるステータス格納部のデジットに、
更新すべき入力条件或いは実行条件フラグ或いはタイマ
補正値を入れるのである。尚指定されないステータス格
納部の所定デジットには読み出した前回のデータがその
まま対応するデジットに入力することになって更新はさ
れない。つまり入力側のアンドゲートAN1 乃至AN4
の出力が”0”の場合には前回のデータを入力する側の
アンドゲートAN11、A21,AN31,AN41の出力は前
回のデータのままとなり、そのため対応するオアゲート
OR1 乃至OR4 の出力もアンドゲートAN11、A21,
AN31,AN41の出力、つまり前回のデータのままとな
って、対応するRAM3のデジットへ与えることになる
のである。
【0025】このように選択ロジック回路5を実行条件
フラグ、タイマ補正値及び入力条件に夫々対応して設
け、タイマ命令のNo.の下位2ビットD0 ,D1 によ
り夫々を格納するステータス格納部を指定して、所定の
データ端子に更新するデータを与えることができること
になる。このように本実施例では一つのアドレスに対し
て4つのタイマ命令に対応したステータスを格納するこ
とができ、メモリの使用効率を4倍に向上できた。
【0026】(実施例2)本実施例は請求項2の発明に
対応するものであって、本実施例ではカウンタ命令の実
行に必要とする2ビットのステータスを格納する際、カ
ウンタ命令の実行に必要とする2ビットのステータスに
対応するようにRAM3の一つのアドレスの16ビット
データ幅を2ビットずつに区切って、一つのアドレスに
対して8つのステータス格納部を確保し、各エリアの2
ビットの内下位側から第1番のビットにはリセット入力
たる入力Cの1ビットを、第2番のビットにはクロック
(CLK)入力である入力Bの1ビットをそれぞれ格納
するようしてある。
【0027】そして本実施例ではカウンタ命令実行開始
時に図4におけるCPU1がまずカウンタ命令のNo.
を示す16ビットデータD0 〜D15の内下位3ビットD
0 〜D2 を除いた13ビットをアドレスとして外部メモ
リであるRAM3から16ビットデータを読み出し、こ
の16ビットデータを前回のカウンタ命令実行開始時の
データD0 乃至D15として保持する。そして更新記憶す
る場合には、カウンタ命令のNo.の上位13ビットD
3 〜D15を外部メモリたるRAM3の格納アドレスとし
て用い、カウンタ命令のNo.の下位3ビットD0 〜D
2 を上記ステータス格納部の指定データとして用い、こ
の指定データに基づいて選択ロジック回路5から、更新
先のデジットが指定され、そのデジットに更新される入
力B或いはCが取り込まれて更新されることになる。
【0028】図2の場合には入力Cを格納する場合の選
択ロッジク回路5を示している。つまりこの場合上記の
カウンタ命令のNo.の下位3ビットD0 〜D2 が”1
11”の場合選択ロジック回路5のカウンタ命令のN
o.の下位3ビットD0 〜D2 を夫々入力するアンドゲ
ートAN1 乃至AN8 の内、RAM3のデータ端子D14
を選択するアンドゲートAN1 の出力のみが”1”とな
る。
【0029】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力Cの論理値をデータ入力端
D12へ出力することになる。つまりこの場合ステータス
格納部(D14,D15)の入力Cに対応するデジットが新
しい入力Cに更新されることになる。
【0030】このようにしてカウンタ命令のNo.の下
位3ビットD0 〜D2 の論理値によりアンドゲートAN
1 乃至AN8 が選択されてその選択に基づいて更新され
る入力Cが与えられるステータス格納部が指定され、選
択ロジック回路5を通じてその指定エリアの内入力Cに
対応するデジットを新しい入力Cに更新することができ
るのである。
【0031】同様に入力Bに対応して選択ロジック回路
5を備えることにより、カウンタ命令のNo.の下位3
ビットD0 〜D2 の論理値によりアンドゲートAN1 乃
至AN8 が選択されてその選択に基づいて更新される入
力Cが与えられるステータス格納部が指定され、選択ロ
ジック回路5を通じてその指定エリアの内入力Bに対応
するデジットを新しい入力Bに更新することができるの
である。
【0032】このようにして本実施例では一つのアドレ
スに対して8つのカウンタ命令に対応したステータスを
格納することができ、メモリの使用効率を8倍に向上で
きた。 (実施例3)本実施例は請求項3の発明に対応するもの
であって、本実施例ではシフトレジスタ命令の実行に必
要とする2ビットのステータスを格納する際、シフトレ
ジスタ命令の実行に必要とする2ビットのステータスに
対応するようにRAM3の一つのアドレスの16ビット
データ幅を2ビットずつに区切って、一つのアドレスに
対して8つのステータス格納部を確保し、各エリアの2
ビットの内下位側から第1番のビットにはリセット入力
たる入力Fの1ビットを、第2番のビットにはクロック
(CLK)入力である入力Eの1ビットをそれぞれ格納
するようしてある。
【0033】そして本実施例ではシフトレジスタ命令実
行開始時に図4におけるCPU1がまずシフトレジスタ
命令のNo.を示す16ビットデータの内下位3ビット
D0〜D2 を除いた13ビットD3 〜D15をアドレスと
して外部メモリであるRAM3から16ビットデータを
読み出し、この16ビットデータを前回のシフトレジス
タ命令実行開始時のデータD0 乃至D15として保持す
る。そして更新記憶する場合には、シフトレジスタ命令
のNo.の上位13ビットを外部メモリたるRAM3の
格納アドレスとして用い、シフトレジスタ命令のNo.
の下位3ビットD 0 〜D2 を上記ステータス格納部の指
定データとして用い、この指定データに基づいて選択ロ
ジック回路5から、更新先のデジットが指定され、その
デジットに更新される入力F或いはEが取り込まれて更
新されることになる。
【0034】図3の場合には入力Fを格納する場合の選
択ロッジク回路5を示している。−つまりこの場合上記
のシフトレジスタ命令のNo.の下位3ビットD0 〜D
2が”111”の場合選択ロジック回路5のシフトレジ
スタ命令のNo.の下位3ビットD0 〜D2 を夫々入力
するアンドゲートAN1 乃至AN8 の内、RAM3のデ
ータ端子D14を選択するアンドゲートAN1 の出力のみ
が”1”となる。
【0035】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力Bの論理値をデータ入力端
D12へ出力することになる。つまりこの場合ステータス
格納部(D14,D15)の入力Fに対応するデジットが新
しい入力Bに更新されることになる。
【0036】このようにしてシフトレジスタ命令のN
o.の下位3ビットD0 〜D2 の論理値によりアンドゲ
ートAN1 乃至AN8 が選択されてその選択に基づいて
更新される入力Fが与えられるステータス格納部が指定
され、選択ロジック回路5を通じてその指定エリアの内
入力Fに対応するデジットを新しい入力Fに更新するこ
とができるのである。
【0037】同様に入力Aに対応して選択ロジック回路
5を備えることにより、シフトレジスタ命令のNo.の
下位3ビットD0 〜D2 の論理値によりアンドゲートA
N1乃至AN8 が選択されてその選択に基づいて更新さ
れる入力Eが与えられるステータス格納部が指定され、
選択ロジック回路5を通じてその指定エリアの内入力B
に対応するデジットを新しい入力Eに更新することがで
きるのである。
【0038】このようにして本実施例では一つのアドレ
スに対して8つのシフトレジスタ命令に対応したステー
タスを格納することができ、メモリの使用効率を8倍に
向上できた。
【0039】
【発明の効果】請求項1の発明は、時間を計時するタイ
マ命令を実行処理する時において必要とするステータス
を外部メモリに格納するプログラマブルコントローラの
ステータス格納処理方法において、また請求項2の発明
は、入力の立ち上がり若しくは立ち下がりエッジを計数
するカウンタ命令の実行処理の時に必要とするステータ
スを外部メモリに格納するプログラマブルコントローラ
のステータス格納処理方法において、更に請求項3の発
明は、入力の立ち上がり若しくは立ち下がりエッジによ
り所定のデータをシフトするシフトレジスタ命令を実行
処理する時に必要とするステータスを外部メモリに格納
するプログラマブルコントローラのステータス格納処理
方法において、夫々外部メモリの一つのアドレスのデー
タ幅をステータス格納に要するビット数で区切って夫々
をステータス格納部とし、タイマ命令に予め与えている
No.を示す所定ビットのデータの所定下位ビットでス
テータス格納部を指定し、外部メモリの格納アドレスを
残りの上位ビットで指定するので、外部メモリの一つの
アドレスにおけるメモリ空間の使用効率を向上させるこ
とができ、そのためプログラマブルコントローラとして
のメモリ使用量を減らしてコストダウンを図ることが可
能となり、また使用効率の向上によりメモリ空間に余裕
ができ,そのため命令の点数を増やしたりすることでコ
ストパーファマンスを向上させることができるという効
果がある。
【図面の簡単な説明】
【図1】本発明の実施例1の要部の構成図である。
【図2】本発明の実施例2の要部の構成図である。
【図3】本発明の実施例3の要部の構成図である。
【図4】プログラマブルコントローラの全体構成図であ
る。
【図5】同上のタイマ命令の説明図である。
【図6】同上のタイマ命令のステータス処理の説明図で
ある。
【図7】同上の正常計時の場合のタイマ命令実行処理の
説明図である。
【図8】同上の異常計時の場合のタイマ命令実行処理の
説明図である。
【図9】同上のカウンタ命令の説明図である。
【図10】同上のシフトレジスタ命令の説明図である。
【符号の説明】
3 RAM 5 選択ロッジク開路
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年1月31日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】プログラマブルコントローラのステータ
ス格納処理方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラマブルコント
ローラのステータス格納処理方法に関するものである。
【0002】
【従来の技術】図4はプログラマブルコントローラ(以
下コントローラと称する)の基本的な構成を示してお
り、プログラマブルコントローラはコントローラの中枢
となるCPU1と、コントローラの基本動作プログラム
等を格納してROM2と、ワークエリアの確保やユーザ
プログラムを格納するRAM3と外部入出力装置と接続
するI/O装置4とを備え、ユーザプログラムに沿って
各種命令処理を行うようになっている。
【0003】ところでコントローラのCPU1が実行す
る命令の一つとしてタイマ命令があるが、例えば図5に
示すようなシーケンスプログラムを実行する場合、先ず
入力Aがオンすると、タイマ命令(TMR K100)
の実行の起動がかかり、K100という値を初期値とし
て命令実行の度に予め与えられた減算すべき計時値(タ
イムベースレジスタ)を使って、経過時間を更新してい
く処理が為される。ここで実際には時間精度を上げる為
に命令の時間単位の何分の1かの精度で減算値をカウン
トしておく手法がとられるのが通常である。具体的には
図6に示すように例えば1/4精度であれば、タイムベ
ースレジスタの値(1/4精度のカウント数)と補正値
格納エリアにタイマ補正値(2ビット)として格納され
ている、前回の命令実行時に発生した1/4精度の余り
(0〜3)とを加算する。その加算結果より下位2ビッ
トを新タイマ補正値としてメモリへ書き戻し、ワーク上
の残りの上位ビットを2ビット分右へシフトさせた値
(4で割った値)が今回の減算での引き数となる。そし
て(現在の経過値)−(引き数)→(新しい経過値)と
して得、その新しい経過値をメモリへ書き戻す。引き数
を得る際に4で割った余りは、次回の演算時のときの引
き数算出の際に使用するために、上述のように新補正値
として記憶するのである。一方命令実行の条件としての
入力Aの値は、オフ→オンになった時には初期値を経過
値としてセットするだけであるため、前回オフで、今回
オンを判定するため入力Aの値も前回値を毎回記憶、更
新して行く必要がある。
【0004】図7(a)は同一の実行スキャン内に、一
度だけタイマ命令が実行される場合を示しており、この
場合はタイムベースレジスタを更新してタイム命令実行
により経過値(タイムベースに与える時間t)を1回減
算する。ところが図7(b)に示すように同一の実行ス
キャン内、つまりプログラム実行開始から次のプログラ
ム実行開始までに複数回同じタイマ命令が実行される
と、何回もタイマの経過値(タイムベースに与える時間
t)が減算されてしまい、実際の計時と異なってしまう
ことがある。そこで実行フラグを1ビット用意し、タイ
マ命令を実行するとオフしていた実行フラグをオンして
記憶し、再度同一の実行スキャン内に同じ命令を実行す
るときには、実行フラグのオンを判定して計時を行わな
いように処理する。そして次のプログラム実行開始時に
外部から実行フラグをオフしてから実行を開始する(図
8参照)。 このことにより、タイマ計時の不具合が解
消される。但し実行フラグを記憶しておくエリアを外部
メモリであるRAM3に確保して必要がある。
【0005】このようなタイマ命令実行において、前回
のタイマ補正値の2ビット、前回の入力条件(オン、オ
フ)の1ビット、実行フラグの1ビットの計4ビットを
ステータスとして常に更新、記憶する必要がある。この
ステータスは通常外部メモリであるRAM3に格納され
るが、通常タイマ命令は複数個指定することができるた
め夫々のタイマ命令のNo.をそのままRAM3の格納
アドレスとして指定することにより、ステータス格納先
を選択していた。 そのため例えば16ビットデータ幅
のRAM3を使用すると、(タイマ命令の数×16ビッ
ト)分のメモリ空間が必要となり、そのため大きなメモ
リ容量を必要としコストパーフォーマンスが悪いという
問題があった。
【0006】同様な問題は、カウンタ命令の実行につい
てもあった。つまり図9に示すカンタ命令(CNT K
100)を実行する場合、コントローラのカウンタ命令
に対する動作は、リセット入力RSTである入力Cがオ
ンの期間中ではカウンタ(CPU1の機能としてある)
の値を0とし、入力Cがオンからオフに変化すると、カ
ウンタ命令が実行されてプリセット動作を先ず行い、カ
ウンタの経過値を0から初期の設定値へと変化させる。
このことからカウンタ命令の入力C(リセット入力RS
T)の今回の値と、前回の命令実行時の値とを比較し
て、オフ→オン或いはオン→オフを判定する必要があ
る。
【0007】一方、リセット入力RSTである入力Cが
オフ(リセットでない期間)を継続していればクロック
(CLK)入力Bが有効となる。例えばカウンタ命令が
立ち上がりエッジ動作をするのであれば、前回の命令実
行時の入力Bがオフで、今回のそれがオンと判定すれ
ば、クロック(CLK)入力Bが立ち上がったとするこ
とができる。このときカウンタの経過値は、1が減ぜら
れてその減ぜられた結果の値が新し経過値としえ再び記
憶される。以上のことから入力Bも同様に今回値と前回
値とが必要となり、この入力C,B〔つまりリセット入
力RSTと、クロック(CLK)入力〕の前回の命令実
行時の値がステータスとして外部メモリであるRAM3
に格納しておくのがカウンタ命令の処理構成である。ま
たカウンタは通常複数個指定することができるため、タ
イマの場合と同様にステータスの格納先はこのカウンタ
命令のNo.をそのままRAM3の格納アドレスとして
指定することにより選択していた。
【0008】従ってこのカウンタ命令におけるステータ
す格納方法であれば、タイマ命令の場合と同様に例えば
16ビットデータ幅のRAM3を使用すると、(カウン
タ命令の数×16ビット)分のメモリ空間が必要とな
り、そのため大きなメモリ容量を必要としコストパーフ
ォーマンスが悪いという問題があった。上記のタイマ命
令やカウンタ命令におけるステータス格納処理の問題
は、シフトレジスタ命令におけるステータス格納処理時
にも存在している。
【0009】つまり図10に示すようなシフトレジスタ
命令(SR WRQ)を実行する場合、リセット入力
(RST)である入力Fがオンの期間中はCPU1内蔵
のシフトレジスタの値は0となっている。一方入力Fが
ずっとオフ(リセットでない期間)であればクロック入
力(CLK)たる入力Eが有効となる。例えばシフトレ
ジスタ命令が立ち上がりエッジ動作をするのであれば、
前回の命令実行時の入力Eがオフで、今回のそれがオン
であることを判定すれば、クロック入力(CLK)であ
る入力Eが立ち上がったとすることができる。このとき
入力Fはずとオフである必要があるため、前回命令実行
時の入力Fがオフで、今回の命令実行時の入力がオフで
あることを同時に判定する必要がある。そしてシフト条
件が成立すると指定されたデータを1ビット入力すると
同時に新しいデータ1ビット(入力D)を挿入すること
になる。以上の動作から分かるように入力F,E、(つ
まりリセット入力と、クロック(CLK)入力)の前回
命令実行時の値はステータスとして外部メモリたるRA
M3に記憶しておくのが一般的なシフトレジスタ命令の
ステータス処理方法であった。またシフトレジスタ命令
は指定先データを変えることにより、複数個使用できの
が通常であるため、ステータスの格納先も夫々別々に用
意しておくことが必要であり、その指定先は上記のタイ
マ命令やカウント命令と同様にシフトレジスタ命令のN
o.をそのままRAM3の格納アドレスとして指定する
ことにより選択していた。
【0010】従って、シフトレジスタ命令の場合も、例
えば16ビットデータ幅のRAM3を使用すると、(カ
ウンタ命令の数×16ビット)分のメモリ空間が必要と
なり、そのため大きなメモリ容量を必要としコストパー
フォーマンスが悪いという問題があった。
【0011】
【発明が解決しようとする課題】上述のように従来プロ
グラマブルコントローラにおいて、タイマ命令、カウン
タ命令、シフトレジスタ命令を実行する場合におけるス
テータス格納処理方法では大きなメモリ容量を必要とし
コストパーフォーマンスが悪いという問題があった。
【0012】本発明は、上記の問題点に鑑みて為された
もので、その目的とするところは、外部メモリの使用効
率を向上させて、プログマブルコントローラのコストパ
ーフォマンスを向上できるステータス格納処理方法を提
供するにある。
【0013】
【課題を解決するための手段】上記目的を達成するため
に請求項1の発明では、時間を計時するタイマ命令を実
行処理する時において必要とするステータスを外部メモ
リに格納するプログラマブルコントローラのステータス
格納処理方法において、外部メモリの一つのアドレスの
データ幅をステータス格納に要するビット数で区切って
夫々をステータス格納部とし、タイマ命令に予め与えて
いるNo.を示す所定ビットのデータの所定下位ビット
でステータス格納部を指定し、外部メモリの格納アドレ
スを残りの上位ビットで指定することを特徴とする。
【0014】請求項2の発明では、入力の立ち上がり若
しくは立ち下がりエッジを計数するカウンタ命令の実行
処理の時に必要とするステータスを外部メモリに格納す
るプログラマブルコントローラのステータス格納処理方
法において、外部メモリの一つのアドレスのデータ幅を
ステータス格納に要するビット数で区切って夫々をステ
ータス格納部とし、タイマ命令に予め与えているNo.
を示す所定ビットのデータの所定下位ビットでステータ
ス格納部を指定し、外部メモリの格納アドレスを残りの
上位ビットで指定することを特徴とする。ローラのステ
ータス格納処理方法。
【0015】請求項3の発明では、入力の立ち上がり若
しくは立ち下がりエッジにより所定のデータをシフトす
るシフトレジスタ命令を実行処理する時に必要とするス
テータスを外部メモリに格納するプログラマブルコント
ローラのステータス格納処理方法において、外部メモリ
の一つのアドレスのデータ幅をステータス格納に要する
ビット数で区切って夫々をステータス格納部とし、タイ
マ命令に予め与えているNo.を示す所定ビットのデー
タの所定下位ビットでステータス格納部を指定し、外部
メモリの格納アドレスを残りの上位ビットで指定するこ
とを特徴とする。
【0016】
【作用】請求項1の発明によれば、時間を計時するタイ
マ命令を実行処理する時において必要とするステータス
を外部メモリに格納するプログラマブルコントローラの
ステータス格納処理方法において、また請求項2の発明
によれば、入力の立ち上がり若しくは立ち下がりエッジ
を計数するカウンタ命令の実行処理の時に必要とするス
テータスを外部メモリに格納するプログラマブルコント
ローラのステータス格納処理方法において、更に請求項
3の発明によれば、入力の立ち上がり若しくは立ち下が
りエッジにより所定のデータをシフトするシフトレジス
タ命令を実行処理する時に必要とするステータスを外部
メモリに格納するプログラマブルコントローラのステー
タス格納処理方法において、夫々外部メモリの一つのア
ドレスのデータ幅をステータス格納に要するビット数で
区切って夫々をステータス格納部とし、タイマ命令に予
め与えているNo.を示す所定ビットのデータの所定下
位ビットでステータス格納部を指定し、外部メモリの格
納アドレスを残りの上位ビットで指定するので、外部メ
モリの一つのアドレスにおけるメモリ空間の使用効率を
向上させることができ、そのためプログラマブルコント
ローラとしてのメモリ使用量を減らしてコストダウンを
図ることが可能となり、また使用効率の向上によりメモ
リ空間に余裕ができ、そのため命令の点数を増やしたり
することでコストパーファマンスを向上させることがで
きる。
【0017】
【実施例】以下、本発明の実施例を図面を参照して説明
する。 (実施例1)本実施例は請求項1の発明に対応するもの
で、16ビットデータ幅のRAM3を用いてステータス
を格納する際、タイマ命令の実行に必要とする4ビット
のステータスに対応するようにRAM3の一つのアドレ
スの16ビットデータ幅を4ビットずつに区切って、一
つのアドレスに対して4つのステータス格納部を確保
し、各エリアの4ビットの内下位側から第1番のビット
には前回の入力条件を、第2番のビットには実行フラグ
を、第3番、第4番のビットには前回のタイマ補正値の
2ビットをそれぞれ格納するように割り当てている。
【0018】そして本実施例ではタイマ命令実行開始時
に図4におけるCPU1がまずタイマ命令のNo.を示
す16ビットデータの内下位2ビットを除いた14ビッ
トをアドレスとして外部メモリであるRAM3から16
ビットデータを読み出し、この16ビットデータを前回
のタイマ命令実行開始時のデータD0 乃至D15として保
持する。そして更新記憶する場合には、図1に示すよう
にタイマ命令のNo.の上位14ビットTM2〜TM1
5を外部メモリたるRAM3の格納アドレスとして用
い、タイマ命令のNo.の下位2ビットTM0,TM1
を上記ステータス格納部の指定データとして用い、この
指定データに基づいて選択ロジック回路5から、更新先
のデジットが指定され、そのデジットに新しい実行条件
フラグ或いはタイマ補正値或いは入力条件が取り込まれ
て更新される。
【0019】ここで図1の場合には入力条件の格納する
場合の選択ロッジク回路5を示している。つまりこの場
合上記のタイマ命令のNo.の下位2ビットTM0,T
M1が”11”の場合選択ロジック回路5のタイマ命令
のNo.の下位2ビットTM0,TM1を夫々入力する
アンドゲートAN1 乃至AN4 の内、RAM3のデータ
端子D12を選択するアンドゲートAN1 の出力のみが”
1”となる。
【0020】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力条件の論理値をデータ入力
端D12へ出力することになる。つまりこの場合ステータ
ス格納部(D12乃至D15)の対応するデジットの内容が
新しい入力条件に更新されることになる。
【0021】同様にタイマ命令のNo.の下位2ビット
TM0,TM1が”10”の場合選択ロジック回路5の
タイマ命令のNo.の下位2ビットTM0,TM1を夫
々入力するアンドゲートAN1 乃至AN4 の内、RAM
3のデータ端子D8 を選択するアンドゲートAN2 の出
力のみが”1”となる。従ってこのアンドゲートAN2
の出力を反転した信号と前回のD8 のデータを取り込む
アンドゲートAN21の出力は”0”となり、一方アンド
ゲートAN2 の出力と新しい入力条件の1ビットを取り
込むアンドゲートAN22は新しい入力条件が”1”であ
れば、”1”を、また”0”であれば”0”を出力す
る。従ってこれらアンドゲートAN21,AN22の出力を
入力するオアゲートOR2 は新しい入力条件の論理値を
データ入力端D8 へ出力することになる。つまりこの場
合ステータス格納部(D8 乃至D11)の対応するデジッ
トの内容が新しい入力条件に更新されることになる。
【0022】更にタイマ命令のNo.の下位2ビットT
M0,TM1が”01”の場合選択ロジック回路5のタ
イマ命令のNo.の下位2ビットTM0,TM1を夫々
入力するアンドゲートAN1 乃至AN4 の内、RAM3
のデータ端子D4 を選択するアンドゲートAN3 の出力
のみが”1”となる。従ってこのアンドゲートAN3 の
出力を反転した信号と前回のD4 のデータを取り込むア
ンドゲートAN31の出力は”0”となり、一方アンドゲ
ートAN3 の出力と新しい入力条件の1ビットを取り込
むアンドゲートAN31は新しい入力条件が”1”であれ
ば、”1”を、また”0”であれば”0”を出力する。
従ってこれらアンドゲートAN21,AN22の出力を入力
するオアゲートOR3 は新しい入力条件の論理値をデー
タ入力端D4 へ出力することになる。つまりこの場合ス
テータス格納部(D4 乃至D7 )の対応するデジットの
内容が新しい入力条件に更新されることになる。
【0023】また更にタイマ命令のNo.の下位2ビッ
トTM0,TM1が”00”の場合選択ロジック回路5
のタイマ命令のNo.の下位2ビットTM0,TM1を
夫々入力するアンドゲートAN1 乃至AN4 の内、RA
M3のデータ端子D0 を選択するアンドゲートAN1 の
出力のみが”1”となる。従ってこのアンドゲートAN
4 の出力を反転した信号と前回のD0 のデータを取り込
むアンドゲートAN41の出力は”0”となり、一方アン
ドゲートAN2 の出力と新しい入力条件の1ビットを取
り込むアンドゲートAN42は新しい入力条件が”1”で
あれば、”1”を、また”0”であれば”0”を出力す
る。従ってこれらアンドゲートAN21,AN22の出力を
入力するオアゲートOR2 は新しい入力条件の論理値を
データ入力端D0 へ出力することになる。つまりこの場
合ステータス格納部(D3 乃至D0 )の対応するデジッ
トの内容が新しい入力条件に更新されることになる。
【0024】このようにタイマ命令のNo.を示す16
ビットデータTM0乃至TM15の内の下位2ビットT
M0,TM1をステータス格納部を指定するデータと
し、このデータによって指定されるステータス格納部の
デジットに、更新すべき入力条件或いは実行条件フラグ
或いはタイマ補正値を入れるのである。尚指定されない
ステータス格納部の所定デジットには読み出した前回の
データがそのまま対応するデジットに入力することにな
って更新はされない。つまり入力側のアンドゲートAN
1 乃至AN4 の出力が”0”の場合には前回のデータを
入力する側のアンドゲートAN11、A21,AN31,AN
41の出力は前回のデータのままとなり、そのため対応す
るオアゲートOR1 乃至OR4 の出力もアンドゲートA
N11、A21,AN31,AN41の出力、つまり前回のデー
タのままとなって、対応するRAM3のデジットへ与え
ることになるのである。
【0025】このように選択ロジック回路5を実行条件
フラグ、タイマ補正値及び入力条件に夫々対応して設
け、タイマ命令のNo.の下位2ビットTM0,TM1
により夫々を格納するステータス格納部を指定して、所
定のデータ端子に更新するデータを与えることができる
ことになる。このように本実施例では一つのアドレスに
対して4つのタイマ命令に対応したステータスを格納す
ることができ、メモリの使用効率を4倍に向上できた。
【0026】(実施例2)本実施例は請求項2の発明に
対応するものであって、本実施例ではカウンタ命令の実
行に必要とする2ビットのステータスを格納する際、カ
ウンタ命令の実行に必要とする2ビットのステータスに
対応するようにRAM3の一つのアドレスの16ビット
データ幅を2ビットずつに区切って、一つのアドレスに
対して8つのステータス格納部を確保し、各エリアの2
ビットの内下位側から第1番のビットにはリセット入力
たる入力Cの1ビットを、第2番のビットにはクロック
(CLK)入力である入力Bの1ビットをそれぞれ格納
するようしてある。
【0027】そして本実施例ではカウンタ命令実行開始
時に図4におけるCPU1がまずカウンタ命令のNo.
を示す16ビットデータCT0〜CT15の内下位3ビ
ットCT0〜CT2を除いた13ビットをアドレスとし
て外部メモリであるRAM3から16ビットデータを読
み出し、この16ビットデータを前回のカウンタ命令実
行開始時のデータD0 乃至D15として保持する。そして
更新記憶する場合には、カウンタ命令のNo.の上位1
3ビットCT3〜CT15を外部メモリたるRAM3の
格納アドレスとして用い、カウンタ命令のNo.の下位
3ビットCT0〜CT2を上記ステータス格納部の指定
データとして用い、この指定データに基づいて選択ロジ
ック回路5から、更新先のデジットが指定され、そのデ
ジットに更新される入力B或いはCが取り込まれて更新
されることになる。
【0028】図2の場合には入力Cを格納する場合の選
択ロッジク回路5を示している。つまりこの場合上記の
カウンタ命令のNo.の下位3ビットCT0〜CT2
が”111”の場合選択ロジック回路5のカウンタ命令
のNo.の下位3ビットCT0〜CT2を夫々入力する
アンドゲートAN1 乃至AN8 の内、RAM3のデータ
端子D14を選択するアンドゲートAN1 の出力のみが”
1”となる。
【0029】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力Cの論理値をデータ入力端
D12へ出力することになる。つまりこの場合ステータス
格納部(D14,D15)の入力Cに対応するデジットが新
しい入力Cに更新されることになる。
【0030】このようにしてカウンタ命令のNo.の下
位3ビットCT0〜CT2の論理値によりアンドゲート
AN1 乃至AN8 が選択されてその選択に基づいて更新
される入力Cが与えられるステータス格納部が指定さ
れ、選択ロジック回路5を通じてその指定エリアの内入
力Cに対応するデジットを新しい入力Cに更新すること
ができるのである。
【0031】同様に入力Bに対応して選択ロジック回路
5を備えることにより、カウンタ命令のNo.の下位3
ビットCT0〜CT2の論理値によりアンドゲートAN
1 乃至AN8 が選択されてその選択に基づいて更新され
る入力Cが与えられるステータス格納部が指定され、選
択ロジック回路5を通じてその指定エリアの内入力Bに
対応するデジットを新しい入力Bに更新することができ
るのである。
【0032】このようにして本実施例では一つのアドレ
スに対して8つのカウンタ命令に対応したステータスを
格納することができ、メモリの使用効率を8倍に向上で
きた。 (実施例3)本実施例は請求項3の発明に対応するもの
であって、本実施例ではシフトレジスタ命令の実行に必
要とする2ビットのステータスを格納する際、シフトレ
ジスタ命令の実行に必要とする2ビットのステータスに
対応するようにRAM3の一つのアドレスの16ビット
データ幅を2ビットずつに区切って、一つのアドレスに
対して8つのステータス格納部を確保し、各エリアの2
ビットの内下位側から第1番のビットにはリセット入力
たる入力Fの1ビットを、第2番のビットにはクロック
(CLK)入力である入力Eの1ビットをそれぞれ格納
するようしてある。
【0033】そして本実施例ではシフトレジスタ命令実
行開始時に図4におけるCPU1がまずシフトレジスタ
命令のNo.を示す16ビットデータSR0〜SR15
の内下位3ビットSR0〜SR2を除いた13ビットD
3 〜D15をアドレスとして外部メモリであるRAM3か
ら16ビットデータを読み出し、この16ビットデータ
を前回のシフトレジスタ命令実行開始時のデータD0 乃
至D15として保持する。そして更新記憶する場合には、
シフトレジスタ命令のNo.の上位13ビットSR3〜
SR15を外部メモリたるRAM3の格納アドレスとし
て用い、シフトレジスタ命令のNo.の下位3ビットS
R0〜SR2を上記ステータス格納部の指定データとし
て用い、この指定データに基づいて選択ロジック回路5
から、更新先のデジットが指定され、そのデジットに更
新される入力F或いはEが取り込まれて更新されること
になる。
【0034】図3の場合には入力Fを格納する場合の選
択ロッジク回路5を示している。−つまりこの場合上記
のシフトレジスタ命令のNo.の下位3ビットSR0〜
SR2が”111”の場合選択ロジック回路5のシフト
レジスタ命令のNo.の下位3ビットSR0〜SR2を
夫々入力するアンドゲートAN1 乃至AN8 の内、RA
M3のデータ端子D14を選択するアンドゲートAN1 の
出力のみが”1”となる。
【0035】従ってこのアンドゲートAN1 の出力を反
転した信号と前回のD12のデータを取り込むアンドゲー
トAN11の出力は”0”となり、一方アンドゲートAN
1 の出力と新しい入力条件の1ビットを取り込むアンド
ゲートAN12は新しい入力条件が”1”であれば、”
1”を、また”0”であれば”0”を出力する。従って
これらアンドゲートAN11,AN12の出力を入力するオ
アゲートOR1 は新しい入力Bの論理値をデータ入力端
D12へ出力することになる。つまりこの場合ステータス
格納部(D14,D15)の入力Fに対応するデジットが新
しい入力Fに更新されることになる。
【0036】このようにしてシフトレジスタ命令のN
o.の下位3ビットSR0〜SR2の論理値によりアン
ドゲートAN1 乃至AN8 が選択されてその選択に基づ
いて更新される入力Fが与えられるステータス格納部が
指定され、選択ロジック回路5を通じてその指定エリア
の内入力Fに対応するデジットを新しい入力Fに更新す
ることができるのである。
【0037】同様に入力Eに対応して選択ロジック回路
5を備えることにより、シフトレジスタ命令のNo.の
下位3ビットSR0〜SR2の論理値によりアンドゲー
トAN1 乃至AN8 が選択されてその選択に基づいて更
新される入力Eが与えられるステータス格納部が指定さ
れ、選択ロジック回路5を通じてその指定エリアの内入
力Bに対応するデジットを新しい入力Eに更新すること
ができるのである。
【0038】このようにして本実施例では一つのアドレ
スに対して8つのシフトレジスタ命令に対応したステー
タスを格納することができ、メモリの使用効率を8倍に
向上できた。
【0039】
【発明の効果】請求項1の発明は、時間を計時するタイ
マ命令を実行処理する時において必要とするステータス
を外部メモリに格納するプログラマブルコントローラの
ステータス格納処理方法において、また請求項2の発明
は、入力の立ち上がり若しくは立ち下がりエッジを計数
するカウンタ命令の実行処理の時に必要とするステータ
スを外部メモリに格納するプログラマブルコントローラ
のステータス格納処理方法において、更に請求項3の発
明は、入力の立ち上がり若しくは立ち下がりエッジによ
り所定のデータをシフトするシフトレジスタ命令を実行
処理する時に必要とするステータスを外部メモリに格納
するプログラマブルコントローラのステータス格納処理
方法において、夫々外部メモリの一つのアドレスのデー
タ幅をステータス格納に要するビット数で区切って夫々
をステータス格納部とし、タイマ命令に予め与えている
No.を示す所定ビットのデータの所定下位ビットでス
テータス格納部を指定し、外部メモリの格納アドレスを
残りの上位ビットで指定するので、外部メモリの一つの
アドレスにおけるメモリ空間の使用効率を向上させるこ
とができ、そのためプログラマブルコントローラとして
のメモリ使用量を減らしてコストダウンを図ることが可
能となり、また使用効率の向上によりメモリ空間に余裕
ができ,そのため命令の点数を増やしたりすることでコ
ストパーファマンスを向上させることができるという効
果がある。
【図面の簡単な説明】
【図1】本発明の実施例1の要部の構成図である。
【図2】本発明の実施例2の要部の構成図である。
【図3】本発明の実施例3の要部の構成図である。
【図4】プログラマブルコントローラの全体構成図であ
る。
【図5】同上のタイマ命令の説明図である。
【図6】同上のタイマ命令のステータス処理の説明図で
ある。
【図7】同上の正常計時の場合のタイマ命令実行処理の
説明図である。
【図8】同上の異常計時の場合のタイマ命令実行処理の
説明図である。
【図9】同上のカウンタ命令の説明図である。
【図10】同上のシフトレジスタ命令の説明図である。
【符号の説明】 3 RAM 5 選択ロッジク開路
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】時間を計時するタイマ命令を実行処理する
    時において必要とするステータスを外部メモリに格納す
    るプログラマブルコントローラのステータス格納処理方
    法において、外部メモリの一つのアドレスのデータ幅を
    ステータス格納に要するビット数で区切って夫々をステ
    ータス格納部とし、タイマ命令に予め与えているNo.
    を示す所定ビットのデータの所定下位ビットでステータ
    ス格納部を指定し、外部メモリの格納アドレスを残りの
    上位ビットで指定することを特徴とするプログラマブル
    コントローラのステータス格納処理方法。
  2. 【請求項2】入力の立ち上がり若しくは立ち下がりエッ
    ジを計数するカウンタ命令の実行処理の時に必要とする
    ステータスを外部メモリに格納するプログラマブルコン
    トローラのステータス格納処理方法において、外部メモ
    リの一つのアドレスのデータ幅をステータス格納に要す
    るビット数で区切って夫々をステータス格納部とし、タ
    イマ命令に予め与えているNo.を示す所定ビットのデ
    ータの所定下位ビットでステータス格納部を指定し、外
    部メモリの格納アドレスを残りの上位ビットで指定する
    ことを特徴とするプログラマブルコントローラのステー
    タス格納処理方法。
  3. 【請求項3】入力の立ち上がり若しくは立ち下がりエッ
    ジにより所定のデータをシフトするシフトレジスタ命令
    を実行処理する時に必要とするステータスを外部メモリ
    に格納するプログラマブルコントローラのステータス格
    納処理方法において、外部メモリの一つのアドレスのデ
    ータ幅をステータス格納に要するビット数で区切って夫
    々をステータス格納部とし、タイマ命令に予め与えてい
    るNo.を示す所定ビットのデータの所定下位ビットで
    ステータス格納部を指定し、外部メモリの格納アドレス
    を残りの上位ビットで指定することを特徴とするプログ
    ラマブルコントローラのステータス格納処理方法。
JP6291756A 1994-11-25 1994-11-25 プログラマブルコントローラのステータス格納処理方法 Pending JPH08147162A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6291756A JPH08147162A (ja) 1994-11-25 1994-11-25 プログラマブルコントローラのステータス格納処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6291756A JPH08147162A (ja) 1994-11-25 1994-11-25 プログラマブルコントローラのステータス格納処理方法

Publications (1)

Publication Number Publication Date
JPH08147162A true JPH08147162A (ja) 1996-06-07

Family

ID=17773018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6291756A Pending JPH08147162A (ja) 1994-11-25 1994-11-25 プログラマブルコントローラのステータス格納処理方法

Country Status (1)

Country Link
JP (1) JPH08147162A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118885216A (zh) * 2024-09-29 2024-11-01 联芸科技(杭州)股份有限公司 指令调度装置及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118885216A (zh) * 2024-09-29 2024-11-01 联芸科技(杭州)股份有限公司 指令调度装置及方法

Similar Documents

Publication Publication Date Title
US5742805A (en) Method and apparatus for a single history register based branch predictor in a superscalar microprocessor
US6272620B1 (en) Central processing unit having instruction queue of 32-bit length fetching two instructions of 16-bit fixed length in one instruction fetch operation
US5684728A (en) Data processing system having a saturation arithmetic operation function
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US4949242A (en) Microcomputer capable of accessing continuous addresses for a short time
JPH0444970B2 (ja)
EP1193594A2 (en) Register renaming apparatus and processor
EP0986005A1 (en) FIFO memory device and method for controlling same
JPS6041769B2 (ja) アドレス指定方式
JPH0816364A (ja) カウンタ回路とそれを用いたマイクロプロセッサ
JP2999101B2 (ja) インターリーブ装置
JPH07200289A (ja) 情報処理装置
JP2959299B2 (ja) ステータス表示回路
US20040162965A1 (en) Information processing unit
JPS6230455B2 (ja)
US6532486B1 (en) Apparatus and method for saturating data in register
JPS6221129B2 (ja)
JP2922979B2 (ja) 中央演算処理装置
JPH08272605A (ja) アドレス分岐回路、マイクロコンピュータ及びそのアドレス分岐方法
JPH0459636B2 (ja)
US20070055847A1 (en) Operational processor with a status information register serving as a data register
JPH0789439B2 (ja) 半導体集積回路装置
JPH04192012A (ja) ビットシフト回路内蔵タイマ
JPS5932819B2 (ja) アドレス制御装置
JP2003216418A (ja) 演算回路

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040113